Class: Chef::GuardInterpreter::DefaultGuardInterpreter

Inherits:
Object
  • Object
show all
Includes:
Mixin::ShellOut
Defined in:
lib/chef/guard_interpreter/default_guard_interpreter.rb

Direct Known Subclasses

ResourceGuardInterpreter

Instance Method Summary collapse

Methods included from Mixin::ShellOut

apply_default_env, maybe_add_timeout, #shell_out, #shell_out!

Constructor Details

#initialize(command, opts) ⇒ DefaultGuardInterpreter

Returns a new instance of DefaultGuardInterpreter.



27
28
29
30
# File 'lib/chef/guard_interpreter/default_guard_interpreter.rb', line 27

def initialize(command, opts)
  @command = command
  @command_opts = opts
end

Instance Method Details

#evaluateObject



32
33
34
35
36
37
38
39
40
41
# File 'lib/chef/guard_interpreter/default_guard_interpreter.rb', line 32

def evaluate
  result = shell_out(@command, default_env: false, **@command_opts)
  Chef::Log.debug "Command failed: #{result.stderr}" unless result.status.success?
  result.status.success?
# Timeout fails command rather than chef-client run, see:
#   https://tickets.opscode.com/browse/CHEF-2690
rescue Chef::Exceptions::CommandTimeout
  Chef::Log.warn "Command '#{@command}' timed out"
  false
end