chef 10.34.6 → 11.0.0.beta.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CONTRIBUTING.md +155 -0
- data/README.md +89 -0
- data/Rakefile +4 -12
- data/bin/chef-apply +25 -0
- data/bin/chef-shell +34 -0
- data/bin/shef +6 -5
- data/distro/common/html/chef-client.8.html +4 -4
- data/distro/common/html/chef-expander.8.html +4 -4
- data/distro/common/html/chef-expanderctl.8.html +4 -4
- data/distro/common/html/chef-server-webui.8.html +4 -4
- data/distro/common/html/chef-server.8.html +4 -4
- data/distro/common/html/{shef.1.html → chef-shell.1.html} +49 -46
- data/distro/common/html/chef-solo.8.html +18 -12
- data/distro/common/html/chef-solr.8.html +4 -4
- data/distro/common/html/knife-bootstrap.1.html +4 -4
- data/distro/common/html/knife-client.1.html +4 -4
- data/distro/common/html/knife-configure.1.html +4 -4
- data/distro/common/html/knife-cookbook-site.1.html +4 -4
- data/distro/common/html/knife-cookbook.1.html +10 -7
- data/distro/common/html/knife-data-bag.1.html +10 -7
- data/distro/common/html/knife-environment.1.html +8 -6
- data/distro/common/html/knife-exec.1.html +9 -9
- data/distro/common/html/knife-index.1.html +4 -4
- data/distro/common/html/knife-node.1.html +4 -4
- data/distro/common/html/knife-role.1.html +4 -4
- data/distro/common/html/knife-search.1.html +4 -4
- data/distro/common/html/knife-ssh.1.html +4 -4
- data/distro/common/html/knife-status.1.html +4 -4
- data/distro/common/html/knife-tag.1.html +4 -4
- data/distro/common/html/knife.1.html +8 -13
- data/distro/common/man/man1/{shef.1 → chef-shell.1} +21 -57
- data/distro/common/man/man1/knife-bootstrap.1 +1 -1
- data/distro/common/man/man1/knife-client.1 +1 -1
- data/distro/common/man/man1/knife-configure.1 +1 -1
- data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
- data/distro/common/man/man1/knife-cookbook.1 +15 -2
- data/distro/common/man/man1/knife-data-bag.1 +15 -2
- data/distro/common/man/man1/knife-environment.1 +12 -2
- data/distro/common/man/man1/knife-exec.1 +4 -7
- data/distro/common/man/man1/knife-index.1 +1 -1
- data/distro/common/man/man1/knife-node.1 +1 -1
- data/distro/common/man/man1/knife-role.1 +1 -1
- data/distro/common/man/man1/knife-search.1 +1 -1
- data/distro/common/man/man1/knife-ssh.1 +1 -1
- data/distro/common/man/man1/knife-status.1 +1 -1
- data/distro/common/man/man1/knife-tag.1 +1 -1
- data/distro/common/man/man1/knife.1 +3 -6
- data/distro/common/man/man8/chef-client.8 +1 -1
- data/distro/common/man/man8/chef-expander.8 +1 -1
- data/distro/common/man/man8/chef-expanderctl.8 +1 -1
- data/distro/common/man/man8/chef-server-webui.8 +1 -1
- data/distro/common/man/man8/chef-server.8 +1 -1
- data/distro/common/man/man8/chef-solo.8 +36 -4
- data/distro/common/man/man8/chef-solr.8 +1 -1
- data/distro/common/markdown/man1/{shef.mkd → chef-shell.mkd} +49 -43
- data/distro/common/markdown/man1/knife-exec.mkd +11 -6
- data/distro/common/markdown/man1/knife.mkd +4 -9
- data/distro/debian/etc/default/chef-client +0 -1
- data/distro/debian/etc/init.d/chef-client +2 -2
- data/lib/chef.rb +2 -5
- data/lib/chef/api_client.rb +20 -130
- data/lib/chef/api_client/registration.rb +126 -0
- data/lib/chef/application.rb +71 -14
- data/lib/chef/application/apply.rb +160 -0
- data/lib/chef/application/client.rb +25 -18
- data/lib/chef/application/knife.rb +0 -2
- data/lib/chef/application/solo.rb +23 -8
- data/lib/chef/application/windows_service.rb +5 -2
- data/lib/chef/applications.rb +1 -0
- data/lib/chef/chef_fs.rb +11 -0
- data/lib/chef/chef_fs/command_line.rb +232 -0
- data/lib/chef/chef_fs/file_pattern.rb +312 -0
- data/lib/chef/chef_fs/file_system.rb +358 -0
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +47 -0
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +121 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +109 -0
- data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb} +12 -15
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +84 -0
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +188 -0
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +78 -0
- data/lib/chef/chef_fs/file_system/cookbook_subdir.rb +54 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +68 -0
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +78 -0
- data/lib/chef/chef_fs/file_system/data_bag_item.rb +59 -0
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +66 -0
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +90 -0
- data/lib/chef/{index_queue.rb → chef_fs/file_system/file_system_error.rb} +14 -12
- data/lib/chef/{resource/whyrun_safe_ruby_block.rb → chef_fs/file_system/file_system_root_dir.rb} +10 -10
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +47 -0
- data/lib/chef/{provider/whyrun_safe_ruby_block.rb → chef_fs/file_system/nonexistent_fs_object.rb} +19 -9
- data/lib/chef/chef_fs/file_system/not_found_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +84 -0
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +123 -0
- data/lib/chef/chef_fs/knife.rb +77 -0
- data/lib/chef/chef_fs/path_utils.rb +64 -0
- data/lib/chef/client.rb +44 -21
- data/lib/chef/config.rb +52 -43
- data/lib/chef/cookbook/synchronizer.rb +6 -8
- data/lib/chef/cookbook/syntax_check.rb +61 -14
- data/lib/chef/cookbook_loader.rb +39 -26
- data/lib/chef/cookbook_uploader.rb +17 -19
- data/lib/chef/cookbook_version.rb +3 -302
- data/lib/chef/daemon.rb +3 -18
- data/lib/chef/data_bag.rb +4 -97
- data/lib/chef/data_bag_item.rb +2 -65
- data/lib/chef/digester.rb +73 -0
- data/lib/chef/dsl.rb +6 -0
- data/lib/chef/dsl/data_query.rb +66 -0
- data/lib/chef/dsl/include_attribute.rb +60 -0
- data/lib/chef/dsl/include_recipe.rb +42 -0
- data/lib/chef/dsl/platform_introspection.rb +213 -0
- data/lib/chef/dsl/recipe.rb +84 -0
- data/lib/chef/dsl/registry_helper.rb +59 -0
- data/lib/chef/encrypted_data_bag_item.rb +74 -19
- data/lib/chef/environment.rb +9 -180
- data/lib/chef/exceptions.rb +87 -14
- data/lib/chef/formatters/base.rb +4 -1
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +0 -4
- data/lib/chef/json_compat.rb +1 -97
- data/lib/chef/knife.rb +90 -41
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/centos5-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-full.erb +3 -3
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +2 -2
- data/lib/chef/knife/configure.rb +1 -2
- data/lib/chef/knife/cookbook_metadata.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +3 -2
- data/lib/chef/knife/cookbook_upload.rb +12 -7
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +26 -13
- data/lib/chef/knife/core/node_editor.rb +36 -16
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/text_formatter.rb +23 -37
- data/lib/chef/knife/core/ui.rb +15 -9
- data/lib/chef/knife/delete.rb +39 -0
- data/lib/chef/knife/diff.rb +46 -0
- data/lib/chef/knife/download.rb +50 -0
- data/lib/chef/knife/environment_show.rb +7 -0
- data/lib/chef/knife/exec.rb +5 -5
- data/lib/chef/knife/help_topics.rb +1 -1
- data/lib/chef/knife/index_rebuild.rb +91 -7
- data/lib/chef/knife/list.rb +109 -0
- data/lib/chef/knife/raw.rb +108 -0
- data/lib/chef/knife/search.rb +40 -22
- data/lib/chef/knife/show.rb +32 -0
- data/lib/chef/knife/ssh.rb +6 -2
- data/lib/chef/knife/upload.rb +50 -0
- data/lib/chef/mixin/checksum.rb +3 -3
- data/lib/chef/mixin/deep_merge.rb +55 -197
- data/lib/chef/mixin/language.rb +9 -222
- data/lib/chef/mixin/language_include_attribute.rb +6 -38
- data/lib/chef/mixin/language_include_recipe.rb +3 -35
- data/lib/chef/mixin/params_validate.rb +6 -19
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +8 -61
- data/lib/chef/mixin/securable.rb +32 -7
- data/lib/chef/mixin/template.rb +40 -0
- data/lib/chef/mixins.rb +0 -4
- data/lib/chef/monkey_patches/net_http.rb +0 -34
- data/lib/chef/node.rb +133 -309
- data/lib/chef/node/attribute.rb +333 -473
- data/lib/chef/node/attribute_collections.rb +199 -0
- data/lib/chef/node/immutable_collections.rb +186 -0
- data/lib/chef/platform.rb +7 -22
- data/lib/chef/provider.rb +2 -49
- data/lib/chef/provider/breakpoint.rb +6 -6
- data/lib/chef/provider/cookbook_file.rb +5 -33
- data/lib/chef/provider/deploy.rb +2 -1
- data/lib/chef/provider/directory.rb +14 -17
- data/lib/chef/provider/file.rb +19 -52
- data/lib/chef/provider/group.rb +31 -51
- data/lib/chef/provider/group/dscl.rb +13 -53
- data/lib/chef/provider/group/gpasswd.rb +19 -14
- data/lib/chef/provider/group/groupadd.rb +1 -41
- data/lib/chef/provider/group/groupmod.rb +36 -46
- data/lib/chef/provider/group/pw.rb +16 -59
- data/lib/chef/provider/group/suse.rb +13 -16
- data/lib/chef/provider/group/usermod.rb +18 -40
- data/lib/chef/provider/group/windows.rb +6 -13
- data/lib/chef/provider/http_request.rb +25 -42
- data/lib/chef/provider/link.rb +2 -0
- data/lib/chef/provider/lwrp_base.rb +150 -0
- data/lib/chef/provider/package/portage.rb +4 -9
- data/lib/chef/provider/package/rpm.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +9 -41
- data/lib/chef/provider/package/yum.rb +12 -19
- data/lib/chef/provider/registry_key.rb +156 -0
- data/lib/chef/provider/remote_directory.rb +2 -0
- data/lib/chef/provider/remote_file.rb +21 -12
- data/lib/chef/provider/ruby_block.rb +5 -2
- data/lib/chef/provider/service.rb +15 -0
- data/lib/chef/provider/service/init.rb +9 -7
- data/lib/chef/provider/service/macosx.rb +15 -73
- data/lib/chef/provider/service/simple.rb +1 -1
- data/lib/chef/provider/service/solaris.rb +3 -3
- data/lib/chef/provider/template.rb +22 -25
- data/lib/chef/provider/template_finder.rb +61 -0
- data/lib/chef/provider/user.rb +0 -1
- data/lib/chef/provider/user/dscl.rb +175 -568
- data/lib/chef/provider/user/useradd.rb +30 -47
- data/lib/chef/providers.rb +3 -2
- data/lib/chef/recipe.rb +14 -8
- data/lib/chef/resource.rb +13 -154
- data/lib/chef/resource/group.rb +1 -11
- data/lib/chef/resource/http_request.rb +2 -1
- data/lib/chef/resource/lwrp_base.rb +127 -0
- data/lib/chef/resource/mount.rb +10 -11
- data/lib/chef/resource/registry_key.rb +86 -0
- data/lib/chef/resource/remote_directory.rb +6 -5
- data/lib/chef/resource/remote_file.rb +22 -31
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/service.rb +14 -0
- data/lib/chef/resource/user.rb +0 -18
- data/lib/chef/resource_collection.rb +25 -21
- data/lib/chef/resources.rb +2 -1
- data/lib/chef/rest.rb +50 -131
- data/lib/chef/rest/auth_credentials.rb +4 -20
- data/lib/chef/rest/rest_request.rb +2 -7
- data/lib/chef/role.rb +1 -97
- data/lib/chef/run_context.rb +108 -130
- data/lib/chef/run_context/cookbook_compiler.rb +280 -0
- data/lib/chef/run_list.rb +0 -2
- data/lib/chef/run_list/run_list_expansion.rb +0 -15
- data/lib/chef/run_lock.rb +90 -0
- data/lib/chef/runner.rb +28 -5
- data/lib/chef/sandbox.rb +15 -148
- data/lib/chef/scan_access_control.rb +2 -4
- data/lib/chef/shef/ext.rb +3 -575
- data/lib/chef/{shef.rb → shell.rb} +35 -40
- data/lib/chef/shell/ext.rb +593 -0
- data/lib/chef/{shef → shell}/model_wrapper.rb +3 -3
- data/lib/chef/{shef/shef_rest.rb → shell/shell_rest.rb} +4 -4
- data/lib/chef/{shef/shef_session.rb → shell/shell_session.rb} +17 -15
- data/lib/chef/shell_out.rb +7 -0
- data/lib/chef/util/windows/net_group.rb +1 -5
- data/lib/chef/version.rb +3 -3
- data/lib/chef/win32/api/process.rb +0 -1
- data/lib/chef/win32/handle.rb +1 -8
- data/lib/chef/win32/registry.rb +371 -0
- data/spec/data/big_json.json +1 -2
- data/spec/data/big_json_plus_one.json +1 -2
- data/spec/data/cookbooks/openldap/attributes/default.rb +10 -9
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- 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/{knife-home/.chef/plugins/knife/example_home_subcommand.rb → 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/{lwrp_const_scoping/resources/conflict.rb → 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 +7 -0
- data/spec/functional/dsl/registry_helper_spec.rb +63 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +2 -2
- data/spec/functional/knife/ssh_spec.rb +5 -1
- data/spec/functional/resource/cookbook_file_spec.rb +7 -19
- 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 +2 -0
- data/spec/functional/resource/registry_spec.rb +576 -0
- data/spec/functional/resource/remote_directory_spec.rb +142 -36
- data/spec/functional/resource/remote_file_spec.rb +18 -0
- data/spec/functional/resource/template_spec.rb +23 -2
- data/spec/functional/run_lock_spec.rb +106 -0
- data/spec/functional/shell_spec.rb +100 -0
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/spec_helper.rb +5 -29
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +0 -2
- data/spec/support/platform_helpers.rb +8 -15
- data/spec/support/shared/functional/directory_resource.rb +84 -22
- data/spec/support/shared/functional/file_resource.rb +169 -71
- data/spec/support/shared/functional/securable_resource.rb +143 -119
- 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/unit/api_client/registration_spec.rb +175 -0
- data/spec/unit/api_client_spec.rb +78 -156
- data/spec/unit/application/apply.rb +84 -0
- data/spec/unit/application/client_spec.rb +1 -37
- data/spec/unit/application/knife_spec.rb +5 -0
- data/spec/unit/application_spec.rb +57 -2
- data/spec/unit/checksum/storage/filesystem_spec.rb +1 -1
- data/spec/unit/chef_fs/diff_spec.rb +328 -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 +124 -33
- data/spec/unit/config_spec.rb +46 -13
- data/spec/unit/cookbook/synchronizer_spec.rb +1 -49
- 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/daemon_spec.rb +3 -24
- data/spec/unit/data_bag_spec.rb +6 -4
- 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 +50 -105
- 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 +3 -3
- data/spec/unit/json_compat_spec.rb +15 -7
- data/spec/unit/knife/bootstrap_spec.rb +2 -0
- data/spec/unit/knife/configure_spec.rb +20 -14
- data/spec/unit/knife/cookbook_metadata_spec.rb +11 -4
- data/spec/unit/knife/cookbook_test_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +43 -8
- data/spec/unit/knife/core/bootstrap_context_spec.rb +1 -1
- data/spec/unit/knife/core/ui_spec.rb +156 -125
- data/spec/unit/knife/data_bag_create_spec.rb +9 -0
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -4
- data/spec/unit/knife/data_bag_from_file_spec.rb +4 -6
- 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_edit_spec.rb +6 -33
- data/spec/unit/knife/node_run_list_remove_spec.rb +2 -1
- data/spec/unit/knife/ssh_spec.rb +12 -15
- data/spec/unit/knife/status_spec.rb +2 -2
- data/spec/unit/knife_spec.rb +53 -0
- data/spec/unit/lwrp_spec.rb +59 -42
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +101 -799
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +6 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -37
- 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 +195 -173
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +366 -370
- data/spec/unit/platform_spec.rb +9 -10
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file_spec.rb +4 -8
- data/spec/unit/provider/directory_spec.rb +96 -64
- data/spec/unit/provider/env_spec.rb +2 -2
- data/spec/unit/provider/file_spec.rb +48 -39
- data/spec/unit/provider/group/dscl_spec.rb +0 -36
- data/spec/unit/provider/group/gpasswd_spec.rb +9 -16
- data/spec/unit/provider/group/groupadd_spec.rb +4 -3
- data/spec/unit/provider/group/groupmod_spec.rb +1 -0
- data/spec/unit/provider/group/pw_spec.rb +15 -12
- data/spec/unit/provider/group/usermod_spec.rb +6 -21
- data/spec/unit/provider/group/windows_spec.rb +8 -0
- data/spec/unit/provider/group_spec.rb +6 -28
- data/spec/unit/provider/http_request_spec.rb +28 -69
- data/spec/unit/provider/ifconfig_spec.rb +2 -2
- 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/portage_spec.rb +0 -44
- data/spec/unit/provider/package/rpm_spec.rb +0 -12
- data/spec/unit/provider/package/rubygems_spec.rb +1 -44
- data/spec/unit/provider/package/yum_spec.rb +39 -36
- 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 +7 -3
- data/spec/unit/provider/remote_file_spec.rb +36 -0
- data/spec/unit/provider/route_spec.rb +4 -3
- data/spec/unit/provider/ruby_block_spec.rb +8 -0
- data/spec/unit/provider/service/arch_service_spec.rb +5 -5
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +5 -5
- data/spec/unit/provider/service/init_service_spec.rb +27 -4
- data/spec/unit/provider/service/insserv_service_spec.rb +1 -1
- data/spec/unit/provider/service/invokercd_service_spec.rb +4 -4
- data/spec/unit/provider/service/macosx_spec.rb +11 -66
- 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 +9 -9
- 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 +285 -681
- data/spec/unit/provider/user/useradd_spec.rb +1 -22
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +374 -0
- data/spec/unit/resource/mount_spec.rb +0 -11
- 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 +4 -19
- data/spec/unit/rest/auth_credentials_spec.rb +2 -19
- data/spec/unit/rest_spec.rb +130 -284
- 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} +14 -69
- data/spec/unit/shell_out_spec.rb +18 -0
- data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
- metadata +275 -234
- checksums.yaml +0 -15
- data/README.rdoc +0 -177
- data/distro/common/html/knife-recipe.1.html +0 -92
- data/lib/chef/certificate.rb +0 -161
- data/lib/chef/checksum.rb +0 -167
- data/lib/chef/checksum_cache.rb +0 -190
- data/lib/chef/cookbook_version_selector.rb +0 -168
- data/lib/chef/couchdb.rb +0 -246
- data/lib/chef/index_queue/amqp_client.rb +0 -116
- data/lib/chef/index_queue/consumer.rb +0 -76
- data/lib/chef/index_queue/indexable.rb +0 -109
- data/lib/chef/knife/bootstrap/ubuntu12.10-gems.erb +0 -60
- data/lib/chef/monkey_patches/moneta.rb +0 -50
- data/lib/chef/monkey_patches/uri.rb +0 -70
- data/lib/chef/openid_registration.rb +0 -187
- data/lib/chef/provider/user/solaris.rb +0 -90
- data/lib/chef/solr_query.rb +0 -187
- data/lib/chef/solr_query/lucene.treetop +0 -150
- data/lib/chef/solr_query/lucene_nodes.rb +0 -285
- data/lib/chef/solr_query/query_transform.rb +0 -65
- data/lib/chef/solr_query/solr_http_request.rb +0 -132
- data/lib/chef/webui_user.rb +0 -231
- data/spec/data/cookbooks/openldap/files/default/.dotfile +0 -1
- data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +0 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +0 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +0 -1
- data/spec/data/mac_users/10.7-8.plist.xml +0 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +0 -11
- data/spec/data/mac_users/10.7.plist.xml +0 -559
- data/spec/data/mac_users/10.7.shadow.xml +0 -11
- data/spec/data/mac_users/10.8.plist.xml +0 -559
- data/spec/data/mac_users/10.8.shadow.xml +0 -21
- data/spec/data/mac_users/10.9.plist.xml +0 -560
- data/spec/data/mac_users/10.9.shadow.xml +0 -21
- data/spec/functional/resource/base.rb +0 -40
- data/spec/functional/resource/group_spec.rb +0 -343
- data/spec/functional/resource/user/dscl_spec.rb +0 -199
- 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/mixin/language_spec.rb +0 -305
- data/spec/unit/openid_registration_spec.rb +0 -153
- data/spec/unit/provider/user/solaris_spec.rb +0 -414
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +0 -47
- 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
|