chef 10.34.6-x86-mingw32 → 11.6.2-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/CONTRIBUTING.md +155 -0
- data/README.md +89 -0
- data/Rakefile +18 -1
- data/bin/chef-apply +25 -0
- data/bin/chef-service-manager +37 -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 +4 -4
- data/distro/common/html/chef-solr.8.html +5 -5
- 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 +4 -4
- data/distro/common/html/knife-data-bag.1.html +4 -4
- data/distro/common/html/knife-environment.1.html +4 -4
- 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 +0 -99
- 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 +1 -1
- data/distro/common/man/man1/knife-data-bag.1 +1 -1
- data/distro/common/man/man1/knife-environment.1 +0 -168
- 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 +1 -1
- 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 +6 -4
- data/distro/windows/service_manager.rb +2 -146
- data/lib/chef.rb +3 -6
- data/lib/chef/api_client.rb +20 -130
- data/lib/chef/api_client/registration.rb +126 -0
- data/lib/chef/application.rb +68 -18
- data/lib/chef/application/apply.rb +162 -0
- data/lib/chef/application/client.rb +37 -22
- data/lib/chef/application/knife.rb +2 -4
- data/lib/chef/application/solo.rb +27 -13
- data/lib/chef/application/windows_service.rb +114 -54
- data/lib/chef/application/windows_service_manager.rb +179 -0
- data/lib/chef/applications.rb +1 -0
- data/lib/chef/chef_fs.rb +9 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +371 -0
- data/lib/chef/chef_fs/command_line.rb +284 -0
- data/lib/chef/chef_fs/config.rb +205 -0
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -0
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +38 -0
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +29 -0
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -0
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +56 -0
- data/lib/chef/chef_fs/data_handler/data_handler_base.rb +128 -0
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -0
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +51 -0
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -0
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -0
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +27 -0
- data/lib/chef/chef_fs/file_pattern.rb +312 -0
- data/lib/chef/chef_fs/file_system.rb +426 -0
- data/lib/chef/chef_fs/file_system/acl_dir.rb +64 -0
- data/lib/chef/chef_fs/file_system/acl_entry.rb +58 -0
- data/lib/chef/chef_fs/file_system/acls_dir.rb +68 -0
- data/lib/chef/chef_fs/file_system/already_exists_error.rb +31 -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 +180 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +85 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +71 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +55 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_data_bags_dir.rb +36 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +60 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +121 -0
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +110 -0
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +223 -0
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +85 -0
- data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/cookbook_subdir.rb +54 -0
- data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +149 -0
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +69 -0
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +72 -0
- data/lib/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +36 -0
- data/lib/chef/chef_fs/file_system/environments_dir.rb +60 -0
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +90 -0
- data/lib/chef/chef_fs/file_system/file_system_error.rb +33 -0
- data/lib/chef/chef_fs/file_system/file_system_root_dir.rb +31 -0
- data/lib/chef/chef_fs/file_system/memory_dir.rb +52 -0
- data/lib/chef/chef_fs/file_system/memory_file.rb +17 -0
- data/lib/chef/chef_fs/file_system/memory_root.rb +21 -0
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +48 -0
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +55 -0
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +36 -0
- data/lib/chef/chef_fs/file_system/not_found_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/operation_failed_error.rb +34 -0
- data/lib/chef/chef_fs/file_system/operation_not_allowed_error.rb +48 -0
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +113 -0
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +177 -0
- data/lib/chef/chef_fs/knife.rb +116 -0
- data/lib/chef/chef_fs/parallelizer.rb +129 -0
- data/lib/chef/chef_fs/path_utils.rb +90 -0
- data/lib/chef/chef_fs/raw_request.rb +79 -0
- data/lib/chef/client.rb +111 -34
- data/lib/chef/config.rb +111 -102
- data/lib/chef/cookbook/chefignore.rb +2 -1
- data/lib/chef/cookbook/metadata.rb +0 -2
- data/lib/chef/cookbook/syntax_check.rb +76 -14
- data/lib/chef/cookbook_loader.rb +39 -26
- data/lib/chef/cookbook_uploader.rb +16 -9
- data/lib/chef/cookbook_version.rb +2 -410
- data/lib/chef/daemon.rb +24 -19
- data/lib/chef/data_bag.rb +20 -104
- data/lib/chef/data_bag_item.rb +2 -65
- data/lib/chef/deprecation/mixin/template.rb +49 -0
- data/lib/chef/deprecation/provider/cookbook_file.rb +55 -0
- data/lib/chef/deprecation/provider/file.rb +197 -0
- data/lib/chef/deprecation/provider/remote_file.rb +86 -0
- data/lib/chef/deprecation/provider/template.rb +63 -0
- data/lib/chef/deprecation/warnings.rb +38 -0
- data/lib/chef/digester.rb +73 -0
- data/lib/chef/dsl.rb +6 -0
- data/lib/chef/dsl/data_query.rb +71 -0
- data/lib/chef/dsl/include_attribute.rb +63 -0
- data/lib/chef/dsl/include_recipe.rb +45 -0
- data/lib/chef/dsl/platform_introspection.rb +218 -0
- data/lib/chef/dsl/recipe.rb +87 -0
- data/lib/chef/dsl/registry_helper.rb +59 -0
- data/lib/chef/encrypted_data_bag_item.rb +171 -24
- data/lib/chef/environment.rb +39 -179
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +107 -8
- data/lib/chef/file_access_control/unix.rb +64 -7
- data/lib/chef/file_access_control/windows.rb +22 -11
- data/lib/chef/file_content_management/content_base.rb +56 -0
- data/lib/chef/file_content_management/deploy.rb +38 -0
- data/lib/chef/file_content_management/deploy/cp.rb +48 -0
- data/lib/chef/file_content_management/deploy/mv_unix.rb +77 -0
- data/lib/chef/file_content_management/deploy/mv_windows.rb +95 -0
- data/lib/chef/file_content_management/tempfile.rb +61 -0
- data/lib/chef/formatters/base.rb +4 -1
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_descriptor.rb +5 -4
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +23 -3
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +8 -0
- data/lib/chef/json_compat.rb +15 -14
- data/lib/chef/knife.rb +99 -41
- data/lib/chef/knife/bootstrap.rb +46 -2
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/centos5-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/chef-full.erb +1 -1
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +1 -1
- data/lib/chef/knife/client_show.rb +2 -5
- data/lib/chef/knife/configure.rb +19 -17
- data/lib/chef/knife/cookbook_create.rb +6 -5
- data/lib/chef/knife/cookbook_download.rb +13 -5
- data/lib/chef/knife/cookbook_metadata.rb +1 -0
- data/lib/chef/knife/cookbook_site_share.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +4 -2
- data/lib/chef/knife/cookbook_upload.rb +4 -4
- data/lib/chef/knife/core/bootstrap_context.rb +11 -5
- data/lib/chef/knife/core/generic_presenter.rb +42 -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/subcommand_loader.rb +43 -12
- data/lib/chef/knife/core/text_formatter.rb +23 -37
- data/lib/chef/knife/core/ui.rb +34 -13
- data/lib/chef/knife/delete.rb +106 -0
- data/lib/chef/knife/deps.rb +139 -0
- data/lib/chef/knife/diff.rb +63 -0
- data/lib/chef/knife/download.rb +63 -0
- data/lib/chef/knife/edit.rb +76 -0
- data/lib/chef/knife/environment_show.rb +2 -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 +153 -0
- data/lib/chef/knife/node_run_list_set.rb +66 -0
- data/lib/chef/knife/node_show.rb +1 -7
- data/lib/chef/knife/raw.rb +64 -0
- data/lib/chef/knife/role_show.rb +2 -4
- data/lib/chef/knife/search.rb +45 -28
- data/lib/chef/knife/show.rb +55 -0
- data/lib/chef/knife/ssh.rb +14 -2
- data/lib/chef/knife/upload.rb +69 -0
- data/lib/chef/knife/user_create.rb +93 -0
- data/lib/chef/knife/user_delete.rb +46 -0
- data/lib/chef/knife/user_edit.rb +53 -0
- data/lib/chef/{provider/whyrun_safe_ruby_block.rb → knife/user_list.rb} +21 -9
- data/lib/chef/knife/user_reregister.rb +59 -0
- data/lib/chef/knife/user_show.rb +49 -0
- data/lib/chef/knife/xargs.rb +265 -0
- data/lib/chef/log.rb +2 -2
- data/lib/chef/mixin/checksum.rb +3 -3
- data/lib/chef/mixin/deep_merge.rb +78 -194
- data/lib/chef/mixin/deprecation.rb +35 -0
- data/lib/chef/mixin/file_class.rb +0 -9
- data/lib/chef/mixin/language.rb +22 -223
- data/lib/chef/mixin/language_include_attribute.rb +10 -36
- data/lib/chef/mixin/language_include_recipe.rb +7 -33
- data/lib/chef/mixin/params_validate.rb +0 -3
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +10 -61
- data/lib/chef/mixin/securable.rb +32 -7
- data/lib/chef/mixin/template.rb +156 -26
- data/lib/chef/mixin/windows_architecture_helper.rb +91 -0
- data/lib/chef/mixins.rb +1 -5
- data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/monkey_patches/file.rb} +6 -14
- data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -0
- data/lib/chef/monkey_patches/net_http.rb +0 -34
- data/lib/chef/monkey_patches/securerandom.rb +44 -0
- data/lib/chef/monologger.rb +93 -0
- data/lib/chef/node.rb +139 -308
- data/lib/chef/node/attribute.rb +367 -473
- data/lib/chef/node/attribute_collections.rb +206 -0
- data/lib/chef/node/immutable_collections.rb +186 -0
- data/lib/chef/platform.rb +4 -496
- data/lib/chef/platform/provider_mapping.rb +529 -0
- data/lib/chef/{mixin/check_helper.rb → platform/query_helpers.rb} +20 -9
- data/lib/chef/provider.rb +14 -58
- data/lib/chef/provider/batch.rb +35 -0
- data/lib/chef/provider/breakpoint.rb +6 -6
- data/lib/chef/provider/cookbook_file.rb +11 -80
- data/lib/chef/provider/cookbook_file/content.rb +49 -0
- data/lib/chef/provider/deploy.rb +26 -21
- data/lib/chef/provider/deploy/revision.rb +27 -0
- data/lib/chef/provider/directory.rb +12 -18
- data/lib/chef/provider/execute.rb +22 -5
- data/lib/chef/provider/file.rb +297 -248
- data/lib/chef/provider/file/content.rb +39 -0
- data/lib/chef/provider/git.rb +76 -43
- 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/ifconfig.rb +25 -35
- data/lib/chef/provider/ifconfig/debian.rb +71 -0
- data/lib/chef/provider/ifconfig/redhat.rb +47 -0
- data/lib/chef/provider/link.rb +12 -3
- data/lib/chef/provider/lwrp_base.rb +150 -0
- data/lib/chef/provider/mount.rb +1 -1
- data/lib/chef/provider/mount/mount.rb +8 -3
- data/lib/chef/provider/mount/windows.rb +4 -1
- data/lib/chef/provider/package/rpm.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +4 -1
- data/lib/chef/provider/package/smartos.rb +47 -36
- data/lib/chef/provider/package/zypper.rb +45 -55
- data/lib/chef/provider/powershell_script.rb +77 -0
- data/lib/chef/provider/registry_key.rb +156 -0
- data/lib/chef/provider/remote_directory.rb +6 -5
- data/lib/chef/provider/remote_file.rb +13 -100
- data/lib/chef/provider/remote_file/cache_control_data.rb +165 -0
- data/lib/chef/provider/remote_file/content.rb +75 -0
- data/lib/chef/provider/remote_file/fetcher.rb +43 -0
- data/lib/chef/provider/remote_file/ftp.rb +183 -0
- data/lib/chef/provider/remote_file/http.rb +124 -0
- data/lib/chef/provider/remote_file/local_file.rb +47 -0
- data/lib/chef/provider/route.rb +6 -2
- data/lib/chef/provider/ruby_block.rb +5 -2
- data/lib/chef/provider/script.rb +14 -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 +29 -81
- data/lib/chef/provider/service/simple.rb +1 -1
- data/lib/chef/provider/service/solaris.rb +6 -5
- data/lib/chef/provider/template.rb +16 -81
- data/lib/chef/provider/template/content.rb +61 -0
- 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 +50 -54
- data/lib/chef/provider/windows_script.rb +73 -0
- data/lib/chef/providers.rb +18 -1
- data/lib/chef/recipe.rb +14 -8
- data/lib/chef/resource.rb +52 -146
- data/lib/chef/resource/{whyrun_safe_ruby_block.rb → batch.rb} +10 -10
- data/lib/chef/resource/conditional.rb +4 -0
- data/lib/chef/resource/conditional_action_not_nothing.rb +48 -0
- data/lib/chef/resource/file.rb +31 -3
- data/lib/chef/resource/group.rb +1 -11
- data/lib/chef/resource/http_request.rb +2 -1
- data/lib/chef/resource/link.rb +17 -0
- data/lib/chef/resource/lwrp_base.rb +132 -0
- data/lib/chef/resource/mount.rb +39 -13
- data/lib/chef/resource/powershell_script.rb +31 -0
- 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 +62 -25
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/service.rb +14 -0
- data/lib/chef/resource/template.rb +145 -0
- data/lib/chef/resource/user.rb +0 -18
- data/lib/chef/resource/windows_script.rb +62 -0
- data/lib/chef/resource_collection.rb +69 -31
- data/lib/chef/resource_reporter.rb +81 -52
- data/lib/chef/resources.rb +4 -1
- data/lib/chef/rest.rb +55 -127
- data/lib/chef/rest/auth_credentials.rb +4 -20
- data/lib/chef/rest/rest_request.rb +7 -8
- 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 +1 -16
- data/lib/chef/run_lock.rb +96 -0
- data/lib/chef/runner.rb +28 -6
- data/lib/chef/sandbox.rb +15 -148
- data/lib/chef/scan_access_control.rb +8 -5
- data/lib/chef/search/query.rb +2 -2
- 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} +15 -13
- data/lib/chef/shell_out.rb +7 -0
- data/lib/chef/user.rb +182 -0
- data/lib/chef/util/backup.rb +84 -0
- data/lib/chef/util/diff.rb +145 -0
- data/lib/chef/util/file_edit.rb +1 -1
- data/lib/chef/util/selinux.rb +100 -0
- data/lib/chef/util/windows/net_group.rb +1 -5
- data/lib/chef/util/windows/net_user.rb +14 -1
- data/lib/chef/util/windows/volume.rb +2 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version/platform.rb +42 -0
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/version_constraint.rb +6 -5
- data/lib/chef/{index_queue.rb → version_constraint/platform.rb} +11 -14
- data/lib/chef/win32/api/file.rb +8 -2
- data/lib/chef/win32/api/security.rb +45 -1
- data/lib/chef/win32/registry.rb +382 -0
- data/lib/chef/win32/security.rb +19 -0
- data/lib/chef/win32/version.rb +25 -8
- data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/copyright +34 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/copyright +34 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.0.orig.tar.gz +0 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.1.orig.tar.gz +0 -0
- data/spec/data/apt/var/www/apt/conf/distributions +7 -0
- data/spec/data/apt/var/www/apt/conf/incoming +4 -0
- data/spec/data/apt/var/www/apt/conf/pulls +3 -0
- data/spec/data/apt/var/www/apt/db/checksums.db +0 -0
- data/spec/data/apt/var/www/apt/db/contents.cache.db +0 -0
- data/spec/data/apt/var/www/apt/db/packages.db +0 -0
- data/spec/data/apt/var/www/apt/db/references.db +0 -0
- data/spec/data/apt/var/www/apt/db/release.caches.db +0 -0
- data/spec/data/apt/var/www/apt/db/version +4 -0
- data/spec/data/apt/var/www/apt/dists/sid/Release +19 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages.gz +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-i386/Packages +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/bootstrap/encrypted_data_bag_secret +1 -0
- data/spec/data/bootstrap/secret.erb +9 -0
- data/spec/data/cookbooks/ignorken/recipes/default.rb +1 -0
- data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +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/cookbooks/openldap/templates/default/all_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -0
- data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -0
- data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -0
- data/spec/data/git_bundles/example-repo.gitbundle +0 -0
- data/spec/data/knife_subcommand/test_yourself.rb +8 -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/null_config.rb +1 -0
- data/spec/data/partial_one.erb +1 -0
- data/spec/data/remote_file/nyan_cat.png.gz +0 -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/file_content_management/deploy_strategies_spec.rb +238 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +3 -3
- data/spec/functional/knife/smoke_test.rb +34 -0
- data/spec/functional/knife/ssh_spec.rb +5 -1
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +101 -0
- data/spec/functional/resource/batch_spec.rb +64 -0
- data/spec/functional/resource/cookbook_file_spec.rb +15 -9
- data/spec/functional/resource/deploy_revision_spec.rb +180 -0
- data/spec/functional/resource/directory_spec.rb +5 -1
- data/spec/functional/resource/file_spec.rb +71 -21
- data/spec/functional/resource/git_spec.rb +259 -0
- data/spec/functional/resource/link_spec.rb +424 -388
- data/spec/functional/resource/package_spec.rb +297 -0
- data/spec/functional/resource/powershell_spec.rb +188 -0
- data/spec/functional/resource/registry_spec.rb +576 -0
- data/spec/functional/resource/remote_directory_spec.rb +143 -37
- data/spec/functional/resource/remote_file_spec.rb +99 -13
- data/spec/functional/resource/template_spec.rb +180 -3
- data/spec/functional/resource/user_spec.rb +547 -0
- data/spec/functional/run_lock_spec.rb +243 -0
- data/spec/functional/shell_spec.rb +102 -0
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/functional/win32/security_spec.rb +37 -0
- data/spec/functional/win32/service_manager_spec.rb +269 -0
- data/spec/functional/win32/versions_spec.rb +78 -0
- data/spec/integration/knife/chef_repo_path_spec.rb +805 -0
- data/spec/integration/knife/chef_repository_file_system_spec.rb +276 -0
- data/spec/integration/knife/chefignore_spec.rb +271 -0
- data/spec/integration/knife/delete_spec.rb +944 -0
- data/spec/integration/knife/deps_spec.rb +648 -0
- data/spec/integration/knife/diff_spec.rb +536 -0
- data/spec/integration/knife/download_spec.rb +962 -0
- data/spec/integration/knife/list_spec.rb +633 -0
- data/spec/integration/knife/raw_spec.rb +166 -0
- data/spec/integration/knife/redirection_spec.rb +57 -0
- data/spec/integration/knife/show_spec.rb +158 -0
- data/spec/integration/knife/upload_spec.rb +1060 -0
- data/spec/integration/solo/solo_spec.rb +41 -0
- data/spec/spec_helper.rb +49 -13
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +33 -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/platform_helpers.rb +46 -13
- data/spec/support/platforms/win32/spec_service.rb +59 -0
- data/spec/support/shared/functional/diff_disabled.rb +10 -0
- data/spec/support/shared/functional/directory_resource.rb +129 -38
- data/spec/support/shared/functional/file_resource.rb +837 -71
- data/spec/support/shared/functional/securable_resource.rb +189 -58
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +385 -0
- data/spec/support/shared/integration/integration_helper.rb +166 -0
- data/spec/support/shared/integration/knife_support.rb +171 -0
- data/spec/support/shared/unit/execute_resource.rb +125 -0
- data/spec/support/shared/unit/file_system_support.rb +70 -0
- data/spec/support/shared/unit/platform_introspector.rb +162 -0
- data/spec/support/shared/unit/provider/file.rb +609 -0
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +407 -0
- data/spec/support/shared/unit/script_resource.rb +52 -0
- data/spec/support/shared/unit/windows_script_resource.rb +48 -0
- data/spec/tiny_server.rb +13 -11
- data/spec/unit/api_client/registration_spec.rb +172 -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 +16 -14
- data/spec/unit/application/knife_spec.rb +17 -0
- data/spec/unit/application/solo_spec.rb +1 -1
- data/spec/unit/application_spec.rb +113 -3
- 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_spec.rb +135 -0
- data/spec/unit/client_spec.rb +195 -23
- data/spec/unit/config_spec.rb +102 -51
- data/spec/unit/cookbook/syntax_check_spec.rb +75 -111
- data/spec/unit/cookbook_loader_spec.rb +154 -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 +24 -19
- data/spec/unit/data_bag_spec.rb +13 -4
- data/spec/unit/deprecation_spec.rb +86 -0
- 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 +197 -157
- data/spec/unit/environment_spec.rb +94 -126
- data/spec/unit/exceptions_spec.rb +8 -4
- data/spec/unit/file_access_control_spec.rb +21 -1
- data/spec/unit/file_content_management/deploy/cp_spec.rb +46 -0
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +103 -0
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +179 -0
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +38 -2
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +6 -5
- data/spec/unit/json_compat_spec.rb +8 -0
- data/spec/unit/knife/bootstrap_spec.rb +130 -29
- data/spec/unit/knife/configure_spec.rb +64 -45
- data/spec/unit/knife/cookbook_download_spec.rb +24 -3
- 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 +39 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +79 -62
- data/spec/unit/knife/core/subcommand_loader_spec.rb +20 -0
- data/spec/unit/knife/core/ui_spec.rb +196 -124
- 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/node_run_list_set_spec.rb +140 -0
- data/spec/unit/knife/ssh_spec.rb +12 -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 +74 -0
- data/spec/unit/lwrp_spec.rb +102 -60
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +130 -791
- data/spec/unit/mixin/deprecation_spec.rb +23 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +7 -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 +145 -14
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +83 -0
- data/spec/unit/node/attribute_spec.rb +273 -173
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +418 -370
- data/spec/unit/platform_spec.rb +21 -8
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file/content_spec.rb +40 -0
- data/spec/unit/provider/cookbook_file_spec.rb +26 -187
- data/spec/unit/provider/cron/solaris_spec.rb +1 -1
- data/spec/unit/provider/deploy/revision_spec.rb +19 -11
- data/spec/unit/provider/deploy_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +99 -67
- data/spec/unit/provider/env_spec.rb +2 -2
- data/spec/unit/provider/execute_spec.rb +27 -1
- data/spec/unit/provider/file/content_spec.rb +101 -0
- data/spec/unit/provider/file_spec.rb +25 -475
- data/spec/unit/provider/git_spec.rb +224 -28
- 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 +9 -22
- 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/debian_spec.rb +89 -0
- data/spec/unit/provider/ifconfig/redhat_spec.rb +71 -0
- data/spec/unit/provider/ifconfig_spec.rb +0 -33
- data/spec/unit/provider/mount/mount_spec.rb +33 -2
- data/spec/unit/provider/mount/windows_spec.rb +4 -1
- data/spec/unit/provider/mount_spec.rb +16 -6
- 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/rpm_spec.rb +0 -12
- data/spec/unit/provider/package/rubygems_spec.rb +1 -1
- data/spec/unit/provider/package/smartos_spec.rb +3 -2
- data/spec/unit/provider/package/zypper_spec.rb +84 -22
- data/spec/unit/provider/package_spec.rb +7 -9
- data/spec/unit/provider/powershell_spec.rb +38 -0
- data/spec/unit/provider/registry_key_spec.rb +269 -0
- data/spec/unit/provider/remote_directory_spec.rb +7 -7
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +211 -0
- data/spec/unit/provider/remote_file/content_spec.rb +230 -0
- data/spec/unit/provider/remote_file/fetcher_spec.rb +75 -0
- data/spec/unit/provider/remote_file/ftp_spec.rb +224 -0
- data/spec/unit/provider/remote_file/http_spec.rb +319 -0
- data/spec/unit/provider/remote_file/local_file_spec.rb +60 -0
- data/spec/unit/provider/remote_file_spec.rb +33 -259
- data/spec/unit/provider/route_spec.rb +29 -12
- 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 +176 -207
- 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/solaris_smf_service_spec.rb +21 -18
- data/spec/unit/provider/service/systemd_service_spec.rb +2 -2
- data/spec/unit/provider/service/upstart_service_spec.rb +11 -11
- data/spec/unit/provider/service_spec.rb +3 -3
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/template/content_spec.rb +78 -0
- data/spec/unit/provider/template_spec.rb +52 -160
- data/spec/unit/provider/user/dscl_spec.rb +285 -681
- data/spec/unit/provider/user/solaris_spec.rb +39 -373
- data/spec/unit/provider/user/useradd_spec.rb +12 -379
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +376 -0
- data/spec/unit/resource/batch_spec.rb +48 -0
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -0
- data/spec/unit/resource/execute_spec.rb +3 -101
- data/spec/unit/resource/file_spec.rb +0 -5
- data/spec/unit/resource/group_spec.rb +9 -0
- data/spec/unit/resource/ifconfig_spec.rb +60 -1
- data/spec/unit/resource/link_spec.rb +1 -0
- data/spec/unit/resource/mount_spec.rb +37 -11
- data/spec/unit/resource/powershell_spec.rb +48 -0
- data/spec/unit/resource/registry_key_spec.rb +171 -0
- data/spec/unit/resource/remote_file_spec.rb +63 -25
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/ruby_block_spec.rb +7 -3
- data/spec/unit/resource/script_spec.rb +13 -36
- data/spec/unit/resource/service_spec.rb +11 -0
- data/spec/unit/resource/template_spec.rb +111 -8
- data/spec/unit/resource/user_spec.rb +7 -0
- data/spec/unit/resource_collection_spec.rb +61 -32
- data/spec/unit/resource_reporter_spec.rb +115 -102
- data/spec/unit/resource_spec.rb +197 -5
- data/spec/unit/rest/auth_credentials_spec.rb +4 -21
- data/spec/unit/rest_spec.rb +134 -284
- data/spec/unit/run_context/cookbook_compiler_spec.rb +190 -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 +102 -3
- data/spec/unit/scan_access_control_spec.rb +8 -6
- 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} +16 -58
- 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
- data/spec/unit/util/backup_spec.rb +149 -0
- data/spec/unit/util/diff_spec.rb +596 -0
- data/spec/unit/util/selinux_spec.rb +172 -0
- data/spec/unit/version/platform_spec.rb +61 -0
- data/spec/unit/version_constraint/platform_spec.rb +46 -0
- data/spec/unit/version_constraint_spec.rb +5 -0
- metadata +493 -264
- 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/dir.rb +0 -36
- 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/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/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/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
@@ -38,11 +38,18 @@ describe Chef::ResourceReporter do
|
|
38
38
|
@rest_client = mock("Chef::REST (mock)")
|
39
39
|
@rest_client.stub!(:post_rest).and_return(true)
|
40
40
|
@resource_reporter = Chef::ResourceReporter.new(@rest_client)
|
41
|
+
@run_id = @resource_reporter.run_id
|
41
42
|
@new_resource = Chef::Resource::File.new("/tmp/a-file.txt")
|
42
43
|
@new_resource.cookbook_name = "monkey"
|
43
44
|
@cookbook_version = mock("Cookbook::Version", :version => "1.2.3")
|
44
45
|
@new_resource.stub!(:cookbook_version).and_return(@cookbook_version)
|
45
46
|
@current_resource = Chef::Resource::File.new("/tmp/a-file.txt")
|
47
|
+
@start_time = Time.new
|
48
|
+
@end_time = Time.new + 20
|
49
|
+
@events = Chef::EventDispatch::Dispatcher.new
|
50
|
+
@run_context = Chef::RunContext.new(@node, {}, @events)
|
51
|
+
@run_status = Chef::RunStatus.new(@node, @events)
|
52
|
+
Time.stub!(:now).and_return(@start_time, @end_time)
|
46
53
|
end
|
47
54
|
|
48
55
|
context "when first created" do
|
@@ -80,23 +87,23 @@ describe Chef::ResourceReporter do
|
|
80
87
|
|
81
88
|
context "when chef fails" do
|
82
89
|
before do
|
83
|
-
@rest_client.stub!(:create_url).and_return("reports/nodes/spitfire/runs
|
90
|
+
@rest_client.stub!(:create_url).and_return("reports/nodes/spitfire/runs/#{@run_id}");
|
84
91
|
@rest_client.stub!(:raw_http_request).and_return({"result"=>"ok"});
|
85
|
-
@rest_client.stub!(:post_rest).and_return({"uri"=>"https://example.com/reports/nodes/spitfire/runs
|
92
|
+
@rest_client.stub!(:post_rest).and_return({"uri"=>"https://example.com/reports/nodes/spitfire/runs/#{@run_id}"});
|
86
93
|
|
87
|
-
@resource_reporter.node_load_completed(@node, :expanded_run_list, :config)
|
88
94
|
end
|
89
95
|
|
90
96
|
context "before converging any resources" do
|
91
97
|
before do
|
98
|
+
@resource_reporter.run_started(@run_status)
|
92
99
|
@exception = Exception.new
|
93
100
|
@resource_reporter.run_failed(@exception)
|
94
101
|
end
|
95
|
-
|
102
|
+
|
96
103
|
it "sets the run status to 'failure'" do
|
97
104
|
@resource_reporter.status.should == "failure"
|
98
105
|
end
|
99
|
-
|
106
|
+
|
100
107
|
it "keeps the exception data" do
|
101
108
|
@resource_reporter.exception.should == @exception
|
102
109
|
end
|
@@ -117,13 +124,13 @@ describe Chef::ResourceReporter do
|
|
117
124
|
|
118
125
|
it "collects the desired state of the resource" do
|
119
126
|
update_record = @resource_reporter.updated_resources.first
|
120
|
-
update_record.new_resource.should == @new_resource
|
127
|
+
update_record.new_resource.should == @new_resource
|
121
128
|
end
|
122
129
|
end
|
123
130
|
|
124
131
|
# TODO: make sure a resource that is skipped because of `not_if` doesn't
|
125
132
|
# leave us in a bad state.
|
126
|
-
|
133
|
+
|
127
134
|
context "once the a resource's current state is loaded" do
|
128
135
|
before do
|
129
136
|
@resource_reporter.resource_action_start(@new_resource, :create)
|
@@ -151,12 +158,12 @@ describe Chef::ResourceReporter do
|
|
151
158
|
it "collects the updated resource" do
|
152
159
|
@resource_reporter.should have(1).updated_resources
|
153
160
|
end
|
154
|
-
|
161
|
+
|
155
162
|
it "collects the old state of the resource" do
|
156
|
-
update_record = @resource_reporter.updated_resources.first
|
163
|
+
update_record = @resource_reporter.updated_resources.first
|
157
164
|
update_record.current_resource.should == @current_resource
|
158
165
|
end
|
159
|
-
|
166
|
+
|
160
167
|
it "collects the new state of the resource" do
|
161
168
|
update_record = @resource_reporter.updated_resources.first
|
162
169
|
update_record.new_resource.should == @new_resource
|
@@ -170,19 +177,19 @@ describe Chef::ResourceReporter do
|
|
170
177
|
@resource_reporter.resource_failed(@next_new_resource, :create, @exception)
|
171
178
|
@resource_reporter.resource_completed(@next_new_resource)
|
172
179
|
end
|
173
|
-
|
180
|
+
|
174
181
|
it "collects the desired state of the failed resource" do
|
175
182
|
failed_resource_update = @resource_reporter.updated_resources.last
|
176
183
|
failed_resource_update.new_resource.should == @next_new_resource
|
177
184
|
end
|
178
|
-
|
185
|
+
|
179
186
|
it "does not have the current state of the failed resource" do
|
180
187
|
failed_resource_update = @resource_reporter.updated_resources.last
|
181
188
|
failed_resource_update.current_resource.should be_nil
|
182
189
|
end
|
183
190
|
end
|
184
191
|
end
|
185
|
-
|
192
|
+
|
186
193
|
# Some providers, such as RemoteDirectory and some LWRPs use other
|
187
194
|
# resources for their implementation. These should be hidden from reporting
|
188
195
|
# since we only care about the top-level resource and not the sub-resources
|
@@ -213,7 +220,7 @@ describe Chef::ResourceReporter do
|
|
213
220
|
@resource_reporter.resource_updated(@new_resource, :create)
|
214
221
|
@resource_reporter.resource_completed(@new_resource)
|
215
222
|
end
|
216
|
-
|
223
|
+
|
217
224
|
it "does not collect data about the nested resource" do
|
218
225
|
@resource_reporter.should have(1).updated_resources
|
219
226
|
end
|
@@ -226,16 +233,16 @@ describe Chef::ResourceReporter do
|
|
226
233
|
@resource_reporter.resource_failed(@new_resource, :create, @exception)
|
227
234
|
@resource_reporter.resource_completed(@new_resource)
|
228
235
|
end
|
229
|
-
|
236
|
+
|
230
237
|
it "collects the resource as an updated resource" do
|
231
238
|
@resource_reporter.should have(1).updated_resources
|
232
239
|
end
|
233
|
-
|
240
|
+
|
234
241
|
it "collects the desired state of the resource" do
|
235
242
|
update_record = @resource_reporter.updated_resources.first
|
236
243
|
update_record.new_resource.should == @new_resource
|
237
244
|
end
|
238
|
-
|
245
|
+
|
239
246
|
it "collects the current state of the resource" do
|
240
247
|
update_record = @resource_reporter.updated_resources.first
|
241
248
|
update_record.current_resource.should == @current_resource
|
@@ -248,13 +255,13 @@ describe Chef::ResourceReporter do
|
|
248
255
|
describe "when generating a report for the server" do
|
249
256
|
|
250
257
|
before do
|
251
|
-
@rest_client.stub!(:create_url).and_return("reports/nodes/spitfire/runs
|
258
|
+
@rest_client.stub!(:create_url).and_return("reports/nodes/spitfire/runs/#{@run_id}");
|
252
259
|
@rest_client.stub!(:raw_http_request).and_return({"result"=>"ok"});
|
253
|
-
@rest_client.stub!(:post_rest).and_return({"uri"=>"https://example.com/reports/nodes/spitfire/runs
|
254
|
-
|
255
|
-
@resource_reporter.
|
260
|
+
@rest_client.stub!(:post_rest).and_return({"uri"=>"https://example.com/reports/nodes/spitfire/runs/#{@run_id}"});
|
261
|
+
|
262
|
+
@resource_reporter.run_started(@run_status)
|
256
263
|
end
|
257
|
-
|
264
|
+
|
258
265
|
context "for a successful client run" do
|
259
266
|
before do
|
260
267
|
# TODO: add inputs to generate expected output.
|
@@ -291,6 +298,7 @@ describe Chef::ResourceReporter do
|
|
291
298
|
@resource_reporter.resource_current_state_loaded(@new_resource, :create, @current_resource)
|
292
299
|
@resource_reporter.resource_updated(@new_resource, :create)
|
293
300
|
@resource_reporter.resource_completed(@new_resource)
|
301
|
+
@run_status.stop_clock
|
294
302
|
@report = @resource_reporter.prepare_run_data
|
295
303
|
@first_update_report = @report["resources"].first
|
296
304
|
end
|
@@ -357,8 +365,14 @@ describe Chef::ResourceReporter do
|
|
357
365
|
|
358
366
|
it "includes the run_list" do
|
359
367
|
@report.should have_key("run_list")
|
360
|
-
@report["run_list"].should == @node.run_list.to_json
|
368
|
+
@report["run_list"].should == @run_status.node.run_list.to_json
|
361
369
|
end
|
370
|
+
|
371
|
+
it "includes the end_time" do
|
372
|
+
@report.should have_key("end_time")
|
373
|
+
@report["end_time"].should == @run_status.end_time.to_s
|
374
|
+
end
|
375
|
+
|
362
376
|
end
|
363
377
|
|
364
378
|
context "for an unsuccessful run" do
|
@@ -394,15 +408,68 @@ describe Chef::ResourceReporter do
|
|
394
408
|
|
395
409
|
it "includes the error inspector output in the event data" do
|
396
410
|
@report["data"]["exception"].should have_key("description")
|
397
|
-
@report["data"]["exception"]["description"].should include({"title"=>"Error expanding the run_list:", "sections"=>[
|
411
|
+
@report["data"]["exception"]["description"].should include({"title"=>"Error expanding the run_list:", "sections"=>[{"Unexpected Error:" => "RSpec::Mocks::Mock: Object not found"}]})
|
398
412
|
end
|
399
413
|
|
400
414
|
end
|
401
415
|
|
416
|
+
context "when new_resource does not have a cookbook_name" do
|
417
|
+
before do
|
418
|
+
@bad_resource = Chef::Resource::File.new("/tmp/a-file.txt")
|
419
|
+
@bad_resource.cookbook_name = nil
|
420
|
+
|
421
|
+
@resource_reporter.resource_action_start(@bad_resource, :create)
|
422
|
+
@resource_reporter.resource_current_state_loaded(@bad_resource, :create, @current_resource)
|
423
|
+
@resource_reporter.resource_updated(@bad_resource, :create)
|
424
|
+
@resource_reporter.resource_completed(@bad_resource)
|
425
|
+
@run_status.stop_clock
|
426
|
+
@report = @resource_reporter.prepare_run_data
|
427
|
+
@first_update_report = @report["resources"].first
|
428
|
+
end
|
429
|
+
|
430
|
+
it "includes an updated resource's initial state" do
|
431
|
+
@first_update_report["before"].should == @current_resource.state
|
432
|
+
end
|
433
|
+
|
434
|
+
it "includes an updated resource's final state" do
|
435
|
+
@first_update_report["after"].should == @new_resource.state
|
436
|
+
end
|
437
|
+
|
438
|
+
it "includes the resource's name" do
|
439
|
+
@first_update_report["name"].should == @new_resource.name
|
440
|
+
end
|
441
|
+
|
442
|
+
it "includes the resource's id attribute" do
|
443
|
+
@first_update_report["id"].should == @new_resource.identity
|
444
|
+
end
|
445
|
+
|
446
|
+
it "includes the elapsed time for the resource to converge" do
|
447
|
+
# TODO: API takes integer number of milliseconds as a string. This
|
448
|
+
# should be an int.
|
449
|
+
@first_update_report.should have_key("duration")
|
450
|
+
@first_update_report["duration"].to_i.should be_within(100).of(0)
|
451
|
+
end
|
452
|
+
|
453
|
+
it "includes the action executed by the resource" do
|
454
|
+
# TODO: rename as "action"
|
455
|
+
@first_update_report["result"].should == "create"
|
456
|
+
end
|
457
|
+
|
458
|
+
it "does not include a cookbook name for the resource" do
|
459
|
+
@first_update_report.should_not have_key("cookbook_name")
|
460
|
+
end
|
461
|
+
|
462
|
+
it "does not include a cookbook version for the resource" do
|
463
|
+
@first_update_report.should_not have_key("cookbook_version")
|
464
|
+
end
|
465
|
+
end
|
466
|
+
|
402
467
|
end
|
403
468
|
|
404
469
|
describe "when updating resource history on the server" do
|
405
470
|
before do
|
471
|
+
@resource_reporter.run_started(@run_status)
|
472
|
+
@run_status.start_clock
|
406
473
|
end
|
407
474
|
|
408
475
|
context "when the server does not support storing resource history" do
|
@@ -411,24 +478,26 @@ describe Chef::ResourceReporter do
|
|
411
478
|
@response = Net::HTTPNotFound.new("a response body", "404", "Not Found")
|
412
479
|
@error = Net::HTTPServerException.new("404 message", @response)
|
413
480
|
@rest_client.should_receive(:post_rest).
|
414
|
-
with("reports/nodes/spitfire/runs", {:action => :
|
481
|
+
with("reports/nodes/spitfire/runs", {:action => :start, :run_id => @run_id,
|
482
|
+
:start_time => @start_time.to_s},
|
483
|
+
{'X-Ops-Reporting-Protocol-Version' => Chef::ResourceReporter::PROTOCOL_VERSION}).
|
415
484
|
and_raise(@error)
|
416
485
|
end
|
417
486
|
|
418
487
|
it "assumes the feature is not enabled" do
|
419
|
-
@resource_reporter.
|
488
|
+
@resource_reporter.run_started(@run_status)
|
420
489
|
@resource_reporter.reporting_enabled?.should be_false
|
421
490
|
end
|
422
491
|
|
423
492
|
it "does not send a resource report to the server" do
|
424
|
-
@resource_reporter.
|
493
|
+
@resource_reporter.run_started(@run_status)
|
425
494
|
@rest_client.should_not_receive(:post_rest)
|
426
495
|
@resource_reporter.run_completed(@node)
|
427
496
|
end
|
428
497
|
|
429
498
|
it "prints an error about the 404" do
|
430
499
|
Chef::Log.should_receive(:debug).with(/404/)
|
431
|
-
@resource_reporter.
|
500
|
+
@resource_reporter.run_started(@run_status)
|
432
501
|
end
|
433
502
|
|
434
503
|
end
|
@@ -439,24 +508,25 @@ describe Chef::ResourceReporter do
|
|
439
508
|
@response = Net::HTTPInternalServerError.new("a response body", "500", "Internal Server Error")
|
440
509
|
@error = Net::HTTPServerException.new("500 message", @response)
|
441
510
|
@rest_client.should_receive(:post_rest).
|
442
|
-
with("reports/nodes/spitfire/runs", {:action => :
|
511
|
+
with("reports/nodes/spitfire/runs", {:action => :start, :run_id => @run_id, :start_time => @start_time.to_s},
|
512
|
+
{'X-Ops-Reporting-Protocol-Version' => Chef::ResourceReporter::PROTOCOL_VERSION}).
|
443
513
|
and_raise(@error)
|
444
514
|
end
|
445
515
|
|
446
516
|
it "assumes the feature is not enabled" do
|
447
|
-
@resource_reporter.
|
517
|
+
@resource_reporter.run_started(@run_status)
|
448
518
|
@resource_reporter.reporting_enabled?.should be_false
|
449
519
|
end
|
450
520
|
|
451
521
|
it "does not send a resource report to the server" do
|
452
|
-
@resource_reporter.
|
522
|
+
@resource_reporter.run_started(@run_status)
|
453
523
|
@rest_client.should_not_receive(:post_rest)
|
454
524
|
@resource_reporter.run_completed(@node)
|
455
525
|
end
|
456
526
|
|
457
527
|
it "prints an error about the error" do
|
458
528
|
Chef::Log.should_receive(:info).with(/500/)
|
459
|
-
@resource_reporter.
|
529
|
+
@resource_reporter.run_started(@run_status)
|
460
530
|
end
|
461
531
|
end
|
462
532
|
|
@@ -468,7 +538,8 @@ describe Chef::ResourceReporter do
|
|
468
538
|
@response = Net::HTTPInternalServerError.new("a response body", "500", "Internal Server Error")
|
469
539
|
@error = Net::HTTPServerException.new("500 message", @response)
|
470
540
|
@rest_client.should_receive(:post_rest).
|
471
|
-
with("reports/nodes/spitfire/runs", {:action => :
|
541
|
+
with("reports/nodes/spitfire/runs", {:action => :start, :run_id => @run_id, :start_time => @start_time.to_s},
|
542
|
+
{'X-Ops-Reporting-Protocol-Version' => Chef::ResourceReporter::PROTOCOL_VERSION}).
|
472
543
|
and_raise(@error)
|
473
544
|
end
|
474
545
|
|
@@ -479,23 +550,23 @@ describe Chef::ResourceReporter do
|
|
479
550
|
it "fails the run and prints an message about the error" do
|
480
551
|
Chef::Log.should_receive(:error).with(/500/)
|
481
552
|
lambda {
|
482
|
-
@resource_reporter.
|
553
|
+
@resource_reporter.run_started(@run_status)
|
483
554
|
}.should raise_error(Net::HTTPServerException)
|
484
555
|
end
|
485
556
|
end
|
486
557
|
|
487
558
|
context "after creating the run history document" do
|
488
559
|
before do
|
489
|
-
response = {"uri"=>"https://example.com/reports/nodes/spitfire/runs
|
560
|
+
response = {"uri"=>"https://example.com/reports/nodes/spitfire/runs/@run_id"}
|
490
561
|
@rest_client.should_receive(:post_rest).
|
491
|
-
with("reports/nodes/spitfire/runs", {:action => :
|
562
|
+
with("reports/nodes/spitfire/runs", {:action => :start, :run_id => @run_id, :start_time => @start_time.to_s},
|
563
|
+
{'X-Ops-Reporting-Protocol-Version' => Chef::ResourceReporter::PROTOCOL_VERSION}).
|
492
564
|
and_return(response)
|
493
|
-
|
494
|
-
@resource_reporter.node_load_completed(@node, :expanded_run_list, :config)
|
565
|
+
@resource_reporter.run_started(@run_status)
|
495
566
|
end
|
496
567
|
|
497
568
|
it "creates a run document on the server at the start of the run" do
|
498
|
-
@resource_reporter.run_id.should ==
|
569
|
+
@resource_reporter.run_id.should == @run_id
|
499
570
|
end
|
500
571
|
|
501
572
|
it "updates the run document with resource updates at the end of the run" do
|
@@ -504,19 +575,22 @@ describe Chef::ResourceReporter do
|
|
504
575
|
@resource_reporter.resource_current_state_loaded(@new_resource, :create, @current_resource)
|
505
576
|
@resource_reporter.resource_updated(@new_resource, :create)
|
506
577
|
|
578
|
+
@resource_reporter.stub!(:end_time).and_return(@end_time)
|
507
579
|
@expected_data = @resource_reporter.prepare_run_data
|
508
580
|
|
509
581
|
post_url = "https://chef_server/example_url"
|
510
582
|
response = {"result"=>"ok"}
|
511
583
|
|
512
584
|
@rest_client.should_receive(:create_url).
|
513
|
-
with("reports/nodes/spitfire/runs
|
585
|
+
with("reports/nodes/spitfire/runs/#{@run_id}").
|
514
586
|
ordered.
|
515
587
|
and_return(post_url)
|
516
588
|
@rest_client.should_receive(:raw_http_request).ordered do |method, url, headers, data|
|
517
589
|
method.should eq(:POST)
|
518
590
|
url.should eq(post_url)
|
519
|
-
headers.should eq({'Content-Encoding' => 'gzip'
|
591
|
+
headers.should eq({'Content-Encoding' => 'gzip',
|
592
|
+
'X-Ops-Reporting-Protocol-Version' => Chef::ResourceReporter::PROTOCOL_VERSION
|
593
|
+
})
|
520
594
|
data_stream = Zlib::GzipReader.new(StringIO.new(data))
|
521
595
|
data = data_stream.read
|
522
596
|
data.should eq(@expected_data.to_json)
|
@@ -526,66 +600,5 @@ describe Chef::ResourceReporter do
|
|
526
600
|
@resource_reporter.run_completed(@node)
|
527
601
|
end
|
528
602
|
end
|
529
|
-
|
530
|
-
context "after creating the run history document when summary_only is set to true" do
|
531
|
-
before do
|
532
|
-
response = {"uri"=>"https://example.com/reports/nodes/spitfire/runs/ABC123", "summary_only"=>"true"}
|
533
|
-
@rest_client.should_receive(:post_rest).
|
534
|
-
with("reports/nodes/spitfire/runs", {:action => :begin}).
|
535
|
-
and_return(response)
|
536
|
-
|
537
|
-
@resource_reporter.node_load_completed(@node, :expanded_run_list, :config)
|
538
|
-
end
|
539
|
-
|
540
|
-
it "enables summary only reporting" do
|
541
|
-
@resource_reporter.summary_only.should == "true"
|
542
|
-
end
|
543
|
-
|
544
|
-
it "updates the run document with resource updates at the end of the run" do
|
545
|
-
# update some resources...
|
546
|
-
@resource_reporter.resource_action_start(@new_resource, :create)
|
547
|
-
@resource_reporter.resource_current_state_loaded(@new_resource, :create, @current_resource)
|
548
|
-
@resource_reporter.resource_updated(@new_resource, :create)
|
549
|
-
|
550
|
-
post_url = "reports/nodes/spitfire/runs/ABC123"
|
551
|
-
response = {"result"=>"ok"}
|
552
|
-
|
553
|
-
@rest_client.should_receive(:post_rest).ordered do |url, data|
|
554
|
-
url.should eq(post_url)
|
555
|
-
data.should have_key("action")
|
556
|
-
data["action"].should == "end"
|
557
|
-
data.should have_key("status")
|
558
|
-
data.should have_key("resources")
|
559
|
-
data["resources"].should == []
|
560
|
-
data.should have_key("total_res_count")
|
561
|
-
data["total_res_count"].should == "1"
|
562
|
-
data.should have_key("data")
|
563
|
-
data["data"].should == {}
|
564
|
-
data.should have_key("updated_res_count")
|
565
|
-
data["updated_res_count"].should == "0"
|
566
|
-
data.should have_key("post_size")
|
567
|
-
response
|
568
|
-
end
|
569
|
-
|
570
|
-
@resource_reporter.run_completed(@node)
|
571
|
-
end
|
572
|
-
end
|
573
|
-
|
574
|
-
context "after creating the run history document when summary_only is set to false" do
|
575
|
-
before do
|
576
|
-
response = {"uri"=>"https://example.com/reports/nodes/spitfire/runs/ABC123", "summary_only"=>"false"}
|
577
|
-
@rest_client.should_receive(:post_rest).
|
578
|
-
with("reports/nodes/spitfire/runs", {:action => :begin}).
|
579
|
-
and_return(response)
|
580
|
-
|
581
|
-
@resource_reporter.node_load_completed(@node, :expanded_run_list, :config)
|
582
|
-
end
|
583
|
-
|
584
|
-
it "disables summary_only reporting" do
|
585
|
-
@resource_reporter.summary_only.should == "false"
|
586
|
-
end
|
587
|
-
end
|
588
|
-
|
589
603
|
end
|
590
|
-
|
591
604
|
end
|
data/spec/unit/resource_spec.rb
CHANGED
@@ -288,6 +288,29 @@ describe Chef::Resource do
|
|
288
288
|
end
|
289
289
|
end
|
290
290
|
|
291
|
+
describe "defined_at" do
|
292
|
+
it "should correctly parse source_line on unix-like operating systems" do
|
293
|
+
@resource.source_line = "/some/path/to/file.rb:80:in `wombat_tears'"
|
294
|
+
@resource.defined_at.should == "/some/path/to/file.rb line 80"
|
295
|
+
end
|
296
|
+
|
297
|
+
it "should correctly parse source_line on Windows" do
|
298
|
+
@resource.source_line = "C:/some/path/to/file.rb:80 in 1`wombat_tears'"
|
299
|
+
@resource.defined_at.should == "C:/some/path/to/file.rb line 80"
|
300
|
+
end
|
301
|
+
|
302
|
+
it "should include the cookbook and recipe when it knows it" do
|
303
|
+
@resource.source_line = "/some/path/to/file.rb:80:in `wombat_tears'"
|
304
|
+
@resource.recipe_name = "wombats"
|
305
|
+
@resource.cookbook_name = "animals"
|
306
|
+
@resource.defined_at.should == "animals::wombats line 80"
|
307
|
+
end
|
308
|
+
|
309
|
+
it "should recognize dynamically defined resources" do
|
310
|
+
@resource.defined_at.should == "dynamically defined"
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
291
314
|
describe "to_s" do
|
292
315
|
it "should become a string like resource_name[name]" do
|
293
316
|
zm = Chef::Resource::ZenMaster.new("coffee")
|
@@ -436,12 +459,11 @@ describe Chef::Resource do
|
|
436
459
|
end
|
437
460
|
|
438
461
|
describe "when invoking its action" do
|
439
|
-
|
440
462
|
before do
|
441
463
|
@resource = Chef::Resource.new("provided", @run_context)
|
442
464
|
@resource.provider = Chef::Provider::SnakeOil
|
443
|
-
@node[:platform] = "fubuntu"
|
444
|
-
@node[:platform_version] = '10.04'
|
465
|
+
@node.automatic_attrs[:platform] = "fubuntu"
|
466
|
+
@node.automatic_attrs[:platform_version] = '10.04'
|
445
467
|
end
|
446
468
|
|
447
469
|
it "does not run only_if if no only_if command is given" do
|
@@ -506,6 +528,114 @@ describe Chef::Resource do
|
|
506
528
|
|
507
529
|
end
|
508
530
|
|
531
|
+
describe "should_skip?" do
|
532
|
+
before do
|
533
|
+
@resource = Chef::Resource::Cat.new("sugar", @run_context)
|
534
|
+
end
|
535
|
+
|
536
|
+
it "should return false by default" do
|
537
|
+
@resource.should_skip?(:purr).should be_false
|
538
|
+
end
|
539
|
+
|
540
|
+
it "should return false when if_only is met" do
|
541
|
+
@resource.only_if { true }
|
542
|
+
@resource.should_skip?(:purr).should be_false
|
543
|
+
end
|
544
|
+
|
545
|
+
it "should return true when if_only is not met" do
|
546
|
+
@resource.only_if { false }
|
547
|
+
@resource.should_skip?(:purr).should be_true
|
548
|
+
end
|
549
|
+
|
550
|
+
it "should return true when not_if is met" do
|
551
|
+
@resource.not_if { true }
|
552
|
+
@resource.should_skip?(:purr).should be_true
|
553
|
+
end
|
554
|
+
|
555
|
+
it "should return false when if_only is not met" do
|
556
|
+
@resource.not_if { false }
|
557
|
+
@resource.should_skip?(:purr).should be_false
|
558
|
+
end
|
559
|
+
|
560
|
+
it "should return true when if_only is met but also not_if is met" do
|
561
|
+
@resource.only_if { true }
|
562
|
+
@resource.not_if { true }
|
563
|
+
@resource.should_skip?(:purr).should be_true
|
564
|
+
end
|
565
|
+
|
566
|
+
it "should return true when one of multiple if_only's is not met" do
|
567
|
+
@resource.only_if { true }
|
568
|
+
@resource.only_if { false }
|
569
|
+
@resource.only_if { true }
|
570
|
+
@resource.should_skip?(:purr).should be_true
|
571
|
+
end
|
572
|
+
|
573
|
+
it "should return true when one of multiple not_if's is met" do
|
574
|
+
@resource.not_if { false }
|
575
|
+
@resource.not_if { true }
|
576
|
+
@resource.not_if { false }
|
577
|
+
@resource.should_skip?(:purr).should be_true
|
578
|
+
end
|
579
|
+
|
580
|
+
it "should return true when action is :nothing" do
|
581
|
+
@resource.should_skip?(:nothing).should be_true
|
582
|
+
end
|
583
|
+
|
584
|
+
it "should return true when action is :nothing ignoring only_if/not_if conditionals" do
|
585
|
+
@resource.only_if { true }
|
586
|
+
@resource.not_if { false }
|
587
|
+
@resource.should_skip?(:nothing).should be_true
|
588
|
+
end
|
589
|
+
|
590
|
+
it "should print \"skipped due to action :nothing\" message for doc formatter when action is :nothing" do
|
591
|
+
fdoc = Chef::Formatters.new(:doc, STDOUT, STDERR)
|
592
|
+
@run_context.stub!(:events).and_return(fdoc)
|
593
|
+
fdoc.should_receive(:puts).with(" (skipped due to action :nothing)")
|
594
|
+
@resource.should_skip?(:nothing)
|
595
|
+
end
|
596
|
+
|
597
|
+
end
|
598
|
+
|
599
|
+
describe "when resource action is :nothing" do
|
600
|
+
before do
|
601
|
+
@resource1 = Chef::Resource::Cat.new("sugar", @run_context)
|
602
|
+
@resource1.action = :nothing
|
603
|
+
|
604
|
+
@node.automatic_attrs[:platform] = "fubuntu"
|
605
|
+
@node.automatic_attrs[:platform_version] = '10.04'
|
606
|
+
end
|
607
|
+
|
608
|
+
it "should not run only_if/not_if conditionals (CHEF-972)" do
|
609
|
+
snitch_var1 = 0
|
610
|
+
@resource1.only_if { snitch_var1 = 1 }
|
611
|
+
@resource1.not_if { snitch_var1 = 2 }
|
612
|
+
@resource1.run_action(:nothing)
|
613
|
+
snitch_var1.should == 0
|
614
|
+
end
|
615
|
+
|
616
|
+
it "should run only_if/not_if conditionals when notified to run another action (CHEF-972)" do
|
617
|
+
snitch_var1 = snitch_var2 = 0
|
618
|
+
@runner = Chef::Runner.new(@run_context)
|
619
|
+
Chef::Platform.set(
|
620
|
+
:resource => :cat,
|
621
|
+
:provider => Chef::Provider::SnakeOil
|
622
|
+
)
|
623
|
+
|
624
|
+
@resource1.only_if { snitch_var1 = 1 }
|
625
|
+
@resource1.not_if { snitch_var2 = 2 }
|
626
|
+
@resource2 = Chef::Resource::Cat.new("coffee", @run_context)
|
627
|
+
@resource2.notifies :purr, @resource1
|
628
|
+
@resource2.action = :purr
|
629
|
+
|
630
|
+
@run_context.resource_collection << @resource1
|
631
|
+
@run_context.resource_collection << @resource2
|
632
|
+
@runner.converge
|
633
|
+
|
634
|
+
snitch_var1.should == 1
|
635
|
+
snitch_var2.should == 2
|
636
|
+
end
|
637
|
+
end
|
638
|
+
|
509
639
|
describe "building the platform map" do
|
510
640
|
|
511
641
|
it 'adds mappings for a single platform' do
|
@@ -537,8 +667,8 @@ describe Chef::Resource do
|
|
537
667
|
before(:each) do
|
538
668
|
@node = Chef::Node.new
|
539
669
|
@node.name("bumblebee")
|
540
|
-
@node.platform
|
541
|
-
@node.platform_version
|
670
|
+
@node.automatic[:platform] = "autobots"
|
671
|
+
@node.automatic[:platform_version] = "6.1"
|
542
672
|
Object.const_set('Soundwave', Class.new(Chef::Resource))
|
543
673
|
Object.const_set('Grimlock', Class.new(Chef::Resource){ provides :dinobot, :on_platforms => ['autobots'] })
|
544
674
|
end
|
@@ -567,6 +697,68 @@ describe Chef::Resource do
|
|
567
697
|
end
|
568
698
|
|
569
699
|
end
|
700
|
+
|
701
|
+
describe "when creating notifications" do
|
702
|
+
|
703
|
+
describe "with a string resource spec" do
|
704
|
+
|
705
|
+
it "creates a delayed notification when timing is not specified" do
|
706
|
+
@resource.notifies(:run, "execute[foo]")
|
707
|
+
@run_context.delayed_notification_collection.should have(1).notifications
|
708
|
+
end
|
709
|
+
|
710
|
+
it "creates a delayed notification when :delayed is not specified" do
|
711
|
+
@resource.notifies(:run, "execute[foo]", :delayed)
|
712
|
+
@run_context.delayed_notification_collection.should have(1).notifications
|
713
|
+
end
|
714
|
+
|
715
|
+
it "creates an immediate notification when :immediate is specified" do
|
716
|
+
@resource.notifies(:run, "execute[foo]", :immediate)
|
717
|
+
@run_context.immediate_notification_collection.should have(1).notifications
|
718
|
+
end
|
719
|
+
|
720
|
+
it "creates an immediate notification when :immediately is specified" do
|
721
|
+
@resource.notifies(:run, "execute[foo]", :immediately)
|
722
|
+
@run_context.immediate_notification_collection.should have(1).notifications
|
723
|
+
end
|
724
|
+
|
725
|
+
describe "with a syntax error in the resource spec" do
|
726
|
+
|
727
|
+
it "raises an exception immmediately" do
|
728
|
+
lambda do
|
729
|
+
@resource.notifies(:run, "typo[missing-closing-bracket")
|
730
|
+
end.should raise_error(Chef::Exceptions::InvalidResourceSpecification)
|
731
|
+
end
|
732
|
+
end
|
733
|
+
end
|
734
|
+
|
735
|
+
describe "with a resource reference" do
|
736
|
+
before do
|
737
|
+
@notified_resource = Chef::Resource.new("punk", @run_context)
|
738
|
+
end
|
739
|
+
|
740
|
+
it "creates a delayed notification when timing is not specified" do
|
741
|
+
@resource.notifies(:run, @notified_resource)
|
742
|
+
@run_context.delayed_notification_collection.should have(1).notifications
|
743
|
+
end
|
744
|
+
|
745
|
+
it "creates a delayed notification when :delayed is not specified" do
|
746
|
+
@resource.notifies(:run, @notified_resource, :delayed)
|
747
|
+
@run_context.delayed_notification_collection.should have(1).notifications
|
748
|
+
end
|
749
|
+
|
750
|
+
it "creates an immediate notification when :immediate is specified" do
|
751
|
+
@resource.notifies(:run, @notified_resource, :immediate)
|
752
|
+
@run_context.immediate_notification_collection.should have(1).notifications
|
753
|
+
end
|
754
|
+
|
755
|
+
it "creates an immediate notification when :immediately is specified" do
|
756
|
+
@resource.notifies(:run, @notified_resource, :immediately)
|
757
|
+
@run_context.immediate_notification_collection.should have(1).notifications
|
758
|
+
end
|
759
|
+
end
|
760
|
+
|
761
|
+
end
|
570
762
|
end
|
571
763
|
|
572
764
|
describe Chef::Resource::Notification do
|