chef 17.7.29 → 17.8.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/lib/chef/application/base.rb +1 -1
  3. data/lib/chef/compliance/default_attributes.rb +12 -2
  4. data/lib/chef/compliance/runner.rb +51 -5
  5. data/lib/chef/mixin/powershell_exec.rb +6 -5
  6. data/lib/chef/mixin/why_run.rb +8 -2
  7. data/lib/chef/powershell.rb +8 -6
  8. data/lib/chef/provider/mount/linux.rb +16 -2
  9. data/lib/chef/provider/mount/mount.rb +1 -1
  10. data/lib/chef/provider/package/dnf.rb +1 -1
  11. data/lib/chef/provider/package/powershell.rb +13 -10
  12. data/lib/chef/provider/package/zypper.rb +2 -0
  13. data/lib/chef/provider/package.rb +58 -23
  14. data/lib/chef/provider.rb +1 -1
  15. data/lib/chef/pwsh.rb +3 -2
  16. data/lib/chef/resource/chef_client_config.rb +22 -1
  17. data/lib/chef/resource/chef_client_launchd.rb +1 -1
  18. data/lib/chef/resource/dnf_package.rb +4 -6
  19. data/lib/chef/resource/dpkg_package.rb +5 -0
  20. data/lib/chef/resource/execute.rb +1 -4
  21. data/lib/chef/resource/launchd.rb +0 -3
  22. data/lib/chef/resource/macos_userdefaults.rb +5 -7
  23. data/lib/chef/resource/rhsm_register.rb +31 -0
  24. data/lib/chef/resource/support/client.erb +7 -0
  25. data/lib/chef/resource/windows_feature_powershell.rb +7 -7
  26. data/lib/chef/resource.rb +1 -1
  27. data/lib/chef/version.rb +1 -1
  28. data/spec/functional/resource/dnf_package_spec.rb +34 -20
  29. data/spec/functional/resource/dpkg_package_spec.rb +16 -0
  30. data/spec/functional/resource/macos_userdefaults_spec.rb +20 -0
  31. data/spec/functional/resource/zypper_package_spec.rb +7 -0
  32. data/spec/integration/client/client_spec.rb +31 -0
  33. data/spec/unit/application/base_spec.rb +40 -0
  34. data/spec/unit/compliance/runner_spec.rb +62 -1
  35. data/spec/unit/file_access_control_spec.rb +1 -1
  36. data/spec/unit/mixin/why_run_spec.rb +53 -0
  37. data/spec/unit/provider/group/groupadd_spec.rb +1 -0
  38. data/spec/unit/provider/group/usermod_spec.rb +2 -2
  39. data/spec/unit/provider/ifconfig_spec.rb +2 -0
  40. data/spec/unit/provider/mount/linux_spec.rb +16 -3
  41. data/spec/unit/provider/package/bff_spec.rb +1 -0
  42. data/spec/unit/provider/package/powershell_spec.rb +114 -114
  43. data/spec/unit/provider/package/rubygems_spec.rb +3 -0
  44. data/spec/unit/provider/package/solaris_spec.rb +1 -0
  45. data/spec/unit/provider/service/arch_service_spec.rb +2 -2
  46. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  47. data/spec/unit/provider/service/gentoo_service_spec.rb +1 -0
  48. data/spec/unit/provider/service/macosx_spec.rb +1 -0
  49. data/spec/unit/provider/service/redhat_spec.rb +4 -1
  50. data/spec/unit/provider/service/simple_service_spec.rb +6 -4
  51. data/spec/unit/provider/user_spec.rb +2 -0
  52. data/spec/unit/resource/dpkg_package_spec.rb +12 -0
  53. data/spec/unit/resource/rhsm_register_spec.rb +42 -0
  54. 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.7.29
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-10-29 00:00:00.000000000 Z
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.7.29
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.7.29
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.7.29
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.7.29
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.22
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