chef 12.0.0.alpha.0-x86-mingw32 → 12.0.0.alpha.1-x86-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.
Files changed (207) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +3 -5
  3. data/lib/chef/api_client.rb +1 -1
  4. data/lib/chef/application.rb +16 -8
  5. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  6. data/lib/chef/chef_fs/command_line.rb +1 -1
  7. data/lib/chef/chef_fs/file_system.rb +1 -1
  8. data/lib/chef/chef_fs/file_system/acl_entry.rb +1 -1
  9. data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +3 -3
  10. data/lib/chef/chef_fs/file_system/cookbook_file.rb +2 -2
  11. data/lib/chef/chef_fs/file_system/rest_list_dir.rb +2 -2
  12. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +4 -4
  13. data/lib/chef/config.rb +6 -5
  14. data/lib/chef/config_fetcher.rb +1 -1
  15. data/lib/chef/cookbook/cookbook_version_loader.rb +126 -43
  16. data/lib/chef/cookbook/metadata.rb +102 -53
  17. data/lib/chef/cookbook/syntax_check.rb +1 -1
  18. data/lib/chef/cookbook_loader.rb +62 -14
  19. data/lib/chef/cookbook_site_streaming_uploader.rb +12 -1
  20. data/lib/chef/cookbook_version.rb +13 -4
  21. data/lib/chef/data_bag.rb +28 -15
  22. data/lib/chef/data_bag_item.rb +5 -7
  23. data/lib/chef/digester.rb +5 -9
  24. data/lib/chef/dsl/recipe.rb +14 -0
  25. data/lib/chef/encrypted_data_bag_item.rb +1 -0
  26. data/lib/chef/encrypted_data_bag_item/assertions.rb +57 -0
  27. data/lib/chef/encrypted_data_bag_item/decryptor.rb +52 -28
  28. data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +37 -0
  29. data/lib/chef/encrypted_data_bag_item/encryption_failure.rb +22 -0
  30. data/lib/chef/encrypted_data_bag_item/encryptor.rb +79 -8
  31. data/lib/chef/environment.rb +1 -3
  32. data/lib/chef/exceptions.rb +18 -3
  33. data/lib/chef/formatters/base.rb +7 -0
  34. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +1 -1
  35. data/lib/chef/handler/json_file.rb +0 -1
  36. data/lib/chef/http/json_output.rb +1 -1
  37. data/lib/chef/json_compat.rb +24 -6
  38. data/lib/chef/knife/bootstrap.rb +2 -2
  39. data/lib/chef/knife/client_delete.rb +1 -1
  40. data/lib/chef/knife/cookbook_site_download.rb +1 -1
  41. data/lib/chef/knife/cookbook_site_list.rb +1 -1
  42. data/lib/chef/knife/cookbook_site_search.rb +1 -1
  43. data/lib/chef/knife/cookbook_site_share.rb +2 -2
  44. data/lib/chef/knife/cookbook_site_show.rb +3 -3
  45. data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
  46. data/lib/chef/knife/core/node_editor.rb +2 -3
  47. data/lib/chef/knife/core/ui.rb +2 -2
  48. data/lib/chef/knife/deps.rb +2 -3
  49. data/lib/chef/mixin/shell_out.rb +1 -1
  50. data/lib/chef/mixin/windows_architecture_helper.rb +1 -0
  51. data/lib/chef/node.rb +1 -2
  52. data/lib/chef/platform/provider_mapping.rb +33 -6
  53. data/lib/chef/provider.rb +0 -2
  54. data/lib/chef/provider/cookbook_file/content.rb +1 -1
  55. data/lib/chef/provider/cron.rb +11 -0
  56. data/lib/chef/provider/deploy.rb +3 -2
  57. data/lib/chef/provider/deploy/revision.rb +2 -2
  58. data/lib/chef/provider/env.rb +1 -1
  59. data/lib/chef/provider/env/windows.rb +5 -9
  60. data/lib/chef/provider/file.rb +84 -33
  61. data/lib/chef/provider/git.rb +2 -1
  62. data/lib/chef/provider/group/aix.rb +17 -2
  63. data/lib/chef/provider/group/dscl.rb +27 -9
  64. data/lib/chef/provider/group/pw.rb +8 -1
  65. data/lib/chef/provider/http_request.rb +4 -4
  66. data/lib/chef/provider/log.rb +4 -14
  67. data/lib/chef/provider/mount/mount.rb +2 -2
  68. data/lib/chef/provider/package/ips.rb +17 -23
  69. data/lib/chef/provider/package/paludis.rb +2 -2
  70. data/lib/chef/provider/package/rpm.rb +2 -2
  71. data/lib/chef/provider/package/rubygems.rb +2 -0
  72. data/lib/chef/provider/package/yum.rb +2 -0
  73. data/lib/chef/provider/package/zypper.rb +1 -1
  74. data/lib/chef/provider/remote_file/cache_control_data.rb +2 -2
  75. data/lib/chef/provider/service/windows.rb +87 -21
  76. data/lib/chef/provider/user/aix.rb +95 -0
  77. data/lib/chef/provider/user/dscl.rb +544 -156
  78. data/lib/chef/provider/user/useradd.rb +1 -0
  79. data/lib/chef/providers.rb +1 -0
  80. data/lib/chef/resource.rb +4 -3
  81. data/lib/chef/resource/freebsd_package.rb +10 -2
  82. data/lib/chef/resource/paludis_package.rb +1 -0
  83. data/lib/chef/resource/scm.rb +10 -0
  84. data/lib/chef/resource/user.rb +27 -0
  85. data/lib/chef/resource/windows_service.rb +53 -0
  86. data/lib/chef/resource_collection.rb +23 -12
  87. data/lib/chef/resource_reporter.rb +10 -10
  88. data/lib/chef/resources.rb +1 -0
  89. data/lib/chef/role.rb +3 -3
  90. data/lib/chef/run_list.rb +6 -3
  91. data/lib/chef/user.rb +1 -1
  92. data/lib/chef/util/diff.rb +1 -2
  93. data/lib/chef/version.rb +1 -1
  94. data/lib/chef/version_constraint.rb +4 -4
  95. data/spec/data/cookbooks/angrybash/metadata.rb +2 -0
  96. data/spec/data/cookbooks/apache2/metadata.rb +2 -0
  97. data/spec/data/cookbooks/borken/metadata.rb +2 -0
  98. data/spec/data/cookbooks/ignorken/metadata.rb +2 -0
  99. data/spec/data/cookbooks/java/metadata.rb +2 -0
  100. data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +4 -0
  101. data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +8 -0
  102. data/spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb +8 -0
  103. data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +2 -0
  104. data/spec/data/cookbooks/preseed/metadata.rb +2 -0
  105. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +4 -0
  106. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +13 -0
  107. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/recipes/default.rb +8 -0
  108. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +4 -0
  109. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/metadata.rb +10 -0
  110. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/recipes/default.rb +8 -0
  111. data/spec/data/mac_users/10.7-8.plist.xml +559 -0
  112. data/spec/data/mac_users/10.7-8.shadow.xml +11 -0
  113. data/spec/data/mac_users/10.7.plist.xml +559 -0
  114. data/spec/data/mac_users/10.7.shadow.xml +11 -0
  115. data/spec/data/mac_users/10.8.plist.xml +559 -0
  116. data/spec/data/mac_users/10.8.shadow.xml +21 -0
  117. data/spec/data/mac_users/10.9.plist.xml +560 -0
  118. data/spec/data/mac_users/10.9.shadow.xml +21 -0
  119. data/spec/data/object_loader/environments/test.json +2 -0
  120. data/spec/data/object_loader/environments/test_json_class.json +2 -0
  121. data/spec/data/object_loader/nodes/test.json +2 -0
  122. data/spec/data/object_loader/nodes/test_json_class.json +2 -0
  123. data/spec/data/object_loader/roles/test.json +2 -0
  124. data/spec/data/object_loader/roles/test_json_class.json +2 -0
  125. data/spec/functional/resource/bff_spec.rb +1 -1
  126. data/spec/functional/resource/cron_spec.rb +20 -1
  127. data/spec/functional/resource/env_spec.rb +137 -0
  128. data/spec/functional/resource/group_spec.rb +7 -5
  129. data/spec/functional/resource/remote_file_spec.rb +12 -1
  130. data/spec/functional/resource/user/dscl_spec.rb +198 -0
  131. data/spec/functional/resource/{user_spec.rb → user/useradd_spec.rb} +175 -37
  132. data/spec/integration/client/client_spec.rb +6 -4
  133. data/spec/integration/client/ipv6_spec.rb +16 -14
  134. data/spec/integration/knife/chef_fs_data_store_spec.rb +57 -46
  135. data/spec/integration/knife/chef_repo_path_spec.rb +105 -78
  136. data/spec/integration/knife/chef_repository_file_system_spec.rb +100 -84
  137. data/spec/integration/knife/chefignore_spec.rb +76 -46
  138. data/spec/integration/knife/common_options_spec.rb +16 -21
  139. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +3 -3
  140. data/spec/integration/knife/delete_spec.rb +66 -46
  141. data/spec/integration/knife/deps_spec.rb +145 -94
  142. data/spec/integration/knife/diff_spec.rb +176 -110
  143. data/spec/integration/knife/download_spec.rb +229 -133
  144. data/spec/integration/knife/list_spec.rb +62 -54
  145. data/spec/integration/knife/raw_spec.rb +24 -9
  146. data/spec/integration/knife/redirection_spec.rb +2 -2
  147. data/spec/integration/knife/serve_spec.rb +2 -2
  148. data/spec/integration/knife/show_spec.rb +32 -26
  149. data/spec/integration/knife/upload_spec.rb +308 -165
  150. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +10 -8
  151. data/spec/integration/solo/solo_spec.rb +22 -11
  152. data/spec/spec_helper.rb +3 -0
  153. data/spec/support/lib/chef/resource/zen_follower.rb +46 -0
  154. data/spec/support/platform_helpers.rb +12 -0
  155. data/spec/support/shared/functional/file_resource.rb +10 -0
  156. data/spec/support/shared/integration/chef_zero_support.rb +130 -0
  157. data/spec/support/shared/integration/integration_helper.rb +100 -98
  158. data/spec/support/shared/integration/knife_support.rb +0 -1
  159. data/spec/support/shared/unit/provider/file.rb +6 -4
  160. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +10 -1
  161. data/spec/unit/api_client/registration_spec.rb +83 -74
  162. data/spec/unit/application_spec.rb +32 -9
  163. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +179 -0
  164. data/spec/unit/cookbook/metadata_spec.rb +190 -150
  165. data/spec/unit/cookbook/syntax_check_spec.rb +3 -2
  166. data/spec/unit/cookbook_loader_spec.rb +114 -53
  167. data/spec/unit/{cookbook_site_streaming_uploader.rb → cookbook_site_streaming_uploader_spec.rb} +21 -1
  168. data/spec/unit/data_bag_spec.rb +88 -13
  169. data/spec/unit/deprecation_spec.rb +1 -2
  170. data/spec/unit/encrypted_data_bag_item_spec.rb +145 -9
  171. data/spec/unit/environment_spec.rb +1 -1
  172. data/spec/unit/formatters/base_spec.rb +48 -0
  173. data/spec/unit/json_compat_spec.rb +48 -17
  174. data/spec/unit/knife/client_delete_spec.rb +4 -4
  175. data/spec/unit/knife/client_show_spec.rb +15 -5
  176. data/spec/unit/knife/cookbook_site_download_spec.rb +1 -1
  177. data/spec/unit/knife/cookbook_site_share_spec.rb +3 -3
  178. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -2
  179. data/spec/unit/knife/data_bag_show_spec.rb +23 -14
  180. data/spec/unit/knife/node_show_spec.rb +32 -15
  181. data/spec/unit/knife/role_show_spec.rb +59 -0
  182. data/spec/unit/platform_spec.rb +10 -0
  183. data/spec/unit/provider/deploy_spec.rb +4 -0
  184. data/spec/unit/provider/env_spec.rb +19 -0
  185. data/spec/unit/provider/git_spec.rb +22 -2
  186. data/spec/unit/provider/group/dscl_spec.rb +38 -1
  187. data/spec/unit/provider/group/pw_spec.rb +2 -2
  188. data/spec/unit/provider/http_request_spec.rb +8 -8
  189. data/spec/unit/provider/log_spec.rb +33 -53
  190. data/spec/unit/provider/mount/mount_spec.rb +12 -3
  191. data/spec/unit/provider/package/ips_spec.rb +96 -63
  192. data/spec/unit/provider/package/paludis_spec.rb +5 -5
  193. data/spec/unit/provider/package/rpm_spec.rb +12 -0
  194. data/spec/unit/provider/package/zypper_spec.rb +28 -16
  195. data/spec/unit/provider/service/windows_spec.rb +77 -17
  196. data/spec/unit/provider/user/dscl_spec.rb +659 -264
  197. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  198. data/spec/unit/recipe_spec.rb +41 -0
  199. data/spec/unit/resource/scm_spec.rb +11 -0
  200. data/spec/unit/resource/user_spec.rb +4 -0
  201. data/spec/unit/resource/windows_service_spec.rb +46 -0
  202. data/spec/unit/resource_collection_spec.rb +33 -0
  203. data/spec/unit/resource_reporter_spec.rb +48 -0
  204. data/spec/unit/resource_spec.rb +9 -2
  205. data/spec/unit/role_spec.rb +6 -0
  206. data/spec/unit/version_constraint_spec.rb +28 -0
  207. metadata +61 -4
