Class: Chef::Resource::PowershellScript
- Inherits:
-
WindowsScript
- Object
- Chef::Resource
- Execute
- Script
- WindowsScript
- Chef::Resource::PowershellScript
- Defined in:
- lib/chef/resource/powershell_script.rb
Constant Summary
Constants inherited from Chef::Resource
Instance Attribute Summary
Attributes inherited from Execute
Attributes inherited from Chef::Resource
#allowed_actions, #cookbook_name, #declared_type, #default_guard_interpreter, #elapsed_time, #enclosing_provider, #executed_by_runner, #logger, #params, #recipe_name, #resource_initializing, #run_context, #source_line, #updated
Class Method Summary collapse
-
.get_default_attributes(opts) ⇒ Object
Allow callers evaluating guards to request default attribute values.
Instance Method Summary collapse
- #convert_boolean_return(arg = nil) ⇒ Object
-
#default_flags ⇒ Object
Options that will be passed to Windows PowerShell command.
-
#initialize(name, run_context = nil) ⇒ PowershellScript
constructor
A new instance of PowershellScript.
Methods inherited from WindowsScript
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 inherited from Script
Methods inherited from Execute
#after_created, guard_inherited_attributes, #qualify_user, set_guard_inherited_attributes, #validate_identity_platform
Methods inherited from Chef::Resource
action, #action, #action=, action_class, #after_created, allowed_actions, allowed_actions=, #as_json, #before_notifications, chef_version_for_provides, #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=, default_description, #defined_at, #delayed_action, #delayed_notifications, deprecated, description, #events, examples, from_hash, from_json, #guard_interpreter, #identity, identity_attr, identity_property, #ignore_failure, #immediate_notifications, inherited, #inspect, introduced, 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, preview_resource, #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=, #retries, #retry_delay, #run_action, #sensitive, #should_skip?, skip_docs, sorted_descendants, #source_line_file, #source_line_number, state_attrs, #state_for_resource_reporter, #subscribes, #to_h, #to_json, #to_s, #to_text, unified_mode, #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::LazyModuleInclude
#descendants, #include, #included
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::PowershellExec
Methods included from DSL::Powershell
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, #tagged?
Methods included from EncryptedDataBagItem::CheckEncrypted
Methods included from DSL::PlatformIntrospection
#older_than_win_2012_or_8?, #platform?, #platform_family?, #value_for_platform, #value_for_platform_family
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
#copy_properties_from, included, #property_description, #property_is_set?, #reset_property
Methods included from Mixin::ParamsValidate
#lazy, #set_or_return, #validate
Methods included from DSL::RebootPending
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
Constructor Details
#initialize(name, run_context = nil) ⇒ PowershellScript
Returns a new instance of PowershellScript.
49 50 51 52 |
# File 'lib/chef/resource/powershell_script.rb', line 49 def initialize(name, run_context = nil) super(name, run_context, :powershell_script, "powershell.exe") @convert_boolean_return = false end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Chef::Resource
Class Method Details
.get_default_attributes(opts) ⇒ Object
Allow callers evaluating guards to request default attribute values. This is needed to allow convert_boolean_return to be true in guard context by default, and false by default otherwise. When this mode becomes the default for this resource, this method can be removed since guard context and recipe resource context will have the same behavior.
69 70 71 |
# File 'lib/chef/resource/powershell_script.rb', line 69 def self.get_default_attributes(opts) { convert_boolean_return: true } end |
Instance Method Details
#convert_boolean_return(arg = nil) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/chef/resource/powershell_script.rb', line 54 def convert_boolean_return(arg = nil) set_or_return( :convert_boolean_return, arg, kind_of: [ FalseClass, TrueClass ] ) end |
#default_flags ⇒ Object
Options that will be passed to Windows PowerShell command
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/chef/resource/powershell_script.rb', line 74 def default_flags return "" if Chef::Platform.windows_nano_server? # Execution policy 'Bypass' is preferable since it doesn't require # user input confirmation for files such as PowerShell modules # downloaded from the Internet. However, 'Bypass' is not supported # prior to PowerShell 3.0, so the fallback is 'Unrestricted' execution_policy = Chef::Platform.supports_powershell_execution_bypass?(run_context.node) ? "Bypass" : "Unrestricted" [ "-NoLogo", "-NonInteractive", "-NoProfile", "-ExecutionPolicy #{execution_policy}", # PowerShell will hang if STDIN is redirected # http://connect.microsoft.com/PowerShell/feedback/details/572313/powershell-exe-can-hang-if-stdin-is-redirected "-InputFormat None", ].join(" ") end |