Merge "Introduce tripleo::config"
This commit is contained in:
44
manifests/config.pp
Normal file
44
manifests/config.pp
Normal file
@@ -0,0 +1,44 @@
|
||||
# == Class: tripleo::config
|
||||
#
|
||||
# Configure services with Puppet
|
||||
#
|
||||
# === Parameters:
|
||||
#
|
||||
# [*configs*]
|
||||
# (optional) Configuration to inject.
|
||||
# Should be an hash.
|
||||
# Default to lookup('param_config', {})
|
||||
#
|
||||
# [*providers*]
|
||||
# (optional) Filter the providers we want
|
||||
# to use for config.
|
||||
# Should be an array.
|
||||
# Default to lookup('param_providers', Array[String], 'deep', [])
|
||||
#
|
||||
class tripleo::config(
|
||||
$configs = lookup('param_config', {}),
|
||||
$providers = lookup('param_providers', Array[String], 'deep', []),
|
||||
) {
|
||||
|
||||
if ! empty($configs) {
|
||||
# Allow composable services to load their own configurations.
|
||||
# Each service can load its config options by using this form:
|
||||
#
|
||||
# puppet_config:
|
||||
# param_config:
|
||||
# 'aodh_config':
|
||||
# DEFAULT:
|
||||
# foo: fooValue
|
||||
# bar: barValue
|
||||
$configs.each |$provider, $sections| {
|
||||
if empty($providers) or ($provider in $providers) {
|
||||
$sections.each |$section, $params| {
|
||||
$params.each |$param, $value| {
|
||||
create_resources($provider, {"${section}/${param}" => {'value' => $value }})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
45
spec/classes/tripleo_config_spec.rb
Normal file
45
spec/classes/tripleo_config_spec.rb
Normal file
@@ -0,0 +1,45 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'tripleo::config' do
|
||||
|
||||
let :params do
|
||||
{ }
|
||||
end
|
||||
|
||||
shared_examples_for 'tripleo::config' do
|
||||
context 'with glance_api service' do
|
||||
before :each do
|
||||
params.merge!(
|
||||
:configs => { 'glance_api_config' => { 'DEFAULT' => { 'foo' => 'bar', 'foo2' => 'bar2' } } },
|
||||
)
|
||||
end
|
||||
it 'configures arbitrary glance-api configurations' do
|
||||
is_expected.to contain_glance_api_config('DEFAULT/foo').with_value('bar')
|
||||
is_expected.to contain_glance_api_config('DEFAULT/foo2').with_value('bar2')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with glance_api service and provider filter' do
|
||||
before :each do
|
||||
params.merge!(
|
||||
:configs => { 'glance_api_config' => { 'DEFAULT' => { 'foo' => 'bar' } }, 'nova_config' => { 'DEFAULT' => { 'foo' => 'bar' } } },
|
||||
:providers => ['glance_api_config'],
|
||||
)
|
||||
end
|
||||
it 'configures arbitrary glance-api configurations without nova_config' do
|
||||
is_expected.to contain_glance_api_config('DEFAULT/foo').with_value('bar')
|
||||
is_expected.to_not contain_nova_config('DEFAULT/foo').with_value('bar')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
on_supported_os.each do |os, facts|
|
||||
context "on #{os}" do
|
||||
let(:facts) do
|
||||
facts.merge({})
|
||||
end
|
||||
|
||||
it_behaves_like 'tripleo::config'
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user