@@ -19,6 +19,7 @@
19
19
  #
20
20
 
21
21
  require 'spec_helper'
22
+ require 'chef/provider/user/useradd'
22
23
 
23
24
  describe Chef::Provider::User::Useradd do
24
25
 
@@ -182,7 +182,48 @@ describe Chef::Recipe do
182
182
  zm_resource # force let binding evaluation
183
183
  run_context.resource_collection.resources(:zen_master => "klopp").should == zm_resource
184
184
  end
185
+ end
186
+
187
+ describe "creating a resource with short name" do
188
+ # zen_follower resource has this:
189
+ # provides :follower, :on_platforms => ["zen"]
190
+ before do
191
+ node.stub(:[]) do |key|
192
+ case key
193
+ when :platform
194
+ :zen
195
+ when :platform_version
196
+ "1.0.0"
197
+ else
198
+ nil
199
+ end
200
+ end
201
+ end
202
+
203
+ let(:resource_follower) do
204
+ recipe.declare_resource(:follower, "srst") do
205
+ master "none"
206
+ end
207
+ end
185
208
 
209
+ it "defines the resource using the declaration name with short name" do
210
+ resource_follower
211
+ run_context.resource_collection.lookup("follower[srst]").should_not be_nil
212
+ end
213
+ end
214
+
215
+ describe "creating a resource with a long name" do
216
+ let(:resource_zn_follower) do
217
+ recipe.declare_resource(:zen_follower, "srst") do
218
+ master "none"
219
+ end
220
+ end
221
+
222
+
223
+ it "defines the resource using the declaration name with long name" do
224
+ resource_zn_follower
225
+ run_context.resource_collection.lookup("zen_follower[srst]").should_not be_nil
226
+ end
186
227
  end
