chef 10.14.2 → 10.14.4.rc.0

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.
Files changed (71) hide show
  1. data/distro/common/html/chef-client.8.html +3 -3
  2. data/distro/common/html/chef-expander.8.html +3 -3
  3. data/distro/common/html/chef-expanderctl.8.html +3 -3
  4. data/distro/common/html/chef-server-webui.8.html +3 -3
  5. data/distro/common/html/chef-server.8.html +3 -3
  6. data/distro/common/html/chef-solo.8.html +3 -3
  7. data/distro/common/html/chef-solr.8.html +3 -3
  8. data/distro/common/html/knife-bootstrap.1.html +3 -3
  9. data/distro/common/html/knife-client.1.html +4 -4
  10. data/distro/common/html/knife-configure.1.html +3 -3
  11. data/distro/common/html/knife-cookbook-site.1.html +3 -3
  12. data/distro/common/html/knife-cookbook.1.html +3 -3
  13. data/distro/common/html/knife-data-bag.1.html +3 -3
  14. data/distro/common/html/knife-environment.1.html +6 -6
  15. data/distro/common/html/knife-exec.1.html +4 -4
  16. data/distro/common/html/knife-index.1.html +4 -4
  17. data/distro/common/html/knife-node.1.html +4 -4
  18. data/distro/common/html/knife-role.1.html +6 -6
  19. data/distro/common/html/knife-search.1.html +3 -3
  20. data/distro/common/html/knife-ssh.1.html +3 -3
  21. data/distro/common/html/knife-status.1.html +3 -3
  22. data/distro/common/html/knife-tag.1.html +4 -4
  23. data/distro/common/html/knife.1.html +3 -3
  24. data/distro/common/html/shef.1.html +7 -7
  25. data/distro/common/man/man1/knife-bootstrap.1 +1 -1
  26. data/distro/common/man/man1/knife-client.1 +1 -1
  27. data/distro/common/man/man1/knife-configure.1 +1 -1
  28. data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
  29. data/distro/common/man/man1/knife-cookbook.1 +1 -1
  30. data/distro/common/man/man1/knife-data-bag.1 +1 -1
  31. data/distro/common/man/man1/knife-environment.1 +1 -1
  32. data/distro/common/man/man1/knife-exec.1 +1 -1
  33. data/distro/common/man/man1/knife-index.1 +1 -1
  34. data/distro/common/man/man1/knife-node.1 +1 -1
  35. data/distro/common/man/man1/knife-role.1 +1 -1
  36. data/distro/common/man/man1/knife-search.1 +1 -1
  37. data/distro/common/man/man1/knife-ssh.1 +1 -1
  38. data/distro/common/man/man1/knife-status.1 +1 -1
  39. data/distro/common/man/man1/knife-tag.1 +1 -1
  40. data/distro/common/man/man1/knife.1 +1 -1
  41. data/distro/common/man/man1/shef.1 +1 -1
  42. data/distro/common/man/man8/chef-client.8 +1 -1
  43. data/distro/common/man/man8/chef-expander.8 +1 -1
  44. data/distro/common/man/man8/chef-expanderctl.8 +1 -1
  45. data/distro/common/man/man8/chef-server-webui.8 +1 -1
  46. data/distro/common/man/man8/chef-server.8 +1 -1
  47. data/distro/common/man/man8/chef-solo.8 +1 -1
  48. data/distro/common/man/man8/chef-solr.8 +1 -1
  49. data/lib/chef/config.rb +1 -0
  50. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +12 -3
  51. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +0 -1
  52. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +1 -1
  53. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +5 -5
  54. data/lib/chef/knife/data_bag_edit.rb +1 -1
  55. data/lib/chef/knife/ssh.rb +15 -4
  56. data/lib/chef/platform.rb +1 -1
  57. data/lib/chef/provider/deploy.rb +9 -5
  58. data/lib/chef/provider/http_request.rb +15 -12
  59. data/lib/chef/version.rb +1 -1
  60. data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -0
  61. data/spec/support/shared/unit/api_error_inspector.rb +14 -2
  62. data/spec/unit/config_spec.rb +17 -5
  63. data/spec/unit/cookbook_loader_spec.rb +5 -4
  64. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +58 -0
  65. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +18 -0
  66. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +30 -0
  67. data/spec/unit/knife/ssh_spec.rb +63 -24
  68. data/spec/unit/platform_spec.rb +15 -3
  69. data/spec/unit/provider/deploy_spec.rb +45 -10
  70. data/spec/unit/provider/http_request_spec.rb +6 -0
  71. metadata +14 -9
