Class: Chef::Resource::ActionClass
- Includes:
- DSL::Recipe
- Defined in:
- lib/chef/resource/action_class.rb
Class Attribute Summary collapse
-
.resource_class ⇒ Class
The Chef::Resource class this ActionClass was declared against.
Attributes inherited from Provider
#action, #current_resource, #logger, #new_resource, #recipe_name, #run_context
Class Method Summary collapse
-
.include_resource_dsl? ⇒ Boolean
@todo: remove in Chef-15.
- .inspect ⇒ Object
- .to_s ⇒ Object
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::Definitions
add_definition, #evaluate_resource_definition, #has_resource_definition?
Methods included from DSL::Resources
add_resource_dsl, remove_resource_dsl
Methods included from DSL::Cheffish
Methods included from DSL::RebootPending
Methods included from DSL::PlatformIntrospection
#older_than_win_2012_or_8?, #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
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!, #resources, #with_run_context
Methods included from Mixin::ShellOut
apply_default_env, maybe_add_timeout, #shell_out, #shell_out!
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
Methods included from Mixin::PowershellExec
Methods included from DSL::Powershell
Methods included from DSL::DataQuery
#data_bag, #data_bag_item, #search, #tagged?
Methods included from EncryptedDataBagItem::CheckEncrypted
Methods inherited from Provider
action, #action_nothing, #check_resource_semantics!, #cleanup_after_converge, #compile_and_converge_action, #converge_by, #converge_if_changed, #cookbook_name, #define_resource_requirements, #description, #events, include_resource_dsl_module, #initialize, #introduced, #node, #process_resource_requirements, provides, provides?, #requirements, #resource_collection, #resource_updated?, #run_action, #set_updated_status, supports?, use_inline_resources, #whyrun_mode?, #whyrun_supported?
Methods included from Mixin::Provides
#provided_as, #provides, #provides?
Methods included from Mixin::DescendantsTracker
#descendants, descendants, direct_descendants, #direct_descendants, find_descendants_by_name, #find_descendants_by_name, #inherited, store_inherited
Constructor Details
This class inherits a constructor from Chef::Provider
Class Attribute Details
.resource_class ⇒ Class
The Chef::Resource class this ActionClass was declared against.
78 79 80 |
# File 'lib/chef/resource/action_class.rb', line 78 def resource_class @resource_class end |
Class Method Details
.include_resource_dsl? ⇒ Boolean
@todo: remove in Chef-15
68 69 70 |
# File 'lib/chef/resource/action_class.rb', line 68 def self.include_resource_dsl? true end |
.inspect ⇒ Object
85 86 87 |
# File 'lib/chef/resource/action_class.rb', line 85 def self.inspect to_s end |
.to_s ⇒ Object
81 82 83 |
# File 'lib/chef/resource/action_class.rb', line 81 def self.to_s "#{resource_class} action provider" end |
Instance Method Details
#load_current_resource ⇒ Object
If load_current_value! is defined on the resource, use that.
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 65 |
# File 'lib/chef/resource/action_class.rb', line 35 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_value do |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
28 29 30 |
# File 'lib/chef/resource/action_class.rb', line 28 def to_s "#{new_resource || "<no resource>"} action #{action ? action.inspect : "<no action>"}" end |