187
228
 
188
229
  describe "when attempting to create a resource of an invalid type" do
@@ -147,6 +147,10 @@ describe Chef::Resource::Scm do
147
147
  @resource.ssh_wrapper.should be_nil
148
148
  end
149
149
 
150
+ it "defaults to nil for the environment" do
151
+ @resource.environment.should be_nil
152
+ end
153
+
150
154
  describe "when it has a timeout attribute" do
151
155
  let(:ten_seconds) { 10 }
152
156
  before { @resource.timeout(ten_seconds) }
@@ -179,4 +183,11 @@ describe Chef::Resource::Scm do
179
183
  end
180
184
  end
181
185
 
186
+ describe "when it has a environment attribute" do
187
+ let(:test_environment) { {'CHEF_ENV' => '/tmp' } }
188
+ before { @resource.environment(test_environment) }
189
+ it "stores this environment" do
190
+ @resource.environment.should == test_environment
191
+ end
192
+ end
182
193
  end
@@ -54,6 +54,10 @@ describe Chef::Resource::User, "initialize" do
54
54
  @resource.supports[:non_unique].should eql(false)
55
55
  end
56
56
 
57
+ it "should set force to false" do
58
+ @resource.force.should eql(false)
59
+ end
60
+
57
61
  %w{create remove modify manage lock unlock}.each do |action|
58
62
  it "should allow action #{action}" do
59
63
  @resource.allowed_actions.detect { |a| a == action.to_sym }.should eql(action.to_sym)
@@ -0,0 +1,46 @@
1
+ #
2
+ # Author:: Bryan McLellan <btm@loftninjas.org>
3
+ # Copyright:: Copyright (c) 2014 Chef Software, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require 'spec_helper'
20
+
21
+ describe Chef::Resource::WindowsService, "initialize", :windows_only do
22
+
23
+ let(:resource) { Chef::Resource::WindowsService.new("BITS") }
24
+
25
+ it "returns a Chef::Resource::WindowsService" do
26
+ expect(resource).to be_a_kind_of(Chef::Resource::WindowsService)
27
+ end
28
+
29
+ it "sets the resource_name to :windows_service" do
30
+ expect(resource.resource_name).to eql(:windows_service)
31
+ end
32
+
33
+ it "sets the provider to Chef::Provider::Service::Windows" do
34
+ expect(resource.provider).to eql(Chef::Provider::Service::Windows)
35
+ end
36
+
37
+ it "supports setting startup_type" do
38
+ resource.startup_type(:manual)
39
+ expect(resource.startup_type).to eql(:manual)
40
+ end
41
+
42
+ it "allows the action to be 'configure_startup'" do
43
+ resource.action :configure_startup
44
+ resource.action.should == [:configure_startup]
45
+ end
46
+ end
@@ -88,6 +88,39 @@ describe Chef::ResourceCollection do
88
88
  end
89
89
  end
90
90
 
91
+ describe "insert_at" do
92
+ it "should accept only Chef::Resources" do
93
+ lambda { @rc.insert_at(0, @resource, @resource) }.should_not raise_error
94
+ lambda { @rc.insert_at(0, "string") }.should raise_error
95
+ lambda { @rc.insert_at(0, @resource, "string") }.should raise_error
96
+ end
97
+
98
+ it "should toss an error if it receives a bad index" do
99
+ @rc.insert_at(10, @resource)
100
+ end
101
+
102
+ it "should insert resources at the beginning when asked" do
103
+ @rc.insert(Chef::Resource::ZenMaster.new('1'))
104
+ @rc.insert(Chef::Resource::ZenMaster.new('2'))
105
+ @rc.insert_at(0, Chef::Resource::ZenMaster.new('X'))
106
+ @rc.all_resources.map { |r| r.name }.should == [ 'X', '1', '2' ]
107
+ end
108
+
109
+ it "should insert resources in the middle when asked" do
110
+ @rc.insert(Chef::Resource::ZenMaster.new('1'))
111
+ @rc.insert(Chef::Resource::ZenMaster.new('2'))
112
+ @rc.insert_at(1, Chef::Resource::ZenMaster.new('X'))
113
+ @rc.all_resources.map { |r| r.name }.should == [ '1', 'X', '2' ]
114
+ end
115
+
116
+ it "should insert resources at the end when asked" do
117
+ @rc.insert(Chef::Resource::ZenMaster.new('1'))
118
+ @rc.insert(Chef::Resource::ZenMaster.new('2'))
119
+ @rc.insert_at(2, Chef::Resource::ZenMaster.new('X'))
120
+ @rc.all_resources.map { |r| r.name }.should == [ '1', '2', 'X' ]
121
+ end
122
+ end
123
+
91
124
  describe "each" do
92
125
  it "should allow you to iterate over every resource in the collection" do
93
126
  load_up_resources
@@ -21,6 +21,7 @@
21
21
 
22
22
  require File.expand_path("../../spec_helper", __FILE__)
23
23
  require 'chef/resource_reporter'
24
+ require 'socket'
24
25
 
25
26
  describe Chef::ResourceReporter do
26
27
  before(:all) do
@@ -707,5 +708,52 @@ describe Chef::ResourceReporter do
707
708
  @resource_reporter.run_completed(@node)
708
709
  end
709
710
  end
711
+
712
+ context "when data report post is enabled and the server response fails" do
713
+ before do
714
+ @enable_reporting_url_fatals = Chef::Config[:enable_reporting_url_fatals]
715
+ Chef::Config[:enable_reporting_url_fatals] = true
716
+ # this call doesn't matter for this context
717
+ @rest_client.stub(:create_url)
718
+ end
719
+
720
+ after do
721
+ Chef::Config[:enable_reporting_url_fatals] = @enable_reporting_url_fatals
722
+ end
723
+
724
+ it "should log 4xx errors" do
725
+ response = Net::HTTPClientError.new("forbidden", "403", "Forbidden")
726
+ error = Net::HTTPServerException.new("403 message", response)
727
+ @rest_client.stub(:raw_http_request).and_raise(error)
728
+ Chef::Log.should_receive(:error).with(/403/)
729
+
730
+ @resource_reporter.post_reporting_data
731
+ end
732
+
733
+ it "should log error 5xx errors" do
734
+ response = Net::HTTPServerError.new("internal error", "500", "Internal Server Error")
735
+ error = Net::HTTPFatalError.new("500 message", response)
736
+ @rest_client.stub(:raw_http_request).and_raise(error)
737
+ Chef::Log.should_receive(:error).with(/500/)
738
+
739
+ @resource_reporter.post_reporting_data
740
+ end
741
+
742
+ it "should log if a socket error happens" do
743
+ @rest_client.stub(:raw_http_request).and_raise(SocketError.new("test socket error"))
744
+ Chef::Log.should_receive(:error).with(/test socket error/)
745
+
746
+ @resource_reporter.post_reporting_data
747
+
748
+ end
749
+
750
+ it "should raise if an unkwown error happens" do
751
+ @rest_client.stub(:raw_http_request).and_raise(Exception.new)
752
+
753
+ lambda {
754
+ @resource_reporter.post_reporting_data
755
+ }.should raise_error(Exception)
756
+ end
757
+ end
710
758
  end
711
759
  end
@@ -344,7 +344,7 @@ describe Chef::Resource do
344
344
  expected_keys = [ :allowed_actions, :params, :provider, :updated,
345
345
  :updated_by_last_action, :before, :supports,
346
346
  :noop, :ignore_failure, :name, :source_line,
347
- :action, :retries, :retry_delay, :elapsed_time,
347
+ :action, :retries, :retry_delay, :elapsed_time,
348
348
  :guard_interpreter, :sensitive ]
349
349
  (hash.keys - expected_keys).should == []
350
350
  (expected_keys - hash.keys).should == []
@@ -527,6 +527,13 @@ describe Chef::Resource do
527
527
  snitch_var2.should be_false
528
528
  end
529
529
 
530
+ it "reports 0 elapsed time if actual elapsed time is < 0" do
531
+ expected = Time.now
532
+ Time.stub(:now).and_return(expected, expected - 1)
533
+ @resource.run_action(:purr)
534
+ @resource.elapsed_time.should == 0
535
+ end
536
+
530
537
  describe "guard_interpreter attribute" do
531
538
  let(:resource) { @resource }
532
539
 
@@ -788,7 +795,7 @@ describe Chef::Resource do
788
795
  before(:each) do
789
796
  @resource_file = Chef::Resource::File.new("/nonexistent/CHEF-5098/file", @run_context)
790
797
  @action = :create
791
- end
798
+ end
792
799
 
793
800
  def compiled_resource_data(resource, action, err)
794
801
  error_inspector = Chef::Formatters::ErrorInspectors::ResourceFailureInspector.new(resource, action, err)
