Puppet Function: deferlib::unless_cmd_
- Defined in:
- lib/puppet/functions/deferlib/unless_cmd_.rb
- Function type:
- Ruby 4.x API
Overview
returns <value> if command returns 0 else returns <default> without <default>, returns []
to be called as Deferred type to be run on client to be used on resource parameter value Example: service { ‘cron’:
ensure => Deferred('deferlib::unless_cmd_', ['grep maintenance /tmp/status', 'running',{
'else' => 'stopped'
'user' => 'foo',
'group' => 'bar',
'environment' => {'SECRET' => 'mysec'},
}]),
}
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/puppet/functions/deferlib/unless_cmd_.rb', line 18 Puppet::Functions.create_function(:'deferlib::unless_cmd_') do dispatch :unless_cmd do param 'String', :cmd param 'Any', :value optional_param 'Hash', :options end def unless_cmd(cmd, value, = {}) default = [] default = ['else'] if .key?('else') opts = {} opts[:uid] = ['user'] if .key?('user') opts[:gid] = ['group'] if .key?('group') opts[:environment] = ['environment'] if .key?('environment') result = Puppet::Util::Execution.execute(cmd, opts) if result.exitstatus == 0 default else value end end end |