@@ -154,19 +154,31 @@ describe Chef::Platform do
154
154
  node.platform_version("8.5")
155
155
  Chef::Platform.find_provider_for_node(node, kitty).should eql(Chef::Provider::Cat)
156
156
  end
157
-
158
- it "returns a provider object given a Chef::Resource object which has a valid run context" do
157
+
158
+ def setup_file_resource
159
159
  node = Chef::Node.new
160
160
  node.platform("mac_os_x")
161
161
  node.platform_version("9.2.2")
162
162
  run_context = Chef::RunContext.new(node, {}, @events)
163
- file = Chef::Resource::File.new("whateva", run_context)
163
+ [ Chef::Resource::File.new("whateva", run_context), run_context ]
164
+ end
165
+
166
+ it "returns a provider object given a Chef::Resource object which has a valid run context and an action" do
167
+ file, run_context = setup_file_resource
164
168
  provider = Chef::Platform.provider_for_resource(file, :foo)
165
169
  provider.should be_an_instance_of(Chef::Provider::File)
166
170
  provider.new_resource.should equal(file)
167
171
  provider.run_context.should equal(run_context)
168
172
  end
169
173
 
174
+ it "returns a provider object given a Chef::Resource object which has a valid run context without an action" do
175
+ file, run_context = setup_file_resource
176
+ provider = Chef::Platform.provider_for_resource(file)
177
+ provider.should be_an_instance_of(Chef::Provider::File)
178
+ provider.new_resource.should equal(file)
179
+ provider.run_context.should equal(run_context)
180
+ end
181
+
170
182
  it "raises an error when trying to find the provider for a resource with no run context" do
171
183
  file = Chef::Resource::File.new("whateva")
172
184
  lambda {Chef::Platform.provider_for_resource(file)}.should raise_error(ArgumentError)
@@ -43,20 +43,32 @@ describe Chef::Provider::Deploy do
43
43
  @provider.should respond_to(:action_rollback)
44
44
  end
45
45
 
46
- it "creates deploy_to dir if it does not exist yet" do
47
- FileUtils.should_receive(:mkdir_p).with(@resource.deploy_to)
48
- FileUtils.should_receive(:mkdir_p).with(@resource.shared_path)
49
- ::File.stub!(:directory?).and_return(false)
50
- @provider.stub(:copy_cached_repo)
51
- @provider.stub(:update_cached_repo)
52
- @provider.stub(:symlink)
53
- @provider.stub(:migrate)
54
- @provider.deploy
55
- @provider.converge
46
+ context "when the deploy_to dir does not exist yet" do
47
+ before do
48
+ FileUtils.should_receive(:mkdir_p).with(@resource.deploy_to).ordered
49
+ FileUtils.should_receive(:mkdir_p).with(@resource.shared_path).ordered
50
+ ::Dir.should_receive(:chdir).with(@expected_release_dir).exactly(4).times
51
+ ::File.stub!(:directory?).and_return(false)
52
+ @provider.stub(:symlink)
53
+ @provider.stub(:migrate)
54
+ @provider.stub(:copy_cached_repo)
55
+ end
56
+
57
+ it "creates deploy_to dir" do
58
+ @provider.stub(:update_cached_repo)
59
+ @provider.deploy
60
+ end
61
+
62
+ it "creates deploy_to dir before calling update_cached_repo (CHEF-3435)" do
63
+ @provider.send(:converge_actions).should_receive(:empty?).and_return(false)
64
+ @provider.should_receive(:update_cached_repo).ordered
65
+ @provider.deploy
66
+ end
56
67
  end
57
68
 
58
69
  it "does not create deploy_to dir if it exists" do
59
70
  ::File.stub!(:directory?).and_return(true)
71
+ ::Dir.should_receive(:chdir).with(@expected_release_dir).exactly(4).times
60
72
  FileUtils.should_not_receive(:mkdir_p).with(@resource.deploy_to)
61
73
  FileUtils.should_not_receive(:mkdir_p).with(@resource.shared_path)
62
74
  @provider.stub(:copy_cached_repo)
@@ -68,6 +80,7 @@ describe Chef::Provider::Deploy do
68
80
  end
69
81
 
70
82
  it "ensures the deploy_to dir ownership after the verfication that it exists" do
83
+ ::Dir.should_receive(:chdir).with(@expected_release_dir).exactly(4).times
71
84
  @provider.should_receive(:verify_directories_exist).ordered
72
85
  @provider.should_receive(:enforce_ownership).ordered
73
86
  @provider.stub(:copy_cached_repo)
@@ -281,11 +294,33 @@ describe Chef::Provider::Deploy do
281
294
  it "skips an eval callback if the file doesn't exist" do
282
295
  barbaz_callback = @expected_release_dir + "/deploy/barbaz.rb"
283
296
  ::File.should_receive(:exist?).with(barbaz_callback).and_return(false)
297
+ ::Dir.should_receive(:chdir).with(@expected_release_dir).and_yield
284
298
  @provider.should_not_receive(:from_file)
285
299
  @provider.callback(:barbaz, nil)
286
300
  @provider.converge
287
301
  end
288
302
 
303
+ # CHEF-3449 #converge_by is called in #recipe_eval and must happen in sequence
304
+ # with the other calls to #converge_by to keep the train on the tracks
305
+ it "evaluates a callback file before the corresponding step" do
306
+ ::Dir.should_receive(:chdir).with(@expected_release_dir).exactly(4).times.and_yield
307
+ @provider.should_receive(:verify_directories_exist)
308
+ @provider.should_receive(:update_cached_repo)
309
+ @provider.should_receive(:enforce_ownership)
310
+ @provider.should_receive(:copy_cached_repo)
311
+ @provider.should_receive(:install_gems)
312
+ @provider.should_receive(:enforce_ownership)
313
+ @provider.should_receive(:converge_by).ordered # before_migrate
314
+ @provider.should_receive(:migrate).ordered
315
+ @provider.should_receive(:converge_by).ordered # before_symlink
316
+ @provider.should_receive(:symlink).ordered
317
+ @provider.should_receive(:converge_by).ordered # before_restart
318
+ @provider.should_receive(:restart).ordered
319
+ @provider.should_receive(:converge_by).ordered # after_restart
320
+ @provider.should_receive(:cleanup!)
321
+ @provider.deploy
322
+ end
323
+
289
324
  it "gets a SCM provider as specified by its resource" do
290
325
  @provider.scm_provider.should be_an_instance_of(Chef::Provider::Git)
291
326
  @provider.scm_provider.new_resource.destination.should eql("/my/deploy/dir/shared/cached-copy")
@@ -167,6 +167,12 @@ describe Chef::Provider::HttpRequest do
167
167
  @rest.should_receive(:run_request).with(:HEAD, @rest.create_url, @new_resource.headers, false, 10, false)
168
168
  @provider.run_action(:head)
169
169
  end
170
+
171
+ it "doesn't call converge_by if HEAD does not return modified" do
172
+ @rest.should_receive(:run_request).and_return(false)
173
+ @provider.should_not_receive(:converge_by)
174
+ @provider.run_action(:head)
175
+ end
170
176
  end
171
177
  end
172
178
  end
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef
3
3
  version: !ruby/object:Gem::Version
4
- hash: 115
5
- prerelease:
4
+ hash: -3387315844
5
+ prerelease: 8
6
6
  segments:
7
7
  - 10
8
8
  - 14
9
- - 2
10
- version: 10.14.2
9
+ - 4
10
+ - rc
11
+ - 0
12
+ version: 10.14.4.rc.0
11
13
  platform: ruby
12
14
  authors:
13
15
  - Adam Jacob
@@ -15,7 +17,7 @@ autorequire:
15
17
  bindir: bin
16
18
  cert_chain: []
17
19
 
18
- date: 2012-09-10 00:00:00 Z
20
+ date: 2012-09-24 00:00:00 Z
19
21
  dependencies:
20
22
  - !ruby/object:Gem::Dependency
21
23
  name: mixlib-config
@@ -1290,6 +1292,7 @@ files:
1290
1292
  - spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt
1291
1293
  - spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt
1292
1294
  - spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt
1295
+ - spec/data/cookbooks/angrybash/recipes/default.rb
1293
1296
  - spec/data/cookbooks/apache2/recipes/default.rb
1294
1297
  - spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl
1295
1298
  - spec/data/cookbooks/java/files/default/java.response
@@ -1410,12 +1413,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1410
1413
  required_rubygems_version: !ruby/object:Gem::Requirement
1411
1414
  none: false
1412
1415
  requirements:
1413
- - - ">="
1416
+ - - ">"
1414
1417
  - !ruby/object:Gem::Version
1415
- hash: 3
1418
+ hash: 25
1416
1419
  segments:
1417
- - 0
1418
- version: "0"
1420
+ - 1
1421
+ - 3
1422
+ - 1
1423
+ version: 1.3.1
1419
1424
  requirements: []
1420
1425
 
1421
1426
  rubyforge_project: