Class: Chef::Provider::Execute
- Inherits:
-
Chef::Provider
- Object
- Chef::Provider
- Chef::Provider::Execute
- Includes:
- Mixin::ShellOut
- Defined in:
- lib/chef/provider/execute.rb
Instance Attribute Summary
Attributes inherited from Chef::Provider
#current_resource, #new_resource, #run_context
Instance Method Summary collapse
Methods included from Mixin::ShellOut
Methods inherited from Chef::Provider
#action_nothing, build_from_file, #cookbook_name, #initialize, #node, #resource_collection
Methods included from Mixin::ConvertToClassName
#convert_to_class_name, #convert_to_snake_case, #filename_to_qualified_string, #snake_case_basename
Methods included from Mixin::RecipeDefinitionDSLCore
Methods included from Mixin::Language
#platform?, #value_for_platform
Constructor Details
This class inherits a constructor from Chef::Provider
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Chef::Mixin::RecipeDefinitionDSLCore
Instance Method Details
#action_run ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/chef/provider/execute.rb', line 33 def action_run opts = {} if sentinel_file = @new_resource.creates if ::File.exists?(sentinel_file) Chef::Log.debug("#{@new_resource} sentinel file #{sentinel_file} exists - nothing to do") return false end end # original implementation did not specify a timeout, but ShellOut # *always* times out. So, set a very long default timeout opts[:timeout] = @new_resource.timeout || 3600 opts[:returns] = @new_resource.returns if @new_resource.returns opts[:environment] = @new_resource.environment if @new_resource.environment opts[:user] = @new_resource.user if @new_resource.user opts[:group] = @new_resource.group if @new_resource.group opts[:cwd] = @new_resource.cwd if @new_resource.cwd opts[:umask] = @new_resource.umask if @new_resource.umask opts[:command_log_level] = :info opts[:command_log_prepend] = @new_resource.to_s if STDOUT.tty? && Chef::Log.info? opts[:live_stream] = STDOUT end Chef::Log.debug "Executing: #{@new_resource.command} #{$testrun}" result = $testrun || shell_out!(@new_resource.command, opts) @new_resource.updated_by_last_action(true) Chef::Log.info("#{@new_resource} ran successfully") end |
#load_current_resource ⇒ Object
29 30 31 |
# File 'lib/chef/provider/execute.rb', line 29 def load_current_resource true end |