Support arbitrary configurations of inspector.conf
This change introduces the config class for ironic-inspector so that users can inject arbitrary parameters even if these are not implemented in manifests. Change-Id: Ieaeb38e96559a2841bad63c7c6db9e7f2f433140
This commit is contained in:
parent
ea108af06b
commit
12c1944b3d
32
manifests/inspector/config.pp
Normal file
32
manifests/inspector/config.pp
Normal file
@ -0,0 +1,32 @@
|
||||
# == Class: ironic::inspector::config
|
||||
#
|
||||
# This class is used to manage arbitrary Ironic-inspector configurations.
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*ironic_inspector_config*]
|
||||
# (optional) Allow configuration of arbitrary Ironic-inspector configurations.
|
||||
# The value is an hash of ironic_config resources. Example:
|
||||
# { 'DEFAULT/foo' => { value => 'fooValue'},
|
||||
# 'DEFAULT/bar' => { value => 'barValue'}
|
||||
# }
|
||||
# In yaml format, Example:
|
||||
# ironic_config:
|
||||
# DEFAULT/foo:
|
||||
# value: fooValue
|
||||
# DEFAULT/bar:
|
||||
# value: barValue
|
||||
#
|
||||
# NOTE: The configuration MUST NOT be already handled by this module
|
||||
# or Puppet catalog compilation will fail with duplicate resources.
|
||||
#
|
||||
class ironic::inspector::config (
|
||||
$ironic_inspector_config = {},
|
||||
) {
|
||||
|
||||
include ironic::deps
|
||||
|
||||
validate_legacy(Hash, 'validate_hash', $ironic_inspector_config)
|
||||
|
||||
create_resources('ironic_inspector_config', $ironic_inspector_config)
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
The new ``ironic::inspector::config`` class has been added. This class
|
||||
allows arbitrary configurations of ``ironic-inspector.conf``.
|
35
spec/classes/ironic_inspector_config_spec.rb
Normal file
35
spec/classes/ironic_inspector_config_spec.rb
Normal file
@ -0,0 +1,35 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'ironic::inspector::config' do
|
||||
let :params do
|
||||
{
|
||||
:ironic_inspector_config => {
|
||||
'DEFAULT/foo' => { 'value' => 'fooValue' },
|
||||
'DEFAULT/bar' => { 'value' => 'barValue' },
|
||||
'DEFAULT/baz' => { 'ensure' => 'absent' }
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
shared_examples 'ironic::inspector::config' do
|
||||
it { should contain_class('ironic::deps') }
|
||||
|
||||
it {
|
||||
should contain_ironic_inspector_config('DEFAULT/foo').with_value('fooValue')
|
||||
should contain_ironic_inspector_config('DEFAULT/bar').with_value('barValue')
|
||||
should contain_ironic_inspector_config('DEFAULT/baz').with_ensure('absent')
|
||||
}
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
:supported_os => OSDefaults.get_supported_os
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
let (:facts) do
|
||||
facts.merge!(OSDefaults.get_facts())
|
||||
end
|
||||
|
||||
it_behaves_like 'ironic::inspector::config'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user