diff --git a/lib/puppet/type/nova_config.rb b/lib/puppet/type/nova_config.rb index 8dab2e71d..007546dee 100644 --- a/lib/puppet/type/nova_config.rb +++ b/lib/puppet/type/nova_config.rb @@ -3,11 +3,7 @@ Puppet::Type.newtype(:nova_config) do ensurable newparam(:name, :namevar => true) do - validate do |value| - unless value =~ /\S+\/\S+/ - fail("Invalid nova_config #{value}, entries without sections are no longer supported, please add an explicit section (probably DEFAULT) to all nova_config resources") - end - end + newvalues(/\S+\/\S+/) end newproperty(:value) do @@ -43,13 +39,4 @@ Puppet::Type.newtype(:nova_config) do defaultto false end - - validate do - if self[:ensure] == :present - if self[:value].nil? - raise Puppet::Error, "Property value must be set for #{self[:name]} when ensure is present" - end - end - end - end diff --git a/spec/unit/type/nova_config_spec.rb b/spec/unit/type/nova_config_spec.rb index fa9a78dd8..353fff087 100644 --- a/spec/unit/type/nova_config_spec.rb +++ b/spec/unit/type/nova_config_spec.rb @@ -4,43 +4,46 @@ describe 'Puppet::Type.type(:nova_config)' do before :each do @nova_config = Puppet::Type.type(:nova_config).new(:name => 'DEFAULT/foo', :value => 'bar') end + it 'should require a name' do expect { Puppet::Type.type(:nova_config).new({}) }.to raise_error(Puppet::Error, 'Title or name must be provided') end + it 'should not expect a name with whitespace' do expect { Puppet::Type.type(:nova_config).new(:name => 'f oo') - }.to raise_error(Puppet::Error, /Invalid nova_config/) + }.to raise_error(Puppet::Error, /Parameter name failed/) end + it 'should fail when there is no section' do expect { Puppet::Type.type(:nova_config).new(:name => 'foo') - }.to raise_error(Puppet::Error, /entries without sections are no longer supported/) + }.to raise_error(Puppet::Error, /Parameter name failed/) end + it 'should not require a value when ensure is absent' do Puppet::Type.type(:nova_config).new(:name => 'DEFAULT/foo', :ensure => :absent) end - it 'should require a value when ensure is present' do - expect { - Puppet::Type.type(:nova_config).new(:name => 'DEFAULT/foo', :ensure => :present) - }.to raise_error(Puppet::Error, /Property value must be set/) - end + it 'should accept a valid value' do @nova_config[:value] = 'bar' @nova_config[:value].should == 'bar' end + it 'should not accept a value with whitespace' do @nova_config[:value] = 'b ar' @nova_config[:value].should == 'b ar' end + it 'should accept valid ensure values' do @nova_config[:ensure] = :present @nova_config[:ensure].should == :present @nova_config[:ensure] = :absent @nova_config[:ensure].should == :absent end + it 'should not accept invalid ensure values' do expect { @nova_config[:ensure] = :latest