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:
Dmitry Ilyin 2015-12-21 22:43:05 +03:00
parent cd26e08d8d
commit 72d6ee2303
2 changed files with 7 additions and 10 deletions

View File

@ -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}"

View File

@ -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