@@ -296,6 +296,12 @@ EOR
296
296
  File.should_not_receive(:exists?)
297
297
  lambda {@role.class.from_disk("lolcat")}.should raise_error(Chef::Exceptions::DuplicateRole)
298
298
  end
299
+
300
+ it "should not raise an exception if two files exist with a similar name" do
301
+ Dir.should_receive(:glob).and_return(["#{Chef::Config[:role_path]}/memes/lolcat.rb", "#{Chef::Config[:role_path]}/super_lolcat.rb"])
302
+ File.should_not_receive(:exists?)
303
+ lambda {@role.class.from_disk("lolcat")}.should_not raise_error(Chef::Exceptions::DuplicateRole)
304
+ end
299
305
  end
300
306
 
301
307
  describe "when loading from disk and role_path is an array" do
@@ -148,4 +148,32 @@ describe Chef::VersionConstraint do
148
148
  vc.should_not include "0.3.0"
149
149
  end
150
150
  end
151
+
152
+ describe 'to_s' do
153
+ it 'shows a patch-level if one is given' do
154
+ vc = Chef::VersionConstraint.new '~> 1.2.0'
155
+
156
+ vc.to_s.should == '~> 1.2.0'
157
+ end
158
+
159
+ it 'shows no patch-level if one is not given' do
160
+ vc = Chef::VersionConstraint.new '~> 1.2'
161
+
162
+ vc.to_s.should == '~> 1.2'
163
+ end
164
+ end
165
+
166
+ describe 'inspect' do
167
+ it 'shows a patch-level if one is given' do
168
+ vc = Chef::VersionConstraint.new '~> 1.2.0'
169
+
170
+ vc.inspect.should == '(~> 1.2.0)'
171
+ end
172
+
173
+ it 'shows no patch-level if one is not given' do
174
+ vc = Chef::VersionConstraint.new '~> 1.2'
175
+
176
+ vc.inspect.should == '(~> 1.2)'
177
+ end
178
+ end
151
179
  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.0.0.alpha.0
4
+ version: 12.0.0.alpha.1
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-30 00:00:00.000000000 Z
11
+ date: 2014-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-config
@@ -101,6 +101,9 @@ dependencies:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '1.0'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 1.0.2
104
107
  type: :runtime
105
108
  prerelease: false
106
109
  version_requirements: !ruby/object:Gem::Requirement
@@ -108,6 +111,9 @@ dependencies:
108
111
  - - "~>"
109
112
  - !ruby/object:Gem::Version
110
113
  version: '1.0'
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 1.0.2
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: net-ssh
113
119
  requirement: !ruby/object:Gem::Requirement
@@ -218,6 +224,20 @@ dependencies:
218
224
  - - "~>"
219
225
  - !ruby/object:Gem::Version
220
226
  version: '0.9'
227
+ - !ruby/object:Gem::Dependency
228
+ name: plist
229
+ requirement: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - "~>"
232
+ - !ruby/object:Gem::Version
233
+ version: 3.1.0
234
+ type: :runtime
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - "~>"
239
+ - !ruby/object:Gem::Version
240
+ version: 3.1.0
221
241
  - !ruby/object:Gem::Dependency
222
242
  name: rack
223
243
  requirement: !ruby/object:Gem::Requirement
@@ -796,8 +816,11 @@ files:
796
816
  - lib/chef/dsl/recipe.rb
797
817
  - lib/chef/dsl/registry_helper.rb
798
818
  - lib/chef/encrypted_data_bag_item.rb
819
+ - lib/chef/encrypted_data_bag_item/assertions.rb
799
820
  - lib/chef/encrypted_data_bag_item/decryption_failure.rb
800
821
  - lib/chef/encrypted_data_bag_item/decryptor.rb
822
+ - lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb
823
+ - lib/chef/encrypted_data_bag_item/encryption_failure.rb
801
824
  - lib/chef/encrypted_data_bag_item/encryptor.rb
802
825
  - lib/chef/encrypted_data_bag_item/unacceptable_encrypted_data_bag_item_format.rb
803
826
  - lib/chef/encrypted_data_bag_item/unsupported_cipher.rb
@@ -1115,6 +1138,7 @@ files:
1115
1138
  - lib/chef/provider/template/content.rb
1116
1139
  - lib/chef/provider/template_finder.rb
1117
1140
  - lib/chef/provider/user.rb
1141
+ - lib/chef/provider/user/aix.rb
1118
1142
  - lib/chef/provider/user/dscl.rb
1119
1143
  - lib/chef/provider/user/pw.rb
1120
1144
  - lib/chef/provider/user/solaris.rb
@@ -1187,6 +1211,7 @@ files:
1187
1211
  - lib/chef/resource/whyrun_safe_ruby_block.rb
1188
1212
  - lib/chef/resource/windows_package.rb
