chef 16.2.73-universal-mingw32 → 16.4.41-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 +4 -4
- data/Rakefile +1 -1
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +2 -1
- data/lib/chef/action_collection.rb +4 -0
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +13 -1
- data/lib/chef/application/apply.rb +5 -5
- data/lib/chef/application/windows_service.rb +27 -27
- data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
- data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
- data/lib/chef/chef_class.rb +0 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +54 -54
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +18 -18
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/client.rb +14 -14
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -3
- data/lib/chef/cookbook/syntax_check.rb +1 -2
- data/lib/chef/cookbook_loader.rb +15 -29
- data/lib/chef/data_bag.rb +1 -2
- data/lib/chef/data_collector/run_end_message.rb +11 -1
- data/lib/chef/deprecated.rb +8 -0
- data/lib/chef/dsl/platform_introspection.rb +9 -7
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/environment.rb +3 -4
- data/lib/chef/exceptions.rb +4 -1
- data/lib/chef/file_content_management/tempfile.rb +9 -9
- data/lib/chef/handler.rb +2 -0
- data/lib/chef/http.rb +11 -11
- data/lib/chef/http/authenticator.rb +3 -1
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/bootstrap.rb +6 -12
- data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
- data/lib/chef/knife/config_get.rb +1 -0
- data/lib/chef/knife/config_list_profiles.rb +4 -1
- data/lib/chef/knife/configure.rb +3 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +28 -33
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +3 -2
- data/lib/chef/knife/core/subcommand_loader.rb +20 -1
- data/lib/chef/knife/core/ui.rb +8 -2
- data/lib/chef/knife/core/windows_bootstrap_context.rb +32 -25
- data/lib/chef/knife/delete.rb +15 -15
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/rehash.rb +3 -21
- data/lib/chef/knife/ssh.rb +11 -7
- data/lib/chef/knife/xargs.rb +19 -19
- data/lib/chef/knife/yaml_convert.rb +1 -1
- data/lib/chef/log.rb +7 -2
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/chef_utils_wiring.rb +40 -0
- data/lib/chef/mixin/deep_merge.rb +35 -6
- data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
- data/lib/chef/mixin/openssl_helper.rb +30 -6
- data/lib/chef/mixin/path_sanity.rb +5 -4
- data/lib/chef/mixin/shell_out.rb +4 -188
- data/lib/chef/mixin/template.rb +1 -0
- data/lib/chef/mixin/which.rb +6 -3
- data/lib/chef/mixins.rb +1 -0
- data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
- data/lib/chef/node.rb +36 -12
- data/lib/chef/node/attribute.rb +2 -4
- data/lib/chef/node_map.rb +21 -18
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/property.rb +1 -1
- data/lib/chef/provider/cron/unix.rb +0 -2
- data/lib/chef/provider/git.rb +17 -9
- data/lib/chef/provider/group.rb +0 -2
- data/lib/chef/provider/group/suse.rb +5 -5
- data/lib/chef/provider/ifconfig.rb +1 -4
- data/lib/chef/provider/mount.rb +0 -2
- data/lib/chef/provider/mount/solaris.rb +0 -1
- data/lib/chef/provider/package.rb +0 -2
- data/lib/chef/provider/package/rubygems.rb +1 -1
- data/lib/chef/provider/package/snap.rb +3 -4
- data/lib/chef/provider/package/windows.rb +9 -4
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -9
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +21 -5
- data/lib/chef/provider/route.rb +1 -1
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +1 -4
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +10 -10
- data/lib/chef/provider/systemd_unit.rb +0 -2
- data/lib/chef/provider/template/content.rb +1 -0
- data/lib/chef/provider/user/dscl.rb +2 -2
- data/lib/chef/provider/user/mac.rb +9 -9
- data/lib/chef/provider/windows_task.rb +0 -3
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +1 -2
- data/lib/chef/providers.rb +0 -1
- data/lib/chef/recipe.rb +1 -1
- data/lib/chef/resource.rb +8 -10
- data/lib/chef/resource/apt_repository.rb +1 -10
- data/lib/chef/resource/build_essential.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
- data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +13 -13
- data/lib/chef/resource/chocolatey_feature.rb +1 -2
- data/lib/chef/resource/cron/cron_d.rb +1 -1
- data/lib/chef/resource/cron_access.rb +2 -2
- data/lib/chef/resource/execute.rb +4 -5
- data/lib/chef/resource/homebrew_update.rb +2 -2
- data/lib/chef/resource/hostname.rb +18 -18
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +176 -61
- data/lib/chef/resource/openssl_dhparam.rb +2 -0
- data/lib/chef/resource/openssl_ec_private_key.rb +2 -0
- data/lib/chef/resource/openssl_ec_public_key.rb +2 -0
- data/lib/chef/resource/openssl_rsa_private_key.rb +2 -0
- data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
- data/lib/chef/resource/openssl_x509_certificate.rb +35 -35
- data/lib/chef/resource/openssl_x509_crl.rb +3 -2
- data/lib/chef/resource/openssl_x509_request.rb +23 -20
- data/lib/chef/resource/osx_profile.rb +227 -5
- data/lib/chef/resource/powershell_package_source.rb +1 -1
- data/lib/chef/resource/powershell_script.rb +24 -30
- data/lib/chef/resource/service.rb +2 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
- data/lib/chef/resource/sudo.rb +2 -2
- data/lib/chef/resource/sysctl.rb +5 -5
- data/lib/chef/resource/timezone.rb +112 -73
- data/lib/chef/resource/user_ulimit.rb +1 -1
- data/lib/chef/resource/windows_ad_join.rb +2 -0
- data/lib/chef/resource/windows_audit_policy.rb +3 -0
- data/lib/chef/resource/windows_auto_run.rb +2 -0
- data/lib/chef/resource/windows_certificate.rb +2 -0
- data/lib/chef/resource/windows_dfs_folder.rb +2 -0
- data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
- data/lib/chef/resource/windows_dfs_server.rb +2 -0
- data/lib/chef/resource/windows_dns_record.rb +25 -5
- data/lib/chef/resource/windows_dns_zone.rb +12 -7
- data/lib/chef/resource/windows_feature.rb +2 -0
- data/lib/chef/resource/windows_feature_dism.rb +10 -0
- data/lib/chef/resource/windows_feature_powershell.rb +14 -2
- data/lib/chef/resource/windows_firewall_profile.rb +199 -0
- data/lib/chef/resource/windows_firewall_rule.rb +5 -3
- data/lib/chef/resource/windows_font.rb +3 -1
- data/lib/chef/resource/windows_pagefile.rb +4 -0
- data/lib/chef/resource/windows_printer.rb +17 -18
- data/lib/chef/resource/windows_printer_port.rb +14 -13
- data/lib/chef/resource/windows_security_policy.rb +51 -20
- data/lib/chef/resource/windows_share.rb +5 -3
- data/lib/chef/resource/windows_shortcut.rb +2 -0
- data/lib/chef/resource/windows_uac.rb +2 -0
- data/lib/chef/resource/windows_user_privilege.rb +2 -0
- data/lib/chef/resource/windows_workgroup.rb +2 -3
- data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
- data/lib/chef/resource_inspector.rb +7 -1
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/role.rb +3 -4
- data/lib/chef/run_context/cookbook_compiler.rb +20 -20
- data/lib/chef/run_status.rb +2 -6
- data/lib/chef/server_api_versions.rb +4 -0
- data/lib/chef/shell.rb +1 -1
- data/lib/chef/shell/shell_session.rb +2 -0
- data/lib/chef/util/backup.rb +1 -1
- data/lib/chef/util/diff.rb +11 -12
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/win32/file.rb +2 -2
- data/lib/chef/win32/file/version_info.rb +5 -5
- data/lib/chef/win32/registry.rb +1 -2
- data/spec/data/ssl/chef-rspec.cert +15 -15
- data/spec/functional/knife/ssh_spec.rb +5 -16
- data/spec/functional/resource/aix_service_spec.rb +0 -2
- data/spec/functional/resource/aixinit_service_spec.rb +7 -8
- data/spec/functional/resource/apt_package_spec.rb +0 -1
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +0 -1
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/dsc_script_spec.rb +0 -1
- data/spec/functional/resource/git_spec.rb +23 -1
- data/spec/functional/resource/group_spec.rb +12 -8
- data/spec/functional/resource/insserv_spec.rb +4 -5
- data/spec/functional/resource/link_spec.rb +20 -20
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- data/spec/functional/resource/remote_file_spec.rb +1 -7
- data/spec/functional/resource/rpm_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_font_spec.rb +49 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -3
- data/spec/functional/resource/windows_user_privilege_spec.rb +1 -1
- data/spec/functional/run_lock_spec.rb +26 -25
- data/spec/functional/shell_spec.rb +5 -5
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +8 -8
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/knife/common_options_spec.rb +12 -12
- data/spec/integration/knife/config_get_profile_spec.rb +69 -68
- data/spec/integration/knife/config_get_spec.rb +126 -125
- data/spec/integration/knife/config_list_profiles_spec.rb +181 -152
- data/spec/integration/knife/config_use_profile_spec.rb +110 -109
- data/spec/integration/knife/cookbook_upload_spec.rb +27 -0
- data/spec/integration/knife/diff_spec.rb +3 -1
- data/spec/integration/knife/download_spec.rb +3 -1
- data/spec/integration/knife/serve_spec.rb +5 -5
- data/spec/integration/knife/upload_spec.rb +3 -1
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +2 -2
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +1 -1
- data/spec/integration/recipes/notifying_block_spec.rb +1 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +1 -1
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
- data/spec/integration/recipes/resource_load_spec.rb +2 -0
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +1 -1
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +16 -10
- data/spec/support/chef_helpers.rb +1 -20
- data/spec/support/platform_helpers.rb +9 -11
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +20 -21
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/integration/integration_helper.rb +22 -52
- data/spec/support/shared/integration/knife_support.rb +2 -9
- data/spec/support/shared/unit/application_dot_d.rb +0 -1
- data/spec/support/shared/unit/script_resource.rb +6 -20
- data/spec/support/shared/unit/windows_script_resource.rb +15 -28
- data/spec/unit/application_spec.rb +4 -2
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
- data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +1 -1
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
- data/spec/unit/data_collector_spec.rb +29 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
- data/spec/unit/http/api_versions_spec.rb +19 -1
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +16 -20
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
- data/spec/unit/knife/supermarket_share_spec.rb +1 -1
- data/spec/unit/log/syslog_spec.rb +6 -10
- data/spec/unit/log/winevt_spec.rb +21 -13
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +0 -1
- data/spec/unit/mixin/shell_out_spec.rb +25 -26
- data/spec/unit/mixin/template_spec.rb +30 -30
- data/spec/unit/mixin/which.rb +8 -0
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
- data/spec/unit/node/immutable_collections_spec.rb +6 -2
- data/spec/unit/node_spec.rb +103 -16
- data/spec/unit/property_spec.rb +5 -5
- data/spec/unit/provider/execute_spec.rb +0 -7
- data/spec/unit/provider/ifconfig_spec.rb +0 -1
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/rubygems_spec.rb +5 -10
- data/spec/unit/provider/package/smartos_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +30 -53
- data/spec/unit/provider/powershell_script_spec.rb +11 -4
- data/spec/unit/provider/remote_directory_spec.rb +9 -9
- data/spec/unit/provider/service/arch_service_spec.rb +3 -2
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
- data/spec/unit/provider/service/macosx_spec.rb +3 -3
- data/spec/unit/provider/service/redhat_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider/service/windows_spec.rb +2 -6
- data/spec/unit/provider/systemd_unit_spec.rb +28 -24
- data/spec/unit/provider_resolver_spec.rb +6 -6
- data/spec/unit/provider_spec.rb +1 -0
- data/spec/unit/resource/batch_spec.rb +6 -6
- data/spec/unit/resource/execute_spec.rb +123 -118
- data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
- data/spec/unit/resource/osx_profile_spec.rb +233 -0
- data/spec/unit/resource/powershell_script_spec.rb +11 -29
- data/spec/unit/resource/script_spec.rb +6 -1
- data/spec/unit/resource/timezone_spec.rb +63 -0
- data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
- data/spec/unit/resource/windows_firewall_profile_spec.rb +77 -0
- data/spec/unit/resource/windows_package_spec.rb +1 -0
- data/spec/unit/resource_reporter_spec.rb +1 -1
- data/spec/unit/role_spec.rb +11 -11
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/server_api_spec.rb +43 -16
- data/spec/unit/util/diff_spec.rb +1 -15
- data/spec/unit/win32/security_spec.rb +4 -3
- data/tasks/rspec.rb +1 -1
- metadata +39 -31
- data/lib/chef/provider/osx_profile.rb +0 -255
- data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -61,6 +61,7 @@ describe Chef::EventDispatch::Dispatcher do
|
|
61
61
|
let(:event_sink) do
|
62
62
|
Class.new(Chef::EventDispatch::Base) do
|
63
63
|
attr_reader :synchronized_cookbook_args
|
64
|
+
|
64
65
|
def synchronized_cookbook(cookbook_name)
|
65
66
|
@synchronized_cookbook_args = [cookbook_name]
|
66
67
|
end
|
@@ -79,6 +80,7 @@ describe Chef::EventDispatch::Dispatcher do
|
|
79
80
|
let(:event_sink_1) do
|
80
81
|
Class.new(Chef::EventDispatch::Base) do
|
81
82
|
attr_reader :synchronized_cookbook_args
|
83
|
+
|
82
84
|
def synchronized_cookbook(cookbook_name)
|
83
85
|
@synchronized_cookbook_args = [cookbook_name]
|
84
86
|
end
|
@@ -87,6 +89,7 @@ describe Chef::EventDispatch::Dispatcher do
|
|
87
89
|
let(:event_sink_2) do
|
88
90
|
Class.new(Chef::EventDispatch::Base) do
|
89
91
|
attr_reader :synchronized_cookbook_args
|
92
|
+
|
90
93
|
def synchronized_cookbook(cookbook_name, cookbook)
|
91
94
|
@synchronized_cookbook_args = [cookbook_name, cookbook]
|
92
95
|
end
|
@@ -53,8 +53,26 @@ describe Chef::HTTP::APIVersions do
|
|
53
53
|
m
|
54
54
|
end
|
55
55
|
|
56
|
+
let(:version_class) do
|
57
|
+
Class.new do
|
58
|
+
extend Chef::Mixin::VersionedAPIFactory
|
59
|
+
|
60
|
+
version_class_v0 = Class.new do
|
61
|
+
extend Chef::Mixin::VersionedAPI
|
62
|
+
minimum_api_version 0
|
63
|
+
end
|
64
|
+
add_versioned_api_class version_class_v0
|
65
|
+
|
66
|
+
version_class_v2 = Class.new do
|
67
|
+
extend Chef::Mixin::VersionedAPI
|
68
|
+
minimum_api_version 2
|
69
|
+
end
|
70
|
+
add_versioned_api_class version_class_v2
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
56
74
|
let(:client) do
|
57
|
-
TestVersionClient.new(url, { version_class:
|
75
|
+
TestVersionClient.new(url, { version_class: version_class })
|
58
76
|
end
|
59
77
|
|
60
78
|
let(:middleware) do
|
@@ -206,7 +206,7 @@ describe Chef::Knife::Bootstrap do
|
|
206
206
|
end
|
207
207
|
|
208
208
|
before(:each) do
|
209
|
-
expect(File).to receive(:
|
209
|
+
expect(File).to receive(:exist?).with(bootstrap_template).and_return(false)
|
210
210
|
end
|
211
211
|
|
212
212
|
context "when file is available everywhere" do
|
@@ -215,7 +215,7 @@ describe Chef::Knife::Bootstrap do
|
|
215
215
|
configure_env_home
|
216
216
|
configure_gem_files
|
217
217
|
|
218
|
-
expect(File).to receive(:
|
218
|
+
expect(File).to receive(:exist?).with(builtin_template_path).and_return(true)
|
219
219
|
end
|
220
220
|
|
221
221
|
it "should load the template from built-in templates" do
|
@@ -229,8 +229,8 @@ describe Chef::Knife::Bootstrap do
|
|
229
229
|
configure_env_home
|
230
230
|
configure_gem_files
|
231
231
|
|
232
|
-
expect(File).to receive(:
|
233
|
-
expect(File).to receive(:
|
232
|
+
expect(File).to receive(:exist?).with(builtin_template_path).and_return(false)
|
233
|
+
expect(File).to receive(:exist?).with(chef_config_dir_template_path).and_return(true)
|
234
234
|
|
235
235
|
it "should load the template from chef_config_dir" do
|
236
236
|
knife.find_template.should eq(chef_config_dir_template_path)
|
@@ -244,9 +244,9 @@ describe Chef::Knife::Bootstrap do
|
|
244
244
|
configure_env_home
|
245
245
|
configure_gem_files
|
246
246
|
|
247
|
-
expect(File).to receive(:
|
248
|
-
expect(File).to receive(:
|
249
|
-
expect(File).to receive(:
|
247
|
+
expect(File).to receive(:exist?).with(builtin_template_path).and_return(false)
|
248
|
+
expect(File).to receive(:exist?).with(chef_config_dir_template_path).and_return(false)
|
249
|
+
expect(File).to receive(:exist?).with(env_home_template_path).and_return(true)
|
250
250
|
end
|
251
251
|
|
252
252
|
it "should load the template from chef_config_dir" do
|
@@ -260,10 +260,10 @@ describe Chef::Knife::Bootstrap do
|
|
260
260
|
configure_env_home
|
261
261
|
configure_gem_files
|
262
262
|
|
263
|
-
expect(File).to receive(:
|
264
|
-
expect(File).to receive(:
|
265
|
-
expect(File).to receive(:
|
266
|
-
expect(File).to receive(:
|
263
|
+
expect(File).to receive(:exist?).with(builtin_template_path).and_return(false)
|
264
|
+
expect(File).to receive(:exist?).with(chef_config_dir_template_path).and_return(false)
|
265
|
+
expect(File).to receive(:exist?).with(env_home_template_path).and_return(false)
|
266
|
+
expect(File).to receive(:exist?).with(gem_files_template_path).and_return(true)
|
267
267
|
end
|
268
268
|
|
269
269
|
it "should load the template from Gem files" do
|
@@ -277,9 +277,9 @@ describe Chef::Knife::Bootstrap do
|
|
277
277
|
configure_gem_files
|
278
278
|
allow(Chef::Util::PathHelper).to receive(:home).with(".chef", "bootstrap", "example.erb").and_return(nil)
|
279
279
|
|
280
|
-
expect(File).to receive(:
|
281
|
-
expect(File).to receive(:
|
282
|
-
expect(File).to receive(:
|
280
|
+
expect(File).to receive(:exist?).with(builtin_template_path).and_return(false)
|
281
|
+
expect(File).to receive(:exist?).with(chef_config_dir_template_path).and_return(false)
|
282
|
+
expect(File).to receive(:exist?).with(gem_files_template_path).and_return(true)
|
283
283
|
end
|
284
284
|
|
285
285
|
it "should load the template from Gem files" do
|
@@ -1861,12 +1861,10 @@ describe Chef::Knife::Bootstrap do
|
|
1861
1861
|
let(:connection_protocol) { "ssh" }
|
1862
1862
|
|
1863
1863
|
it "warns, prompts for password, then reconnects with a password-enabled configuration using the new password" do
|
1864
|
-
question_mock = double("question")
|
1865
1864
|
expect(knife).to receive(:do_connect).and_raise(expected_error_password_prompt)
|
1866
1865
|
expect(knife.ui).to receive(:warn).with(/Failed to auth.*/)
|
1867
|
-
expect(knife.ui).to receive(:ask).
|
1866
|
+
expect(knife.ui).to receive(:ask).and_return("newpassword")
|
1868
1867
|
# Ensure that we set echo off to prevent showing password on the screen
|
1869
|
-
expect(question_mock).to receive(:echo=).with false
|
1870
1868
|
expect(knife).to receive(:do_connect) do |opts|
|
1871
1869
|
expect(opts[:password]).to eq "newpassword"
|
1872
1870
|
end
|
@@ -1878,12 +1876,10 @@ describe Chef::Knife::Bootstrap do
|
|
1878
1876
|
let(:connection_protocol) { "winrm" }
|
1879
1877
|
|
1880
1878
|
it "warns, prompts for password, then reconnects with a password-enabled configuration using the new password for" do
|
1881
|
-
question_mock = double("question")
|
1882
1879
|
expect(knife).to receive(:do_connect).and_raise(expected_error_password_prompt_winrm)
|
1883
1880
|
expect(knife.ui).to receive(:warn).with(/Failed to auth.*/)
|
1884
|
-
expect(knife.ui).to receive(:ask).
|
1881
|
+
expect(knife.ui).to receive(:ask).and_return("newpassword")
|
1885
1882
|
# Ensure that we set echo off to prevent showing password on the screen
|
1886
|
-
expect(question_mock).to receive(:echo=).with false
|
1887
1883
|
expect(knife).to receive(:do_connect) do |opts|
|
1888
1884
|
expect(opts[:password]).to eq "newpassword"
|
1889
1885
|
end
|
@@ -94,7 +94,7 @@ describe Chef::Knife::CookbookDownload do
|
|
94
94
|
let(:manifest_data) { { all_files: [] } }
|
95
95
|
it "should determine which version to download" do
|
96
96
|
expect(@knife).to receive(:determine_version).and_return("1.0.0")
|
97
|
-
expect(File).to receive(:
|
97
|
+
expect(File).to receive(:exist?).with("/var/tmp/chef/foobar-1.0.0").and_return(false)
|
98
98
|
@knife.run
|
99
99
|
end
|
100
100
|
end
|
@@ -111,7 +111,7 @@ describe Chef::Knife::CookbookDownload do
|
|
111
111
|
end
|
112
112
|
|
113
113
|
it "should print an error and exit if the cookbook download directory already exists" do
|
114
|
-
expect(File).to receive(:
|
114
|
+
expect(File).to receive(:exist?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
|
115
115
|
expect(@knife.ui).to receive(:fatal).with(%r{/var/tmp/chef/foobar-1\.0\.0 exists}i)
|
116
116
|
expect { @knife.run }.to raise_error(SystemExit)
|
117
117
|
end
|
@@ -135,7 +135,7 @@ describe Chef::Knife::CookbookDownload do
|
|
135
135
|
end
|
136
136
|
|
137
137
|
it "should download the cookbook when the cookbook download directory doesn't exist" do
|
138
|
-
expect(File).to receive(:
|
138
|
+
expect(File).to receive(:exist?).with("/var/tmp/chef/foobar-1.0.0").and_return(false)
|
139
139
|
@knife.run
|
140
140
|
%w{attributes recipes templates}.each do |segment|
|
141
141
|
expect(@stderr.string).to match /downloading #{segment}/im
|
@@ -147,7 +147,7 @@ describe Chef::Knife::CookbookDownload do
|
|
147
147
|
describe "with -f or --force" do
|
148
148
|
it "should remove the existing the cookbook download directory if it exists" do
|
149
149
|
@knife.config[:force] = true
|
150
|
-
expect(File).to receive(:
|
150
|
+
expect(File).to receive(:exist?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
|
151
151
|
expect(FileUtils).to receive(:rm_rf).with("/var/tmp/chef/foobar-1.0.0")
|
152
152
|
@knife.run
|
153
153
|
end
|
@@ -17,7 +17,7 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
require
|
20
|
+
require "spec_helper"
|
21
21
|
|
22
22
|
require "chef/cookbook_uploader"
|
23
23
|
require "timeout"
|
@@ -40,7 +40,6 @@ describe Chef::Knife::CookbookUpload do
|
|
40
40
|
allow(cookbook_loader).to receive(:load_cookbooks).and_return(cookbook_loader)
|
41
41
|
allow(cookbook_loader).to receive(:compile_metadata).and_return(nil)
|
42
42
|
allow(cookbook_loader).to receive(:freeze_versions).and_return(nil)
|
43
|
-
allow(cookbook_loader).to receive(:unlink!).and_return(nil)
|
44
43
|
cookbook_loader
|
45
44
|
end
|
46
45
|
|
@@ -60,7 +59,7 @@ describe Chef::Knife::CookbookUpload do
|
|
60
59
|
|
61
60
|
before(:each) do
|
62
61
|
allow(Chef::CookbookLoader).to receive(:new).and_return(cookbook_loader)
|
63
|
-
allow(Chef::CookbookLoader).to receive(:copy_to_tmp_dir_from_array).
|
62
|
+
allow(Chef::CookbookLoader).to receive(:copy_to_tmp_dir_from_array).and_yield(cookbook_loader)
|
64
63
|
end
|
65
64
|
|
66
65
|
describe "with --concurrency" do
|
@@ -70,7 +69,6 @@ describe Chef::Knife::CookbookUpload do
|
|
70
69
|
test_cookbook = Chef::CookbookVersion.new("test_cookbook", "/tmp/blah")
|
71
70
|
allow(cookbook_loader).to receive(:each).and_yield("test_cookbook", test_cookbook)
|
72
71
|
allow(cookbook_loader).to receive(:cookbook_names).and_return(["test_cookbook"])
|
73
|
-
allow(cookbook_loader).to receive(:tmp_working_dir_path).and_return("/tmp/blah")
|
74
72
|
expect(Chef::CookbookUploader).to receive(:new)
|
75
73
|
.with( kind_of(Array), { force: nil, concurrency: 3 })
|
76
74
|
.and_return(double("Chef::CookbookUploader", upload_cookbooks: true))
|
@@ -323,19 +321,18 @@ describe Chef::Knife::CookbookUpload do
|
|
323
321
|
|
324
322
|
context "when cookbook path is an array" do
|
325
323
|
it "should warn users that no cookbooks exist" do
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
)
|
324
|
+
cookbook_path = windows? ? "C:/chef-repo/cookbooks" : "/chef-repo/cookbooks"
|
325
|
+
knife.config[:cookbook_path] = [cookbook_path, "/home/user/cookbooks"]
|
326
|
+
expect(knife.ui).to receive(:warn).with("Could not find any cookbooks in your cookbook path: '#{knife.config[:cookbook_path].join(", ")}'. Use --cookbook-path to specify the desired path.")
|
330
327
|
knife.run
|
331
328
|
end
|
332
329
|
end
|
333
330
|
|
334
331
|
context "when cookbook path is a string" do
|
335
332
|
it "should warn users that no cookbooks exist" do
|
336
|
-
knife.config[:cookbook_path] = "/chef-repo/cookbooks"
|
333
|
+
knife.config[:cookbook_path] = windows? ? "C:/chef-repo/cookbooks" : "/chef-repo/cookbooks"
|
337
334
|
expect(knife.ui).to receive(:warn).with(
|
338
|
-
|
335
|
+
"Could not find any cookbooks in your cookbook path: '#{knife.config[:cookbook_path]}'. Use --cookbook-path to specify the desired path."
|
339
336
|
)
|
340
337
|
knife.run
|
341
338
|
end
|
@@ -50,7 +50,7 @@ describe Chef::Knife::SubcommandLoader::HashedCommandLoader do
|
|
50
50
|
|
51
51
|
describe "#list_commands" do
|
52
52
|
before do
|
53
|
-
allow(File).to receive(:
|
53
|
+
allow(File).to receive(:exist?).and_return(true)
|
54
54
|
end
|
55
55
|
|
56
56
|
it "lists all commands by category when no argument is given" do
|
@@ -63,7 +63,7 @@ describe Chef::Knife::SubcommandLoader::HashedCommandLoader do
|
|
63
63
|
|
64
64
|
context "when the plugin path is invalid" do
|
65
65
|
before do
|
66
|
-
expect(File).to receive(:
|
66
|
+
expect(File).to receive(:exist?).with("/file/for/plugin/b").and_return(false)
|
67
67
|
end
|
68
68
|
|
69
69
|
it "lists all commands by category when no argument is given" do
|
@@ -90,7 +90,7 @@ describe Chef::Knife::SubcommandLoader::HashedCommandLoader do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it "loads the correct file and returns true if the command exists" do
|
93
|
-
allow(File).to receive(:
|
93
|
+
allow(File).to receive(:exist?).and_return(true)
|
94
94
|
expect(Kernel).to receive(:load).with("/file/for/plugin/a").and_return(true)
|
95
95
|
expect(loader.load_command(["cool_a"])).to eq(true)
|
96
96
|
end
|
@@ -148,24 +148,28 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
|
|
148
148
|
|
149
149
|
describe "#config_content" do
|
150
150
|
before do
|
151
|
-
bootstrap_context.instance_variable_set(
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
151
|
+
bootstrap_context.instance_variable_set(
|
152
|
+
:@chef_config, Mash.new(
|
153
|
+
config_log_level: :info,
|
154
|
+
config_log_location: STDOUT,
|
155
|
+
chef_server_url: "http://chef.example.com:4444",
|
156
|
+
validation_client_name: "chef-validator-testing",
|
157
|
+
file_cache_path: "c:/chef/cache",
|
158
|
+
file_backup_path: "c:/chef/backup",
|
159
|
+
cache_options: ({ path: "c:/chef/cache/checksums", skip_expires: true })
|
160
|
+
)
|
161
|
+
)
|
158
162
|
end
|
159
163
|
|
160
164
|
it "generates the config file data" do
|
161
165
|
expected = <<~EXPECTED
|
162
166
|
echo.chef_server_url "http://chef.example.com:4444"
|
163
167
|
echo.validation_client_name "chef-validator-testing"
|
164
|
-
echo.file_cache_path "C
|
165
|
-
echo.file_backup_path "C
|
166
|
-
echo.cache_options ^({:path =^> "C
|
168
|
+
echo.file_cache_path "C:\\\\chef\\\\cache"
|
169
|
+
echo.file_backup_path "C:\\\\chef\\\\backup"
|
170
|
+
echo.cache_options ^({:path =^> "C:\\\\chef\\\\cache\\\\checksums", :skip_expires =^> true}^)
|
167
171
|
echo.# Using default node name ^(fqdn^)
|
168
|
-
echo.log_level
|
172
|
+
echo.log_level :auto
|
169
173
|
echo.log_location STDOUT
|
170
174
|
EXPECTED
|
171
175
|
expect(bootstrap_context.config_content).to eq expected
|
@@ -183,7 +187,12 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
|
|
183
187
|
|
184
188
|
describe "#start_chef" do
|
185
189
|
it "returns the expected string" do
|
186
|
-
expect(bootstrap_context.start_chef).to
|
190
|
+
expect(bootstrap_context.start_chef).to eq(
|
191
|
+
<<~EOH
|
192
|
+
SET "PATH=%SYSTEM32%;%SystemRoot%;%SYSTEM32%\\Wbem;%SYSTEM32%\\WindowsPowerShell\\v1.0\\;C:\\ruby\\bin;C:\\opscode\\chef\\bin;C:\\opscode\\chef\\embedded\\bin;%PATH%"
|
193
|
+
chef-client -c C:\\chef\\client.rb -j C:\\chef\\first-boot.json
|
194
|
+
EOH
|
195
|
+
)
|
187
196
|
end
|
188
197
|
end
|
189
198
|
|
@@ -108,7 +108,7 @@ describe Chef::Knife::SupermarketShare do
|
|
108
108
|
expect { @knife.run }.to raise_error(SystemExit)
|
109
109
|
end
|
110
110
|
|
111
|
-
if File.
|
111
|
+
if File.exist?("/usr/bin/gnutar") || File.exist?("/bin/gnutar")
|
112
112
|
it "should use gnutar to make a tarball of the cookbook" do
|
113
113
|
expect(@knife).to receive(:shell_out!) do |args|
|
114
114
|
expect(args.to_s).to match(/gnutar -czf/)
|
@@ -23,25 +23,21 @@ describe "Chef::Log::Syslog", unix_only: true do
|
|
23
23
|
|
24
24
|
before do
|
25
25
|
Chef::Log.init(MonoLogger.new(syslog))
|
26
|
-
@old_log_level = Chef::Log.level
|
27
26
|
Chef::Log.level = :info
|
28
|
-
@old_loggers = Chef::Log.loggers
|
29
|
-
Chef::Log.use_log_devices([syslog])
|
30
|
-
end
|
31
|
-
|
32
|
-
after do
|
33
|
-
Chef::Log.level = @old_log_level
|
34
|
-
Chef::Log.use_log_devices(@old_loggers)
|
35
27
|
end
|
36
28
|
|
37
29
|
it "should send message with severity info to syslog." do
|
38
30
|
expect(syslog).to receive(:add).with(1, "*** Chef 12.4.0.dev.0 ***", nil)
|
39
|
-
|
31
|
+
expect {
|
32
|
+
Chef::Log.info("*** Chef 12.4.0.dev.0 ***")
|
33
|
+
}.not_to output.to_stderr
|
40
34
|
end
|
41
35
|
|
42
36
|
it "should send message with severity warning to syslog." do
|
43
37
|
expect(syslog).to receive(:add).with(2, "No config file found or specified on command line. Using command line options instead.", nil)
|
44
|
-
|
38
|
+
expect {
|
39
|
+
Chef::Log.warn("No config file found or specified on command line. Using command line options instead.")
|
40
|
+
}.not_to output.to_stderr
|
45
41
|
end
|
46
42
|
|
47
43
|
it "should fallback into send message with severity info to syslog when wrong format." do
|
@@ -19,32 +19,40 @@
|
|
19
19
|
|
20
20
|
require "spec_helper"
|
21
21
|
|
22
|
-
describe Chef::Log::WinEvt do
|
22
|
+
describe Chef::Log::WinEvt, :windows_only do
|
23
23
|
let(:evtlog) { instance_double("Win32::EventLog") }
|
24
24
|
let(:winevt) { Chef::Log::WinEvt.new(evtlog) }
|
25
25
|
let(:app) { Chef::Application.new }
|
26
26
|
|
27
27
|
before do
|
28
28
|
Chef::Log.init(MonoLogger.new(winevt))
|
29
|
-
@old_log_level = Chef::Log.level
|
30
29
|
Chef::Log.level = :info
|
31
|
-
@old_loggers = Chef::Log.loggers
|
32
|
-
Chef::Log.use_log_devices([winevt])
|
33
|
-
end
|
34
|
-
|
35
|
-
after do
|
36
|
-
Chef::Log.level = @old_log_level
|
37
|
-
Chef::Log.use_log_devices(@old_loggers)
|
38
30
|
end
|
39
31
|
|
40
32
|
it "should send message with severity info to Windows Event Log." do
|
41
|
-
expect(
|
42
|
-
|
33
|
+
expect(evtlog).to receive(:report_event).with(
|
34
|
+
event_type: ::Win32::EventLog::INFO_TYPE,
|
35
|
+
source: Chef::Log::WinEvt::SOURCE,
|
36
|
+
event_id: Chef::Log::WinEvt::INFO_EVENT_ID,
|
37
|
+
data: ["*** Chef 12.4.0.dev.0 ***"]
|
38
|
+
)
|
39
|
+
|
40
|
+
expect {
|
41
|
+
Chef::Log.info("*** Chef 12.4.0.dev.0 ***")
|
42
|
+
}.not_to output.to_stderr
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should send message with severity warning to Windows Event Log." do
|
46
|
-
expect(
|
47
|
-
|
46
|
+
expect(evtlog).to receive(:report_event).with(
|
47
|
+
event_type: ::Win32::EventLog::WARN_TYPE,
|
48
|
+
source: Chef::Log::WinEvt::SOURCE,
|
49
|
+
event_id: Chef::Log::WinEvt::WARN_EVENT_ID,
|
50
|
+
data: ["No config file found or specified on command line. Using command line options instead."]
|
51
|
+
)
|
52
|
+
|
53
|
+
expect {
|
54
|
+
Chef::Log.warn("No config file found or specified on command line. Using command line options instead.")
|
55
|
+
}.not_to output.to_stderr
|
48
56
|
end
|
49
57
|
|
50
58
|
it "should fallback into send message with severity info to Windows Event Log when wrong format." do
|
data/spec/unit/lwrp_spec.rb
CHANGED
@@ -140,7 +140,7 @@ describe "LWRP" do
|
|
140
140
|
before do
|
141
141
|
@tmpdir = Dir.mktmpdir("lwrp_test")
|
142
142
|
@lwrp_path = File.join(@tmpdir, "foo.rb")
|
143
|
-
content = IO.read(File.expand_path("
|
143
|
+
content = IO.read(File.expand_path("../data/lwrp/resources/foo.rb", __dir__))
|
144
144
|
IO.write(@lwrp_path, content)
|
145
145
|
Chef::Resource::LWRPBase.build_from_file("lwrp", @lwrp_path, nil)
|
146
146
|
@original_resource = Chef::ResourceResolver.resolve(:lwrp_foo)
|
@@ -152,7 +152,7 @@ describe "LWRP" do
|
|
152
152
|
|
153
153
|
context "And the LWRP is asked to load again, this time with different code" do
|
154
154
|
before do
|
155
|
-
content = IO.read(File.expand_path("
|
155
|
+
content = IO.read(File.expand_path("../data/lwrp_override/resources/foo.rb", __dir__))
|
156
156
|
IO.write(@lwrp_path, content)
|
157
157
|
Chef::Resource::LWRPBase.build_from_file("lwrp", @lwrp_path, nil)
|
158
158
|
end
|
@@ -390,11 +390,11 @@ describe "LWRP" do
|
|
390
390
|
end
|
391
391
|
|
392
392
|
before(:each) do
|
393
|
-
Dir[File.expand_path(File.expand_path("
|
393
|
+
Dir[File.expand_path(File.expand_path("../data/lwrp/resources/*", __dir__))].each do |file|
|
394
394
|
Chef::Resource::LWRPBase.build_from_file(lwrp_cookbook_name, file, run_context)
|
395
395
|
end
|
396
396
|
|
397
|
-
Dir[File.expand_path(File.expand_path("
|
397
|
+
Dir[File.expand_path(File.expand_path("../data/lwrp/providers/*", __dir__))].each do |file|
|
398
398
|
Chef::Provider::LWRPBase.build_from_file(lwrp_cookbook_name, file, run_context)
|
399
399
|
end
|
400
400
|
end
|