chef 12.15.19 → 12.16.42
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/VERSION +1 -1
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +3 -1
- data/acceptance/Gemfile.lock +14 -14
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +3 -11
- data/distro/common/html/knife_bootstrap.html +1 -1
- data/distro/common/man/man1/README.md +2 -2
- data/distro/common/man/man1/knife-client.1 +1 -1
- data/lib/chef/application.rb +7 -15
- data/lib/chef/application/client.rb +2 -2
- data/lib/chef/application/solo.rb +1 -1
- data/lib/chef/chef_class.rb +1 -0
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +3 -7
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb +1 -1
- data/lib/chef/data_collector.rb +83 -9
- data/lib/chef/data_collector/messages.rb +2 -1
- data/lib/chef/dsl/core.rb +1 -1
- data/lib/chef/dsl/declare_resource.rb +10 -4
- data/lib/chef/dsl/method_missing.rb +1 -1
- data/lib/chef/dsl/recipe.rb +1 -1
- data/lib/chef/dsl/universal.rb +1 -1
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/http.rb +3 -4
- data/lib/chef/knife.rb +20 -2
- data/lib/chef/knife/core/generic_presenter.rb +18 -4
- data/lib/chef/knife/node_show.rb +0 -5
- data/lib/chef/knife/osc_user_show.rb +0 -1
- data/lib/chef/knife/ssl_fetch.rb +9 -5
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/node.rb +1 -5
- data/lib/chef/node/attribute.rb +70 -98
- data/lib/chef/node/attribute_collections.rb +28 -19
- data/lib/chef/node/common_api.rb +0 -6
- data/lib/chef/node/immutable_collections.rb +16 -79
- data/lib/chef/node/mixin/deep_merge_cache.rb +61 -0
- data/lib/chef/node/mixin/immutablize_array.rb +67 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +54 -0
- data/lib/chef/node/mixin/state_tracking.rb +93 -0
- data/lib/chef/property.rb +4 -4
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/group/suse.rb +23 -4
- data/lib/chef/provider/package.rb +43 -5
- data/lib/chef/provider/package/apt.rb +20 -0
- data/lib/chef/provider/package/windows/exe.rb +4 -3
- data/lib/chef/provider/package/windows/msi.rb +4 -3
- data/lib/chef/provider/package/yum.rb +20 -0
- data/lib/chef/provider/package/zypper.rb +20 -0
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +25 -9
- data/lib/chef/provider/user.rb +4 -6
- data/lib/chef/provider/user/dscl.rb +8 -3
- data/lib/chef/provider/user/solaris.rb +5 -12
- data/lib/chef/resource.rb +19 -0
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/package.rb +1 -1
- data/lib/chef/resource/scm.rb +1 -7
- data/lib/chef/resource/yum_repository.rb +1 -1
- data/lib/chef/rest.rb +1 -0
- data/lib/chef/run_context.rb +12 -0
- data/lib/chef/version.rb +1 -1
- data/spec/data/trusted_certs/example_no_cn.crt +36 -0
- data/spec/functional/resource/group_spec.rb +1 -0
- data/spec/functional/resource/user/useradd_spec.rb +4 -2
- data/spec/integration/knife/data_bag_create_spec.rb +0 -3
- data/spec/integration/knife/environment_show_spec.rb +24 -4
- data/spec/integration/knife/node_environment_set_spec.rb +4 -1
- data/spec/integration/recipes/accumulator_spec.rb +232 -0
- data/spec/integration/recipes/resource_action_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -2
- data/spec/support/shared/context/client.rb +12 -3
- data/spec/support/shared/integration/app_server_support.rb +1 -1
- data/spec/support/shared/integration/knife_support.rb +4 -1
- data/spec/unit/data_collector/messages_spec.rb +2 -0
- data/spec/unit/data_collector_spec.rb +158 -21
- data/spec/unit/http_spec.rb +1 -1
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +1 -1
- data/spec/unit/knife/core/ui_spec.rb +10 -0
- data/spec/unit/knife/ssl_fetch_spec.rb +38 -0
- data/spec/unit/knife_spec.rb +31 -0
- data/spec/unit/mixin/powershell_out_spec.rb +25 -1
- data/spec/unit/node/attribute_spec.rb +46 -1
- data/spec/unit/node/vivid_mash_spec.rb +27 -89
- data/spec/unit/node_spec.rb +134 -3
- data/spec/unit/provider/deploy_spec.rb +1 -1
- data/spec/unit/provider/group/suse_spec.rb +90 -0
- data/spec/unit/provider/package/apt_spec.rb +22 -0
- data/spec/unit/provider/package/windows/msi_spec.rb +13 -4
- data/spec/unit/provider/package/windows_spec.rb +3 -3
- data/spec/unit/provider/package/yum_spec.rb +18 -0
- data/spec/unit/provider/package/zypper_spec.rb +64 -0
- data/spec/unit/provider/package_spec.rb +58 -0
- data/spec/unit/provider/remote_file/content_spec.rb +1 -1
- data/spec/unit/provider/service/upstart_service_spec.rb +13 -6
- data/spec/unit/provider/user/solaris_spec.rb +36 -9
- data/spec/unit/provider/user_spec.rb +6 -0
- data/spec/unit/resource/apt_repository_spec.rb +1 -1
- metadata +12 -5
@@ -159,7 +159,7 @@ describe Chef::Provider::RemoteFile::Content do
|
|
159
159
|
|
160
160
|
describe "when there is an array of sources and the first fails" do
|
161
161
|
|
162
|
-
# https://github.com/
|
162
|
+
# https://github.com/chef/chef/pull/1358#issuecomment-40853299
|
163
163
|
def create_exception(exception_class)
|
164
164
|
if [ Net::HTTPServerException, Net::HTTPFatalError ].include? exception_class
|
165
165
|
exception_class.new("message", { "something" => 1 })
|
@@ -278,18 +278,20 @@ describe Chef::Provider::Service::Upstart do
|
|
278
278
|
end
|
279
279
|
|
280
280
|
it "should call the start command if one is specified" do
|
281
|
+
@provider.upstart_service_running = false
|
281
282
|
allow(@new_resource).to receive(:start_command).and_return("/sbin/rsyslog startyousillysally")
|
282
283
|
expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog startyousillysally")
|
283
284
|
@provider.start_service()
|
284
285
|
end
|
285
286
|
|
286
287
|
it "should call '/sbin/start service_name' if no start command is specified" do
|
288
|
+
@provider.upstart_service_running = false
|
287
289
|
expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/start #{@new_resource.service_name}").and_return(shell_out_success)
|
288
290
|
@provider.start_service()
|
289
291
|
end
|
290
292
|
|
291
293
|
it "should not call '/sbin/start service_name' if it is already running" do
|
292
|
-
|
294
|
+
@provider.upstart_service_running = true
|
293
295
|
expect(@provider).not_to receive(:shell_out_with_systems_locale!)
|
294
296
|
@provider.start_service()
|
295
297
|
end
|
@@ -310,13 +312,16 @@ describe Chef::Provider::Service::Upstart do
|
|
310
312
|
@provider.restart_service()
|
311
313
|
end
|
312
314
|
|
313
|
-
it "should call
|
314
|
-
|
315
|
-
expect(@provider).to receive(:
|
315
|
+
it "should call start/sleep/stop if no restart command is specified" do
|
316
|
+
@provider.upstart_service_running = true
|
317
|
+
expect(@provider).to receive(:stop_service)
|
318
|
+
expect(@provider).to receive(:sleep).with(1)
|
319
|
+
expect(@provider).to receive(:start_service)
|
316
320
|
@provider.restart_service()
|
317
321
|
end
|
318
322
|
|
319
323
|
it "should call '/sbin/start service_name' if restart_service is called for a stopped service" do
|
324
|
+
@provider.upstart_service_running = false
|
320
325
|
allow(@current_resource).to receive(:running).and_return(false)
|
321
326
|
expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/start #{@new_resource.service_name}").and_return(shell_out_success)
|
322
327
|
@provider.restart_service()
|
@@ -336,22 +341,24 @@ describe Chef::Provider::Service::Upstart do
|
|
336
341
|
end
|
337
342
|
|
338
343
|
it "should call the stop command if one is specified" do
|
339
|
-
|
344
|
+
@provider.upstart_service_running = true
|
340
345
|
allow(@new_resource).to receive(:stop_command).and_return("/sbin/rsyslog stopyousillysally")
|
341
346
|
expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/rsyslog stopyousillysally")
|
342
347
|
@provider.stop_service()
|
343
348
|
end
|
344
349
|
|
345
350
|
it "should call '/sbin/stop service_name' if no stop command is specified" do
|
346
|
-
|
351
|
+
@provider.upstart_service_running = true
|
347
352
|
expect(@provider).to receive(:shell_out_with_systems_locale!).with("/sbin/stop #{@new_resource.service_name}").and_return(shell_out_success)
|
348
353
|
@provider.stop_service()
|
349
354
|
end
|
350
355
|
|
351
356
|
it "should not call '/sbin/stop service_name' if it is already stopped" do
|
357
|
+
@provider.upstart_service_running = false
|
352
358
|
allow(@current_resource).to receive(:running).and_return(false)
|
353
359
|
expect(@provider).not_to receive(:shell_out_with_systems_locale!).with("/sbin/stop #{@new_resource.service_name}")
|
354
360
|
@provider.stop_service()
|
361
|
+
expect(@upstart_service_running).to be_falsey
|
355
362
|
end
|
356
363
|
end
|
357
364
|
end
|
@@ -99,20 +99,43 @@ describe Chef::Provider::User::Solaris do
|
|
99
99
|
end
|
100
100
|
|
101
101
|
describe "when managing user locked status" do
|
102
|
+
let(:user_lock) { "adam:FOO:::::::" }
|
103
|
+
let(:shadow_file_contents) do
|
104
|
+
%W{
|
105
|
+
user1:LK:::::::
|
106
|
+
#{user_lock}
|
107
|
+
user2:NP:::::::
|
108
|
+
}
|
109
|
+
end
|
110
|
+
|
102
111
|
describe "when determining if the user is locked" do
|
112
|
+
before do
|
113
|
+
allow(IO).to receive(:read).and_return(shadow_file_contents.join("\n"))
|
114
|
+
end
|
115
|
+
|
116
|
+
context "when user does not exist" do
|
117
|
+
let(:user_lock) { "other_user:FOO:::::::" }
|
118
|
+
|
119
|
+
it "should raise a sensible error" do
|
120
|
+
expect { provider.check_lock }.to raise_error(Chef::Exceptions::User)
|
121
|
+
end
|
122
|
+
end
|
103
123
|
|
104
124
|
# locked shadow lines
|
105
125
|
[
|
106
|
-
"adam:LK:::::::",
|
107
126
|
"adam:*LK*:::::::",
|
108
127
|
"adam:*LK*foobar:::::::",
|
109
128
|
"adam:*LK*bahamas10:::::::",
|
129
|
+
"adam:*LK*goonawaLK:::::::",
|
130
|
+
"adam:*LK*LKgir:::::::",
|
110
131
|
"adam:*LK*L....:::::::",
|
111
132
|
].each do |shadow|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
133
|
+
context "for user 'adam' with entry '#{shadow}'" do
|
134
|
+
let(:user_lock) { shadow }
|
135
|
+
|
136
|
+
it "should return true" do
|
137
|
+
expect(provider.check_lock).to eql(true)
|
138
|
+
end
|
116
139
|
end
|
117
140
|
end
|
118
141
|
|
@@ -122,12 +145,16 @@ describe Chef::Provider::User::Solaris do
|
|
122
145
|
"adam:*NP*:::::::",
|
123
146
|
"adam:foobar:::::::",
|
124
147
|
"adam:bahamas10:::::::",
|
148
|
+
"adam:goonawaLK:::::::",
|
149
|
+
"adam:LKgir:::::::",
|
125
150
|
"adam:L...:::::::",
|
126
151
|
].each do |shadow|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
152
|
+
context "for user 'adam' with entry '#{shadow}'" do
|
153
|
+
let(:user_lock) { shadow }
|
154
|
+
|
155
|
+
it "should return false" do
|
156
|
+
expect(provider.check_lock).to eql(false)
|
157
|
+
end
|
131
158
|
end
|
132
159
|
end
|
133
160
|
end
|
@@ -221,6 +221,12 @@ describe Chef::Provider::User do
|
|
221
221
|
it "should return false if the objects are identical" do
|
222
222
|
expect(@provider.compare_user).to eql(false)
|
223
223
|
end
|
224
|
+
|
225
|
+
it "should ignore differences in trailing slash in home paths" do
|
226
|
+
@new_resource.home "/home/adam"
|
227
|
+
@current_resource.home "/home/adam/"
|
228
|
+
expect(@provider.compare_user).to eql(false)
|
229
|
+
end
|
224
230
|
end
|
225
231
|
|
226
232
|
describe "action_create" do
|
@@ -24,7 +24,7 @@ describe Chef::Resource::AptRepository do
|
|
24
24
|
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
25
25
|
let(:resource) { Chef::Resource::AptRepository.new("multiverse", run_context) }
|
26
26
|
|
27
|
-
it "should create a new Chef::Resource::
|
27
|
+
it "should create a new Chef::Resource::AptRepository" do
|
28
28
|
expect(resource).to be_a_kind_of(Chef::Resource)
|
29
29
|
expect(resource).to be_a_kind_of(Chef::Resource::AptRepository)
|
30
30
|
end
|
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: 12.
|
4
|
+
version: 12.16.42
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 12.
|
19
|
+
version: 12.16.42
|
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: 12.
|
26
|
+
version: 12.16.42
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mixlib-cli
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1183,6 +1183,10 @@ files:
|
|
1183
1183
|
- lib/chef/node/attribute_collections.rb
|
1184
1184
|
- lib/chef/node/common_api.rb
|
1185
1185
|
- lib/chef/node/immutable_collections.rb
|
1186
|
+
- lib/chef/node/mixin/deep_merge_cache.rb
|
1187
|
+
- lib/chef/node/mixin/immutablize_array.rb
|
1188
|
+
- lib/chef/node/mixin/immutablize_hash.rb
|
1189
|
+
- lib/chef/node/mixin/state_tracking.rb
|
1186
1190
|
- lib/chef/node_map.rb
|
1187
1191
|
- lib/chef/null_logger.rb
|
1188
1192
|
- lib/chef/org.rb
|
@@ -1835,6 +1839,7 @@ files:
|
|
1835
1839
|
- spec/data/templates/chef-seattle20160930-4388-umeq2c.txt
|
1836
1840
|
- spec/data/templates/seattle.txt
|
1837
1841
|
- spec/data/trusted_certs/example.crt
|
1842
|
+
- spec/data/trusted_certs/example_no_cn.crt
|
1838
1843
|
- spec/data/trusted_certs/intermediate.pem
|
1839
1844
|
- spec/data/trusted_certs/opscode.pem
|
1840
1845
|
- spec/data/trusted_certs/root.pem
|
@@ -1980,6 +1985,7 @@ files:
|
|
1980
1985
|
- spec/integration/knife/serve_spec.rb
|
1981
1986
|
- spec/integration/knife/show_spec.rb
|
1982
1987
|
- spec/integration/knife/upload_spec.rb
|
1988
|
+
- spec/integration/recipes/accumulator_spec.rb
|
1983
1989
|
- spec/integration/recipes/lwrp_inline_resources_spec.rb
|
1984
1990
|
- spec/integration/recipes/lwrp_spec.rb
|
1985
1991
|
- spec/integration/recipes/noop_resource_spec.rb
|
@@ -2328,6 +2334,7 @@ files:
|
|
2328
2334
|
- spec/unit/provider/group/groupadd_spec.rb
|
2329
2335
|
- spec/unit/provider/group/groupmod_spec.rb
|
2330
2336
|
- spec/unit/provider/group/pw_spec.rb
|
2337
|
+
- spec/unit/provider/group/suse_spec.rb
|
2331
2338
|
- spec/unit/provider/group/usermod_spec.rb
|
2332
2339
|
- spec/unit/provider/group/windows_spec.rb
|
2333
2340
|
- spec/unit/provider/group_spec.rb
|
@@ -2580,7 +2587,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2580
2587
|
version: '0'
|
2581
2588
|
requirements: []
|
2582
2589
|
rubyforge_project:
|
2583
|
-
rubygems_version: 2.6.
|
2590
|
+
rubygems_version: 2.6.8
|
2584
2591
|
signing_key:
|
2585
2592
|
specification_version: 4
|
2586
2593
|
summary: A systems integration framework, built to bring the benefits of configuration
|