microwave 1.0.4 → 11.400.2
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.
- data/CONTRIBUTING.md +155 -0
- data/README.md +89 -0
- data/Rakefile +2 -2
- data/bin/chef-apply +25 -0
- data/bin/chef-shell +34 -0
- data/bin/chef-solo +0 -2
- data/bin/shef +6 -5
- data/lib/chef.rb +2 -4
- data/spec/data/big_json.json +2 -1
- data/spec/data/big_json_plus_one.json +2 -1
- data/spec/data/cookbooks/chefignore +2 -0
- data/spec/data/cookbooks/openldap/attributes/default.rb +10 -9
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- data/spec/data/git_bundles/sinatra-test-app-with-callback-files.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app-with-symlinks.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app.gitbundle +0 -0
- data/spec/data/lwrp/providers/inline_compiler.rb +26 -0
- data/spec/data/nodes/default.rb +3 -3
- data/spec/data/nodes/test.example.com.rb +3 -3
- data/spec/data/nodes/test.rb +3 -3
- data/spec/data/partial_one.erb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -0
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -0
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/server.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -0
- data/spec/data/shef-config.rb +10 -0
- data/spec/functional/dsl/registry_helper_spec.rb +63 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +0 -2
- data/spec/functional/knife/exec_spec.rb +4 -6
- data/spec/functional/knife/smoke_test.rb +34 -0
- data/spec/functional/knife/ssh_spec.rb +64 -3
- data/spec/functional/resource/cookbook_file_spec.rb +33 -2
- data/spec/functional/resource/deploy_revision_spec.rb +515 -0
- data/spec/functional/resource/directory_spec.rb +4 -0
- data/spec/functional/resource/file_spec.rb +56 -22
- data/spec/functional/resource/link_spec.rb +12 -10
- data/spec/functional/resource/registry_spec.rb +572 -0
- data/spec/functional/resource/remote_directory_spec.rb +142 -36
- data/spec/functional/resource/remote_file_spec.rb +28 -3
- data/spec/functional/resource/template_spec.rb +23 -2
- data/spec/functional/run_lock_spec.rb +238 -0
- data/spec/functional/shell_spec.rb +101 -0
- data/spec/functional/tiny_server_spec.rb +5 -4
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/functional/win32/security_spec.rb +37 -0
- data/spec/spec_helper.rb +15 -3
- data/spec/stress/win32/security_spec.rb +5 -5
- data/spec/support/chef_helpers.rb +14 -3
- data/spec/support/lib/chef/resource/cat.rb +3 -5
- data/spec/support/lib/chef/resource/one_two_three_four.rb +8 -10
- data/spec/support/lib/chef/resource/zen_master.rb +8 -10
- data/spec/support/matchers/leak.rb +1 -1
- data/spec/support/platform_helpers.rb +18 -0
- data/spec/support/shared/functional/directory_resource.rb +85 -23
- data/spec/support/shared/functional/file_resource.rb +198 -53
- data/spec/support/shared/functional/securable_resource.rb +140 -105
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +375 -0
- data/spec/support/shared/unit/file_system_support.rb +110 -0
- data/spec/support/shared/unit/platform_introspector.rb +162 -0
- data/spec/tiny_server.rb +29 -10
- data/spec/unit/api_client/registration_spec.rb +172 -0
- data/spec/unit/api_client_spec.rb +156 -103
- data/spec/unit/application/apply.rb +84 -0
- data/spec/unit/application/knife_spec.rb +5 -0
- data/spec/unit/application_spec.rb +57 -2
- data/spec/unit/chef_fs/diff_spec.rb +329 -0
- data/spec/unit/chef_fs/file_pattern_spec.rb +526 -0
- data/spec/unit/chef_fs/file_system/chef_server_root_dir_spec.rb +237 -0
- data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +568 -0
- data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +220 -0
- data/spec/unit/chef_fs/file_system_spec.rb +136 -0
- data/spec/unit/client_spec.rb +188 -16
- data/spec/unit/config_spec.rb +54 -4
- data/spec/unit/cookbook/chefignore_spec.rb +2 -1
- data/spec/unit/cookbook/syntax_check_spec.rb +48 -109
- data/spec/unit/cookbook_loader_spec.rb +153 -91
- data/spec/unit/cookbook_manifest_spec.rb +81 -81
- data/spec/unit/cookbook_spec.rb +3 -20
- data/spec/unit/cookbook_version_spec.rb +23 -122
- data/spec/unit/digester_spec.rb +50 -0
- data/spec/unit/dsl/data_query_spec.rb +66 -0
- data/spec/unit/dsl/platform_introspection_spec.rb +130 -0
- data/spec/unit/dsl/regsitry_helper_spec.rb +55 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +126 -10
- data/spec/unit/environment_spec.rb +0 -130
- data/spec/unit/exceptions_spec.rb +2 -3
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +23 -3
- data/spec/unit/json_compat_spec.rb +69 -0
- data/spec/unit/knife/bootstrap_spec.rb +81 -28
- data/spec/unit/knife/client_reregister_spec.rb +23 -22
- data/spec/unit/knife/configure_spec.rb +29 -26
- data/spec/unit/knife/cookbook_metadata_spec.rb +11 -4
- data/spec/unit/knife/cookbook_site_install_spec.rb +12 -2
- data/spec/unit/knife/cookbook_test_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +41 -2
- data/spec/unit/knife/core/bootstrap_context_spec.rb +8 -1
- data/spec/unit/knife/core/ui_spec.rb +156 -7
- data/spec/unit/knife/data_bag_create_spec.rb +14 -0
- data/spec/unit/knife/data_bag_edit_spec.rb +14 -4
- data/spec/unit/knife/data_bag_from_file_spec.rb +17 -5
- data/spec/unit/knife/data_bag_show_spec.rb +11 -4
- data/spec/unit/knife/index_rebuild_spec.rb +96 -33
- data/spec/unit/knife/knife_help.rb +7 -7
- data/spec/unit/knife/node_run_list_remove_spec.rb +2 -1
- data/spec/unit/knife/ssh_spec.rb +121 -15
- data/spec/unit/knife/status_spec.rb +2 -2
- data/spec/unit/knife/user_create_spec.rb +86 -0
- data/spec/unit/knife/user_delete_spec.rb +39 -0
- data/spec/unit/knife/user_edit_spec.rb +42 -0
- data/spec/unit/knife/user_list_spec.rb +32 -0
- data/spec/unit/knife/user_reregister_spec.rb +53 -0
- data/spec/unit/knife/user_show_spec.rb +41 -0
- data/spec/unit/knife_spec.rb +53 -0
- data/spec/unit/lwrp_spec.rb +59 -17
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +56 -491
- data/spec/unit/mixin/deprecation_spec.rb +23 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +6 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -2
- data/spec/unit/mixin/securable_spec.rb +5 -3
- data/spec/unit/mixin/template_spec.rb +119 -0
- data/spec/unit/node/attribute_spec.rb +272 -137
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +411 -339
- data/spec/unit/platform_spec.rb +8 -8
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file_spec.rb +4 -8
- data/spec/unit/provider/deploy/revision_spec.rb +2 -8
- data/spec/unit/provider/deploy_spec.rb +6 -40
- data/spec/unit/provider/directory_spec.rb +103 -68
- data/spec/unit/provider/erl_call_spec.rb +0 -2
- data/spec/unit/provider/file_spec.rb +69 -59
- data/spec/unit/provider/git_spec.rb +0 -10
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/group/usermod_spec.rb +2 -2
- data/spec/unit/provider/http_request_spec.rb +28 -69
- data/spec/unit/provider/ifconfig_spec.rb +2 -2
- data/spec/unit/provider/link_spec.rb +1 -1
- data/spec/unit/provider/ohai_spec.rb +4 -4
- data/spec/unit/provider/package/apt_spec.rb +0 -1
- data/spec/unit/provider/package/ips_spec.rb +0 -1
- data/spec/unit/provider/package/rubygems_spec.rb +0 -18
- data/spec/unit/provider/package/yum_spec.rb +79 -15
- data/spec/unit/provider/package_spec.rb +7 -5
- data/spec/unit/provider/registry_key_spec.rb +269 -0
- data/spec/unit/provider/remote_directory_spec.rb +24 -7
- data/spec/unit/provider/remote_file_spec.rb +36 -0
- data/spec/unit/provider/route_spec.rb +3 -6
- data/spec/unit/provider/ruby_block_spec.rb +8 -0
- data/spec/unit/provider/service/arch_service_spec.rb +4 -4
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +4 -4
- data/spec/unit/provider/service/init_service_spec.rb +26 -3
- data/spec/unit/provider/service/insserv_service_spec.rb +1 -1
- data/spec/unit/provider/service/invokercd_service_spec.rb +3 -3
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/simple_service_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_service_spec.rb +7 -7
- data/spec/unit/provider/service_spec.rb +2 -2
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/template_spec.rb +35 -11
- data/spec/unit/provider/user/dscl_spec.rb +57 -31
- data/spec/unit/provider/user_spec.rb +7 -16
- data/spec/unit/provider_spec.rb +4 -3
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +376 -0
- data/spec/unit/resource/log_spec.rb +9 -0
- data/spec/unit/resource/registry_key_spec.rb +171 -0
- data/spec/unit/resource/remote_file_spec.rb +21 -23
- data/spec/unit/resource/ruby_block_spec.rb +7 -3
- data/spec/unit/resource/service_spec.rb +11 -0
- data/spec/unit/resource_spec.rb +27 -4
- data/spec/unit/rest/auth_credentials_spec.rb +2 -14
- data/spec/unit/rest_spec.rb +122 -187
- data/spec/unit/run_context/cookbook_compiler_spec.rb +181 -0
- data/spec/unit/run_context_spec.rb +18 -4
- data/spec/unit/run_list_spec.rb +0 -209
- data/spec/unit/run_lock_spec.rb +37 -0
- data/spec/unit/runner_spec.rb +101 -2
- data/spec/unit/scan_access_control_spec.rb +4 -4
- data/spec/unit/{shef → shell}/model_wrapper_spec.rb +5 -5
- data/spec/unit/{shef/shef_ext_spec.rb → shell/shell_ext_spec.rb} +21 -21
- data/spec/unit/{shef/shef_session_spec.rb → shell/shell_session_spec.rb} +12 -12
- data/spec/unit/shell_out_spec.rb +18 -0
- data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
- data/spec/unit/user_spec.rb +255 -0
- metadata +162 -157
- data/README.rdoc +0 -177
- data/spec/unit/certificate_spec.rb +0 -76
- data/spec/unit/checksum_cache_spec.rb +0 -209
- data/spec/unit/checksum_spec.rb +0 -94
- data/spec/unit/couchdb_spec.rb +0 -274
- data/spec/unit/index_queue_spec.rb +0 -391
- data/spec/unit/json_compat_spect.rb +0 -53
- data/spec/unit/mixin/language_spec.rb +0 -305
- data/spec/unit/openid_registration_spec.rb +0 -153
- data/spec/unit/solr_query/query_transform_spec.rb +0 -454
- data/spec/unit/solr_query/solr_http_request_spec.rb +0 -244
- data/spec/unit/solr_query_spec.rb +0 -203
- data/spec/unit/webui_user_spec.rb +0 -238
@@ -205,9 +205,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
205
205
|
|
206
206
|
it "should return a manifest record based on priority preference: host" do
|
207
207
|
node = Chef::Node.new
|
208
|
-
node[:platform] = "ubuntu"
|
209
|
-
node[:platform_version] = "9.10"
|
210
|
-
node[:fqdn] = "examplehost.example.org"
|
208
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
209
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
210
|
+
node.automatic_attrs[:fqdn] = "examplehost.example.org"
|
211
211
|
|
212
212
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
213
213
|
manifest_record.should_not be_nil
|
@@ -216,9 +216,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
216
216
|
|
217
217
|
it "should return a manifest record based on priority preference: platform & full version" do
|
218
218
|
node = Chef::Node.new
|
219
|
-
node[:platform] = "ubuntu"
|
220
|
-
node[:platform_version] = "9.10"
|
221
|
-
node[:fqdn] = "differenthost.example.org"
|
219
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
220
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
221
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
222
222
|
|
223
223
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
224
224
|
manifest_record.should_not be_nil
|
@@ -227,9 +227,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
227
227
|
|
228
228
|
it "should return a manifest record based on priority preference: platform & partial version" do
|
229
229
|
node = Chef::Node.new
|
230
|
-
node[:platform] = "newubuntu"
|
231
|
-
node[:platform_version] = "9.10"
|
232
|
-
node[:fqdn] = "differenthost.example.org"
|
230
|
+
node.automatic_attrs[:platform] = "newubuntu"
|
231
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
232
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
233
233
|
|
234
234
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
235
235
|
manifest_record.should_not be_nil
|
@@ -238,9 +238,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
238
238
|
|
239
239
|
it "should return a manifest record based on priority preference: platform only" do
|
240
240
|
node = Chef::Node.new
|
241
|
-
node[:platform] = "ubuntu"
|
242
|
-
node[:platform_version] = "1.0"
|
243
|
-
node[:fqdn] = "differenthost.example.org"
|
241
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
242
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
243
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
244
244
|
|
245
245
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
246
246
|
manifest_record.should_not be_nil
|
@@ -249,9 +249,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
249
249
|
|
250
250
|
it "should return a manifest record based on priority preference: default" do
|
251
251
|
node = Chef::Node.new
|
252
|
-
node[:platform] = "notubuntu"
|
253
|
-
node[:platform_version] = "1.0"
|
254
|
-
node[:fqdn] = "differenthost.example.org"
|
252
|
+
node.automatic_attrs[:platform] = "notubuntu"
|
253
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
254
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
255
255
|
|
256
256
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
257
257
|
manifest_record.should_not be_nil
|
@@ -260,9 +260,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
260
260
|
|
261
261
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 1" do
|
262
262
|
node = Chef::Node.new
|
263
|
-
node[:platform] = "fakeos"
|
264
|
-
node[:platform_version] = "2.0.rc.1"
|
265
|
-
node[:fqdn] = "differenthost.example.org"
|
263
|
+
node.automatic_attrs[:platform] = "fakeos"
|
264
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
265
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
266
266
|
|
267
267
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "bfile.rb")
|
268
268
|
manifest_record.should_not be_nil
|
@@ -271,9 +271,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
271
271
|
|
272
272
|
it "should return a manifest record based on priority preference: platform & partial version - platform_version variant 1" do
|
273
273
|
node = Chef::Node.new
|
274
|
-
node[:platform] = "newfakeos"
|
275
|
-
node[:platform_version] = "2.0.rc.1"
|
276
|
-
node[:fqdn] = "differenthost.example.org"
|
274
|
+
node.automatic_attrs[:platform] = "newfakeos"
|
275
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
276
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
277
277
|
|
278
278
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "bfile.rb")
|
279
279
|
manifest_record.should_not be_nil
|
@@ -282,9 +282,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
282
282
|
|
283
283
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 2" do
|
284
284
|
node = Chef::Node.new
|
285
|
-
node[:platform] = "fakeos"
|
286
|
-
node[:platform_version] = "maple tree"
|
287
|
-
node[:fqdn] = "differenthost.example.org"
|
285
|
+
node.automatic_attrs[:platform] = "fakeos"
|
286
|
+
node.automatic_attrs[:platform_version] = "maple tree"
|
287
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
288
288
|
|
289
289
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "bfile.rb")
|
290
290
|
manifest_record.should_not be_nil
|
@@ -293,9 +293,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
293
293
|
|
294
294
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 3" do
|
295
295
|
node = Chef::Node.new
|
296
|
-
node[:platform] = "fakeos"
|
297
|
-
node[:platform_version] = "1"
|
298
|
-
node[:fqdn] = "differenthost.example.org"
|
296
|
+
node.automatic_attrs[:platform] = "fakeos"
|
297
|
+
node.automatic_attrs[:platform_version] = "1"
|
298
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
299
299
|
|
300
300
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "bfile.rb")
|
301
301
|
manifest_record.should_not be_nil
|
@@ -306,9 +306,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
306
306
|
|
307
307
|
it "should return a directory of manifest records based on priority preference: host" do
|
308
308
|
node = Chef::Node.new
|
309
|
-
node[:platform] = "ubuntu"
|
310
|
-
node[:platform_version] = "9.10"
|
311
|
-
node[:fqdn] = "examplehost.example.org"
|
309
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
310
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
311
|
+
node.automatic_attrs[:fqdn] = "examplehost.example.org"
|
312
312
|
|
313
313
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
314
314
|
manifest_records.should_not be_nil
|
@@ -320,9 +320,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
320
320
|
|
321
321
|
it "should return a directory of manifest records based on priority preference: platform & full version" do
|
322
322
|
node = Chef::Node.new
|
323
|
-
node[:platform] = "ubuntu"
|
324
|
-
node[:platform_version] = "9.10"
|
325
|
-
node[:fqdn] = "differenthost.example.org"
|
323
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
324
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
325
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
326
326
|
|
327
327
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
328
328
|
manifest_records.should_not be_nil
|
@@ -334,9 +334,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
334
334
|
|
335
335
|
it "should return a directory of manifest records based on priority preference: platform & partial version" do
|
336
336
|
node = Chef::Node.new
|
337
|
-
node[:platform] = "newubuntu"
|
338
|
-
node[:platform_version] = "9.10"
|
339
|
-
node[:fqdn] = "differenthost.example.org"
|
337
|
+
node.automatic_attrs[:platform] = "newubuntu"
|
338
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
339
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
340
340
|
|
341
341
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
342
342
|
manifest_records.should_not be_nil
|
@@ -348,9 +348,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
348
348
|
|
349
349
|
it "should return a directory of manifest records based on priority preference: platform only" do
|
350
350
|
node = Chef::Node.new
|
351
|
-
node[:platform] = "ubuntu"
|
352
|
-
node[:platform_version] = "1.0"
|
353
|
-
node[:fqdn] = "differenthost.example.org"
|
351
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
352
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
353
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
354
354
|
|
355
355
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
356
356
|
manifest_records.should_not be_nil
|
@@ -362,9 +362,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
362
362
|
|
363
363
|
it "should return a directory of manifest records based on priority preference: default" do
|
364
364
|
node = Chef::Node.new
|
365
|
-
node[:platform] = "notubuntu"
|
366
|
-
node[:platform_version] = "1.0"
|
367
|
-
node[:fqdn] = "differenthost.example.org"
|
365
|
+
node.automatic_attrs[:platform] = "notubuntu"
|
366
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
367
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
368
368
|
|
369
369
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
370
370
|
manifest_records.should_not be_nil
|
@@ -376,9 +376,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
376
376
|
|
377
377
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 1" do
|
378
378
|
node = Chef::Node.new
|
379
|
-
node[:platform] = "fakeos"
|
380
|
-
node[:platform_version] = "2.0.rc.1"
|
381
|
-
node[:fqdn] = "differenthost.example.org"
|
379
|
+
node.automatic_attrs[:platform] = "fakeos"
|
380
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
381
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
382
382
|
|
383
383
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
384
384
|
manifest_records.should_not be_nil
|
@@ -390,9 +390,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
390
390
|
|
391
391
|
it "should return a manifest record based on priority preference: platform & partial version - platform_version variant 1" do
|
392
392
|
node = Chef::Node.new
|
393
|
-
node[:platform] = "newfakeos"
|
394
|
-
node[:platform_version] = "2.0.rc.1"
|
395
|
-
node[:fqdn] = "differenthost.example.org"
|
393
|
+
node.automatic_attrs[:platform] = "newfakeos"
|
394
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
395
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
396
396
|
|
397
397
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
398
398
|
manifest_records.should_not be_nil
|
@@ -404,9 +404,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
404
404
|
|
405
405
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 2" do
|
406
406
|
node = Chef::Node.new
|
407
|
-
node[:platform] = "fakeos"
|
408
|
-
node[:platform_version] = "maple tree"
|
409
|
-
node[:fqdn] = "differenthost.example.org"
|
407
|
+
node.automatic_attrs[:platform] = "fakeos"
|
408
|
+
node.automatic_attrs[:platform_version] = "maple tree"
|
409
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
410
410
|
|
411
411
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
412
412
|
manifest_records.should_not be_nil
|
@@ -418,9 +418,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
418
418
|
|
419
419
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 3" do
|
420
420
|
node = Chef::Node.new
|
421
|
-
node[:platform] = "fakeos"
|
422
|
-
node[:platform_version] = "1"
|
423
|
-
node[:fqdn] = "differenthost.example.org"
|
421
|
+
node.automatic_attrs[:platform] = "fakeos"
|
422
|
+
node.automatic_attrs[:platform_version] = "1"
|
423
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
424
424
|
|
425
425
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
426
426
|
manifest_records.should_not be_nil
|
@@ -436,9 +436,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
436
436
|
describe "when globbing for relative file paths based on filespecificity" do
|
437
437
|
it "should return a list of relative paths based on priority preference: host" do
|
438
438
|
node = Chef::Node.new
|
439
|
-
node[:platform] = "ubuntu"
|
440
|
-
node[:platform_version] = "9.10"
|
441
|
-
node[:fqdn] = "examplehost.example.org"
|
439
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
440
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
441
|
+
node.automatic_attrs[:fqdn] = "examplehost.example.org"
|
442
442
|
|
443
443
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
444
444
|
filenames.should_not be_nil
|
@@ -449,9 +449,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
449
449
|
|
450
450
|
it "should return a list of relative paths based on priority preference: platform & full version" do
|
451
451
|
node = Chef::Node.new
|
452
|
-
node[:platform] = "ubuntu"
|
453
|
-
node[:platform_version] = "9.10"
|
454
|
-
node[:fqdn] = "differenthost.example.org"
|
452
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
453
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
454
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
455
455
|
|
456
456
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
457
457
|
filenames.should_not be_nil
|
@@ -462,9 +462,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
462
462
|
|
463
463
|
it "should return a list of relative paths based on priority preference: platform & partial version" do
|
464
464
|
node = Chef::Node.new
|
465
|
-
node[:platform] = "newubuntu"
|
466
|
-
node[:platform_version] = "9.10"
|
467
|
-
node[:fqdn] = "differenthost.example.org"
|
465
|
+
node.automatic_attrs[:platform] = "newubuntu"
|
466
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
467
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
468
468
|
|
469
469
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
470
470
|
filenames.should_not be_nil
|
@@ -475,9 +475,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
475
475
|
|
476
476
|
it "should return a list of relative paths based on priority preference: platform only" do
|
477
477
|
node = Chef::Node.new
|
478
|
-
node[:platform] = "ubuntu"
|
479
|
-
node[:platform_version] = "1.0"
|
480
|
-
node[:fqdn] = "differenthost.example.org"
|
478
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
479
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
480
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
481
481
|
|
482
482
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
483
483
|
filenames.should_not be_nil
|
@@ -488,9 +488,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
488
488
|
|
489
489
|
it "should return a list of relative paths based on priority preference: default" do
|
490
490
|
node = Chef::Node.new
|
491
|
-
node[:platform] = "notubuntu"
|
492
|
-
node[:platform_version] = "1.0"
|
493
|
-
node[:fqdn] = "differenthost.example.org"
|
491
|
+
node.automatic_attrs[:platform] = "notubuntu"
|
492
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
493
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
494
494
|
|
495
495
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
496
496
|
filenames.should_not be_nil
|
@@ -501,9 +501,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
501
501
|
|
502
502
|
it "should return a list of relative paths based on priority preference: platform & full version - platform_version variant 1" do
|
503
503
|
node = Chef::Node.new
|
504
|
-
node[:platform] = "fakeos"
|
505
|
-
node[:platform_version] = "2.0.rc.1"
|
506
|
-
node[:fqdn] = "differenthost.example.org"
|
504
|
+
node.automatic_attrs[:platform] = "fakeos"
|
505
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
506
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
507
507
|
|
508
508
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
509
509
|
filenames.should_not be_nil
|
@@ -514,9 +514,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
514
514
|
|
515
515
|
it "should return a list of relative paths based on priority preference: platform & partial version - platform_version variant 1" do
|
516
516
|
node = Chef::Node.new
|
517
|
-
node[:platform] = "newfakeos"
|
518
|
-
node[:platform_version] = "2.0.rc.1"
|
519
|
-
node[:fqdn] = "differenthost.example.org"
|
517
|
+
node.automatic_attrs[:platform] = "newfakeos"
|
518
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
519
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
520
520
|
|
521
521
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
522
522
|
filenames.should_not be_nil
|
@@ -527,9 +527,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
527
527
|
|
528
528
|
it "should return a list of relative paths based on priority preference: platform & full version - platform_version variant 2" do
|
529
529
|
node = Chef::Node.new
|
530
|
-
node[:platform] = "fakeos"
|
531
|
-
node[:platform_version] = "maple tree"
|
532
|
-
node[:fqdn] = "differenthost.example.org"
|
530
|
+
node.automatic_attrs[:platform] = "fakeos"
|
531
|
+
node.automatic_attrs[:platform_version] = "maple tree"
|
532
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
533
533
|
|
534
534
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
535
535
|
filenames.should_not be_nil
|
@@ -540,9 +540,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
540
540
|
|
541
541
|
it "should return a list of relative paths based on priority preference: platform & full version - platform_version variant 3" do
|
542
542
|
node = Chef::Node.new
|
543
|
-
node[:platform] = "fakeos"
|
544
|
-
node[:platform_version] = "1"
|
545
|
-
node[:fqdn] = "differenthost.example.org"
|
543
|
+
node.automatic_attrs[:platform] = "fakeos"
|
544
|
+
node.automatic_attrs[:platform_version] = "1"
|
545
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
546
546
|
|
547
547
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
548
548
|
filenames.should_not be_nil
|
data/spec/unit/cookbook_spec.rb
CHANGED
@@ -22,7 +22,9 @@ describe Chef::CookbookVersion do
|
|
22
22
|
# COOKBOOK_PATH = File.expand_path(File.join(File.dirname(__FILE__), "..", "data", "cookbooks", "openldap"))
|
23
23
|
before(:each) do
|
24
24
|
@cookbook_repo = File.expand_path(File.join(File.dirname(__FILE__), "..", "data", "cookbooks"))
|
25
|
-
|
25
|
+
cl = Chef::CookbookLoader.new(@cookbook_repo)
|
26
|
+
cl.load_cookbooks
|
27
|
+
@cookbook_collection = Chef::CookbookCollection.new(cl)
|
26
28
|
@cookbook = @cookbook_collection[:openldap]
|
27
29
|
@node = Chef::Node.new
|
28
30
|
@node.name "JuliaChild"
|
@@ -66,20 +68,6 @@ describe Chef::CookbookVersion do
|
|
66
68
|
@cookbook.preferred_filename(@node, :files, 'a-filename', 'the-checksum').should be_nil
|
67
69
|
end
|
68
70
|
|
69
|
-
# TODO: timh, cw: 5/20/2010: removed CookbookVersion.recipe? as it's not used; see cookbook.rb
|
70
|
-
# it "should allow you to test for a recipe with recipe?" do
|
71
|
-
# @cookbook.recipe_filenames = [ "one", "two" ]
|
72
|
-
# @cookbook.recipe?("one").should eql(true)
|
73
|
-
# @cookbook.recipe?("shanghai").should eql(false)
|
74
|
-
# end
|
75
|
-
|
76
|
-
# TODO: timh, cw: 5/20/2010: removed CookbookVersion.recipe? as it's not used; see cookbook.rb
|
77
|
-
# it "should allow you to test for a recipe? with a fq recipe name" do
|
78
|
-
# @cookbook.recipe_filenames = [ "one", "two" ]
|
79
|
-
# @cookbook.recipe?("openldap::one").should eql(true)
|
80
|
-
# @cookbook.recipe?("shanghai::city").should eql(false)
|
81
|
-
# end
|
82
|
-
|
83
71
|
it "should allow you to include a fully-qualified recipe using the DSL" do
|
84
72
|
# DSL method include_recipe allows multiple arguments, so extract the first
|
85
73
|
recipe = @run_context.include_recipe("openldap::gigantor").first
|
@@ -93,9 +81,4 @@ describe Chef::CookbookVersion do
|
|
93
81
|
lambda { @cookbook.load_recipe("doesnt_exist", @node) }.should raise_error(ArgumentError)
|
94
82
|
end
|
95
83
|
|
96
|
-
it "should allow you to load an attribute file by name via load_attribute" do
|
97
|
-
@node.include_attribute("openldap::smokey")
|
98
|
-
@node.smokey.should == "robinson"
|
99
|
-
end
|
100
|
-
|
101
84
|
end
|
@@ -6,9 +6,9 @@
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
7
|
# you may not use this file except in compliance with the License.
|
8
8
|
# You may obtain a copy of the License at
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -17,56 +17,10 @@
|
|
17
17
|
|
18
18
|
require 'spec_helper'
|
19
19
|
|
20
|
-
describe Chef::MinimalCookbookVersion do
|
21
|
-
describe "when first created" do
|
22
|
-
before do
|
23
|
-
@params = { "id"=>"1a806f1c-b409-4d8e-abab-fa414ff5b96d",
|
24
|
-
"key"=>"activemq",
|
25
|
-
"value"=>{"version"=>"0.3.3", "deps"=>{"java"=>">= 0.0.0", "runit"=>">= 0.0.0"}}}
|
26
|
-
@minimal_cookbook_version = Chef::MinimalCookbookVersion.new(@params)
|
27
|
-
end
|
28
|
-
|
29
|
-
it "has a name" do
|
30
|
-
@minimal_cookbook_version.name.should == 'activemq'
|
31
|
-
end
|
32
|
-
|
33
|
-
it "has a version" do
|
34
|
-
@minimal_cookbook_version.version.should == '0.3.3'
|
35
|
-
end
|
36
|
-
|
37
|
-
it "has a list of dependencies" do
|
38
|
-
@minimal_cookbook_version.deps.should == {"java" => ">= 0.0.0", "runit" => ">= 0.0.0"}
|
39
|
-
end
|
40
|
-
|
41
|
-
it "has cookbook metadata" do
|
42
|
-
metadata = @minimal_cookbook_version.metadata
|
43
|
-
|
44
|
-
metadata.name.should == 'activemq'
|
45
|
-
metadata.dependencies['java'].should == '>= 0.0.0'
|
46
|
-
metadata.dependencies['runit'].should == '>= 0.0.0'
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "when created from cookbooks with old style version contraints" do
|
51
|
-
before do
|
52
|
-
@params = { "id"=>"1a806f1c-b409-4d8e-abab-fa414ff5b96d",
|
53
|
-
"key"=>"activemq",
|
54
|
-
"value"=>{"version"=>"0.3.3", "deps"=>{"apt" => ">> 1.0.0"}}}
|
55
|
-
@minimal_cookbook_version = Chef::MinimalCookbookVersion.new(@params)
|
56
|
-
end
|
57
|
-
|
58
|
-
it "translates the version constraints" do
|
59
|
-
metadata = @minimal_cookbook_version.metadata
|
60
|
-
metadata.dependencies['apt'].should == '> 1.0.0'
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
20
|
describe Chef::CookbookVersion do
|
66
21
|
describe "when first created" do
|
67
22
|
before do
|
68
|
-
@
|
69
|
-
@cookbook_version = Chef::CookbookVersion.new("tatft", @couchdb_driver)
|
23
|
+
@cookbook_version = Chef::CookbookVersion.new("tatft")
|
70
24
|
end
|
71
25
|
|
72
26
|
it "has a name" do
|
@@ -114,14 +68,6 @@ describe Chef::CookbookVersion do
|
|
114
68
|
@cookbook_version.should be_frozen_version
|
115
69
|
end
|
116
70
|
|
117
|
-
it "has no couchdb id" do
|
118
|
-
@cookbook_version.couchdb_id.should be_nil
|
119
|
-
end
|
120
|
-
|
121
|
-
it "has the couchdb driver it was given on create" do
|
122
|
-
@cookbook_version.couchdb.should equal(@couchdb_driver)
|
123
|
-
end
|
124
|
-
|
125
71
|
it "is \"ready\"" do
|
126
72
|
# WTF is this? what are the valid states? and why aren't they set with encapsulating methods?
|
127
73
|
# [Dan 15-Jul-2010]
|
@@ -133,19 +79,19 @@ describe Chef::CookbookVersion do
|
|
133
79
|
end
|
134
80
|
|
135
81
|
it "creates a manifest hash of its contents" do
|
136
|
-
expected = {"recipes"=>[],
|
137
|
-
"definitions"=>[],
|
138
|
-
"libraries"=>[],
|
139
|
-
"attributes"=>[],
|
140
|
-
"files"=>[],
|
141
|
-
"templates"=>[],
|
142
|
-
"resources"=>[],
|
143
|
-
"providers"=>[],
|
144
|
-
"root_files"=>[],
|
145
|
-
"cookbook_name"=>"tatft",
|
82
|
+
expected = {"recipes"=>[],
|
83
|
+
"definitions"=>[],
|
84
|
+
"libraries"=>[],
|
85
|
+
"attributes"=>[],
|
86
|
+
"files"=>[],
|
87
|
+
"templates"=>[],
|
88
|
+
"resources"=>[],
|
89
|
+
"providers"=>[],
|
90
|
+
"root_files"=>[],
|
91
|
+
"cookbook_name"=>"tatft",
|
146
92
|
"metadata"=>Chef::Cookbook::Metadata.new,
|
147
|
-
"version"=>"0.0.0",
|
148
|
-
"name"=>"tatft-0.0.0"}
|
93
|
+
"version"=>"0.0.0",
|
94
|
+
"name"=>"tatft-0.0.0"}
|
149
95
|
@cookbook_version.manifest.should == expected
|
150
96
|
end
|
151
97
|
end
|
@@ -267,7 +213,12 @@ describe Chef::CookbookVersion do
|
|
267
213
|
|
268
214
|
describe "raises an error when attempting to load a missing cookbook_file and" do
|
269
215
|
before do
|
270
|
-
node = Chef::Node.new.tap
|
216
|
+
node = Chef::Node.new.tap do |n|
|
217
|
+
n.name("sample.node")
|
218
|
+
n.automatic_attrs[:fqdn] = "sample.example.com"
|
219
|
+
n.automatic_attrs[:platform] = "ubuntu"
|
220
|
+
n.automatic_attrs[:platform_version] = "10.04"
|
221
|
+
end
|
271
222
|
@attempt_to_load_file = lambda { @cookbook_version.preferred_manifest_record(node, :files, "no-such-thing.txt") }
|
272
223
|
end
|
273
224
|
|
@@ -275,7 +226,7 @@ describe Chef::CookbookVersion do
|
|
275
226
|
useful_explanation = Regexp.new(Regexp.escape("Cookbook 'tatft' (0.0.0) does not contain"))
|
276
227
|
@attempt_to_load_file.should raise_error(Chef::Exceptions::FileNotFound, useful_explanation)
|
277
228
|
end
|
278
|
-
|
229
|
+
|
279
230
|
it "lists suggested places to look" do
|
280
231
|
useful_explanation = Regexp.new(Regexp.escape("files/default/no-such-thing.txt"))
|
281
232
|
@attempt_to_load_file.should raise_error(Chef::Exceptions::FileNotFound, useful_explanation)
|
@@ -320,7 +271,7 @@ describe Chef::CookbookVersion do
|
|
320
271
|
b.version = "1.2.0"
|
321
272
|
a.should == b
|
322
273
|
end
|
323
|
-
|
274
|
+
|
324
275
|
|
325
276
|
it "should not allow you to sort cookbooks with different names" do
|
326
277
|
apt = Chef::CookbookVersion.new "apt"
|
@@ -353,54 +304,4 @@ describe Chef::CookbookVersion do
|
|
353
304
|
|
354
305
|
end
|
355
306
|
|
356
|
-
describe "when deleting in the database" do
|
357
|
-
before do
|
358
|
-
@couchdb_driver = Chef::CouchDB.new
|
359
|
-
@cookbook_version = Chef::CookbookVersion.new("tatft", @couchdb_driver)
|
360
|
-
@cookbook_version.version = "1.2.3"
|
361
|
-
@couchdb_rev = "_123456789"
|
362
|
-
@cookbook_version.couchdb_rev = @couchdb_rev
|
363
|
-
end
|
364
|
-
|
365
|
-
it "deletes its document from couchdb" do
|
366
|
-
@couchdb_driver.should_receive(:delete).with("cookbook_version", "tatft-1.2.3", @couchdb_rev)
|
367
|
-
@cookbook_version.cdb_destroy
|
368
|
-
end
|
369
|
-
|
370
|
-
it "deletes associated checksum objects when purged" do
|
371
|
-
checksums = {"12345" => "/tmp/foo", "23456" => "/tmp/bar", "34567" => "/tmp/baz"}
|
372
|
-
@cookbook_version.stub!(:checksums).and_return(checksums)
|
373
|
-
|
374
|
-
chksum_docs = checksums.map do |md5, path|
|
375
|
-
cksum_doc = mock("Chef::Checksum for #{md5} at #{path}")
|
376
|
-
Chef::Checksum.should_receive(:cdb_load).with(md5, @couchdb_driver).and_return(cksum_doc)
|
377
|
-
cksum_doc.should_receive(:purge)
|
378
|
-
cksum_doc
|
379
|
-
end
|
380
|
-
|
381
|
-
@cookbook_version.should_receive(:cdb_destroy)
|
382
|
-
@cookbook_version.purge
|
383
|
-
end
|
384
|
-
|
385
|
-
it "successfully purges when associated checksum objects are missing" do
|
386
|
-
checksums = {"12345" => "/tmp/foo", "23456" => "/tmp/bar", "34567" => "/tmp/baz"}
|
387
|
-
|
388
|
-
chksum_docs = checksums.map do |md5, path|
|
389
|
-
cksum_doc = mock("Chef::Checksum for #{md5} at #{path}")
|
390
|
-
Chef::Checksum.should_receive(:cdb_load).with(md5, @couchdb_driver).and_return(cksum_doc)
|
391
|
-
cksum_doc.should_receive(:purge)
|
392
|
-
cksum_doc
|
393
|
-
end
|
394
|
-
|
395
|
-
missing_checksum = {"99999" => "/tmp/qux"}
|
396
|
-
Chef::Checksum.should_receive(:cdb_load).with("99999", @couchdb_driver).and_raise(Chef::Exceptions::CouchDBNotFound)
|
397
|
-
|
398
|
-
@cookbook_version.stub!(:checksums).and_return(checksums.merge(missing_checksum))
|
399
|
-
|
400
|
-
@cookbook_version.should_receive(:cdb_destroy)
|
401
|
-
lambda {@cookbook_version.purge}.should_not raise_error
|
402
|
-
end
|
403
|
-
|
404
|
-
end
|
405
|
-
|
406
307
|
end
|