1189
1213
  - lib/chef/resource/windows_script.rb
1214
+ - lib/chef/resource/windows_service.rb
1190
1215
  - lib/chef/resource/yum_package.rb
1191
1216
  - lib/chef/resource_collection.rb
1192
1217
  - lib/chef/resource_collection/stepable_iterator.rb
@@ -1338,15 +1363,23 @@ files:
1338
1363
  - spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0
1339
1364
  - spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0
1340
1365
  - spec/data/config.rb
1366
+ - spec/data/cookbooks/angrybash/metadata.rb
1341
1367
  - spec/data/cookbooks/angrybash/recipes/default.rb
1342
1368
  - spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl
1369
+ - spec/data/cookbooks/apache2/metadata.rb
1343
1370
  - spec/data/cookbooks/apache2/recipes/default.rb
1371
+ - spec/data/cookbooks/borken/metadata.rb
1344
1372
  - spec/data/cookbooks/borken/recipes/default.rb
1345
1373
  - spec/data/cookbooks/borken/templates/default/borken.erb
1346
1374
  - spec/data/cookbooks/chefignore
1375
+ - spec/data/cookbooks/ignorken/metadata.rb
1347
1376
  - spec/data/cookbooks/ignorken/recipes/default.rb
1348
1377
  - spec/data/cookbooks/ignorken/recipes/ignoreme.rb
1349
1378
  - spec/data/cookbooks/java/files/default/java.response
1379
+ - spec/data/cookbooks/java/metadata.rb
1380
+ - spec/data/cookbooks/name-mismatch-versionnumber/README.md
1381
+ - spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb
1382
+ - spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb
1350
1383
  - spec/data/cookbooks/openldap/attributes/default.rb
1351
1384
  - spec/data/cookbooks/openldap/attributes/smokey.rb
1352
1385
  - spec/data/cookbooks/openldap/definitions/client.rb
@@ -1354,6 +1387,7 @@ files:
1354
1387
  - spec/data/cookbooks/openldap/files/default/.dotfile
1355
1388
  - spec/data/cookbooks/openldap/files/default/.ssh/id_rsa
1356
1389
  - spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir
1390
+ - spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb
1357
1391
  - spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt
1358
1392
  - spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt
1359
1393
  - spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile
@@ -1375,6 +1409,7 @@ files:
1375
1409
  - spec/data/cookbooks/openldap/templates/default/test.erb
1376
1410
  - spec/data/cookbooks/preseed/files/default/preseed-file.seed
1377
1411
  - spec/data/cookbooks/preseed/files/default/preseed-template.seed
1412
+ - spec/data/cookbooks/preseed/metadata.rb
1378
1413
  - spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed
1379
1414
  - spec/data/cookbooks/preseed/templates/default/preseed-template.seed
1380
1415
  - spec/data/definitions/test.rb
@@ -1387,6 +1422,12 @@ files:
1387
1422
  - spec/data/git_bundles/sinatra-test-app-with-callback-files.gitbundle
1388
1423
  - spec/data/git_bundles/sinatra-test-app-with-symlinks.gitbundle
1389
1424
  - spec/data/git_bundles/sinatra-test-app.gitbundle
1425
+ - spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md
1426
+ - spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb
1427
+ - spec/data/incomplete-metadata-chef-repo/incomplete-metadata/recipes/default.rb
1428
+ - spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md
1429
+ - spec/data/invalid-metadata-chef-repo/invalid-metadata/metadata.rb
1430
+ - spec/data/invalid-metadata-chef-repo/invalid-metadata/recipes/default.rb
1390
1431
  - spec/data/kitchen/chefignore
1391
1432
  - spec/data/kitchen/openldap/attributes/default.rb
1392
1433
  - spec/data/kitchen/openldap/attributes/robinson.rb
@@ -1413,6 +1454,14 @@ files:
1413
1454
  - spec/data/lwrp_const_scoping/resources/conflict.rb
1414
1455
  - spec/data/lwrp_override/providers/buck_passer.rb
1415
1456
  - spec/data/lwrp_override/resources/foo.rb
1457
+ - spec/data/mac_users/10.7-8.plist.xml
1458
+ - spec/data/mac_users/10.7-8.shadow.xml
1459
+ - spec/data/mac_users/10.7.plist.xml
1460
+ - spec/data/mac_users/10.7.shadow.xml
1461
+ - spec/data/mac_users/10.8.plist.xml
1462
+ - spec/data/mac_users/10.8.shadow.xml
1463
+ - spec/data/mac_users/10.9.plist.xml
1464
+ - spec/data/mac_users/10.9.shadow.xml
1416
1465
  - spec/data/metadata/quick_start/metadata.rb
1417
1466
  - spec/data/nodes/default.rb
1418
1467
  - spec/data/nodes/test.example.com.rb
