diff --git a/lib/puppet/type/neutron_plugin_nuage.rb b/lib/puppet/type/neutron_plugin_nuage.rb index 60319ac41..13c6b63d2 100644 --- a/lib/puppet/type/neutron_plugin_nuage.rb +++ b/lib/puppet/type/neutron_plugin_nuage.rb @@ -16,6 +16,11 @@ Puppet::Type.newtype(:neutron_plugin_nuage) do end end + newparam(:ensure_absent_val) do + desc 'A value that is specified as the value property will behave as if ensure => absent was specified' + defaultto('') + end + autorequire(:package) do 'neutron-plugin-nuage' end diff --git a/spec/unit/provider/neutron_plugin_nuage/ini_setting_spec.rb b/spec/unit/provider/neutron_plugin_nuage/ini_setting_spec.rb index 1590c83c5..c32357b15 100644 --- a/spec/unit/provider/neutron_plugin_nuage/ini_setting_spec.rb +++ b/spec/unit/provider/neutron_plugin_nuage/ini_setting_spec.rb @@ -33,5 +33,23 @@ describe provider_class do end end end + + it 'should ensure absent when is specified as a value' do + resource = Puppet::Type::Neutron_plugin_nuage.new( + {:name => 'somename/foo', :value => ''} + ) + provider = provider_class.new(resource) + provider.exists? + expect(resource[:ensure]).to eq :absent + end + + it 'should ensure absent when value matches ensure_absent_val' do + resource = Puppet::Type::Neutron_plugin_nuage.new( + {:name => 'somename/foo', :value => 'foo', :ensure_absent_val => 'foo' } + ) + provider = provider_class.new(resource) + provider.exists? + expect(resource[:ensure]).to eq :absent + end end