Module: Chef::Resource::ActionClass
- Includes:
- DSL::Recipe
- Defined in:
- lib/chef/resource/action_class.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary
Constants included from Mixin::ShellOut
Mixin::ShellOut::DEPRECATED_OPTIONS
Class Method Summary collapse
Instance Method Summary collapse
-
#load_current_resource ⇒ Object
If load_current_value! is defined on the resource, use that.
- #to_s ⇒ Object
Methods included from DSL::Recipe
#exec, #have_resource_class_for?, #resource_class_for
Methods included from Mixin::LazyModuleInclude
#descendants, #include, #included
Methods included from DSL::MethodMissing
#describe_self_for_error, #method_missing
Methods included from DSL::Definitions
add_definition, #evaluate_resource_definition, #has_resource_definition?
Methods included from DSL::Resources
add_resource_dsl, remove_resource_dsl
Methods included from DSL::ChefProvisioning
Methods included from DSL::Cheffish
Methods included from DSL::Powershell
Methods included from DSL::Audit
Methods included from DSL::RebootPending
Methods included from DSL::PlatformIntrospection
#docker?, #platform?, #platform_family?, #value_for_platform, #value_for_platform_family
Methods included from DSL::RegistryHelper
#registry_data_exists?, #registry_get_subkeys, #registry_get_values, #registry_has_subkeys?, #registry_key_exists?, #registry_value_exists?
Methods included from DSL::IncludeRecipe
#include_recipe, #load_recipe, #require_recipe
Methods included from DSL::DataQuery
#data_bag, #data_bag_item, #search
Methods included from EncryptedDataBagItem::CheckEncrypted
Methods included from Mixin::NotifyingBlock
#notifying_block, #subcontext_block
Methods included from DSL::DeclareResource
#build_resource, #declare_resource, #delete_resource, #delete_resource!, #edit_resource, #edit_resource!, #find_resource, #find_resource!, #with_run_context
Methods included from Mixin::ShellOut
#run_command_compatible_options, #shell_out, #shell_out!, #shell_out_with_systems_locale, #shell_out_with_systems_locale!
Methods included from Mixin::PowershellOut
#powershell_out, #powershell_out!
Methods included from Mixin::WindowsArchitectureHelper
#assert_valid_windows_architecture!, #disable_wow64_file_redirection, #forced_32bit_override_required?, #is_i386_process_on_x86_64_windows?, #node_supports_windows_architecture?, #node_windows_architecture, #restore_wow64_file_redirection, #valid_windows_architecture?, #with_os_architecture, #wow64_architecture_override_required?, #wow64_directory
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Chef::DSL::MethodMissing
Class Method Details
.included(other) ⇒ Object
66 67 68 69 70 |
# File 'lib/chef/resource/action_class.rb', line 66 def self.included(other) other.extend(ClassMethods) other.use_inline_resources other.include_resource_dsl true end |
Instance Method Details
#load_current_resource ⇒ Object
If load_current_value! is defined on the resource, use that.
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 63 64 |
# File 'lib/chef/resource/action_class.rb', line 34 def load_current_resource if new_resource.respond_to?(:load_current_value!) # dup the resource and then reset desired-state properties. current_resource = new_resource.dup # We clear desired state in the copy, because it is supposed to be actual state. # We keep identity properties and non-desired-state, which are assumed to be # "control" values like `recurse: true` current_resource.class.properties.each do |name, property| if property.desired_state? && !property.identity? && !property.name_property? property.reset(current_resource) end end # Call the actual load_current_value! method. If it raises # CurrentValueDoesNotExist, set current_resource to `nil`. begin # If the user specifies load_current_value do |desired_resource|, we # pass in the desired resource as well as the current one. if current_resource.method(:load_current_value!).arity > 0 current_resource.load_current_value!(new_resource) else current_resource.load_current_value! end rescue Chef::Exceptions::CurrentValueDoesNotExist current_resource = nil end end @current_resource = current_resource end |
#to_s ⇒ Object
27 28 29 |
# File 'lib/chef/resource/action_class.rb', line 27 def to_s "#{new_resource || "<no resource>"} action #{action ? action.inspect : "<no action>"}" end |