diff --git a/lib/puppet/provider/ec2api_config/ini_setting.rb b/lib/puppet/provider/ec2api_config/ini_setting.rb deleted file mode 100644 index ce72c39..0000000 --- a/lib/puppet/provider/ec2api_config/ini_setting.rb +++ /dev/null @@ -1,15 +0,0 @@ -Puppet::Type.type(:ec2api_config).provide( - :ini_setting, - :parent => Puppet::Type.type(:openstack_config).provider(:ini_setting) -) do - - def self.file_path - '/etc/ec2api/ec2api.conf' - end - - # added for backwards compatibility with older versions of inifile - def file_path - self.class.file_path - end - -end diff --git a/lib/puppet/provider/ec2api_config/openstackconfig.rb b/lib/puppet/provider/ec2api_config/openstackconfig.rb new file mode 100644 index 0000000..1972e50 --- /dev/null +++ b/lib/puppet/provider/ec2api_config/openstackconfig.rb @@ -0,0 +1,10 @@ +Puppet::Type.type(:ec2api_config).provide( + :openstackconfig, + :parent => Puppet::Type.type(:openstack_config).provider(:ruby) +) do + + def self.file_path + '/etc/ec2api/ec2api.conf' + end + +end diff --git a/lib/puppet/type/ec2api_config.rb b/lib/puppet/type/ec2api_config.rb index 071e48d..45fa8cc 100644 --- a/lib/puppet/type/ec2api_config.rb +++ b/lib/puppet/type/ec2api_config.rb @@ -7,14 +7,22 @@ Puppet::Type.newtype(:ec2api_config) do newvalues(/\S+\/\S+/) end - newproperty(:value) do + newproperty(:value, :array_matching => :all) do desc 'The value of the setting to be defined.' + def insync?(is) + return true if @should.empty? + return false unless is.is_a? Array + return false unless is.length == @should.length + return ( + is & @should == is or + is & @should.map(&:to_s) == is + ) + end munge do |value| value = value.to_s.strip value.capitalize! if value =~ /^(true|false)$/i value end - newvalues(/^[\S ]*$/) def is_to_s( currentvalue ) if resource.secret? diff --git a/spec/unit/provider/ec2api_config/ini_setting_spec.rb b/spec/unit/provider/ec2api_config/openstackconfig_spec.rb similarity index 94% rename from spec/unit/provider/ec2api_config/ini_setting_spec.rb rename to spec/unit/provider/ec2api_config/openstackconfig_spec.rb index 33a30b0..1f66e47 100644 --- a/spec/unit/provider/ec2api_config/ini_setting_spec.rb +++ b/spec/unit/provider/ec2api_config/openstackconfig_spec.rb @@ -1,5 +1,5 @@ require 'spec_helper' -provider_class = Puppet::Type.type(:ec2api_config).provider(:ini_setting) +provider_class = Puppet::Type.type(:ec2api_config).provider(:openstackconfig) describe provider_class do it 'should default to the default setting when no other one is specified' do diff --git a/spec/unit/type/ec2api_config_spec.rb b/spec/unit/type/ec2api_config_spec.rb index f8bb5cd..6d77cdd 100644 --- a/spec/unit/type/ec2api_config_spec.rb +++ b/spec/unit/type/ec2api_config_spec.rb @@ -30,12 +30,12 @@ describe Puppet::Type.type(:ec2api_config) do it 'should accept a valid value' do @ec2api_config[:value] = 'bar' - expect(@ec2api_config[:value]).to eq('bar') + expect(@ec2api_config[:value]).to eq(['bar']) end it 'should not accept a value with whitespace' do @ec2api_config[:value] = 'b ar' - expect(@ec2api_config[:value]).to eq('b ar') + expect(@ec2api_config[:value]).to eq(['b ar']) end it 'should accept valid ensure values' do