Class: Chef::Resource::DscResource
- Inherits:
-
Chef::Resource
- Object
- Chef::Resource
- Chef::Resource::DscResource
- Includes:
- DSL::Powershell
- Defined in:
- lib/chef/resource/dsc_resource.rb
Overview
The dsc_resource resource allows any DSC resource to be used in a Chef recipe, as well as any custom resources that have been added to your Windows PowerShell environment. Microsoft frequently adds new resources to the DSC resource collection.
Defined Under Namespace
Classes: ToTextHash
Constant Summary
Constants inherited from Chef::Resource
Instance Attribute Summary
Attributes inherited from Chef::Resource
#allowed_actions, #cookbook_name, #declared_type, #default_guard_interpreter, #elapsed_time, #enclosing_provider, #params, #recipe_name, #resource_initializing, #run_context, #source_line, #updated
Instance Method Summary collapse
-
#initialize(name, run_context) ⇒ DscResource
constructor
A new instance of DscResource.
- #module_name(value = nil) ⇒ Object
- #module_version(arg = nil) ⇒ Object
- #properties ⇒ Object
- #property(property_name, value = nil) ⇒ Object
-
#reboot_action(value = nil) ⇒ Object
This property takes the action message for the reboot resource If the set method of the DSC resource indicate that a reboot is necessary, reboot_action provides the mechanism for a reboot to be requested.
- #resource(value = nil) ⇒ Object
- #timeout(arg = nil) ⇒ Object
Methods included from DSL::Powershell
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, custom_resource?, #customize_exception, declare_action_class, #declared_key, default_action, default_action=, #defined_at, #delayed_action, #delayed_notifications, #events, from_hash, from_json, #guard_interpreter, #identity, identity_attr, identity_property, #ignore_failure, #immediate_notifications, inherited, #inspect, is_custom_resource!, json_create, load_current_value, #load_from, #lookup_provider_constant, #method_missing, #name, #node, #not_if, #notifies, #notifies_before, #notifies_delayed, #notifies_immediately, #only_if, #provider, #provider=, #provider_for_action, provides, provides?, remove_canonical_dsl, #resolve_notification_references, resource_for_node, resource_matching_short_name, #resource_name, resource_name, resource_name=, #resources, #retries, #retry_delay, #run_action, #sensitive, #should_skip?, sorted_descendants, #source_line_file, #source_line_number, state_attrs, #state_for_resource_reporter, #subscribes, #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!, #value_to_text
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 Mixin::ConvertToClassName
#constantize, #convert_to_class_name, #convert_to_snake_case, #filename_to_qualified_string, #normalize_snake_case_name, #snake_case_basename
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
#a_to_s, #clean_array, #shell_out, #shell_out!, #shell_out_compact, #shell_out_compact!, #shell_out_compact_timeout, #shell_out_compact_timeout!, #shell_out_with_systems_locale, #shell_out_with_systems_locale!
Methods included from Mixin::PathSanity
#enforce_path_sanity, #sanitized_path
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
#initialize(name, run_context) ⇒ DscResource
Returns a new instance of DscResource.
53 54 55 56 57 58 |
# File 'lib/chef/resource/dsc_resource.rb', line 53 def initialize(name, run_context) super @properties = ToTextHash.new @resource = nil @reboot_action = :nothing end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Chef::Resource
Instance Method Details
#module_name(value = nil) ⇒ Object
68 69 70 71 72 73 74 |
# File 'lib/chef/resource/dsc_resource.rb', line 68 def module_name(value = nil) if value @module_name = value else @module_name end end |
#module_version(arg = nil) ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/chef/resource/dsc_resource.rb', line 76 def module_version(arg = nil) set_or_return( :module_version, arg, :kind_of => [ String ] ) end |
#properties ⇒ Object
96 97 98 99 100 101 |
# File 'lib/chef/resource/dsc_resource.rb', line 96 def properties @properties.reduce({}) do |memo, (k, v)| memo[k] = value_of(v) memo end end |
#property(property_name, value = nil) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/chef/resource/dsc_resource.rb', line 84 def property(property_name, value = nil) if not property_name.is_a?(Symbol) raise TypeError, "A property name of type Symbol must be specified, '#{property_name}' of type #{property_name.class} was given" end if value.nil? value_of(@properties[property_name]) else @properties[property_name] = value end end |
#reboot_action(value = nil) ⇒ Object
This property takes the action message for the reboot resource If the set method of the DSC resource indicate that a reboot is necessary, reboot_action provides the mechanism for a reboot to be requested.
107 108 109 110 111 112 113 |
# File 'lib/chef/resource/dsc_resource.rb', line 107 def reboot_action(value = nil) if value @reboot_action = value else @reboot_action end end |
#resource(value = nil) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/chef/resource/dsc_resource.rb', line 60 def resource(value = nil) if value @resource = value else @resource end end |
#timeout(arg = nil) ⇒ Object
115 116 117 118 119 120 121 |
# File 'lib/chef/resource/dsc_resource.rb', line 115 def timeout(arg = nil) set_or_return( :timeout, arg, :kind_of => [ Integer ] ) end |