@@ -1536,6 +1585,7 @@ files:
1536
1585
  - spec/functional/resource/cron_spec.rb
1537
1586
  - spec/functional/resource/deploy_revision_spec.rb
1538
1587
  - spec/functional/resource/directory_spec.rb
1588
+ - spec/functional/resource/env_spec.rb
1539
1589
  - spec/functional/resource/file_spec.rb
1540
1590
  - spec/functional/resource/git_spec.rb
1541
1591
  - spec/functional/resource/group_spec.rb
@@ -1550,7 +1600,8 @@ files:
1550
1600
  - spec/functional/resource/remote_file_spec.rb
1551
1601
  - spec/functional/resource/rpm_spec.rb
1552
1602
  - spec/functional/resource/template_spec.rb
1553
- - spec/functional/resource/user_spec.rb
1603
+ - spec/functional/resource/user/dscl_spec.rb
1604
+ - spec/functional/resource/user/useradd_spec.rb
1554
1605
  - spec/functional/rest_spec.rb
1555
1606
  - spec/functional/run_lock_spec.rb
1556
1607
  - spec/functional/shell_spec.rb
@@ -1592,6 +1643,7 @@ files:
1592
1643
  - spec/support/lib/chef/resource/cat.rb
1593
1644
  - spec/support/lib/chef/resource/one_two_three_four.rb
1594
1645
  - spec/support/lib/chef/resource/with_state.rb
1646
+ - spec/support/lib/chef/resource/zen_follower.rb
1595
1647
  - spec/support/lib/chef/resource/zen_master.rb
1596
1648
  - spec/support/lib/library_load_order.rb
1597
1649
  - spec/support/matchers/leak.rb
@@ -1614,6 +1666,7 @@ files:
1614
1666
  - spec/support/shared/functional/securable_resource_with_reporting.rb
1615
1667
  - spec/support/shared/functional/windows_script.rb
1616
1668
  - spec/support/shared/integration/app_server_support.rb
1669
+ - spec/support/shared/integration/chef_zero_support.rb
1617
1670
  - spec/support/shared/integration/integration_helper.rb
1618
1671
  - spec/support/shared/integration/knife_support.rb
1619
1672
  - spec/support/shared/matchers.rb
@@ -1645,13 +1698,14 @@ files:
1645
1698
  - spec/unit/config_fetcher_spec.rb
1646
1699
  - spec/unit/config_spec.rb
1647
1700
  - spec/unit/cookbook/chefignore_spec.rb
1701
+ - spec/unit/cookbook/cookbook_version_loader_spec.rb
1648
1702
  - spec/unit/cookbook/file_vendor_spec.rb
1649
1703
  - spec/unit/cookbook/metadata_spec.rb
1650
1704
  - spec/unit/cookbook/synchronizer_spec.rb
1651
1705
  - spec/unit/cookbook/syntax_check_spec.rb
1652
1706
  - spec/unit/cookbook_loader_spec.rb
1653
1707
  - spec/unit/cookbook_manifest_spec.rb
1654
- - spec/unit/cookbook_site_streaming_uploader.rb
1708
+ - spec/unit/cookbook_site_streaming_uploader_spec.rb
1655
1709
  - spec/unit/cookbook_spec.rb
1656
1710
  - spec/unit/cookbook_uploader_spec.rb
1657
1711
  - spec/unit/cookbook_version_spec.rb
@@ -1673,6 +1727,7 @@ files:
1673
1727
  - spec/unit/file_content_management/deploy/cp_spec.rb
1674
1728
  - spec/unit/file_content_management/deploy/mv_unix_spec.rb
1675
1729
  - spec/unit/file_content_management/deploy/mv_windows_spec.rb
1730
+ - spec/unit/formatters/base_spec.rb
1676
1731
  - spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb
1677
1732
  - spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb
1678
1733
  - spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb
@@ -1750,6 +1805,7 @@ files:
1750
1805
  - spec/unit/knife/role_edit_spec.rb
1751
1806
  - spec/unit/knife/role_from_file_spec.rb
1752
1807
  - spec/unit/knife/role_list_spec.rb
1808
+ - spec/unit/knife/role_show_spec.rb
1753
1809
  - spec/unit/knife/ssh_spec.rb
1754
1810
  - spec/unit/knife/ssl_check_spec.rb
1755
1811
  - spec/unit/knife/ssl_fetch_spec.rb
@@ -1947,6 +2003,7 @@ files:
1947
2003
  - spec/unit/resource/timestamped_deploy_spec.rb
1948
2004
  - spec/unit/resource/user_spec.rb
1949
2005
  - spec/unit/resource/windows_package_spec.rb
2006
+ - spec/unit/resource/windows_service_spec.rb
1950
2007
  - spec/unit/resource/yum_package_spec.rb
1951
2008
  - spec/unit/resource_collection/stepable_iterator_spec.rb
1952
2009
  - spec/unit/resource_collection_spec.rb