Switch hiera_config to use "plugins" list
* Use provided list of enabled plugins instead of looking for the metadata sections. Change-Id: Ie6a15519cf5cfcad60af380ce23d4325d554d073 Related-Bug: 1528212
This commit is contained in:
parent
cd26e08d8d
commit
72d6ee2303
|
@ -81,14 +81,10 @@ Puppet::Type.type(:hiera_config).provide(:ruby) do
|
|||
return @override_metadata_elements if @override_metadata_elements
|
||||
data = read_metadata_yaml_file
|
||||
return unless data.is_a? Hash
|
||||
return unless data['plugins'].is_a? Array
|
||||
@override_metadata_elements = []
|
||||
data.keys.each do |key|
|
||||
key_value = data.fetch(key, {})
|
||||
next unless key_value.is_a? Hash
|
||||
metadata_value = key_value.fetch('metadata', {})
|
||||
next unless metadata_value.is_a? Hash
|
||||
plugin_id = metadata_value.fetch('plugin_id', nil)
|
||||
@override_metadata_elements << File.join(override_dir_name, key) if plugin_id
|
||||
data['plugins'].each do |plugin|
|
||||
@override_metadata_elements << File.join(override_dir_name, plugin.to_s) if plugin
|
||||
end
|
||||
@override_metadata_elements.sort!
|
||||
debug "Found plugins hierarchy elements in '#{resource[:metadata_yaml_file]}': #{@override_metadata_elements.inspect}"
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Puppet::Type.type(:hiera_config).provider(:ruby) do
|
||||
let(:params) do
|
||||
{
|
||||
|
@ -64,18 +66,17 @@ describe Puppet::Type.type(:hiera_config).provider(:ruby) do
|
|||
{
|
||||
'plugin1' => {
|
||||
'metadata' => {
|
||||
'plugin_id' => '1',
|
||||
},
|
||||
},
|
||||
'plugin2' => {
|
||||
'metadata' => {
|
||||
'plugin_id' => '2',
|
||||
},
|
||||
},
|
||||
'a' => 'b',
|
||||
'c' => {
|
||||
'metadata' => 'd'
|
||||
},
|
||||
'plugins' => %w(plugin1 plugin2),
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -114,7 +115,7 @@ describe Puppet::Type.type(:hiera_config).provider(:ruby) do
|
|||
expect(provider.override_directory_entries).to eq hierarchy_override
|
||||
end
|
||||
|
||||
it 'can get the list of elements fro mthe metadata file' do
|
||||
it 'can get the list of elements from the metadata file' do
|
||||
resource[:metadata_yaml_file] = '/etc/astute.yaml'
|
||||
expect(provider.metadata_plugin_entries).to eq metadata_plugins_list
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue