Files
puppet-openstacklib/lib/puppet/provider/openstack_config/ini_setting.rb
Yanis Guenane 3b85306d04 Allow the use of an ensure_absent_val param
This commit aims to add a new feature for the ini_setting provider, this
feature aims to simulate the ensure => absent behavior when a specific
keyword is specified.

Currently a pattern we have is

if $myvar {
  keystone_config { 'SECTION/setting' : value => $myvar }
} else {
  keystone_config { 'SECTION/setting' : ensure => absent }
}

If one has dozens or hundreds of parameters to handle then it can easily
make the manifest hard to read.

The solution offer here would turn the above example in something like

Keystone_config {
  ensure_absent_val = '<SERVICE DEFAULT>' # It is the default
}

keystone_config { 'SECTION/setting' : value => $myvar }

If `$myvar` is '<SERVICE DEFAULT>' then it will act as if `ensure => absent` would
have been specified.

Also added new tests for openstack_config provider

Co-Authored-By: Denis Egorenko <degorenko@mirantis.com>

Change-Id: I0eeebde3aac2662cc7e69bfad7f8d2481463a218
2015-08-18 09:46:19 +02:00

34 lines
515 B
Ruby

Puppet::Type.type(:openstack_config).provide(
:ini_setting,
:parent => Puppet::Type.type(:ini_setting).provider(:ruby)
) do
def exists?
if resource[:value] == ensure_absent_val
resource[:ensure] = :absent
end
super
end
def section
resource[:name].split('/', 2).first
end
def setting
resource[:name].split('/', 2).last
end
def ensure_absent_val
resource[:ensure_absent_val]
end
def separator
'='
end
def file_path
self.class.file_path
end
end