chef 17.7.29 → 17.8.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/compliance/default_attributes.rb +12 -2
- data/lib/chef/compliance/runner.rb +51 -5
- data/lib/chef/mixin/powershell_exec.rb +6 -5
- data/lib/chef/mixin/why_run.rb +8 -2
- data/lib/chef/powershell.rb +8 -6
- data/lib/chef/provider/mount/linux.rb +16 -2
- data/lib/chef/provider/mount/mount.rb +1 -1
- data/lib/chef/provider/package/dnf.rb +1 -1
- data/lib/chef/provider/package/powershell.rb +13 -10
- data/lib/chef/provider/package/zypper.rb +2 -0
- data/lib/chef/provider/package.rb +58 -23
- data/lib/chef/provider.rb +1 -1
- data/lib/chef/pwsh.rb +3 -2
- data/lib/chef/resource/chef_client_config.rb +22 -1
- data/lib/chef/resource/chef_client_launchd.rb +1 -1
- data/lib/chef/resource/dnf_package.rb +4 -6
- data/lib/chef/resource/dpkg_package.rb +5 -0
- data/lib/chef/resource/execute.rb +1 -4
- data/lib/chef/resource/launchd.rb +0 -3
- data/lib/chef/resource/macos_userdefaults.rb +5 -7
- data/lib/chef/resource/rhsm_register.rb +31 -0
- data/lib/chef/resource/support/client.erb +7 -0
- data/lib/chef/resource/windows_feature_powershell.rb +7 -7
- data/lib/chef/resource.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/spec/functional/resource/dnf_package_spec.rb +34 -20
- data/spec/functional/resource/dpkg_package_spec.rb +16 -0
- data/spec/functional/resource/macos_userdefaults_spec.rb +20 -0
- data/spec/functional/resource/zypper_package_spec.rb +7 -0
- data/spec/integration/client/client_spec.rb +31 -0
- data/spec/unit/application/base_spec.rb +40 -0
- data/spec/unit/compliance/runner_spec.rb +62 -1
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/mixin/why_run_spec.rb +53 -0
- data/spec/unit/provider/group/groupadd_spec.rb +1 -0
- data/spec/unit/provider/group/usermod_spec.rb +2 -2
- data/spec/unit/provider/ifconfig_spec.rb +2 -0
- data/spec/unit/provider/mount/linux_spec.rb +16 -3
- data/spec/unit/provider/package/bff_spec.rb +1 -0
- data/spec/unit/provider/package/powershell_spec.rb +114 -114
- data/spec/unit/provider/package/rubygems_spec.rb +3 -0
- data/spec/unit/provider/package/solaris_spec.rb +1 -0
- data/spec/unit/provider/service/arch_service_spec.rb +2 -2
- data/spec/unit/provider/service/debian_service_spec.rb +1 -0
- data/spec/unit/provider/service/gentoo_service_spec.rb +1 -0
- data/spec/unit/provider/service/macosx_spec.rb +1 -0
- data/spec/unit/provider/service/redhat_spec.rb +4 -1
- data/spec/unit/provider/service/simple_service_spec.rb +6 -4
- data/spec/unit/provider/user_spec.rb +2 -0
- data/spec/unit/resource/dpkg_package_spec.rb +12 -0
- data/spec/unit/resource/rhsm_register_spec.rb +42 -0
- metadata +9 -7
@@ -50,6 +50,7 @@ describe Chef::Provider::Service::Debian do
|
|
50
50
|
it "ensures /usr/sbin/update-rc.d is available" do
|
51
51
|
expect(File).to receive(:exist?).with("/usr/sbin/update-rc.d").and_return(false)
|
52
52
|
|
53
|
+
@provider.action = :start
|
53
54
|
@provider.define_resource_requirements
|
54
55
|
expect do
|
55
56
|
@provider.process_resource_requirements
|
@@ -42,6 +42,7 @@ describe Chef::Provider::Service::Gentoo do
|
|
42
42
|
describe "load_current_resource" do
|
43
43
|
it "should raise Chef::Exceptions::Service if /sbin/rc-update does not exist" do
|
44
44
|
expect(File).to receive(:exist?).with("/sbin/rc-update").and_return(false)
|
45
|
+
@provider.action = :start
|
45
46
|
@provider.define_resource_requirements
|
46
47
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
47
48
|
end
|
@@ -237,6 +237,7 @@ describe Chef::Provider::Service::Macosx do
|
|
237
237
|
allow(Dir).to receive(:glob).and_return([(plist).to_s,
|
238
238
|
"/Users/wtf/something.plist"])
|
239
239
|
provider.load_current_resource
|
240
|
+
provider.action = :enable
|
240
241
|
provider.define_resource_requirements
|
241
242
|
expect { provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
242
243
|
end
|
@@ -34,6 +34,7 @@ shared_examples_for "define_resource_requirements_common" do
|
|
34
34
|
expect(@provider).to receive(:shell_out).with("/sbin/service chef status").and_return(status)
|
35
35
|
chkconfig = double("Chkconfig", exitstatus: 0, stdout: "", stderr: "service chef supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add chef')")
|
36
36
|
expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", returns: [0, 1]).and_return(chkconfig)
|
37
|
+
@provider.action = :start
|
37
38
|
@provider.load_current_resource
|
38
39
|
@provider.define_resource_requirements
|
39
40
|
expect { @provider.process_resource_requirements }.not_to raise_error
|
@@ -147,12 +148,12 @@ describe "Chef::Provider::Service::Redhat" do
|
|
147
148
|
chkconfig = double("Chkconfig", existatus: 1, stdout: "", stderr: "error reading information on service chef: No such file or directory")
|
148
149
|
expect(@provider).to receive(:shell_out!).with("/sbin/chkconfig --list chef", returns: [0, 1]).and_return(chkconfig)
|
149
150
|
@provider.load_current_resource
|
150
|
-
@provider.define_resource_requirements
|
151
151
|
end
|
152
152
|
|
153
153
|
%w{start reload restart enable}.each do |action|
|
154
154
|
it "should raise an error when the action is #{action}" do
|
155
155
|
@provider.action = action
|
156
|
+
@provider.define_resource_requirements
|
156
157
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
157
158
|
end
|
158
159
|
end
|
@@ -161,12 +162,14 @@ describe "Chef::Provider::Service::Redhat" do
|
|
161
162
|
it "should not raise an error when the action is #{action} and init_command is set" do
|
162
163
|
@new_resource.init_command("/etc/init.d/chef")
|
163
164
|
@provider.action = action
|
165
|
+
@provider.define_resource_requirements
|
164
166
|
expect { @provider.process_resource_requirements }.not_to raise_error
|
165
167
|
end
|
166
168
|
|
167
169
|
it "should not raise an error when the action is #{action} and #{action}_command is set" do
|
168
170
|
@new_resource.send("#{action}_command", "/etc/init.d/chef #{action}")
|
169
171
|
@provider.action = action
|
172
|
+
@provider.define_resource_requirements
|
170
173
|
expect { @provider.process_resource_requirements }.not_to raise_error
|
171
174
|
end
|
172
175
|
end
|
@@ -52,12 +52,14 @@ describe Chef::Provider::Service::Simple, "load_current_resource" do
|
|
52
52
|
|
53
53
|
it "should raise error if the node has a nil ps property and no other means to get status" do
|
54
54
|
@node.automatic_attrs[:command] = { ps: nil }
|
55
|
+
@provider.action = :start
|
55
56
|
@provider.define_resource_requirements
|
56
57
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
57
58
|
end
|
58
59
|
|
59
60
|
it "should raise error if the node has an empty ps property and no other means to get status" do
|
60
61
|
@node.automatic_attrs[:command] = { ps: "" }
|
62
|
+
@provider.action = :start
|
61
63
|
@provider.define_resource_requirements
|
62
64
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
63
65
|
end
|
@@ -112,8 +114,8 @@ describe Chef::Provider::Service::Simple, "load_current_resource" do
|
|
112
114
|
end
|
113
115
|
|
114
116
|
it "should raise an exception if no start command is specified" do
|
115
|
-
@provider.define_resource_requirements
|
116
117
|
@provider.action = :start
|
118
|
+
@provider.define_resource_requirements
|
117
119
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
118
120
|
end
|
119
121
|
end
|
@@ -126,8 +128,8 @@ describe Chef::Provider::Service::Simple, "load_current_resource" do
|
|
126
128
|
end
|
127
129
|
|
128
130
|
it "should raise an exception if no stop command is specified" do
|
129
|
-
@provider.define_resource_requirements
|
130
131
|
@provider.action = :stop
|
132
|
+
@provider.define_resource_requirements
|
131
133
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
132
134
|
end
|
133
135
|
end
|
@@ -140,8 +142,8 @@ describe Chef::Provider::Service::Simple, "load_current_resource" do
|
|
140
142
|
end
|
141
143
|
|
142
144
|
it "should raise an exception if the resource doesn't support restart, no restart command is provided, and no stop command is provided" do
|
143
|
-
@provider.define_resource_requirements
|
144
145
|
@provider.action = :restart
|
146
|
+
@provider.define_resource_requirements
|
145
147
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Service)
|
146
148
|
end
|
147
149
|
|
@@ -155,8 +157,8 @@ describe Chef::Provider::Service::Simple, "load_current_resource" do
|
|
155
157
|
|
156
158
|
describe Chef::Provider::Service::Simple, "reload_service" do
|
157
159
|
it "should raise an exception if reload is requested but no command is specified" do
|
158
|
-
@provider.define_resource_requirements
|
159
160
|
@provider.action = :reload
|
161
|
+
@provider.define_resource_requirements
|
160
162
|
expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::UnsupportedAction)
|
161
163
|
end
|
162
164
|
|
@@ -170,6 +170,7 @@ describe Chef::Provider::User do
|
|
170
170
|
sp_warn: 7, sp_inact: -1, sp_expire: -1, sp_flag: -1)
|
171
171
|
expect(Shadow::Passwd).to receive(:getspnam).with("notarealuser").and_return(passwd_info)
|
172
172
|
@provider.load_current_resource
|
173
|
+
@provider.action = :create
|
173
174
|
@provider.define_resource_requirements
|
174
175
|
@provider.process_resource_requirements
|
175
176
|
end
|
@@ -180,6 +181,7 @@ describe Chef::Provider::User do
|
|
180
181
|
it "should fail assertions when ruby-shadow cannot be loaded" do
|
181
182
|
expect(@provider).to receive(:require).with("shadow") { raise LoadError }
|
182
183
|
@provider.load_current_resource
|
184
|
+
@provider.action = :create
|
183
185
|
@provider.define_resource_requirements
|
184
186
|
expect { @provider.process_resource_requirements }.to raise_error Chef::Exceptions::MissingLibrary
|
185
187
|
end
|
@@ -57,4 +57,16 @@ describe Chef::Resource::DpkgPackage, "initialize" do
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
+
describe Chef::Resource::DpkgPackage, "allow_downgrade" do
|
61
|
+
before(:each) do
|
62
|
+
@resource = Chef::Resource::DpkgPackage.new("fakey_fakerton")
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should allow you to specify whether allow_downgrade is true or false" do
|
66
|
+
expect { @resource.allow_downgrade true }.not_to raise_error
|
67
|
+
expect { @resource.allow_downgrade false }.not_to raise_error
|
68
|
+
expect { @resource.allow_downgrade "something" }.to raise_error(ArgumentError)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
60
72
|
end
|
@@ -158,6 +158,48 @@ describe Chef::Resource::RhsmRegister do
|
|
158
158
|
end
|
159
159
|
end
|
160
160
|
|
161
|
+
context "when a server_url is provided" do
|
162
|
+
it "returns a command containing the server url" do
|
163
|
+
allow(resource).to receive(:server_url).and_return("https://fqdn.example")
|
164
|
+
expect(provider.register_command).to match("--serverurl=https://fqdn.example")
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
context "when a base_url is provided" do
|
169
|
+
it "returns a command containing the base url" do
|
170
|
+
allow(resource).to receive(:base_url).and_return("https://fqdn.example")
|
171
|
+
expect(provider.register_command).to match("--baseurl=https://fqdn.example")
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
context "when a service_level is provided" do
|
176
|
+
it "returns a command containing the service level" do
|
177
|
+
allow(resource).to receive(:service_level).and_return("None")
|
178
|
+
allow(resource).to receive(:auto_attach).and_return(true)
|
179
|
+
expect(provider.register_command).to match("--servicelevel=None")
|
180
|
+
end
|
181
|
+
|
182
|
+
it "raises an exception if auto_attach is not set" do
|
183
|
+
allow(resource).to receive(:service_level).and_return("None")
|
184
|
+
allow(resource).to receive(:auto_attach).and_return(nil)
|
185
|
+
expect { provider.register_command }.to raise_error(RuntimeError)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
context "when a release is provided" do
|
190
|
+
it "returns a command containing the release" do
|
191
|
+
allow(resource).to receive(:release).and_return("8.4")
|
192
|
+
allow(resource).to receive(:auto_attach).and_return(true)
|
193
|
+
expect(provider.register_command).to match("--release=8.4")
|
194
|
+
end
|
195
|
+
|
196
|
+
it "raises an exception if auto_attach is not set" do
|
197
|
+
allow(resource).to receive(:release).and_return("8.4")
|
198
|
+
allow(resource).to receive(:auto_attach).and_return(nil)
|
199
|
+
expect { provider.register_command }.to raise_error(RuntimeError)
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
161
203
|
context "when a system_name is not provided" do
|
162
204
|
it "returns a command containing the system name" do
|
163
205
|
allow(resource).to receive(:system_name).and_return(nil)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 17.
|
4
|
+
version: 17.8.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 17.
|
19
|
+
version: 17.8.25
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 17.
|
26
|
+
version: 17.8.25
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: chef-utils
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 17.
|
33
|
+
version: 17.8.25
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 17.
|
40
|
+
version: 17.8.25
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: train-core
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1867,6 +1867,7 @@ files:
|
|
1867
1867
|
- spec/unit/api_client_v1_spec.rb
|
1868
1868
|
- spec/unit/application/agent_spec.rb
|
1869
1869
|
- spec/unit/application/apply_spec.rb
|
1870
|
+
- spec/unit/application/base_spec.rb
|
1870
1871
|
- spec/unit/application/client_spec.rb
|
1871
1872
|
- spec/unit/application/exit_code_spec.rb
|
1872
1873
|
- spec/unit/application/server_spec.rb
|
@@ -2000,6 +2001,7 @@ files:
|
|
2000
2001
|
- spec/unit/mixin/user_context_spec.rb
|
2001
2002
|
- spec/unit/mixin/versioned_api_spec.rb
|
2002
2003
|
- spec/unit/mixin/which.rb
|
2004
|
+
- spec/unit/mixin/why_run_spec.rb
|
2003
2005
|
- spec/unit/mixin/windows_architecture_helper_spec.rb
|
2004
2006
|
- spec/unit/mixin/xml_escape_spec.rb
|
2005
2007
|
- spec/unit/monologger_spec.rb
|
@@ -2388,7 +2390,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2388
2390
|
- !ruby/object:Gem::Version
|
2389
2391
|
version: '0'
|
2390
2392
|
requirements: []
|
2391
|
-
rubygems_version: 3.2.
|
2393
|
+
rubygems_version: 3.2.32
|
2392
2394
|
signing_key:
|
2393
2395
|
specification_version: 4
|
2394
2396
|
summary: A systems integration framework, built to bring the benefits of configuration
|