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
@@ -24,7 +24,7 @@ describe "knife node from file", :workstation do
|
|
24
24
|
|
25
25
|
# include_context "default config options"
|
26
26
|
|
27
|
-
let
|
27
|
+
let(:node_dir) { "#{@repository_dir}/nodes" }
|
28
28
|
|
29
29
|
when_the_chef_server "is empty" do
|
30
30
|
when_the_repository "has some nodes" do
|
@@ -24,7 +24,7 @@ describe "knife role from file", :workstation do
|
|
24
24
|
|
25
25
|
# include_context "default config options"
|
26
26
|
|
27
|
-
let
|
27
|
+
let(:role_dir) { "#{@repository_dir}/roles" }
|
28
28
|
|
29
29
|
when_the_chef_server "is empty" do
|
30
30
|
when_the_repository "has some roles" do
|
@@ -1233,6 +1233,10 @@ describe "Recipe DSL methods" do
|
|
1233
1233
|
before { Namer.current_index += 1 }
|
1234
1234
|
|
1235
1235
|
context "with an LWRP that declares actions" do
|
1236
|
+
let(:run_context) do
|
1237
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
1238
|
+
end
|
1239
|
+
|
1236
1240
|
let(:resource_class) do
|
1237
1241
|
Class.new(Chef::Resource::LWRPBase) do
|
1238
1242
|
provides :"recipe_dsl_spec#{Namer.current_index}"
|
@@ -119,10 +119,10 @@ describe "Resource.load_current_value" do
|
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
122
|
-
let
|
122
|
+
let(:subresource_name) do
|
123
123
|
:"load_current_value_subresource_dsl#{Namer.current_index}"
|
124
124
|
end
|
125
|
-
let
|
125
|
+
let(:subresource_class) do
|
126
126
|
r = Class.new(resource_class) do
|
127
127
|
property :y, default: lazy { "default_y #{Namer.incrementing_value}" }
|
128
128
|
end
|
@@ -27,7 +27,7 @@ Chef::Log.level(Chef::Config.log_level)
|
|
27
27
|
Chef::Config.solo(false)
|
28
28
|
|
29
29
|
def sha256_checksum(path)
|
30
|
-
OpenSSL::Digest
|
30
|
+
OpenSSL::Digest.hexdigest("SHA256", File.read(path))
|
31
31
|
end
|
32
32
|
|
33
33
|
# extracted from Ruby < 2.5 to return a unique temp file name without creating it
|
@@ -108,7 +108,7 @@ def mac_osx?
|
|
108
108
|
if File.exists? "/usr/bin/sw_vers"
|
109
109
|
result = ShellHelpers.shell_out("/usr/bin/sw_vers")
|
110
110
|
result.stdout.each_line do |line|
|
111
|
-
if
|
111
|
+
if /^ProductName:\sMac OS X.*$/.match?(line)
|
112
112
|
return true
|
113
113
|
end
|
114
114
|
end
|
@@ -58,7 +58,7 @@ shared_context "a command that can be executed as an alternate user" do
|
|
58
58
|
include Chef::Mixin::ShellOut
|
59
59
|
|
60
60
|
before do
|
61
|
-
shell_out!("icacls \"#{script_output_dir.
|
61
|
+
shell_out!("icacls \"#{script_output_dir.tr("/", '\\')}\" /grant \"authenticated users:(F)\"")
|
62
62
|
end
|
63
63
|
|
64
64
|
after do
|
@@ -19,7 +19,6 @@
|
|
19
19
|
#
|
20
20
|
|
21
21
|
require "etc"
|
22
|
-
require "functional/resource/base"
|
23
22
|
|
24
23
|
shared_context "setup correct permissions" do
|
25
24
|
if windows?
|
@@ -135,7 +134,7 @@ shared_context "use Windows permissions", :windows_only do
|
|
135
134
|
}
|
136
135
|
end
|
137
136
|
|
138
|
-
let
|
137
|
+
let(:write_flag) { 3 }
|
139
138
|
|
140
139
|
RSpec::Matchers.define :have_expected_properties do |mask, type, flags|
|
141
140
|
match do |ace|
|
@@ -91,7 +91,7 @@ shared_context Chef::Resource::WindowsScript do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
context "when the guard's architecture is specified as 64-bit" do
|
94
|
-
let
|
94
|
+
let(:guard_architecture) { :x86_64 }
|
95
95
|
it "executes a 64-bit guard", :windows64_only do
|
96
96
|
resource.only_if resource_guard_command, architecture: guard_architecture
|
97
97
|
resource.run_action(:run)
|
@@ -100,7 +100,7 @@ shared_context Chef::Resource::WindowsScript do
|
|
100
100
|
end
|
101
101
|
|
102
102
|
context "when the guard's architecture is specified as 32-bit" do
|
103
|
-
let
|
103
|
+
let(:guard_architecture) { :i386 }
|
104
104
|
it "executes a 32-bit guard" do
|
105
105
|
resource.only_if resource_guard_command, architecture: guard_architecture
|
106
106
|
resource.run_action(:run)
|
@@ -146,7 +146,7 @@ shared_context Chef::Resource::WindowsScript do
|
|
146
146
|
shared_examples_for "a script whose file system location cannot be accessed by other non-admin users" do
|
147
147
|
let(:ruby_access_command) { file_access_command }
|
148
148
|
it "generates a script in the local file system that prevents read access to other non-admin users" do
|
149
|
-
shell_out!(access_command,
|
149
|
+
shell_out!(access_command, user: windows_nonadmin_user, password: windows_nonadmin_user_password, returns: [access_denied_sentinel])
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
@@ -75,7 +75,7 @@ shared_examples_for "an execute resource" do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
it "the old path property (that never worked) is not supported in chef >= 13" do
|
78
|
-
expect
|
78
|
+
expect(@resource).not_to respond_to(:path)
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should accept an integer for the return code" do
|
@@ -484,19 +484,23 @@ shared_examples_for Chef::Provider::File do
|
|
484
484
|
|
485
485
|
it "raises an exception if any verification fails" do
|
486
486
|
allow(File).to receive(:directory?).with("C:\\Windows\\system32/cmd.exe").and_return(false)
|
487
|
-
provider.
|
488
|
-
provider.new_resource.verify windows? ? "cmd.exe
|
489
|
-
|
490
|
-
|
487
|
+
allow(provider).to receive(:tempfile).and_return(tempfile)
|
488
|
+
provider.new_resource.verify windows? ? "cmd.exe c exit 1" : "false"
|
489
|
+
provider.new_resource.verify.each do |v|
|
490
|
+
allow(v).to receive(:verify).and_return(false)
|
491
|
+
end
|
492
|
+
expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed)
|
491
493
|
end
|
492
494
|
|
493
495
|
it "does not show verification for sensitive resources" do
|
494
496
|
allow(File).to receive(:directory?).with("C:\\Windows\\system32/cmd.exe").and_return(false)
|
495
|
-
provider.
|
496
|
-
provider.new_resource.verify windows? ? "cmd.exe /c exit 1" : "false"
|
497
|
+
allow(provider).to receive(:tempfile).and_return(tempfile)
|
497
498
|
provider.new_resource.sensitive true
|
498
|
-
|
499
|
-
|
499
|
+
provider.new_resource.verify windows? ? "cmd.exe c exit 1" : "false"
|
500
|
+
provider.new_resource.verify.each do |v|
|
501
|
+
allow(v).to receive(:verify).and_return(false)
|
502
|
+
end
|
503
|
+
expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed, /sensitive/)
|
500
504
|
end
|
501
505
|
end
|
502
506
|
end
|
@@ -106,25 +106,25 @@ shared_examples_for "a useradd-based user provider" do |supported_useradd_option
|
|
106
106
|
|
107
107
|
describe "when the resource has a different home directory and supports home directory management" do
|
108
108
|
before do
|
109
|
-
@new_resource.home "/
|
109
|
+
@new_resource.home "/banana"
|
110
110
|
@new_resource.manage_home true
|
111
111
|
end
|
112
112
|
|
113
113
|
it "should set -m -d /homedir" do
|
114
|
-
expect(provider.universal_options).to eq(%w{-d /
|
114
|
+
expect(provider.universal_options).to eq(%w{-d /banana})
|
115
115
|
expect(provider.usermod_options).to eq(%w{-m})
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
119
119
|
describe "when the resource has a different home directory and supports home directory management (using real attributes)" do
|
120
120
|
before do
|
121
|
-
@new_resource.home("/
|
121
|
+
@new_resource.home("/banana")
|
122
122
|
@new_resource.manage_home true
|
123
123
|
@new_resource.non_unique false
|
124
124
|
end
|
125
125
|
|
126
126
|
it "should set -m -d /homedir" do
|
127
|
-
expect(provider.universal_options).to eq(%w{-d /
|
127
|
+
expect(provider.universal_options).to eq(%w{-d /banana})
|
128
128
|
expect(provider.usermod_options).to eq(%w{-m})
|
129
129
|
end
|
130
130
|
end
|
@@ -164,6 +164,8 @@ describe Chef::Application::Solo do
|
|
164
164
|
end
|
165
165
|
|
166
166
|
context "in local mode" do
|
167
|
+
let(:root_path) { windows? ? "C:/var/chef" : "/var/chef" }
|
168
|
+
|
167
169
|
before do
|
168
170
|
Chef::Config[:solo_legacy_mode] = false
|
169
171
|
end
|
@@ -197,10 +199,10 @@ describe Chef::Application::Solo do
|
|
197
199
|
end
|
198
200
|
|
199
201
|
it "sets the repo path" do
|
200
|
-
expect(Chef::Config).to receive(:find_chef_repo_path).and_return(
|
202
|
+
expect(Chef::Config).to receive(:find_chef_repo_path).and_return(root_path)
|
201
203
|
app.reconfigure
|
202
204
|
expect(Chef::Config.key?(:chef_repo_path)).to be_truthy
|
203
|
-
expect(Chef::Config[:chef_repo_path]).to eq (
|
205
|
+
expect(Chef::Config[:chef_repo_path]).to eq (root_path)
|
204
206
|
end
|
205
207
|
|
206
208
|
it "runs chef-client in local mode" do
|
@@ -94,6 +94,13 @@ describe Chef::Application do
|
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
+
describe "when enforce_license is set to false" do
|
98
|
+
it "should not check the license acceptance" do
|
99
|
+
expect(@app).to_not receive(:check_license_acceptance)
|
100
|
+
@app.run(enforce_license: false)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
97
104
|
it "should run the actual application" do
|
98
105
|
expect(@app).to receive(:run_application).and_return(true)
|
99
106
|
@app.run
|
@@ -203,8 +203,8 @@ describe Chef::ChefFS::Config do
|
|
203
203
|
})
|
204
204
|
end
|
205
205
|
|
206
|
-
let
|
207
|
-
let
|
206
|
+
let(:path) { "/roles/foo.json" }
|
207
|
+
let(:entry) { Entry.new(path) }
|
208
208
|
|
209
209
|
it "returns the entry's path if the cwd isn't in the config" do
|
210
210
|
cfg = Chef::ChefFS::Config.new(config, "/my_repo/cookbooks")
|
@@ -20,17 +20,17 @@ require "spec_helper"
|
|
20
20
|
require "chef/chef_fs/file_pattern"
|
21
21
|
require "chef/chef_fs/command_line"
|
22
22
|
|
23
|
-
# Removes the date stamp from the diff and replaces it with ' DATE'
|
24
|
-
# example match: "/dev/null\t2012-10-16 16:15:54.000000000 +0000"
|
25
|
-
# windows match: "--- /dev/null\tTue Oct 16 18:04:34 2012"
|
26
|
-
def remove_os_differences(diff)
|
27
|
-
diff = diff.gsub(/([+-]{3}.*)\t.*/, '\1 DATE')
|
28
|
-
diff.gsub(/^@@ -\d(,\d)? \+\d(,\d)? @@/, "CONTEXT_LINE_NUMBERS")
|
29
|
-
end
|
30
|
-
|
31
23
|
describe "diff", uses_diff: true do
|
32
24
|
include FileSystemSupport
|
33
25
|
|
26
|
+
# Removes the date stamp from the diff and replaces it with ' DATE'
|
27
|
+
# example match: "/dev/null\t2012-10-16 16:15:54.000000000 +0000"
|
28
|
+
# windows match: "--- /dev/null\tTue Oct 16 18:04:34 2012"
|
29
|
+
def remove_os_differences(diff)
|
30
|
+
diff = diff.gsub(/([+-]{3}.*)\t.*/, '\1 DATE')
|
31
|
+
diff.gsub(/^@@ -\d(,\d)? \+\d(,\d)? @@/, "CONTEXT_LINE_NUMBERS")
|
32
|
+
end
|
33
|
+
|
34
34
|
context "with two filesystems with all types of difference" do
|
35
35
|
let(:a) do
|
36
36
|
memory_fs("a", {
|
data/spec/unit/client_spec.rb
CHANGED
@@ -749,9 +749,12 @@ describe Chef::Client do
|
|
749
749
|
|
750
750
|
context "when any directory of cookbook_path contains no cookbook" do
|
751
751
|
it "raises CookbookNotFound error" do
|
752
|
+
invalid_cookbook_path = windows? ? "C:/path/to/invalid/cookbook_path" : "/path/to/invalid/cookbook_path"
|
753
|
+
msg = "None of the cookbook paths set in Chef::Config[:cookbook_path], [\"#{invalid_cookbook_path}\"], contain any cookbooks"
|
754
|
+
|
752
755
|
expect do
|
753
756
|
client.send(:assert_cookbook_path_not_empty, nil)
|
754
|
-
end.to raise_error(Chef::Exceptions::CookbookNotFound,
|
757
|
+
end.to raise_error(Chef::Exceptions::CookbookNotFound, msg)
|
755
758
|
end
|
756
759
|
end
|
757
760
|
end
|
@@ -217,6 +217,8 @@ describe Chef::CookbookSynchronizer do
|
|
217
217
|
path: "/tmp/cookbook_a_template_default_tempfile")
|
218
218
|
end
|
219
219
|
|
220
|
+
let(:root) { windows? ? "C:/file-cache/cookbooks/cookbook_a" : "/file-cache/cookbooks/cookbook_a" }
|
221
|
+
|
220
222
|
def setup_common_files_missing_expectations
|
221
223
|
# Files are not in the cache:
|
222
224
|
expect(file_cache).to receive(:key?)
|
@@ -234,7 +236,7 @@ describe Chef::CookbookSynchronizer do
|
|
234
236
|
.with("/tmp/cookbook_a_recipes_default_rb", "cookbooks/cookbook_a/recipes/default.rb")
|
235
237
|
expect(file_cache).to receive(:load)
|
236
238
|
.with("cookbooks/cookbook_a/recipes/default.rb", false)
|
237
|
-
.and_return("/
|
239
|
+
.and_return("#{root}/recipes/default.rb")
|
238
240
|
|
239
241
|
# Fetch and copy default.rb attribute file
|
240
242
|
expect(server_api).to receive(:streaming_request)
|
@@ -244,7 +246,7 @@ describe Chef::CookbookSynchronizer do
|
|
244
246
|
.with("/tmp/cookbook_a_attributes_default_rb", "cookbooks/cookbook_a/attributes/default.rb")
|
245
247
|
expect(file_cache).to receive(:load)
|
246
248
|
.with("cookbooks/cookbook_a/attributes/default.rb", false)
|
247
|
-
.and_return("/
|
249
|
+
.and_return("#{root}/attributes/default.rb")
|
248
250
|
end
|
249
251
|
|
250
252
|
def setup_no_lazy_files_and_templates_missing_expectations
|
@@ -262,7 +264,7 @@ describe Chef::CookbookSynchronizer do
|
|
262
264
|
.with("/tmp/cookbook_a_file_default_tempfile", "cookbooks/cookbook_a/files/default/megaman.conf")
|
263
265
|
expect(file_cache).to receive(:load)
|
264
266
|
.with("cookbooks/cookbook_a/files/default/megaman.conf", false)
|
265
|
-
.and_return("/
|
267
|
+
.and_return("#{root}/default/megaman.conf")
|
266
268
|
|
267
269
|
expect(server_api).to receive(:streaming_request)
|
268
270
|
.with("http://chef.example.com/ffffff")
|
@@ -271,7 +273,7 @@ describe Chef::CookbookSynchronizer do
|
|
271
273
|
.with("/tmp/cookbook_a_template_default_tempfile", "cookbooks/cookbook_a/templates/default/apache2.conf.erb")
|
272
274
|
expect(file_cache).to receive(:load)
|
273
275
|
.with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
|
274
|
-
.and_return("/
|
276
|
+
.and_return("#{root}/templates/default/apache2.conf.erb")
|
275
277
|
end
|
276
278
|
|
277
279
|
def setup_common_files_chksum_mismatch_expectations
|
@@ -292,11 +294,11 @@ describe Chef::CookbookSynchronizer do
|
|
292
294
|
expect(file_cache).to receive(:load)
|
293
295
|
.with("cookbooks/cookbook_a/recipes/default.rb", false)
|
294
296
|
.twice
|
295
|
-
.and_return("/
|
297
|
+
.and_return("#{root}/recipes/default.rb")
|
296
298
|
|
297
299
|
# Current file has fff000, want abc123
|
298
300
|
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
|
299
|
-
.with("/
|
301
|
+
.with("#{root}/recipes/default.rb")
|
300
302
|
.and_return("fff000").at_least(:once)
|
301
303
|
|
302
304
|
# Fetch and copy default.rb attribute file
|
@@ -308,11 +310,11 @@ describe Chef::CookbookSynchronizer do
|
|
308
310
|
expect(file_cache).to receive(:load)
|
309
311
|
.with("cookbooks/cookbook_a/attributes/default.rb", false)
|
310
312
|
.twice
|
311
|
-
.and_return("/
|
313
|
+
.and_return("#{root}/attributes/default.rb")
|
312
314
|
|
313
315
|
# Current file has fff000, want abc456
|
314
316
|
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
|
315
|
-
.with("/
|
317
|
+
.with("#{root}/attributes/default.rb")
|
316
318
|
.and_return("fff000").at_least(:once)
|
317
319
|
end
|
318
320
|
|
@@ -334,7 +336,7 @@ describe Chef::CookbookSynchronizer do
|
|
334
336
|
expect(file_cache).to receive(:load)
|
335
337
|
.with("cookbooks/cookbook_a/files/default/megaman.conf", false)
|
336
338
|
.twice
|
337
|
-
.and_return("/
|
339
|
+
.and_return("#{root}/default/megaman.conf")
|
338
340
|
|
339
341
|
# Fetch and copy apache2.conf template
|
340
342
|
expect(server_api).to receive(:streaming_request)
|
@@ -345,16 +347,16 @@ describe Chef::CookbookSynchronizer do
|
|
345
347
|
expect(file_cache).to receive(:load)
|
346
348
|
.with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
|
347
349
|
.twice
|
348
|
-
.and_return("/
|
350
|
+
.and_return("#{root}/templates/default/apache2.conf.erb")
|
349
351
|
|
350
352
|
# Current file has fff000
|
351
353
|
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
|
352
|
-
.with("/
|
354
|
+
.with("#{root}/default/megaman.conf")
|
353
355
|
.and_return("fff000")
|
354
356
|
|
355
357
|
# Current file has fff000
|
356
358
|
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
|
357
|
-
.with("/
|
359
|
+
.with("#{root}/templates/default/apache2.conf.erb")
|
358
360
|
.and_return("fff000")
|
359
361
|
end
|
360
362
|
|
@@ -369,23 +371,23 @@ describe Chef::CookbookSynchronizer do
|
|
369
371
|
|
370
372
|
# Current file has abc123, want abc123
|
371
373
|
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
|
372
|
-
.with("/
|
374
|
+
.with("#{root}/recipes/default.rb")
|
373
375
|
.and_return("abc123").at_least(:once)
|
374
376
|
|
375
377
|
# Current file has abc456, want abc456
|
376
378
|
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
|
377
|
-
.with("/
|
379
|
+
.with("#{root}/attributes/default.rb")
|
378
380
|
.and_return("abc456").at_least(:once)
|
379
381
|
|
380
382
|
# :load called twice
|
381
383
|
expect(file_cache).to receive(:load)
|
382
384
|
.with("cookbooks/cookbook_a/recipes/default.rb", false)
|
383
385
|
.twice
|
384
|
-
.and_return("/
|
386
|
+
.and_return("#{root}/recipes/default.rb")
|
385
387
|
expect(file_cache).to receive(:load)
|
386
388
|
.with("cookbooks/cookbook_a/attributes/default.rb", false)
|
387
389
|
.twice
|
388
|
-
.and_return("/
|
390
|
+
.and_return("#{root}/attributes/default.rb")
|
389
391
|
end
|
390
392
|
|
391
393
|
def setup_no_lazy_files_and_templates_present_expectations
|
@@ -399,23 +401,23 @@ describe Chef::CookbookSynchronizer do
|
|
399
401
|
|
400
402
|
# Current file has abc124, want abc124
|
401
403
|
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
|
402
|
-
.with("/
|
404
|
+
.with("#{root}/default/megaman.conf")
|
403
405
|
.and_return("abc124")
|
404
406
|
|
405
407
|
# Current file has abc125, want abc125
|
406
408
|
expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
|
407
|
-
.with("/
|
409
|
+
.with("#{root}/templates/default/apache2.conf.erb")
|
408
410
|
.and_return("abc125")
|
409
411
|
|
410
412
|
# :load called twice
|
411
413
|
expect(file_cache).to receive(:load)
|
412
414
|
.with("cookbooks/cookbook_a/files/default/megaman.conf", false)
|
413
415
|
.twice
|
414
|
-
.and_return("/
|
416
|
+
.and_return("#{root}/default/megaman.conf")
|
415
417
|
expect(file_cache).to receive(:load)
|
416
418
|
.with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
|
417
419
|
.twice
|
418
|
-
.and_return("/
|
420
|
+
.and_return("#{root}/templates/default/apache2.conf.erb")
|
419
421
|
end
|
420
422
|
|
421
423
|
describe "#server_api" do
|
@@ -535,19 +537,19 @@ describe Chef::CookbookSynchronizer do
|
|
535
537
|
expect(file_cache).to receive(:load)
|
536
538
|
.with("cookbooks/cookbook_a/recipes/default.rb", false)
|
537
539
|
.once
|
538
|
-
.and_return("/
|
540
|
+
.and_return("#{root}/recipes/default.rb")
|
539
541
|
expect(file_cache).to receive(:load)
|
540
542
|
.with("cookbooks/cookbook_a/attributes/default.rb", false)
|
541
543
|
.once
|
542
|
-
.and_return("/
|
544
|
+
.and_return("#{root}/attributes/default.rb")
|
543
545
|
expect(file_cache).to receive(:load)
|
544
546
|
.with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
|
545
547
|
.once
|
546
|
-
.and_return("/
|
548
|
+
.and_return("#{root}/templates/default/apache2.conf.erb")
|
547
549
|
expect(file_cache).to receive(:load)
|
548
550
|
.with("cookbooks/cookbook_a/files/default/megaman.conf", false)
|
549
551
|
.once
|
550
|
-
.and_return("/
|
552
|
+
.and_return("#{root}/files/default/megaman.conf")
|
551
553
|
expect(Chef::Log).to receive(:warn)
|
552
554
|
.with("skipping cookbook synchronization! DO NOT LEAVE THIS ENABLED IN PRODUCTION!!!")
|
553
555
|
.once
|