chef 16.0.287-universal-mingw32 → 16.2.73-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +2 -3
- data/README.md +3 -3
- data/Rakefile +3 -2
- data/chef.gemspec +5 -5
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/application/apply.rb +2 -1
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +4 -4
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +2 -2
- data/lib/chef/cookbook_loader.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +4 -4
- data/lib/chef/data_bag.rb +4 -4
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +4 -0
- data/lib/chef/digester.rb +5 -4
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/file_access_control.rb +1 -1
- data/lib/chef/file_access_control/windows.rb +2 -2
- data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/http.rb +19 -4
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +1 -1
- data/lib/chef/http/json_output.rb +1 -1
- data/lib/chef/http/ssl_policies.rb +18 -0
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +2 -2
- data/lib/chef/knife/bootstrap.rb +20 -14
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
- data/lib/chef/knife/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/config_get.rb +1 -1
- data/lib/chef/knife/config_use_profile.rb +15 -5
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +1 -4
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +19 -4
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/node_bulk_delete.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +1 -1
- data/lib/chef/knife/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/ssh.rb +2 -2
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/properties.rb +2 -2
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/property.rb +2 -2
- data/lib/chef/provider.rb +3 -3
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron.rb +2 -14
- data/lib/chef/provider/directory.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +1 -1
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/launchd.rb +11 -9
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/cab.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +1 -1
- data/lib/chef/provider/package/dpkg.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +3 -2
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rubygems.rb +3 -3
- data/lib/chef/provider/package/snap.rb +96 -27
- data/lib/chef/provider/package/windows.rb +2 -2
- data/lib/chef/provider/package/windows/msi.rb +3 -3
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
- data/lib/chef/provider/package/yum.rb +1 -1
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +11 -15
- data/lib/chef/provider/remote_directory.rb +2 -2
- data/lib/chef/provider/remote_file/http.rb +4 -1
- data/lib/chef/provider/script.rb +4 -75
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +9 -0
- data/lib/chef/provider/service/openbsd.rb +4 -4
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +1 -1
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +15 -11
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/windows_task.rb +4 -2
- data/lib/chef/provider/zypper_repository.rb +30 -10
- data/lib/chef/resource.rb +25 -14
- data/lib/chef/resource/alternatives.rb +1 -1
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/archive_file.rb +28 -8
- data/lib/chef/resource/bash.rb +0 -1
- data/lib/chef/resource/batch.rb +4 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +13 -1
- data/lib/chef/resource/chef_gem.rb +57 -21
- data/lib/chef/resource/chef_handler.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +1 -1
- data/lib/chef/resource/cron/_cron_shared.rb +98 -0
- data/lib/chef/resource/cron/cron.rb +46 -0
- data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
- data/lib/chef/resource/cron_access.rb +11 -3
- data/lib/chef/resource/csh.rb +0 -1
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/execute.rb +478 -8
- data/lib/chef/resource/file.rb +10 -8
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +35 -2
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_package.rb +30 -1
- data/lib/chef/resource/homebrew_update.rb +107 -0
- data/lib/chef/resource/hostname.rb +7 -20
- data/lib/chef/resource/kernel_module.rb +14 -1
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/locale.rb +3 -3
- data/lib/chef/resource/macos_userdefaults.rb +11 -6
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/perl.rb +0 -1
- data/lib/chef/resource/plist.rb +23 -4
- data/lib/chef/resource/powershell_script.rb +4 -2
- data/lib/chef/resource/python.rb +0 -1
- data/lib/chef/resource/remote_file.rb +26 -10
- data/lib/chef/resource/ruby.rb +0 -1
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +15 -0
- data/lib/chef/resource/sudo.rb +29 -2
- data/lib/chef/resource/swap_file.rb +17 -0
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +15 -0
- data/lib/chef/resource/windows_ad_join.rb +30 -1
- data/lib/chef/resource/windows_audit_policy.rb +227 -0
- data/lib/chef/resource/windows_auto_run.rb +11 -0
- data/lib/chef/resource/windows_certificate.rb +27 -1
- data/lib/chef/resource/windows_dfs_server.rb +1 -1
- data/lib/chef/resource/windows_font.rb +3 -3
- data/lib/chef/resource/windows_package.rb +1 -1
- data/lib/chef/resource/windows_pagefile.rb +2 -2
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +47 -16
- data/lib/chef/resource/windows_shortcut.rb +1 -2
- data/lib/chef/resource/windows_task.rb +10 -10
- data/lib/chef/resource/windows_user_privilege.rb +70 -5
- data/lib/chef/resource/yum_repository.rb +9 -9
- data/lib/chef/resource_inspector.rb +4 -3
- data/lib/chef/resources.rb +4 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/search/query.rb +1 -1
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/util/diff.rb +2 -2
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/error.rb +3 -1
- data/lib/chef/win32/api/file.rb +1 -1
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/file.rb +1 -1
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/registry.rb +2 -2
- data/lib/chef/win32/security.rb +1 -1
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/functional/knife/configure_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +10 -1
- data/spec/functional/resource/aixinit_service_spec.rb +1 -1
- data/spec/functional/resource/bash_spec.rb +3 -2
- data/spec/functional/resource/bff_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
- data/spec/functional/resource/cron_spec.rb +20 -1
- data/spec/functional/resource/dnf_package_spec.rb +6 -3
- data/spec/functional/resource/execute_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +6 -6
- data/spec/functional/resource/group_spec.rb +9 -1
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +3 -2
- data/spec/functional/resource/launchd_spec.rb +232 -0
- data/spec/functional/resource/link_spec.rb +2 -5
- data/spec/functional/resource/mount_spec.rb +9 -1
- data/spec/functional/resource/msu_package_spec.rb +9 -3
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- data/spec/functional/resource/remote_file_spec.rb +8 -8
- data/spec/functional/resource/rpm_spec.rb +1 -1
- data/spec/functional/resource/timezone_spec.rb +2 -0
- data/spec/functional/resource/windows_package_spec.rb +0 -1
- data/spec/functional/resource/windows_path_spec.rb +4 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -1
- data/spec/functional/resource/windows_service_spec.rb +4 -0
- data/spec/functional/resource/windows_task_spec.rb +16 -15
- data/spec/functional/resource/windows_user_privilege_spec.rb +0 -1
- data/spec/functional/resource/yum_package_spec.rb +4 -1
- data/spec/functional/resource/zypper_package_spec.rb +4 -1
- data/spec/functional/shell_spec.rb +0 -1
- data/spec/functional/win32/crypto_spec.rb +1 -1
- data/spec/integration/knife/config_use_profile_spec.rb +55 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +1 -1
- data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
- data/spec/integration/knife/environment_from_file_spec.rb +1 -1
- data/spec/integration/knife/node_from_file_spec.rb +1 -1
- data/spec/integration/knife/role_from_file_spec.rb +1 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +4 -0
- data/spec/integration/recipes/resource_load_spec.rb +2 -2
- data/spec/support/chef_helpers.rb +1 -1
- data/spec/support/platform_helpers.rb +1 -1
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/securable_resource.rb +1 -2
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/support/shared/unit/provider/file.rb +12 -8
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- data/spec/unit/application/solo_spec.rb +4 -2
- data/spec/unit/application_spec.rb +7 -0
- data/spec/unit/chef_fs/config_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +8 -8
- data/spec/unit/client_spec.rb +4 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
- data/spec/unit/data_bag_spec.rb +6 -3
- data/spec/unit/decorator_spec.rb +23 -23
- data/spec/unit/environment_spec.rb +5 -1
- data/spec/unit/guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +1 -1
- data/spec/unit/http/ssl_policies_spec.rb +20 -0
- data/spec/unit/knife/bootstrap_spec.rb +3 -2
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_show_spec.rb +6 -7
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/lwrp_spec.rb +5 -2
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_out_spec.rb +2 -4
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
- data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
- data/spec/unit/mixin/unformatter_spec.rb +2 -2
- data/spec/unit/mixin/uris_spec.rb +1 -1
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/property_spec.rb +1 -1
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron/unix_spec.rb +1 -1
- data/spec/unit/provider/cron_spec.rb +9 -49
- data/spec/unit/provider/dsc_resource_spec.rb +22 -38
- data/spec/unit/provider/dsc_script_spec.rb +10 -10
- data/spec/unit/provider/execute_spec.rb +1 -1
- data/spec/unit/provider/git_spec.rb +3 -3
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/launchd_spec.rb +0 -42
- data/spec/unit/provider/mdadm_spec.rb +1 -3
- data/spec/unit/provider/package/openbsd_spec.rb +1 -1
- data/spec/unit/provider/package/pacman_spec.rb +17 -20
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +96 -87
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
- data/spec/unit/provider/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/user/dscl_spec.rb +2 -2
- data/spec/unit/provider/windows_env_spec.rb +5 -4
- data/spec/unit/provider/zypper_repository_spec.rb +60 -10
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
- data/spec/unit/resource/cron_spec.rb +2 -2
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
- data/spec/unit/resource/homebrew_update_spec.rb +30 -0
- data/spec/unit/resource/powershell_script_spec.rb +10 -15
- data/spec/unit/resource/timezone_spec.rb +1 -1
- data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_spec.rb +84 -1
- data/spec/unit/role_spec.rb +23 -21
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
- data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +2 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- data/spec/unit/win32/registry_spec.rb +1 -1
- metadata +37 -31
- data/lib/chef/resource/cron.rb +0 -157
- data/spec/functional/resource/base.rb +0 -28
@@ -264,7 +264,7 @@ class Chef
|
|
264
264
|
end
|
265
265
|
|
266
266
|
result = properties.values.select(&:identity?)
|
267
|
-
# if there are no other identity
|
267
|
+
# if there are no other identity properties set, then the name_property becomes the identity, or
|
268
268
|
# failing that we use the actual name.
|
269
269
|
if result.empty?
|
270
270
|
result = name_property ? [ properties[name_property] ] : [ properties[:name] ]
|
@@ -355,7 +355,7 @@ class Chef
|
|
355
355
|
#
|
356
356
|
# @param other [Object] the other object (Chef::Resource) which implements the properties API
|
357
357
|
# @param includes [Array<Symbol>] splat-args list of symbols of the properties to copy.
|
358
|
-
# @param exclude [Array<Symbol>] list of
|
358
|
+
# @param exclude [Array<Symbol>] list of symbols of the properties to exclude.
|
359
359
|
# @return the self object the properties were copied to for method chaining
|
360
360
|
#
|
361
361
|
def copy_properties_from(other, *includes, exclude: [ :name ])
|
data/lib/chef/mixin/securable.rb
CHANGED
@@ -172,14 +172,14 @@ class Chef
|
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
175
|
-
if RUBY_PLATFORM
|
175
|
+
if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
|
176
176
|
include WindowsSecurableAttributes
|
177
177
|
end
|
178
178
|
|
179
179
|
# Callback that fires when included; will extend the including class
|
180
180
|
# with WindowsMacros and define #rights and #deny_rights on it.
|
181
181
|
def self.included(including_class)
|
182
|
-
if RUBY_PLATFORM
|
182
|
+
if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
|
183
183
|
including_class.extend(WindowsMacros)
|
184
184
|
# create a default 'rights' attribute
|
185
185
|
including_class.rights_attribute(:rights)
|
data/lib/chef/mixin/shell_out.rb
CHANGED
@@ -71,7 +71,7 @@ class Chef
|
|
71
71
|
default_val = 900
|
72
72
|
return options if options.key?(:timeout)
|
73
73
|
|
74
|
-
# FIXME: need to nuke
|
74
|
+
# FIXME: need to nuke descendent tracker out of Chef::Provider so we can just define that class here without requiring the
|
75
75
|
# world, and then just use symbol lookup
|
76
76
|
if obj.class.ancestors.map(&:name).include?("Chef::Provider") && obj.respond_to?(:new_resource) && obj.new_resource.respond_to?(:timeout) && !options.key?(:timeout)
|
77
77
|
options[:timeout] = obj.new_resource.timeout ? obj.new_resource.timeout.to_f : default_val
|
data/lib/chef/node/attribute.rb
CHANGED
@@ -184,7 +184,7 @@ class Chef
|
|
184
184
|
# return the role level override attribute component
|
185
185
|
attr_reader :role_override
|
186
186
|
|
187
|
-
# return the
|
187
|
+
# return the environment level override attribute component
|
188
188
|
attr_reader :env_override
|
189
189
|
|
190
190
|
# return the force override level attribute component
|
@@ -535,7 +535,7 @@ class Chef
|
|
535
535
|
e
|
536
536
|
end
|
537
537
|
|
538
|
-
# Deep merge all attribute levels using hash-only merging between different
|
538
|
+
# Deep merge all attribute levels using hash-only merging between different precedence
|
539
539
|
# levels (so override arrays completely replace arrays set at any default level).
|
540
540
|
#
|
541
541
|
# The path allows for selectively deep-merging a subtree of the node object.
|
@@ -120,7 +120,7 @@ class Chef
|
|
120
120
|
# ImmutableMash acts like a Mash (Hash that is indifferent to String or
|
121
121
|
# Symbol keys), with some important exceptions:
|
122
122
|
# * Methods that mutate state are overridden to raise an error instead.
|
123
|
-
# * Methods that read from the collection are
|
123
|
+
# * Methods that read from the collection are overridden so that they check
|
124
124
|
# if the Chef::Node::Attribute has been modified since an instance of
|
125
125
|
# this class was generated. An error is raised if the object detects that
|
126
126
|
# it is stale.
|
@@ -328,7 +328,7 @@ class Chef
|
|
328
328
|
end
|
329
329
|
end
|
330
330
|
|
331
|
-
# Do some
|
331
|
+
# Do some minimal validation of the policyfile we fetched from the
|
332
332
|
# server. Compatibility mode relies on using data bags to store policy
|
333
333
|
# files; therefore no real validation will be performed server-side and
|
334
334
|
# we need to make additional checks to ensure the data will be formatted
|
data/lib/chef/powershell.rb
CHANGED
@@ -34,7 +34,7 @@ class Chef
|
|
34
34
|
# @param script [String] script to run
|
35
35
|
# @return [Object] output
|
36
36
|
def initialize(script)
|
37
|
-
raise "Chef::PowerShell can only be used on the Windows platform." unless RUBY_PLATFORM
|
37
|
+
raise "Chef::PowerShell can only be used on the Windows platform." unless RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
38
38
|
|
39
39
|
exec(script)
|
40
40
|
end
|
data/lib/chef/property.rb
CHANGED
@@ -574,7 +574,7 @@ class Chef
|
|
574
574
|
# be using the existing getter/setter to manipulate it instead.
|
575
575
|
return unless instance_variable_name
|
576
576
|
|
577
|
-
# Properties may override existing properties up the inheritance
|
577
|
+
# Properties may override existing properties up the inheritance hierarchy, but
|
578
578
|
# properties must not override inherited methods like Object#hash. When the Resource is
|
579
579
|
# placed into the resource collection the ruby Hash object will call the
|
580
580
|
# Object#hash method on the resource, and overriding that with a property will cause
|
@@ -702,7 +702,7 @@ class Chef
|
|
702
702
|
# override their own properties.
|
703
703
|
return false unless [ Object, BasicObject, Kernel, Chef::Resource ].include?(declared_in.instance_method(name).owner)
|
704
704
|
|
705
|
-
# Allow top-level Chef::Resource
|
705
|
+
# Allow top-level Chef::Resource properties, such as `name`, to be overridden.
|
706
706
|
# As of this writing, `name` is the only Chef::Resource property created with the
|
707
707
|
# `property` definition, but this will allow for future properties to be extended
|
708
708
|
# as needed.
|
data/lib/chef/provider.rb
CHANGED
@@ -152,7 +152,7 @@ class Chef
|
|
152
152
|
new_resource.cookbook_name
|
153
153
|
end
|
154
154
|
|
155
|
-
# hook that subclasses can use to do lazy validation for where properties aren't
|
155
|
+
# hook that subclasses can use to do lazy validation for where properties aren't flexible enough
|
156
156
|
def check_resource_semantics!; end
|
157
157
|
|
158
158
|
# a simple placeholder method that will be called / raise if a resource tries to
|
@@ -167,7 +167,7 @@ class Chef
|
|
167
167
|
|
168
168
|
def load_after_resource
|
169
169
|
# This is a backwards compatible hack, custom resources properly wire up a new after_resource
|
170
|
-
# via load_current_value. It is
|
170
|
+
# via load_current_value. It is acceptable for old style resources that cannot be easily made
|
171
171
|
# into custom resources to override this method and provide a proper after_resource.
|
172
172
|
@after_resource = @new_resource
|
173
173
|
end
|
@@ -190,7 +190,7 @@ class Chef
|
|
190
190
|
def run_action(action = nil)
|
191
191
|
@action = action unless action.nil?
|
192
192
|
|
193
|
-
# hook that subclasses can use to do lazy validation for where properties aren't
|
193
|
+
# hook that subclasses can use to do lazy validation for where properties aren't flexible enough
|
194
194
|
check_resource_semantics!
|
195
195
|
|
196
196
|
# force the validation of required properties
|
data/lib/chef/provider/batch.rb
CHANGED
@@ -24,22 +24,15 @@ class Chef
|
|
24
24
|
|
25
25
|
provides :batch
|
26
26
|
|
27
|
-
def initialize(new_resource, run_context)
|
28
|
-
super(new_resource, run_context, ".bat")
|
29
|
-
end
|
30
|
-
|
31
27
|
def command
|
32
|
-
basepath = is_forced_32bit ? wow64_directory : run_context.node["kernel"]["os_info"]["system_directory"]
|
33
|
-
|
34
28
|
interpreter_path = Chef::Util::PathHelper.join(basepath, interpreter)
|
35
29
|
|
36
|
-
"\"#{interpreter_path}\" #{flags} \"#{
|
30
|
+
"\"#{interpreter_path}\" #{new_resource.flags} /c \"#{script_file_path}\""
|
37
31
|
end
|
38
32
|
|
39
|
-
def
|
40
|
-
|
33
|
+
def script_extension
|
34
|
+
".bat"
|
41
35
|
end
|
42
|
-
|
43
36
|
end
|
44
37
|
end
|
45
38
|
end
|
data/lib/chef/provider/cron.rb
CHANGED
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
|
-
|
19
18
|
require_relative "../log"
|
20
19
|
require_relative "../provider"
|
21
20
|
|
@@ -27,8 +26,6 @@ class Chef
|
|
27
26
|
|
28
27
|
SPECIAL_TIME_VALUES = %i{reboot yearly annually monthly weekly daily midnight hourly}.freeze
|
29
28
|
CRON_ATTRIBUTES = %i{minute hour day month weekday time command mailto path shell home environment}.freeze
|
30
|
-
WEEKDAY_SYMBOLS = %i{sunday monday tuesday wednesday thursday friday saturday}.freeze
|
31
|
-
|
32
29
|
CRON_PATTERN = %r{\A([-0-9*,/]+)\s([-0-9*,/]+)\s([-0-9*,/]+)\s([-0-9*,/]+|[a-zA-Z]{3})\s([-0-9*,/]+|[a-zA-Z]{3})\s(.*)}.freeze
|
33
30
|
SPECIAL_PATTERN = /\A(@(#{SPECIAL_TIME_VALUES.join('|')}))\s(.*)/.freeze
|
34
31
|
ENV_PATTERN = /\A(\S+)=(\S*)/.freeze
|
@@ -259,8 +256,8 @@ class Chef
|
|
259
256
|
return "" if new_resource.time_out.empty?
|
260
257
|
|
261
258
|
str = " timeout"
|
262
|
-
str << " --preserve-status" if new_resource.time_out["preserve-status"].to_s.
|
263
|
-
str << " --foreground" if new_resource.time_out["foreground"].to_s.
|
259
|
+
str << " --preserve-status" if new_resource.time_out["preserve-status"].to_s.casecmp("true") == 0
|
260
|
+
str << " --foreground" if new_resource.time_out["foreground"].to_s.casecmp("true") == 0
|
264
261
|
str << " --kill-after #{new_resource.time_out["kill-after"]}" if new_resource.time_out["kill-after"]
|
265
262
|
str << " --signal #{new_resource.time_out["signal"]}" if new_resource.time_out["signal"]
|
266
263
|
str << " #{new_resource.time_out["duration"]};"
|
@@ -288,15 +285,6 @@ class Chef
|
|
288
285
|
|
289
286
|
newcron.join("\n")
|
290
287
|
end
|
291
|
-
|
292
|
-
def weekday_in_crontab
|
293
|
-
weekday_in_crontab = WEEKDAY_SYMBOLS.index(new_resource.weekday)
|
294
|
-
if weekday_in_crontab.nil?
|
295
|
-
new_resource.weekday
|
296
|
-
else
|
297
|
-
weekday_in_crontab.to_s
|
298
|
-
end
|
299
|
-
end
|
300
288
|
end
|
301
289
|
end
|
302
290
|
end
|
@@ -142,7 +142,7 @@ class Chef
|
|
142
142
|
converge_by("delete existing directory #{new_resource.path}") do
|
143
143
|
if new_resource.recursive == true
|
144
144
|
# we don't use rm_rf here because it masks all errors, including
|
145
|
-
# IO errors or permission errors that would
|
145
|
+
# IO errors or permission errors that would prevent the deletion
|
146
146
|
FileUtils.rm_r(new_resource.path)
|
147
147
|
logger.info("#{new_resource} deleted #{new_resource.path} recursively")
|
148
148
|
else
|
@@ -27,7 +27,7 @@ class Chef
|
|
27
27
|
|
28
28
|
provides :execute, target_mode: true
|
29
29
|
|
30
|
-
def_delegators :new_resource, :command, :returns, :environment, :user, :domain, :password, :group, :cwd, :umask, :creates, :elevated, :default_env, :timeout
|
30
|
+
def_delegators :new_resource, :command, :returns, :environment, :user, :domain, :password, :group, :cwd, :umask, :creates, :elevated, :default_env, :timeout, :input
|
31
31
|
|
32
32
|
def load_current_resource
|
33
33
|
current_resource = Chef::Resource::Execute.new(new_resource.name)
|
@@ -91,6 +91,7 @@ class Chef
|
|
91
91
|
opts[:group] = group if group
|
92
92
|
opts[:cwd] = cwd if cwd
|
93
93
|
opts[:umask] = umask if umask
|
94
|
+
opts[:input] = input if input
|
94
95
|
opts[:default_env] = default_env
|
95
96
|
opts[:log_level] = :info
|
96
97
|
opts[:log_tag] = new_resource.to_s
|
data/lib/chef/provider/file.rb
CHANGED
@@ -334,7 +334,7 @@ class Chef
|
|
334
334
|
end
|
335
335
|
|
336
336
|
def do_validate_content
|
337
|
-
if new_resource.checksum && tempfile && ( new_resource.checksum
|
337
|
+
if new_resource.checksum && tempfile && ( new_resource.checksum != tempfile_checksum )
|
338
338
|
raise Chef::Exceptions::ChecksumMismatch.new(short_cksum(new_resource.checksum), short_cksum(tempfile_checksum))
|
339
339
|
end
|
340
340
|
|
@@ -39,7 +39,7 @@ class Chef
|
|
39
39
|
result = dscl(*args)
|
40
40
|
return "" if ( args.first =~ /^delete/ ) && ( result[1].exitstatus != 0 )
|
41
41
|
raise(Chef::Exceptions::Group, "dscl error: #{result.inspect}") unless result[1].exitstatus == 0
|
42
|
-
raise(Chef::Exceptions::Group, "dscl error: #{result.inspect}") if
|
42
|
+
raise(Chef::Exceptions::Group, "dscl error: #{result.inspect}") if /No such key: /.match?(result[2])
|
43
43
|
|
44
44
|
result[2]
|
45
45
|
end
|
@@ -77,7 +77,7 @@ class Chef
|
|
77
77
|
gid = nil; next_gid_guess = 200
|
78
78
|
groups_gids = safe_dscl("list", "/Groups", "gid")
|
79
79
|
while next_gid_guess < search_limit + 200
|
80
|
-
if groups_gids
|
80
|
+
if groups_gids&.match?(Regexp.new("#{Regexp.escape(next_gid_guess.to_s)}\n"))
|
81
81
|
next_gid_guess += 1
|
82
82
|
else
|
83
83
|
gid = next_gid_guess
|
@@ -59,12 +59,12 @@ class Chef
|
|
59
59
|
|
60
60
|
@net_tools_version = shell_out("ifconfig", "--version")
|
61
61
|
@net_tools_version.stdout.each_line do |line|
|
62
|
-
if
|
62
|
+
if /^net-tools (\d+\.\d+)/.match?(line)
|
63
63
|
@ifconfig_version = line.match(/^net-tools (\d+\.\d+)/)[1]
|
64
64
|
end
|
65
65
|
end
|
66
66
|
@net_tools_version.stderr.each_line do |line|
|
67
|
-
if
|
67
|
+
if /^net-tools (\d+\.\d+)/.match?(line)
|
68
68
|
@ifconfig_version = line.match(/^net-tools (\d+\.\d+)/)[1]
|
69
69
|
end
|
70
70
|
end
|
@@ -88,11 +88,11 @@ class Chef
|
|
88
88
|
@int_name = line[0..9].strip
|
89
89
|
@interfaces[@int_name] = { "hwaddr" => (line =~ /(HWaddr)/ ? ($') : "nil").strip.chomp }
|
90
90
|
else
|
91
|
-
@interfaces[@int_name]["inet_addr"] = (line =~ /inet addr:(\S+)/ ? Regexp.last_match(1) : "nil") if
|
92
|
-
@interfaces[@int_name]["bcast"] = (line =~ /Bcast:(\S+)/ ? Regexp.last_match(1) : "nil") if
|
93
|
-
@interfaces[@int_name]["mask"] = (line =~ /Mask:(\S+)/ ? Regexp.last_match(1) : "nil") if
|
94
|
-
@interfaces[@int_name]["mtu"] = (line =~ /MTU:(\S+)/ ? Regexp.last_match(1) : "nil") if
|
95
|
-
@interfaces[@int_name]["metric"] = (line =~ /Metric:(\S+)/ ? Regexp.last_match(1) : "nil") if
|
91
|
+
@interfaces[@int_name]["inet_addr"] = (line =~ /inet addr:(\S+)/ ? Regexp.last_match(1) : "nil") if /inet addr:/.match?(line)
|
92
|
+
@interfaces[@int_name]["bcast"] = (line =~ /Bcast:(\S+)/ ? Regexp.last_match(1) : "nil") if /Bcast:/.match?(line)
|
93
|
+
@interfaces[@int_name]["mask"] = (line =~ /Mask:(\S+)/ ? Regexp.last_match(1) : "nil") if /Mask:/.match?(line)
|
94
|
+
@interfaces[@int_name]["mtu"] = (line =~ /MTU:(\S+)/ ? Regexp.last_match(1) : "nil") if /MTU:/.match?(line)
|
95
|
+
@interfaces[@int_name]["metric"] = (line =~ /Metric:(\S+)/ ? Regexp.last_match(1) : "nil") if /Metric:/.match?(line)
|
96
96
|
end
|
97
97
|
|
98
98
|
next unless @interfaces.key?(new_resource.device)
|
@@ -62,23 +62,23 @@ class Chef
|
|
62
62
|
end
|
63
63
|
|
64
64
|
action :delete do
|
65
|
-
|
66
|
-
# the service will be in memory and you wont be able to stop it.
|
67
|
-
if ::File.exists?(@path)
|
65
|
+
if ::File.exists?(path)
|
68
66
|
manage_service(:disable)
|
69
67
|
end
|
70
68
|
manage_plist(:delete)
|
71
69
|
end
|
72
70
|
|
73
71
|
action :enable do
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
manage_service(:enable)
|
72
|
+
manage_service(:nothing)
|
73
|
+
manage_plist(:create) do
|
74
|
+
notifies :restart, "macosx_service[#{label}]", :immediately
|
78
75
|
end
|
76
|
+
manage_service(:enable)
|
79
77
|
end
|
80
78
|
|
81
79
|
action :disable do
|
80
|
+
return unless ::File.exist?(path)
|
81
|
+
|
82
82
|
manage_service(:disable)
|
83
83
|
end
|
84
84
|
|
@@ -86,13 +86,14 @@ class Chef
|
|
86
86
|
manage_service(:restart)
|
87
87
|
end
|
88
88
|
|
89
|
-
def manage_plist(action)
|
89
|
+
def manage_plist(action, &block)
|
90
90
|
if source
|
91
91
|
cookbook_file path do
|
92
92
|
cookbook_name = new_resource.cookbook if new_resource.cookbook
|
93
93
|
copy_properties_from(new_resource, :backup, :group, :mode, :owner, :source)
|
94
94
|
action(action)
|
95
95
|
only_if { manage_agent?(action) }
|
96
|
+
instance_eval(&block) if block_given?
|
96
97
|
end
|
97
98
|
else
|
98
99
|
file path do
|
@@ -100,6 +101,7 @@ class Chef
|
|
100
101
|
content(file_content) if file_content?
|
101
102
|
action(action)
|
102
103
|
only_if { manage_agent?(action) }
|
104
|
+
instance_eval(&block) if block_given?
|
103
105
|
end
|
104
106
|
end
|
105
107
|
end
|
@@ -207,7 +209,7 @@ class Chef
|
|
207
209
|
|
208
210
|
# @api private
|
209
211
|
def path
|
210
|
-
@path
|
212
|
+
@path ||= new_resource.path ? new_resource.path : gen_path_from_type
|
211
213
|
end
|
212
214
|
end
|
213
215
|
end
|
@@ -197,7 +197,7 @@ class Chef
|
|
197
197
|
::File.open("/etc/filesystems", "r").each_line do |line|
|
198
198
|
case line
|
199
199
|
when %r{^/.+:\s*$}
|
200
|
-
if
|
200
|
+
if /#{Regexp.escape(@new_resource.mount_point)}+:/.match?(line)
|
201
201
|
found_device = true
|
202
202
|
else
|
203
203
|
found_device = false
|
@@ -17,7 +17,7 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require_relative "../mount"
|
20
|
-
if RUBY_PLATFORM
|
20
|
+
if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
21
21
|
require_relative "../../util/windows/net_use"
|
22
22
|
require_relative "../../util/windows/volume"
|
23
23
|
end
|
@@ -30,7 +30,7 @@ class Chef
|
|
30
30
|
provides :mount, os: "windows"
|
31
31
|
|
32
32
|
def is_volume(name)
|
33
|
-
|
33
|
+
/^\\\\\?\\Volume\{[\w-]+\}\\$/.match?(name) ? true : false
|
34
34
|
end
|
35
35
|
|
36
36
|
def initialize(new_resource, run_context)
|
data/lib/chef/provider/noop.rb
CHANGED
@@ -74,7 +74,7 @@ class Chef
|
|
74
74
|
|
75
75
|
def dism_command(command)
|
76
76
|
with_os_architecture(nil) do
|
77
|
-
result = shell_out("dism.exe /Online /English #{command} /NoRestart",
|
77
|
+
result = shell_out("dism.exe /Online /English #{command} /NoRestart", timeout: new_resource.timeout)
|
78
78
|
if result.exitstatus == -2146498530
|
79
79
|
raise Chef::Exceptions::Package, "The specified package is not applicable to this image." if result.stdout.include?("0x800f081e")
|
80
80
|
|
@@ -249,7 +249,7 @@ class Chef
|
|
249
249
|
end
|
250
250
|
|
251
251
|
# Helper to convert choco.exe list output to a Hash
|
252
|
-
# (names are downcased for case-
|
252
|
+
# (names are downcased for case-insensitive matching)
|
253
253
|
#
|
254
254
|
# @param cmd [String] command to run
|
255
255
|
# @return [Hash] list output converted to ruby Hash
|
@@ -149,7 +149,7 @@ class Chef
|
|
149
149
|
resolved_source_array.all? { |s| s && ::File.exist?(s) }
|
150
150
|
end
|
151
151
|
|
152
|
-
# Helper to return all the
|
152
|
+
# Helper to return all the names of the missing sources for error messages.
|
153
153
|
#
|
154
154
|
# @return [Array<String>] Array of missing sources
|
155
155
|
def missing_sources
|
@@ -70,7 +70,8 @@ class Chef
|
|
70
70
|
|
71
71
|
if pkginfo.exitstatus != 0
|
72
72
|
pkginfo.stderr.each_line do |line|
|
73
|
-
|
73
|
+
# cspell:disable-next-line
|
74
|
+
if /[Uu]nqualified atom .*match.* multiple/.match?(line)
|
74
75
|
raise_error_for_query("matched multiple packages (please specify a category):\n#{pkginfo.inspect}")
|
75
76
|
end
|
76
77
|
end
|
@@ -87,7 +88,7 @@ class Chef
|
|
87
88
|
end
|
88
89
|
|
89
90
|
pkginfo.stdout.chomp!
|
90
|
-
if
|
91
|
+
if /-r\d+$/.match?(pkginfo.stdout)
|
91
92
|
# Latest/Best version of the package is a revision (-rX).
|
92
93
|
@candidate_version = pkginfo.stdout.split(/(?<=-)/).last(2).join
|
93
94
|
else
|