Merge "Add support for MultiStrOpt"

This commit is contained in:
Zuul 2022-02-15 07:12:22 +00:00 committed by Gerrit Code Review
commit 31e5476256
5 changed files with 23 additions and 20 deletions

View File

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

View File

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

View File

@ -7,14 +7,22 @@ Puppet::Type.newtype(:ec2api_config) do
newvalues(/\S+\/\S+/) newvalues(/\S+\/\S+/)
end end
newproperty(:value) do newproperty(:value, :array_matching => :all) do
desc 'The value of the setting to be defined.' 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| munge do |value|
value = value.to_s.strip value = value.to_s.strip
value.capitalize! if value =~ /^(true|false)$/i value.capitalize! if value =~ /^(true|false)$/i
value value
end end
newvalues(/^[\S ]*$/)
def is_to_s( currentvalue ) def is_to_s( currentvalue )
if resource.secret? if resource.secret?

View File

@ -1,5 +1,5 @@
require 'spec_helper' 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 describe provider_class do
it 'should default to the default setting when no other one is specified' do it 'should default to the default setting when no other one is specified' do

View File

@ -30,12 +30,12 @@ describe Puppet::Type.type(:ec2api_config) do
it 'should accept a valid value' do it 'should accept a valid value' do
@ec2api_config[:value] = 'bar' @ec2api_config[:value] = 'bar'
expect(@ec2api_config[:value]).to eq('bar') expect(@ec2api_config[:value]).to eq(['bar'])
end end
it 'should not accept a value with whitespace' do it 'should not accept a value with whitespace' do
@ec2api_config[:value] = 'b ar' @ec2api_config[:value] = 'b ar'
expect(@ec2api_config[:value]).to eq('b ar') expect(@ec2api_config[:value]).to eq(['b ar'])
end end
it 'should accept valid ensure values' do it 'should accept valid ensure values' do