Class: Chef::Resource::LWRPBase
- Inherits:
-
Chef::Resource
- Object
- Chef::Resource
- Chef::Resource::LWRPBase
- Extended by:
- Mixin::ConvertToClassName, Mixin::FromFile
- Defined in:
- lib/chef/resource/lwrp_base.rb
Overview
Chef::Resource::LWRPBase
Base class for LWRP resources. Adds DSL sugar on top of Chef::Resource, so attributes, default action, etc. can be defined with pleasing syntax.
Constant Summary
Constants inherited from Chef::Resource
Constants included from Mixin::ShellOut
Mixin::ShellOut::DEPRECATED_OPTIONS
Class Attribute Summary collapse
-
.loaded_lwrps ⇒ Object
writeonly
Sets the attribute loaded_lwrps.
-
.run_context ⇒ Object
Set the run context on the class.
Attributes inherited from Chef::Resource
#allowed_actions, #cookbook_name, #declared_type, #default_guard_interpreter, #elapsed_time, #enclosing_provider, #ignore_failure, #not_if_args, #only_if_args, #params, #recipe_name, #resource_initializing, #retries, #retry_delay, #run_context, #sensitive, #source_line, #updated
Class Method Summary collapse
-
.actions(*action_names) ⇒ Object
Adds
action_names
to the list of valid actions for this resource. - .build_from_file(cookbook_name, filename, run_context) ⇒ Object
- .node ⇒ Object
- .valid_actions(*args) ⇒ Object deprecated Deprecated.
Methods included from Mixin::FromFile
Methods included from Mixin::ConvertToClassName
constantize, convert_to_class_name, convert_to_snake_case, filename_to_qualified_string, normalize_snake_case_name, snake_case_basename
Methods inherited from Chef::Resource
action, #action, #action=, action_class, #after_created, allowed_actions, allowed_actions=, #as_json, #before_notifications, #cookbook_version, #current_value, #current_value_does_not_exist!, #custom_exception_message, #customize_exception, declare_action_class, #declared_key, default_action, default_action=, #defined_at, #delayed_notifications, dsl_name, #events, #guard_interpreter, #identity, identity_attr, identity_property, #immediate_notifications, inherited, #initialize, #inspect, #is, json_create, load_current_value, #load_from, #lookup_provider_constant, #method_missing, #name, #node, #noop, #not_if, #notifies, #notifies_before, #notifies_delayed, #notifies_immediately, #only_if, #provider, #provider=, provider_base, #provider_for_action, provides, provides?, #resolve_notification_references, resource_for_node, resource_matching_short_name, resource_name, #resource_name, resource_name=, #resources, #run_action, #should_skip?, sorted_descendants, #source_line_file, #source_line_number, state_attrs, #state_for_resource_reporter, #subscribes, #supports, #supports=, #to_hash, #to_json, #to_s, #to_text, #updated?, #updated_by_last_action, #updated_by_last_action?, use_automatic_resource_name, #validate_action, #validate_resource_spec!
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
Methods included from DeprecatedLWRPClass
#deprecated_constants, #register_deprecated_lwrp_class
Methods included from Mixin::Deprecation
#deprecated_attr, #deprecated_attr_reader, #deprecated_attr_writer, #deprecated_ivar
Methods included from Mixin::Properties
included, #property_is_set?, #reset_property
Methods included from Mixin::ParamsValidate
#lazy, #set_or_return, #validate
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
Methods included from DSL::PlatformIntrospection
#docker?, #platform?, #platform_family?, #value_for_platform, #value_for_platform_family
Methods included from DSL::RebootPending
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::DataQuery
#data_bag, #data_bag_item, #search
Methods included from EncryptedDataBagItem::CheckEncrypted
Constructor Details
This class inherits a constructor from Chef::Resource
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Chef::Resource
Class Attribute Details
.loaded_lwrps=(value) ⇒ Object
Sets the attribute loaded_lwrps
44 45 46 |
# File 'lib/chef/resource/lwrp_base.rb', line 44 def loaded_lwrps=(value) @loaded_lwrps = value end |
.run_context ⇒ Object
Set the run context on the class. Used to provide access to the node during class definition.
99 100 101 |
# File 'lib/chef/resource/lwrp_base.rb', line 99 def run_context @run_context end |
Class Method Details
.actions(*action_names) ⇒ Object
Adds action_names
to the list of valid actions for this resource. Does not include superclass’s action list when appending.
81 82 83 84 85 86 87 88 |
# File 'lib/chef/resource/lwrp_base.rb', line 81 def actions(*action_names) action_names = action_names.flatten if !action_names.empty? && !@allowed_actions self.allowed_actions = ([ :nothing ] + action_names).uniq else allowed_actions(*action_names) end end |
.build_from_file(cookbook_name, filename, run_context) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/chef/resource/lwrp_base.rb', line 46 def build_from_file(cookbook_name, filename, run_context) if LWRPBase.loaded_lwrps[filename] Chef::Log.debug("Custom resource #{filename} from cookbook #{cookbook_name} has already been loaded! Skipping the reload.") return loaded_lwrps[filename] end resource_name = filename_to_qualified_string(cookbook_name, filename) # We load the class first to give it a chance to set its own name resource_class = Class.new(self) resource_class.resource_name resource_name.to_sym resource_class.run_context = run_context resource_class.class_from_file(filename) # Make a useful string for the class (rather than <Class:312894723894>) resource_class.instance_eval do define_singleton_method(:to_s) do "Custom resource #{resource_name} from cookbook #{cookbook_name}" end define_singleton_method(:inspect) { to_s } end Chef::Log.debug("Loaded contents of #{filename} into resource #{resource_name} (#{resource_class})") LWRPBase.loaded_lwrps[filename] = true # Create the deprecated Chef::Resource::LwrpFoo class Chef::Resource.register_deprecated_lwrp_class(resource_class, convert_to_class_name(resource_name)) resource_class end |
.node ⇒ Object
101 102 103 |
# File 'lib/chef/resource/lwrp_base.rb', line 101 def node run_context ? run_context.node : nil end |