chef 16.3.45-universal-mingw32 → 16.4.35-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/chef-universal-mingw32.gemspec +0 -1
- data/lib/chef/action_collection.rb +4 -0
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +1 -1
- data/lib/chef/application/apply.rb +5 -5
- data/lib/chef/application/windows_service.rb +27 -27
- 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/file_system/chef_server/acl_entry.rb +10 -10
- 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/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/client.rb +11 -11
- data/lib/chef/data_collector/run_end_message.rb +11 -1
- data/lib/chef/dsl/platform_introspection.rb +8 -8
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/environment.rb +2 -2
- data/lib/chef/exceptions.rb +1 -1
- data/lib/chef/file_content_management/tempfile.rb +9 -9
- data/lib/chef/http.rb +2 -1
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/knife/bootstrap.rb +2 -2
- 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 +23 -23
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
- data/lib/chef/knife/core/windows_bootstrap_context.rb +32 -24
- data/lib/chef/knife/delete.rb +15 -15
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/ssh.rb +6 -6
- data/lib/chef/knife/xargs.rb +19 -19
- data/lib/chef/knife/yaml_convert.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/deep_merge.rb +35 -6
- data/lib/chef/mixin/openssl_helper.rb +3 -1
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/mixin/which.rb +1 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
- data/lib/chef/node/attribute.rb +2 -4
- data/lib/chef/platform/service_helpers.rb +1 -1
- data/lib/chef/property.rb +1 -1
- data/lib/chef/provider/cron/unix.rb +0 -2
- data/lib/chef/provider/git.rb +5 -5
- 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/package.rb +0 -2
- data/lib/chef/provider/package/rubygems.rb +1 -1
- data/lib/chef/provider/package/snap.rb +1 -1
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -9
- data/lib/chef/provider/powershell_script.rb +21 -5
- data/lib/chef/provider/route.rb +1 -1
- 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/zypper_repository.rb +0 -1
- data/lib/chef/providers.rb +0 -1
- data/lib/chef/recipe.rb +1 -1
- data/lib/chef/resource.rb +6 -10
- data/lib/chef/resource/apt_repository.rb +1 -10
- 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/execute.rb +2 -3
- data/lib/chef/resource/homebrew_update.rb +2 -2
- 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 +24 -21
- data/lib/chef/resource/openssl_x509_crl.rb +2 -0
- 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/sudo.rb +1 -1
- data/lib/chef/resource/sysctl.rb +5 -5
- 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 +10 -7
- 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 +4 -2
- 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 +2 -0
- 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/role.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +20 -20
- data/lib/chef/run_status.rb +2 -6
- data/lib/chef/shell.rb +1 -1
- data/lib/chef/util/backup.rb +1 -1
- data/lib/chef/util/diff.rb +11 -11
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/file.rb +2 -2
- data/lib/chef/win32/file/version_info.rb +5 -5
- data/spec/data/ssl/chef-rspec.cert +15 -15
- data/spec/functional/resource/aixinit_service_spec.rb +7 -7
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -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/group_spec.rb +6 -6
- data/spec/functional/resource/insserv_spec.rb +4 -4
- data/spec/functional/resource/link_spec.rb +20 -20
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- 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/run_lock_spec.rb +24 -24
- 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 -180
- data/spec/integration/knife/config_use_profile_spec.rb +110 -109
- 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/lwrp_inline_resources_spec.rb +1 -1
- data/spec/spec_helper.rb +6 -6
- data/spec/support/platform_helpers.rb +9 -9
- 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 -20
- 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/unit/script_resource.rb +6 -20
- data/spec/support/shared/unit/windows_script_resource.rb +15 -28
- data/spec/unit/data_collector_spec.rb +22 -0
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/knife/bootstrap_spec.rb +14 -14
- 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/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/mixin/template_spec.rb +30 -30
- 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 +5 -5
- 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 +2 -2
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider_resolver_spec.rb +6 -6
- data/spec/unit/resource/batch_spec.rb +6 -6
- data/spec/unit/resource/execute_spec.rb +113 -118
- 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/windows_feature_powershell_spec.rb +30 -4
- data/spec/unit/role_spec.rb +11 -11
- data/tasks/rspec.rb +1 -1
- metadata +7 -22
- data/lib/chef/provider/osx_profile.rb +0 -255
- data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -201,17 +201,17 @@ describe Chef::Provider::RemoteDirectory do
|
|
201
201
|
@fclass = Chef::CFCCheck.new
|
202
202
|
|
203
203
|
Dir.mktmpdir do |tmp_dir|
|
204
|
-
begin
|
205
|
-
@fclass.file_class.symlink(tmp_dir.dup, symlinked_dir_path)
|
206
|
-
expect(::File.exist?(symlinked_dir_path)).to be_truthy
|
207
204
|
|
208
|
-
|
205
|
+
@fclass.file_class.symlink(tmp_dir.dup, symlinked_dir_path)
|
206
|
+
expect(::File.exist?(symlinked_dir_path)).to be_truthy
|
207
|
+
|
208
|
+
@provider.run_action
|
209
|
+
|
210
|
+
expect(::File.exist?(symlinked_dir_path)).to be_falsey
|
211
|
+
expect(::File.exist?(tmp_dir)).to be_truthy
|
212
|
+
rescue Chef::Exceptions::Win32APIError
|
213
|
+
skip "This must be run as an Administrator to create symlinks"
|
209
214
|
|
210
|
-
expect(::File.exist?(symlinked_dir_path)).to be_falsey
|
211
|
-
expect(::File.exist?(tmp_dir)).to be_truthy
|
212
|
-
rescue Chef::Exceptions::Win32APIError
|
213
|
-
skip "This must be run as an Administrator to create symlinks"
|
214
|
-
end
|
215
215
|
end
|
216
216
|
end
|
217
217
|
end
|
@@ -37,7 +37,8 @@ describe Chef::Provider::Service::Arch, "load_current_resource" do
|
|
37
37
|
|
38
38
|
@provider = Chef::Provider::Service::Arch.new(@new_resource, @run_context)
|
39
39
|
|
40
|
-
allow(::File).to receive(:
|
40
|
+
allow(::File).to receive(:exist?).with("/etc/rc.d/chef").and_return(false)
|
41
|
+
allow(::File).to receive(:exist?).with("/etc/rc.conf").and_return(true)
|
41
42
|
allow(::File).to receive(:read).with("/etc/rc.conf").and_return("DAEMONS=(network apache sshd)")
|
42
43
|
end
|
43
44
|
|
@@ -106,7 +107,7 @@ describe Chef::Provider::Service::Arch, "load_current_resource" do
|
|
106
107
|
end
|
107
108
|
|
108
109
|
it "should fail if file /etc/rc.conf does not exist" do
|
109
|
-
allow(::File).to receive(:
|
110
|
+
allow(::File).to receive(:exist?).with("/etc/rc.conf").and_return(false)
|
110
111
|
expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Service)
|
111
112
|
end
|
112
113
|
|
@@ -47,7 +47,7 @@ describe Chef::Provider::Service::Debian do
|
|
47
47
|
|
48
48
|
describe "load_current_resource" do
|
49
49
|
it "ensures /usr/sbin/update-rc.d is available" do
|
50
|
-
expect(File).to receive(:
|
50
|
+
expect(File).to receive(:exist?).with("/usr/sbin/update-rc.d").and_return(false)
|
51
51
|
|
52
52
|
@provider.define_resource_requirements
|
53
53
|
expect do
|
@@ -32,16 +32,16 @@ describe Chef::Provider::Service::Gentoo do
|
|
32
32
|
allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
|
33
33
|
@status = double("Status", exitstatus: 0, stdout: @stdout)
|
34
34
|
allow(@provider).to receive(:shell_out).and_return(@status)
|
35
|
-
allow(File).to receive(:
|
36
|
-
allow(File).to receive(:
|
37
|
-
allow(File).to receive(:
|
35
|
+
allow(File).to receive(:exist?).with("/etc/init.d/chef").and_return(true)
|
36
|
+
allow(File).to receive(:exist?).with("/sbin/rc-update").and_return(true)
|
37
|
+
allow(File).to receive(:exist?).with("/etc/runlevels/default/chef").and_return(false)
|
38
38
|
allow(File).to receive(:readable?).with("/etc/runlevels/default/chef").and_return(false)
|
39
39
|
end
|
40
40
|
# new test: found_enabled state
|
41
41
|
#
|
42
42
|
describe "load_current_resource" do
|
43
43
|
it "should raise Chef::Exceptions::Service if /sbin/rc-update does not exist" do
|
44
|
-
expect(File).to receive(:
|
44
|
+
expect(File).to receive(:exist?).with("/sbin/rc-update").and_return(false)
|
45
45
|
@provider.define_resource_requirements
|
46
46
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
47
47
|
end
|
@@ -65,7 +65,7 @@ describe Chef::Provider::Service::Gentoo do
|
|
65
65
|
|
66
66
|
describe "and the file exists and is readable" do
|
67
67
|
before do
|
68
|
-
allow(File).to receive(:
|
68
|
+
allow(File).to receive(:exist?).with("/etc/runlevels/default/chef").and_return(true)
|
69
69
|
allow(File).to receive(:readable?).with("/etc/runlevels/default/chef").and_return(true)
|
70
70
|
end
|
71
71
|
it "should set enabled to true" do
|
@@ -76,7 +76,7 @@ describe Chef::Provider::Service::Gentoo do
|
|
76
76
|
|
77
77
|
describe "and the file exists but is not readable" do
|
78
78
|
before do
|
79
|
-
allow(File).to receive(:
|
79
|
+
allow(File).to receive(:exist?).with("/etc/runlevels/default/chef").and_return(true)
|
80
80
|
allow(File).to receive(:readable?).with("/etc/runlevels/default/chef").and_return(false)
|
81
81
|
end
|
82
82
|
|
@@ -88,7 +88,7 @@ describe Chef::Provider::Service::Gentoo do
|
|
88
88
|
|
89
89
|
describe "and the file does not exist" do
|
90
90
|
before do
|
91
|
-
allow(File).to receive(:
|
91
|
+
allow(File).to receive(:exist?).with("/etc/runlevels/default/chef").and_return(false)
|
92
92
|
allow(File).to receive(:readable?).with("/etc/runlevels/default/chef").and_return("foobarbaz")
|
93
93
|
end
|
94
94
|
|
@@ -83,7 +83,7 @@ describe Chef::Provider::Service::Macosx do
|
|
83
83
|
.with(/(#{su_cmd} '#{cmd}'|#{cmd})/, default_env: false)
|
84
84
|
.and_return(double("Status",
|
85
85
|
stdout: launchctl_stdout, exitstatus: 0))
|
86
|
-
allow(File).to receive(:
|
86
|
+
allow(File).to receive(:exist?).and_return([true], [])
|
87
87
|
allow(provider).to receive(:shell_out!)
|
88
88
|
.with(/plutil -convert xml1 -o/, default_env: false)
|
89
89
|
.and_return(double("Status", stdout: plutil_stdout))
|
@@ -109,7 +109,7 @@ describe Chef::Provider::Service::Macosx do
|
|
109
109
|
|
110
110
|
before do
|
111
111
|
allow(Dir).to receive(:glob).and_return([])
|
112
|
-
allow(File).to receive(:
|
112
|
+
allow(File).to receive(:exist?).and_return([true], [])
|
113
113
|
allow(provider).to receive(:shell_out!)
|
114
114
|
.with(/plutil -convert xml1 -o/)
|
115
115
|
.and_raise(Mixlib::ShellOut::ShellCommandFailed)
|
@@ -165,7 +165,7 @@ describe Chef::Provider::Service::Macosx do
|
|
165
165
|
describe "running unsupported actions" do
|
166
166
|
before do
|
167
167
|
allow(Dir).to receive(:glob).and_return([(plist).to_s], [])
|
168
|
-
allow(File).to receive(:
|
168
|
+
allow(File).to receive(:exist?).and_return([true], [])
|
169
169
|
end
|
170
170
|
it "should throw an exception when reload action is attempted" do
|
171
171
|
expect { provider.run_action(:reload) }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
@@ -21,7 +21,7 @@ require "ostruct"
|
|
21
21
|
|
22
22
|
shared_examples_for "define_resource_requirements_common" do
|
23
23
|
it "should raise an error if /sbin/chkconfig does not exist" do
|
24
|
-
allow(File).to receive(:
|
24
|
+
allow(File).to receive(:exist?).with("/sbin/chkconfig").and_return(false)
|
25
25
|
allow(@provider).to receive(:shell_out).with("/sbin/service chef status").and_raise(Errno::ENOENT)
|
26
26
|
allow(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", returns: [0, 1]).and_raise(Errno::ENOENT)
|
27
27
|
@provider.load_current_resource
|
@@ -55,7 +55,7 @@ describe "Chef::Provider::Service::Redhat" do
|
|
55
55
|
@provider = Chef::Provider::Service::Redhat.new(@new_resource, @run_context)
|
56
56
|
@provider.action = :start
|
57
57
|
allow(Chef::Resource::Service).to receive(:new).and_return(@current_resource)
|
58
|
-
allow(File).to receive(:
|
58
|
+
allow(File).to receive(:exist?).with("/sbin/chkconfig").and_return(true)
|
59
59
|
end
|
60
60
|
|
61
61
|
describe "while not in why run mode" do
|
@@ -74,7 +74,7 @@ describe Chef::Provider::Service::Upstart do
|
|
74
74
|
@status = double("Status", exitstatus: 0, stdout: "", stderr: "")
|
75
75
|
allow(@provider).to receive(:shell_out).and_return(@status)
|
76
76
|
|
77
|
-
allow(::File).to receive(:
|
77
|
+
allow(::File).to receive(:exist?).and_return(true)
|
78
78
|
allow(::File).to receive(:open).and_return(true)
|
79
79
|
end
|
80
80
|
|
@@ -181,13 +181,13 @@ describe Chef::Provider::Service::Upstart do
|
|
181
181
|
end
|
182
182
|
|
183
183
|
it "should assume disable when no job configuration file is found" do
|
184
|
-
allow(::File).to receive(:
|
184
|
+
allow(::File).to receive(:exist?).and_return(false)
|
185
185
|
expect(@current_resource).to receive(:running).with(false)
|
186
186
|
@provider.load_current_resource
|
187
187
|
end
|
188
188
|
|
189
189
|
it "should track state when the upstart configuration file fails to load" do
|
190
|
-
expect(File).to receive(:
|
190
|
+
expect(File).to receive(:exist?).and_return false
|
191
191
|
@provider.load_current_resource
|
192
192
|
expect(@provider.instance_variable_get("@config_file_found")).to eq(false)
|
193
193
|
end
|
@@ -54,11 +54,11 @@ describe Chef::ProviderResolver do
|
|
54
54
|
|
55
55
|
let(:provider_resolver) { Chef::ProviderResolver.new(node, resource, action) }
|
56
56
|
let(:resolved_provider) do
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
57
|
+
|
58
|
+
resource ? resource.provider_for_action(action).class : nil
|
59
|
+
rescue Chef::Exceptions::ProviderNotFound
|
60
|
+
nil
|
61
|
+
|
62
62
|
end
|
63
63
|
|
64
64
|
let(:service_name) { "test" }
|
@@ -722,7 +722,7 @@ describe Chef::ProviderResolver do
|
|
722
722
|
%w{mac_os_x mac_os_x_server} => {
|
723
723
|
group: [ Chef::Resource::Group, Chef::Provider::Group::Dscl ],
|
724
724
|
package: [ Chef::Resource::HomebrewPackage, Chef::Provider::Package::Homebrew ],
|
725
|
-
osx_profile: [ Chef::Resource::OsxProfile
|
725
|
+
osx_profile: [ Chef::Resource::OsxProfile],
|
726
726
|
user: [ Chef::Resource::User::DsclUser, Chef::Provider::User::Dscl ],
|
727
727
|
|
728
728
|
"mac_os_x" => {
|
@@ -19,24 +19,24 @@
|
|
19
19
|
require "spec_helper"
|
20
20
|
|
21
21
|
describe Chef::Resource::Batch do
|
22
|
-
let(:node) { Chef::Node.new }
|
23
22
|
|
24
|
-
|
23
|
+
let(:resource) do
|
24
|
+
node = Chef::Node.new
|
25
25
|
node.default["kernel"] = {}
|
26
26
|
node.default["kernel"][:machine] = :x86_64.to_s
|
27
27
|
node.automatic[:os] = "windows"
|
28
28
|
|
29
29
|
run_context = Chef::RunContext.new(node, nil, nil)
|
30
|
-
|
30
|
+
Chef::Resource::Batch.new("batch_unit_test", run_context)
|
31
31
|
end
|
32
32
|
|
33
33
|
it "creates a new Chef::Resource::Batch" do
|
34
|
-
expect(
|
34
|
+
expect(resource).to be_a_kind_of(Chef::Resource::Batch)
|
35
35
|
end
|
36
36
|
|
37
37
|
context "windows script" do
|
38
|
-
let(:
|
39
|
-
let(:resource_instance_name ) {
|
38
|
+
let(:windows_script_resource) { resource }
|
39
|
+
let(:resource_instance_name ) { resource.command }
|
40
40
|
let(:resource_name) { :batch }
|
41
41
|
let(:interpreter_file_name) { "cmd.exe" }
|
42
42
|
|
@@ -116,172 +116,167 @@ describe Chef::Resource::Execute do
|
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
end
|
124
|
-
|
125
|
-
context "when no user, domain, or password is specified" do
|
126
|
-
let(:username) { nil }
|
127
|
-
let(:domain) { nil }
|
128
|
-
let(:password) { nil }
|
129
|
-
it_behaves_like "it received valid credentials"
|
130
|
-
end
|
131
|
-
|
132
|
-
context "when a valid username is specified" do
|
133
|
-
let(:username) { "starchild" }
|
134
|
-
let(:elevated) { false }
|
135
|
-
context "when a valid domain is specified" do
|
136
|
-
let(:domain) { "mothership" }
|
137
|
-
|
138
|
-
context "when the password is not specified" do
|
139
|
-
let(:password) { nil }
|
140
|
-
it_behaves_like "it received invalid credentials"
|
141
|
-
end
|
142
|
-
|
143
|
-
context "when the password is specified" do
|
144
|
-
let(:password) { "we.funk!" }
|
145
|
-
it_behaves_like "it received valid credentials"
|
146
|
-
end
|
147
|
-
end
|
119
|
+
context "when running on Windows" do
|
120
|
+
before do
|
121
|
+
allow(resource).to receive(:windows?).and_return(true)
|
122
|
+
end
|
148
123
|
|
149
|
-
|
150
|
-
|
151
|
-
|
124
|
+
context "when no user, domain, or password is specified" do
|
125
|
+
let(:username) { nil }
|
126
|
+
let(:domain) { nil }
|
127
|
+
let(:password) { nil }
|
128
|
+
it_behaves_like "it received valid credentials"
|
129
|
+
end
|
152
130
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
131
|
+
context "when a valid username is specified" do
|
132
|
+
let(:username) { "starchild" }
|
133
|
+
let(:elevated) { false }
|
134
|
+
context "when a valid domain is specified" do
|
135
|
+
let(:domain) { "mothership" }
|
157
136
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
end
|
137
|
+
context "when the password is not specified" do
|
138
|
+
let(:password) { nil }
|
139
|
+
it_behaves_like "it received invalid credentials"
|
162
140
|
end
|
163
141
|
|
164
|
-
context "when
|
165
|
-
let(:
|
166
|
-
|
167
|
-
context "when domain is specified" do
|
168
|
-
let(:domain) { "mothership" }
|
169
|
-
let(:password) { nil }
|
170
|
-
it_behaves_like "it received invalid username and domain"
|
171
|
-
end
|
172
|
-
|
173
|
-
context "when password is specified" do
|
174
|
-
let(:domain) { nil }
|
175
|
-
let(:password) { "we.funk!" }
|
176
|
-
it_behaves_like "it received invalid username and domain"
|
177
|
-
end
|
142
|
+
context "when the password is specified" do
|
143
|
+
let(:password) { "we.funk!" }
|
144
|
+
it_behaves_like "it received valid credentials"
|
178
145
|
end
|
179
146
|
end
|
180
147
|
|
181
|
-
context "when
|
182
|
-
let(:username) { "user@domain@domain" }
|
148
|
+
context "when the domain is not specified" do
|
183
149
|
let(:domain) { nil }
|
184
|
-
let(:
|
185
|
-
it_behaves_like "it received invalid username and domain"
|
186
|
-
end
|
187
|
-
|
188
|
-
context "when the domain is provided in both username and domain" do
|
189
|
-
let(:domain) { "some_domain" }
|
190
|
-
let(:password) { "we.funk!" }
|
150
|
+
let(:elevated) { false }
|
191
151
|
|
192
|
-
context "when
|
193
|
-
let(:
|
194
|
-
it_behaves_like "it received invalid
|
152
|
+
context "when the password is not specified" do
|
153
|
+
let(:password) { nil }
|
154
|
+
it_behaves_like "it received invalid credentials"
|
195
155
|
end
|
196
156
|
|
197
|
-
context "when
|
198
|
-
let(:
|
199
|
-
it_behaves_like "it received
|
157
|
+
context "when the password is specified" do
|
158
|
+
let(:password) { "we.funk!" }
|
159
|
+
it_behaves_like "it received valid credentials"
|
200
160
|
end
|
201
161
|
end
|
202
162
|
|
203
|
-
context "when
|
204
|
-
let(:
|
163
|
+
context "when username is not specified" do
|
164
|
+
let(:username) { nil }
|
205
165
|
|
206
|
-
context "when
|
207
|
-
let(:
|
208
|
-
let(:domain) { nil }
|
166
|
+
context "when domain is specified" do
|
167
|
+
let(:domain) { "mothership" }
|
209
168
|
let(:password) { nil }
|
210
|
-
it_behaves_like "it received invalid
|
169
|
+
it_behaves_like "it received invalid username and domain"
|
211
170
|
end
|
212
171
|
|
213
|
-
context "when
|
214
|
-
let(:username) { "user" }
|
172
|
+
context "when password is specified" do
|
215
173
|
let(:domain) { nil }
|
216
174
|
let(:password) { "we.funk!" }
|
217
|
-
it_behaves_like "it received
|
175
|
+
it_behaves_like "it received invalid username and domain"
|
218
176
|
end
|
219
177
|
end
|
220
178
|
end
|
221
179
|
|
222
|
-
context "when
|
223
|
-
|
224
|
-
|
180
|
+
context "when invalid username is specified" do
|
181
|
+
let(:username) { "user@domain@domain" }
|
182
|
+
let(:domain) { nil }
|
183
|
+
let(:password) { "we.funk!" }
|
184
|
+
it_behaves_like "it received invalid username and domain"
|
185
|
+
end
|
186
|
+
|
187
|
+
context "when the domain is provided in both username and domain" do
|
188
|
+
let(:domain) { "some_domain" }
|
189
|
+
let(:password) { "we.funk!" }
|
190
|
+
|
191
|
+
context "when username is in the form domain\\user" do
|
192
|
+
let(:username) { "mothership\\starchild" }
|
193
|
+
it_behaves_like "it received invalid username and domain"
|
194
|
+
end
|
195
|
+
|
196
|
+
context "when username is in the form user@domain" do
|
197
|
+
let(:username) { "starchild@mothership" }
|
198
|
+
it_behaves_like "it received invalid username and domain"
|
225
199
|
end
|
200
|
+
end
|
226
201
|
|
227
|
-
|
202
|
+
context "when elevated is passed" do
|
203
|
+
let(:elevated) { true }
|
204
|
+
|
205
|
+
context "when username and password are not passed" do
|
228
206
|
let(:username) { nil }
|
229
207
|
let(:domain) { nil }
|
230
208
|
let(:password) { nil }
|
209
|
+
it_behaves_like "it received invalid credentials"
|
210
|
+
end
|
211
|
+
|
212
|
+
context "when username and password are passed" do
|
213
|
+
let(:username) { "user" }
|
214
|
+
let(:domain) { nil }
|
215
|
+
let(:password) { "we.funk!" }
|
231
216
|
it_behaves_like "it received valid credentials"
|
232
217
|
end
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
context "when not running on Windows" do
|
222
|
+
before do
|
223
|
+
allow(resource).to receive(:node).and_return({ platform_family: "ubuntu" })
|
224
|
+
end
|
225
|
+
|
226
|
+
context "when no user, domain, or password is specified" do
|
227
|
+
let(:username) { nil }
|
228
|
+
let(:domain) { nil }
|
229
|
+
let(:password) { nil }
|
230
|
+
it_behaves_like "it received valid credentials"
|
231
|
+
end
|
232
|
+
|
233
|
+
context "when the user is specified and the domain and password are not" do
|
234
|
+
let(:username) { "starchild" }
|
235
|
+
let(:domain) { nil }
|
236
|
+
let(:password) { nil }
|
237
|
+
it_behaves_like "it received valid credentials"
|
233
238
|
|
234
|
-
context "when the
|
235
|
-
let(:
|
239
|
+
context "when the password is specified and the domain is not" do
|
240
|
+
let(:password) { "we.funk!" }
|
236
241
|
let(:domain) { nil }
|
242
|
+
it_behaves_like "it received credentials that are not valid on the platform"
|
243
|
+
end
|
244
|
+
|
245
|
+
context "when the domain is specified and the password is not" do
|
246
|
+
let(:domain) { "mothership" }
|
237
247
|
let(:password) { nil }
|
238
|
-
it_behaves_like "it received valid
|
248
|
+
it_behaves_like "it received credentials that are not valid on the platform"
|
249
|
+
end
|
250
|
+
|
251
|
+
context "when the domain and password are specified" do
|
252
|
+
let(:domain) { "mothership" }
|
253
|
+
let(:password) { "we.funk!" }
|
254
|
+
it_behaves_like "it received credentials that are not valid on the platform"
|
255
|
+
end
|
256
|
+
end
|
239
257
|
|
240
|
-
|
258
|
+
context "when the user is not specified" do
|
259
|
+
let(:username) { nil }
|
260
|
+
context "when the domain is specified" do
|
261
|
+
let(:domain) { "mothership" }
|
262
|
+
context "when the password is specified" do
|
241
263
|
let(:password) { "we.funk!" }
|
242
|
-
let(:domain) { nil }
|
243
264
|
it_behaves_like "it received credentials that are not valid on the platform"
|
244
265
|
end
|
245
266
|
|
246
|
-
context "when
|
247
|
-
let(:domain) { "mothership" }
|
267
|
+
context "when password is not specified" do
|
248
268
|
let(:password) { nil }
|
249
269
|
it_behaves_like "it received credentials that are not valid on the platform"
|
250
270
|
end
|
271
|
+
end
|
251
272
|
|
252
|
-
|
253
|
-
|
273
|
+
context "when the domain is not specified" do
|
274
|
+
let(:domain) { nil }
|
275
|
+
context "when the password is specified" do
|
254
276
|
let(:password) { "we.funk!" }
|
255
277
|
it_behaves_like "it received credentials that are not valid on the platform"
|
256
278
|
end
|
257
279
|
end
|
258
|
-
|
259
|
-
context "when the user is not specified" do
|
260
|
-
let(:username) { nil }
|
261
|
-
context "when the domain is specified" do
|
262
|
-
let(:domain) { "mothership" }
|
263
|
-
context "when the password is specified" do
|
264
|
-
let(:password) { "we.funk!" }
|
265
|
-
it_behaves_like "it received credentials that are not valid on the platform"
|
266
|
-
end
|
267
|
-
|
268
|
-
context "when password is not specified" do
|
269
|
-
let(:password) { nil }
|
270
|
-
it_behaves_like "it received credentials that are not valid on the platform"
|
271
|
-
end
|
272
|
-
end
|
273
|
-
|
274
|
-
context "when the domain is not specified" do
|
275
|
-
let(:domain) { nil }
|
276
|
-
context "when the password is specified" do
|
277
|
-
let(:password) { "we.funk!" }
|
278
|
-
it_behaves_like "it received credentials that are not valid on the platform"
|
279
|
-
end
|
280
|
-
end
|
281
|
-
end
|
282
280
|
end
|
283
281
|
end
|
284
|
-
|
285
|
-
it_behaves_like "a consumer of the Execute resource"
|
286
|
-
|
287
282
|
end
|