chef 12.0.0.alpha.0-x86-mingw32 → 12.0.0.alpha.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
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