chef 12.0.3-x86-mingw32 → 12.1.0.rc.0-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 +4 -4
- data/CONTRIBUTING.md +4 -1
- data/README.md +42 -18
- data/distro/common/html/_sources/ctl_chef_client.txt +1 -1
- data/distro/common/html/_sources/ctl_chef_server.txt +53 -35
- data/distro/common/html/_sources/ctl_chef_solo.txt +1 -1
- data/distro/common/html/_sources/knife_bootstrap.txt +1 -1
- data/distro/common/html/_sources/knife_cookbook_site.txt +1 -1
- data/distro/common/html/_sources/knife_data_bag.txt +4 -4
- data/distro/common/html/_sources/knife_status.txt +1 -1
- data/distro/common/html/_static/searchtools.js +1 -1
- data/distro/common/html/ctl_chef_client.html +55 -7
- data/distro/common/html/ctl_chef_server.html +84 -41
- data/distro/common/html/ctl_chef_shell.html +45 -1
- data/distro/common/html/ctl_chef_solo.html +51 -5
- data/distro/common/html/index.html +2 -2
- data/distro/common/html/knife.html +1 -1
- data/distro/common/html/knife_bootstrap.html +30 -10
- data/distro/common/html/knife_cookbook_site.html +2 -0
- data/distro/common/html/knife_data_bag.html +4 -4
- data/distro/common/html/knife_node.html +2 -2
- data/distro/common/html/knife_raw.html +1 -1
- data/distro/common/html/knife_role.html +1 -1
- data/distro/common/html/knife_search.html +3 -3
- data/distro/common/html/knife_status.html +4 -0
- data/distro/common/html/searchindex.js +1 -1
- data/distro/common/man/man1/chef-shell.1 +72 -1
- data/distro/common/man/man1/knife-bootstrap.1 +71 -63
- 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 +4 -1
- data/distro/common/man/man1/knife-cookbook.1 +1 -1
- data/distro/common/man/man1/knife-data-bag.1 +5 -5
- data/distro/common/man/man1/knife-delete.1 +1 -1
- data/distro/common/man/man1/knife-deps.1 +1 -1
- data/distro/common/man/man1/knife-diff.1 +1 -1
- data/distro/common/man/man1/knife-download.1 +1 -1
- data/distro/common/man/man1/knife-edit.1 +1 -1
- data/distro/common/man/man1/knife-environment.1 +1 -1
- data/distro/common/man/man1/knife-exec.1 +1 -1
- data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
- data/distro/common/man/man1/knife-list.1 +1 -1
- data/distro/common/man/man1/knife-node.1 +3 -3
- data/distro/common/man/man1/knife-raw.1 +2 -2
- data/distro/common/man/man1/knife-recipe-list.1 +1 -1
- data/distro/common/man/man1/knife-role.1 +2 -2
- data/distro/common/man/man1/knife-search.1 +4 -4
- data/distro/common/man/man1/knife-serve.1 +1 -1
- data/distro/common/man/man1/knife-show.1 +1 -1
- data/distro/common/man/man1/knife-ssh.1 +1 -1
- data/distro/common/man/man1/knife-ssl-check.1 +1 -1
- data/distro/common/man/man1/knife-ssl-fetch.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-upload.1 +1 -1
- data/distro/common/man/man1/knife-user.1 +1 -1
- data/distro/common/man/man1/knife-xargs.1 +1 -1
- data/distro/common/man/man1/knife.1 +1 -1
- data/distro/common/man/man8/chef-apply.8 +86 -0
- data/distro/common/man/man8/chef-client.8 +76 -5
- data/distro/common/man/man8/chef-solo.8 +79 -6
- data/distro/common/markdown/man1/knife-bootstrap.mkd +1 -1
- data/distro/common/markdown/man1/knife-cookbook-site.mkd +1 -1
- data/distro/common/markdown/man1/knife-data-bag.mkd +1 -1
- data/distro/common/markdown/man1/knife-environment.mkd +1 -1
- data/distro/common/markdown/man1/knife.mkd +1 -1
- data/lib/chef.rb +0 -7
- data/lib/chef/api_client.rb +10 -2
- data/lib/chef/api_client/registration.rb +7 -9
- data/lib/chef/application.rb +28 -12
- data/lib/chef/application/apply.rb +17 -1
- data/lib/chef/application/client.rb +74 -6
- data/lib/chef/application/knife.rb +1 -2
- data/lib/chef/application/solo.rb +30 -0
- data/lib/chef/application/windows_service.rb +1 -0
- data/lib/chef/application/windows_service_manager.rb +8 -2
- data/lib/chef/applications.rb +0 -1
- data/lib/chef/audit/audit_event_proxy.rb +93 -0
- data/lib/chef/audit/audit_reporter.rb +169 -0
- data/lib/chef/audit/control_group_data.rb +140 -0
- data/lib/chef/audit/rspec_formatter.rb +37 -0
- data/lib/chef/audit/runner.rb +178 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +11 -2
- data/lib/chef/chef_fs/config.rb +25 -4
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +15 -0
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -0
- data/lib/chef/chef_fs/file_system.rb +1 -1
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +5 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +3 -2
- data/lib/chef/{shef/ext.rb → chef_fs/file_system/chef_repository_file_system_policies_dir.rb} +22 -3
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +4 -0
- data/lib/chef/client.rb +81 -52
- data/lib/chef/config.rb +35 -3
- data/lib/chef/cookbook/metadata.rb +3 -3
- data/lib/chef/cookbook_manifest.rb +275 -0
- data/lib/chef/cookbook_site_streaming_uploader.rb +24 -23
- data/lib/chef/cookbook_uploader.rb +11 -2
- data/lib/chef/cookbook_version.rb +71 -194
- data/lib/chef/data_bag.rb +5 -2
- data/lib/chef/data_bag_item.rb +6 -3
- data/lib/chef/deprecation/warnings.rb +5 -4
- data/lib/chef/dsl/audit.rb +51 -0
- data/lib/chef/dsl/include_recipe.rb +2 -3
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/dsl/recipe.rb +49 -31
- data/lib/chef/encrypted_data_bag_item/assertions.rb +0 -3
- data/lib/chef/environment.rb +5 -2
- data/lib/chef/event_dispatch/base.rb +36 -1
- data/lib/chef/event_dispatch/dispatcher.rb +3 -5
- data/lib/chef/exceptions.rb +61 -2
- data/lib/chef/file_access_control/unix.rb +12 -0
- data/lib/chef/file_access_control/windows.rb +14 -0
- data/lib/chef/formatters/doc.rb +47 -1
- data/{spec/unit/monkey_patches/string_spec.rb → lib/chef/guard_interpreter.rb} +11 -16
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -2
- data/lib/chef/http.rb +1 -2
- data/lib/chef/knife.rb +5 -3
- data/lib/chef/knife/bootstrap.rb +84 -15
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +165 -0
- data/lib/chef/knife/bootstrap/client_builder.rb +190 -0
- data/lib/chef/knife/bootstrap/{README.md → templates/README.md} +0 -0
- data/lib/chef/knife/bootstrap/{archlinux-gems.erb → templates/archlinux-gems.erb} +9 -0
- data/lib/chef/knife/bootstrap/{chef-aix.erb → templates/chef-aix.erb} +9 -0
- data/lib/chef/knife/bootstrap/{chef-full.erb → templates/chef-full.erb} +10 -1
- data/lib/chef/knife/client_create.rb +8 -7
- data/lib/chef/knife/cookbook_site_download.rb +1 -1
- data/lib/chef/knife/cookbook_site_install.rb +1 -1
- data/lib/chef/knife/cookbook_site_list.rb +1 -1
- data/lib/chef/knife/cookbook_site_search.rb +1 -1
- data/lib/chef/knife/cookbook_site_share.rb +39 -28
- data/lib/chef/knife/cookbook_site_show.rb +3 -3
- data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
- data/lib/chef/knife/cookbook_test.rb +1 -0
- data/lib/chef/knife/cookbook_upload.rb +13 -8
- data/lib/chef/knife/core/bootstrap_context.rb +14 -3
- data/lib/chef/knife/core/generic_presenter.rb +5 -2
- data/lib/chef/knife/core/object_loader.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +24 -0
- data/lib/chef/knife/core/ui.rb +9 -1
- data/lib/chef/knife/node_run_list_remove.rb +11 -3
- data/lib/chef/knife/raw.rb +14 -3
- data/lib/chef/knife/role_env_run_list_add.rb +86 -0
- data/lib/chef/knife/role_env_run_list_clear.rb +55 -0
- data/lib/chef/knife/role_env_run_list_remove.rb +57 -0
- data/lib/chef/knife/role_env_run_list_replace.rb +59 -0
- data/lib/chef/knife/role_env_run_list_set.rb +70 -0
- data/lib/chef/knife/role_run_list_add.rb +86 -0
- data/lib/chef/knife/role_run_list_clear.rb +55 -0
- data/lib/chef/knife/role_run_list_remove.rb +57 -0
- data/lib/chef/knife/role_run_list_replace.rb +59 -0
- data/lib/chef/knife/role_run_list_set.rb +70 -0
- data/lib/chef/knife/search.rb +4 -4
- data/lib/chef/knife/serve.rb +3 -0
- data/lib/chef/knife/ssh.rb +1 -1
- data/lib/chef/knife/ssl_check.rb +2 -2
- data/lib/chef/knife/ssl_fetch.rb +14 -1
- data/lib/chef/log.rb +10 -1
- data/lib/chef/mixin/command.rb +1 -1
- data/lib/chef/mixin/command/windows.rb +1 -5
- data/lib/chef/mixin/get_source_from_package.rb +1 -0
- data/lib/chef/mixin/params_validate.rb +2 -2
- data/lib/chef/mixin/securable.rb +1 -7
- data/lib/chef/mixin/shell_out.rb +7 -1
- data/lib/chef/mixin/template.rb +2 -14
- data/lib/chef/mixin/why_run.rb +1 -1
- data/lib/chef/monkey_patches/net_http.rb +4 -0
- data/lib/chef/monologger.rb +0 -2
- data/lib/chef/node.rb +5 -2
- data/lib/chef/node/attribute.rb +11 -9
- data/lib/chef/node/attribute_collections.rb +8 -12
- data/lib/chef/node/immutable_collections.rb +4 -10
- data/lib/chef/org.rb +148 -0
- data/lib/chef/platform/provider_mapping.rb +3 -2
- data/lib/chef/platform/provider_priority_map.rb +2 -0
- data/lib/chef/platform/query_helpers.rb +0 -3
- data/lib/chef/policy_builder/policyfile.rb +51 -8
- data/lib/chef/provider/deploy.rb +1 -2
- data/lib/chef/provider/directory.rb +3 -3
- data/lib/chef/provider/dsc_script.rb +13 -7
- data/lib/chef/provider/env.rb +8 -8
- data/lib/chef/provider/execute.rb +55 -36
- data/lib/chef/provider/file.rb +8 -0
- data/lib/chef/provider/group.rb +2 -0
- data/lib/chef/provider/group/dscl.rb +3 -4
- data/lib/chef/provider/ifconfig.rb +25 -25
- data/lib/chef/provider/ifconfig/aix.rb +25 -27
- data/lib/chef/provider/lwrp_base.rb +1 -1
- data/lib/chef/provider/mount.rb +2 -2
- data/lib/chef/provider/mount/mount.rb +3 -4
- data/lib/chef/provider/mount/solaris.rb +1 -1
- data/lib/chef/provider/package.rb +297 -48
- data/lib/chef/provider/package/aix.rb +25 -30
- data/lib/chef/provider/package/apt.rb +63 -19
- data/lib/chef/provider/package/dpkg.rb +15 -16
- data/lib/chef/provider/package/macports.rb +7 -7
- data/lib/chef/provider/package/openbsd.rb +107 -0
- data/lib/chef/provider/package/pacman.rb +13 -15
- data/lib/chef/provider/package/portage.rb +3 -4
- data/lib/chef/provider/package/rpm.rb +28 -17
- data/lib/chef/provider/package/rubygems.rb +9 -9
- data/lib/chef/provider/package/solaris.rb +17 -21
- data/lib/chef/provider/package/windows/msi.rb +1 -1
- data/lib/chef/provider/package/yum-dump.py +2 -2
- data/lib/chef/provider/package/yum.rb +117 -51
- data/lib/chef/provider/package/zypper.rb +17 -18
- data/lib/chef/provider/powershell_script.rb +4 -4
- data/lib/chef/provider/registry_key.rb +2 -2
- data/lib/chef/provider/remote_directory.rb +1 -1
- data/lib/chef/provider/script.rb +25 -16
- data/lib/chef/provider/service.rb +1 -1
- data/lib/chef/provider/service/freebsd.rb +1 -1
- data/lib/chef/provider/service/openbsd.rb +216 -0
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +99 -1
- data/lib/chef/provider/user.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +19 -4
- data/lib/chef/providers.rb +2 -0
- data/lib/chef/recipe.rb +11 -5
- data/lib/chef/request_id.rb +1 -1
- data/lib/chef/resource.rb +839 -444
- data/lib/chef/resource/chef_gem.rb +20 -3
- data/lib/chef/resource/conditional.rb +3 -14
- data/lib/chef/resource/dsc_script.rb +14 -0
- data/lib/chef/resource/execute.rb +14 -7
- data/lib/chef/resource/file.rb +14 -0
- data/lib/chef/resource/file/verification.rb +122 -0
- data/lib/chef/resource/ips_package.rb +1 -1
- data/lib/chef/resource/lwrp_base.rb +2 -11
- data/lib/chef/resource/macports_package.rb +2 -1
- data/lib/chef/resource/openbsd_package.rb +51 -0
- data/lib/chef/resource/package.rb +2 -2
- data/lib/chef/resource/paludis_package.rb +1 -1
- data/lib/chef/resource/reboot.rb +1 -1
- data/lib/chef/resource/remote_file.rb +1 -0
- data/lib/chef/resource/rpm_package.rb +9 -0
- data/lib/chef/resource/script.rb +11 -0
- data/lib/chef/resource/template.rb +2 -3
- data/lib/chef/resource/windows_package.rb +1 -1
- data/lib/chef/resource/windows_service.rb +18 -0
- data/lib/chef/resource_builder.rb +137 -0
- data/lib/chef/resource_definition.rb +1 -1
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/role.rb +17 -4
- data/lib/chef/run_context.rb +10 -6
- data/lib/chef/search/query.rb +66 -87
- data/lib/chef/shell/ext.rb +2 -2
- data/lib/chef/util/diff.rb +1 -4
- data/lib/chef/util/dsc/configuration_generator.rb +30 -6
- data/lib/chef/util/dsc/lcm_output_parser.rb +7 -3
- data/lib/chef/util/dsc/local_configuration_manager.rb +8 -8
- data/lib/chef/util/file_edit.rb +2 -2
- data/lib/chef/util/path_helper.rb +1 -4
- data/lib/chef/util/windows/net_use.rb +3 -3
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +1 -0
- data/lib/chef/win32/api/security.rb +26 -0
- data/lib/chef/win32/file.rb +21 -0
- data/lib/chef/win32/security.rb +46 -0
- data/lib/chef/win32/security/token.rb +8 -0
- data/lib/chef/win32/version.rb +0 -4
- data/spec/data/recipes.tgz +0 -0
- data/spec/functional/application_spec.rb +1 -1
- data/spec/functional/audit/rspec_formatter_spec.rb +54 -0
- data/spec/functional/audit/runner_spec.rb +137 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +10 -10
- data/spec/functional/dsl/registry_helper_spec.rb +6 -6
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +5 -5
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +12 -21
- data/spec/functional/http/simple_spec.rb +1 -1
- data/spec/functional/knife/cookbook_delete_spec.rb +24 -24
- data/spec/functional/knife/exec_spec.rb +2 -4
- data/spec/functional/knife/smoke_test.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +23 -23
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +8 -8
- data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +2 -2
- data/spec/functional/rebooter_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +3 -0
- data/spec/functional/resource/aixinit_service_spec.rb +3 -3
- data/spec/functional/resource/bash_spec.rb +88 -0
- data/spec/functional/resource/deploy_revision_spec.rb +99 -100
- data/spec/functional/resource/env_spec.rb +3 -3
- data/spec/functional/resource/execute_spec.rb +97 -63
- data/spec/functional/resource/file_spec.rb +7 -7
- data/spec/functional/resource/git_spec.rb +13 -13
- data/spec/functional/resource/group_spec.rb +28 -25
- data/spec/functional/resource/ifconfig_spec.rb +2 -2
- data/spec/functional/resource/link_spec.rb +77 -78
- data/spec/functional/resource/mount_spec.rb +5 -5
- data/spec/functional/resource/ohai_spec.rb +1 -1
- data/spec/functional/resource/package_spec.rb +22 -22
- data/spec/functional/resource/powershell_spec.rb +57 -42
- data/spec/functional/resource/reboot_spec.rb +2 -2
- data/spec/functional/resource/registry_spec.rb +91 -91
- data/spec/functional/resource/remote_directory_spec.rb +19 -19
- data/spec/functional/resource/remote_file_spec.rb +18 -18
- data/spec/functional/resource/template_spec.rb +4 -4
- data/spec/functional/resource/user/dscl_spec.rb +4 -4
- data/spec/functional/resource/user/useradd_spec.rb +64 -51
- data/spec/functional/resource/windows_service_spec.rb +98 -0
- data/spec/functional/run_lock_spec.rb +9 -9
- data/spec/functional/shell_spec.rb +3 -3
- data/spec/functional/tiny_server_spec.rb +12 -12
- data/spec/functional/util/path_helper_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_helper_spec.rb +125 -125
- data/spec/functional/win32/security_spec.rb +65 -2
- data/spec/functional/win32/service_manager_spec.rb +30 -84
- data/spec/functional/win32/versions_spec.rb +6 -6
- data/spec/integration/client/client_spec.rb +102 -9
- data/spec/integration/knife/chef_fs_data_store_spec.rb +12 -8
- data/spec/integration/knife/common_options_spec.rb +3 -3
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
- data/spec/integration/knife/deps_spec.rb +4 -4
- data/spec/integration/knife/diff_spec.rb +6 -6
- data/spec/integration/knife/download_spec.rb +6 -6
- data/spec/integration/knife/list_spec.rb +2 -2
- data/spec/integration/knife/raw_spec.rb +5 -5
- data/spec/integration/knife/serve_spec.rb +3 -3
- data/spec/integration/knife/show_spec.rb +3 -3
- data/spec/integration/knife/upload_spec.rb +18 -18
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/solo/solo_spec.rb +11 -12
- data/spec/spec_helper.rb +27 -15
- data/spec/stress/win32/file_spec.rb +4 -4
- data/spec/stress/win32/security_spec.rb +4 -4
- data/spec/support/chef_helpers.rb +3 -3
- data/spec/support/matchers/leak.rb +2 -2
- data/spec/support/mock/platform.rb +1 -1
- data/spec/support/pedant/Gemfile +3 -0
- data/spec/support/pedant/pedant_config.rb +9 -2
- data/spec/support/pedant/run_pedant.rb +15 -16
- data/spec/support/platform_helpers.rb +8 -12
- data/spec/support/shared/functional/directory_resource.rb +13 -13
- data/spec/support/shared/functional/file_resource.rb +83 -83
- data/spec/support/shared/functional/http.rb +1 -1
- data/spec/support/shared/functional/securable_resource.rb +64 -64
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +43 -41
- data/spec/support/shared/functional/win32_service.rb +60 -0
- data/spec/support/shared/functional/windows_script.rb +8 -8
- data/spec/support/shared/integration/knife_support.rb +8 -5
- data/spec/support/shared/matchers/exit_with_code.rb +6 -2
- data/spec/support/shared/unit/api_error_inspector.rb +8 -8
- data/spec/support/shared/unit/execute_resource.rb +24 -20
- data/spec/support/shared/unit/file_system_support.rb +2 -2
- data/spec/support/shared/unit/platform_introspector.rb +21 -21
- data/spec/support/shared/unit/provider/file.rb +239 -210
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +69 -69
- data/spec/support/shared/unit/script_resource.rb +40 -32
- data/spec/support/shared/unit/windows_script_resource.rb +8 -8
- data/spec/unit/api_client/registration_spec.rb +47 -47
- data/spec/unit/api_client_spec.rb +107 -69
- data/spec/unit/application/apply_spec.rb +31 -15
- data/spec/unit/application/client_spec.rb +146 -45
- data/spec/unit/application/knife_spec.rb +31 -31
- data/spec/unit/application/solo_spec.rb +59 -43
- data/spec/unit/application_spec.rb +109 -74
- data/spec/unit/audit/audit_event_proxy_spec.rb +311 -0
- data/spec/unit/audit/audit_reporter_spec.rb +393 -0
- data/spec/unit/audit/control_group_data_spec.rb +478 -0
- data/{lib/chef/monkey_patches/file.rb → spec/unit/audit/rspec_formatter_spec.rb} +11 -8
- data/spec/unit/audit/runner_spec.rb +135 -0
- data/spec/unit/chef_fs/config_spec.rb +52 -0
- data/spec/unit/chef_fs/diff_spec.rb +12 -12
- data/spec/unit/chef_fs/file_pattern_spec.rb +276 -277
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +6 -6
- data/spec/unit/chef_fs/file_system_spec.rb +26 -13
- data/spec/unit/chef_fs/parallelizer.rb +87 -87
- data/spec/unit/chef_spec.rb +1 -1
- data/spec/unit/client_spec.rb +263 -97
- data/spec/unit/config_fetcher_spec.rb +13 -13
- data/spec/unit/config_spec.rb +105 -66
- data/spec/unit/cookbook/chefignore_spec.rb +6 -6
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +3 -3
- data/spec/unit/cookbook/metadata_spec.rb +149 -149
- data/spec/unit/cookbook/syntax_check_spec.rb +36 -31
- data/spec/unit/cookbook_loader_spec.rb +62 -58
- data/spec/unit/cookbook_manifest_spec.rb +141 -468
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +27 -27
- data/spec/unit/cookbook_spec.rb +15 -15
- data/spec/unit/cookbook_uploader_spec.rb +37 -3
- data/spec/unit/cookbook_version_file_specificity_spec.rb +554 -0
- data/spec/unit/cookbook_version_spec.rb +98 -240
- data/spec/unit/daemon_spec.rb +31 -31
- data/spec/unit/data_bag_item_spec.rb +121 -89
- data/spec/unit/data_bag_spec.rb +35 -35
- data/spec/unit/deprecation_spec.rb +27 -14
- data/spec/unit/digester_spec.rb +3 -3
- data/spec/unit/dsl/audit_spec.rb +43 -0
- data/spec/unit/dsl/data_query_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +14 -14
- data/spec/unit/dsl/reboot_pending_spec.rb +18 -18
- data/spec/unit/dsl/regsitry_helper_spec.rb +6 -6
- data/spec/unit/encrypted_data_bag_item_spec.rb +58 -82
- data/spec/unit/environment_spec.rb +105 -105
- data/spec/unit/exceptions_spec.rb +47 -1
- data/spec/unit/file_access_control_spec.rb +62 -56
- data/spec/unit/file_cache_spec.rb +11 -11
- data/spec/unit/file_content_management/deploy/cp_spec.rb +2 -2
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +10 -10
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +23 -23
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +14 -14
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +12 -12
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +16 -16
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +4 -4
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +103 -13
- data/spec/unit/guard_interpreter_spec.rb +41 -0
- data/spec/unit/handler/json_file_spec.rb +10 -10
- data/spec/unit/handler_spec.rb +39 -39
- data/spec/unit/http/basic_client_spec.rb +3 -3
- data/spec/unit/http/http_request_spec.rb +10 -10
- data/spec/unit/http/simple_spec.rb +3 -3
- data/spec/unit/http/ssl_policies_spec.rb +15 -15
- data/spec/unit/http/validate_content_length_spec.rb +18 -13
- data/spec/unit/http_spec.rb +16 -9
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +153 -0
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +178 -0
- data/spec/unit/knife/bootstrap_spec.rb +144 -91
- data/spec/unit/knife/client_bulk_delete_spec.rb +24 -24
- data/spec/unit/knife/client_create_spec.rb +57 -43
- data/spec/unit/knife/client_delete_spec.rb +15 -15
- data/spec/unit/knife/client_edit_spec.rb +4 -4
- data/spec/unit/knife/client_list_spec.rb +2 -2
- data/spec/unit/knife/client_reregister_spec.rb +9 -9
- data/spec/unit/knife/configure_client_spec.rb +20 -20
- data/spec/unit/knife/configure_spec.rb +85 -85
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +15 -15
- data/spec/unit/knife/cookbook_create_spec.rb +59 -59
- data/spec/unit/knife/cookbook_delete_spec.rb +49 -49
- data/spec/unit/knife/cookbook_download_spec.rb +56 -56
- data/spec/unit/knife/cookbook_list_spec.rb +9 -9
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +8 -8
- data/spec/unit/knife/cookbook_metadata_spec.rb +44 -44
- data/spec/unit/knife/cookbook_show_spec.rb +29 -29
- data/spec/unit/knife/cookbook_site_download_spec.rb +26 -26
- data/spec/unit/knife/cookbook_site_install_spec.rb +5 -1
- data/spec/unit/knife/cookbook_site_share_spec.rb +68 -59
- data/spec/unit/knife/cookbook_site_unshare_spec.rb +15 -15
- data/spec/unit/knife/cookbook_test_spec.rb +16 -16
- data/spec/unit/knife/cookbook_upload_spec.rb +105 -71
- data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -22
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +36 -36
- data/spec/unit/knife/core/object_loader_spec.rb +3 -3
- data/spec/unit/knife/core/subcommand_loader_spec.rb +107 -33
- data/spec/unit/knife/core/ui_spec.rb +84 -72
- data/spec/unit/knife/data_bag_from_file_spec.rb +1 -1
- data/spec/unit/knife/environment_compare_spec.rb +12 -12
- data/spec/unit/knife/environment_create_spec.rb +16 -16
- data/spec/unit/knife/environment_delete_spec.rb +14 -14
- data/spec/unit/knife/environment_edit_spec.rb +15 -15
- data/spec/unit/knife/environment_from_file_spec.rb +17 -17
- data/spec/unit/knife/environment_list_spec.rb +7 -7
- data/spec/unit/knife/environment_show_spec.rb +10 -10
- data/spec/unit/knife/index_rebuild_spec.rb +17 -17
- data/spec/unit/knife/knife_help.rb +24 -24
- data/spec/unit/knife/node_bulk_delete_spec.rb +14 -14
- data/spec/unit/knife/node_delete_spec.rb +11 -11
- data/spec/unit/knife/node_edit_spec.rb +17 -17
- data/spec/unit/knife/node_environment_set_spec.rb +12 -12
- data/spec/unit/knife/node_from_file_spec.rb +8 -8
- data/spec/unit/knife/node_list_spec.rb +9 -9
- data/spec/unit/knife/node_run_list_add_spec.rb +29 -29
- data/spec/unit/knife/node_run_list_remove_spec.rb +28 -13
- data/spec/unit/knife/node_run_list_set_spec.rb +27 -27
- data/spec/unit/knife/raw_spec.rb +43 -0
- data/spec/unit/knife/role_bulk_delete_spec.rb +12 -12
- data/spec/unit/knife/role_create_spec.rb +12 -12
- data/spec/unit/knife/role_delete_spec.rb +10 -10
- data/spec/unit/knife/role_edit_spec.rb +13 -13
- data/spec/unit/knife/role_env_run_list_add_spec.rb +217 -0
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +100 -0
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +108 -0
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +108 -0
- data/spec/unit/knife/role_env_run_list_set_spec.rb +102 -0
- data/spec/unit/knife/role_from_file_spec.rb +10 -10
- data/spec/unit/knife/role_list_spec.rb +7 -7
- data/spec/unit/knife/role_run_list_add_spec.rb +179 -0
- data/spec/unit/knife/role_run_list_clear_spec.rb +90 -0
- data/spec/unit/knife/role_run_list_remove_spec.rb +98 -0
- data/spec/unit/knife/role_run_list_replace_spec.rb +101 -0
- data/spec/unit/knife/role_run_list_set_spec.rb +92 -0
- data/spec/unit/knife/ssh_spec.rb +66 -66
- data/spec/unit/knife/ssl_check_spec.rb +27 -27
- data/spec/unit/knife/ssl_fetch_spec.rb +45 -12
- data/spec/unit/knife/status_spec.rb +5 -5
- data/spec/unit/knife/tag_create_spec.rb +5 -5
- data/spec/unit/knife/tag_delete_spec.rb +6 -6
- data/spec/unit/knife/tag_list_spec.rb +4 -4
- data/spec/unit/knife/user_create_spec.rb +18 -18
- data/spec/unit/knife/user_delete_spec.rb +4 -4
- data/spec/unit/knife/user_edit_spec.rb +7 -7
- data/spec/unit/knife/user_list_spec.rb +2 -2
- data/spec/unit/knife/user_reregister_spec.rb +10 -10
- data/spec/unit/knife/user_show_spec.rb +5 -5
- data/spec/unit/knife_spec.rb +36 -36
- data/spec/unit/lwrp_spec.rb +63 -39
- data/spec/unit/mash_spec.rb +6 -6
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/command_spec.rb +13 -13
- data/spec/unit/mixin/convert_to_class_name_spec.rb +6 -6
- data/spec/unit/mixin/deep_merge_spec.rb +49 -49
- data/spec/unit/mixin/deprecation_spec.rb +5 -5
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +14 -14
- data/spec/unit/mixin/homebrew_user_spec.rb +3 -3
- data/spec/unit/mixin/params_validate_spec.rb +71 -71
- data/spec/unit/mixin/path_sanity_spec.rb +14 -14
- data/spec/unit/mixin/securable_spec.rb +177 -177
- data/spec/unit/mixin/shell_out_spec.rb +56 -27
- data/spec/unit/mixin/template_spec.rb +31 -31
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +5 -5
- data/spec/unit/mixin/xml_escape_spec.rb +7 -7
- data/spec/unit/monkey_patches/uri_spec.rb +1 -1
- data/spec/unit/monologger_spec.rb +3 -3
- data/spec/unit/node/attribute_spec.rb +185 -136
- data/spec/unit/node/immutable_collections_spec.rb +22 -22
- data/spec/unit/node_spec.rb +210 -179
- data/spec/unit/org_spec.rb +196 -0
- data/spec/unit/platform/query_helpers_spec.rb +5 -5
- data/spec/unit/platform_spec.rb +46 -46
- data/spec/unit/policy_builder/expand_node_object_spec.rb +17 -18
- data/spec/unit/policy_builder/policyfile_spec.rb +159 -71
- data/spec/unit/provider/directory_spec.rb +5 -5
- data/spec/unit/provider/dsc_script_spec.rb +6 -6
- data/spec/unit/provider/env_spec.rb +27 -14
- data/spec/unit/provider/execute_spec.rb +139 -68
- data/spec/unit/provider/file/content_spec.rb +8 -8
- data/spec/unit/provider/git_spec.rb +10 -5
- data/spec/unit/provider/group/dscl_spec.rb +8 -11
- data/spec/unit/provider/group_spec.rb +13 -13
- data/spec/unit/provider/ifconfig/aix_spec.rb +3 -2
- data/spec/unit/provider/ifconfig/debian_spec.rb +19 -19
- data/spec/unit/provider/ifconfig_spec.rb +2 -2
- data/spec/unit/provider/mdadm_spec.rb +2 -2
- data/spec/unit/provider/mount/aix_spec.rb +5 -5
- data/spec/unit/provider/mount/mount_spec.rb +22 -22
- data/spec/unit/provider/mount/solaris_spec.rb +20 -20
- data/spec/unit/provider/package/aix_spec.rb +23 -22
- data/spec/unit/provider/package/apt_spec.rb +23 -4
- data/spec/unit/provider/package/dpkg_spec.rb +14 -15
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/freebsd/port_spec.rb +1 -1
- data/spec/unit/provider/package/ips_spec.rb +1 -2
- data/spec/unit/provider/package/macports_spec.rb +14 -14
- data/spec/unit/provider/package/openbsd_spec.rb +66 -0
- data/spec/unit/provider/package/pacman_spec.rb +15 -14
- data/spec/unit/provider/package/portage_spec.rb +11 -11
- data/spec/unit/provider/package/rpm_spec.rb +132 -84
- data/spec/unit/provider/package/rubygems_spec.rb +54 -25
- data/spec/unit/provider/package/solaris_spec.rb +22 -25
- data/spec/unit/provider/package/yum_spec.rb +237 -36
- data/spec/unit/provider/package/zypper_spec.rb +9 -12
- data/spec/unit/provider/package_spec.rb +276 -2
- data/spec/unit/provider/package_spec.rbe +0 -0
- data/spec/unit/provider/remote_directory_spec.rb +25 -25
- data/spec/unit/provider/remote_file/ftp_spec.rb +3 -3
- data/spec/unit/provider/route_spec.rb +3 -3
- data/spec/unit/provider/script_spec.rb +61 -43
- data/spec/unit/provider/service/aix_service_spec.rb +5 -5
- data/spec/unit/provider/service/arch_service_spec.rb +5 -5
- data/spec/unit/provider/service/debian_service_spec.rb +8 -8
- data/spec/unit/provider/service/freebsd_service_spec.rb +16 -2
- data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
- data/spec/unit/provider/service/init_service_spec.rb +5 -5
- data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
- data/spec/unit/provider/service/invokercd_service_spec.rb +5 -5
- data/spec/unit/provider/service/macosx_spec.rb +7 -7
- data/spec/unit/provider/service/openbsd_service_spec.rb +543 -0
- data/spec/unit/provider/service/redhat_spec.rb +4 -4
- data/spec/unit/provider/service/simple_service_spec.rb +2 -2
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +14 -14
- data/spec/unit/provider/service/systemd_service_spec.rb +15 -7
- data/spec/unit/provider/service/upstart_service_spec.rb +4 -4
- data/spec/unit/provider/service/windows_spec.rb +119 -25
- data/spec/unit/provider/service_spec.rb +1 -1
- data/spec/unit/provider/user/dscl_spec.rb +38 -30
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/provider_resolver_spec.rb +7 -7
- data/spec/unit/provider_spec.rb +23 -23
- data/spec/unit/recipe_spec.rb +194 -83
- data/spec/unit/registry_helper_spec.rb +143 -143
- data/spec/unit/resource/chef_gem_spec.rb +117 -3
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
- data/spec/unit/resource/conditional_spec.rb +56 -15
- data/spec/unit/resource/deploy_spec.rb +2 -2
- data/spec/unit/resource/dsc_script_spec.rb +32 -0
- data/spec/unit/resource/execute_spec.rb +4 -0
- data/spec/unit/resource/file/verification_spec.rb +111 -0
- data/spec/unit/resource/file_spec.rb +14 -0
- data/spec/unit/resource/openbsd_package_spec.rb +49 -0
- data/spec/unit/resource/remote_file_spec.rb +12 -12
- data/spec/unit/resource/resource_notification_spec.rb +18 -18
- data/spec/unit/resource/rpm_package_spec.rb +12 -0
- data/spec/unit/resource/scm_spec.rb +4 -4
- data/spec/unit/resource/script_spec.rb +3 -5
- data/spec/unit/resource/subversion_spec.rb +1 -1
- data/spec/unit/resource_builder_spec.rb +1 -0
- data/spec/unit/resource_collection/resource_list_spec.rb +2 -2
- data/spec/unit/resource_collection/resource_set_spec.rb +3 -3
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +24 -24
- data/spec/unit/resource_collection_spec.rb +52 -52
- data/spec/unit/resource_definition_spec.rb +1 -1
- data/spec/unit/resource_reporter_spec.rb +118 -118
- data/spec/unit/resource_spec.rb +131 -125
- data/spec/unit/rest/auth_credentials_spec.rb +73 -73
- data/spec/unit/rest_spec.rb +12 -12
- data/spec/unit/role_spec.rb +85 -84
- data/spec/unit/run_context/cookbook_compiler_spec.rb +18 -18
- data/spec/unit/run_context_spec.rb +39 -68
- data/spec/unit/run_list/run_list_expansion_spec.rb +21 -21
- data/spec/unit/run_list/run_list_item_spec.rb +28 -28
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +14 -14
- data/spec/unit/run_list_spec.rb +55 -55
- data/spec/unit/run_lock_spec.rb +14 -14
- data/spec/unit/run_status_spec.rb +24 -24
- data/spec/unit/scan_access_control_spec.rb +23 -23
- data/spec/unit/search/query_spec.rb +54 -66
- data/spec/unit/shell/model_wrapper_spec.rb +13 -13
- data/spec/unit/shell/shell_ext_spec.rb +32 -32
- data/spec/unit/shell/shell_session_spec.rb +24 -24
- data/spec/unit/shell_out_spec.rb +4 -4
- data/spec/unit/shell_spec.rb +27 -27
- data/spec/unit/user_spec.rb +50 -50
- data/spec/unit/util/backup_spec.rb +32 -32
- data/spec/unit/util/diff_spec.rb +31 -31
- data/spec/unit/util/dsc/configuration_generator_spec.rb +38 -16
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +21 -26
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +10 -10
- data/spec/unit/util/editor_spec.rb +10 -10
- data/spec/unit/util/file_edit_spec.rb +10 -10
- data/spec/unit/util/path_helper_spec.rb +38 -46
- data/spec/unit/util/powershell/cmdlet_spec.rb +9 -9
- data/spec/unit/util/selinux_spec.rb +30 -30
- data/spec/unit/util/threaded_job_queue_spec.rb +6 -6
- data/spec/unit/version/platform_spec.rb +5 -5
- data/spec/unit/version_class_spec.rb +15 -15
- data/spec/unit/version_constraint/platform_spec.rb +7 -7
- data/spec/unit/version_constraint_spec.rb +43 -43
- data/spec/unit/windows_service_spec.rb +15 -15
- data/spec/unit/workstation_config_loader_spec.rb +2 -2
- data/tasks/rspec.rb +16 -18
- metadata +126 -49
- data/bin/shef +0 -35
- data/lib/chef/application/agent.rb +0 -18
- data/lib/chef/monkey_patches/fileutils.rb +0 -65
- data/lib/chef/monkey_patches/numeric.rb +0 -15
- data/lib/chef/monkey_patches/object.rb +0 -9
- data/lib/chef/monkey_patches/pathname.rb +0 -32
- data/lib/chef/monkey_patches/regexp.rb +0 -34
- data/lib/chef/monkey_patches/securerandom.rb +0 -44
- data/lib/chef/monkey_patches/string.rb +0 -49
- data/lib/chef/monkey_patches/tempfile.rb +0 -64
- data/lib/chef/monkey_patches/uri.rb +0 -70
@@ -27,15 +27,15 @@ describe Chef::Knife::UserShow do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'loads and displays the user' do
|
30
|
-
Chef::User.
|
31
|
-
@knife.
|
30
|
+
expect(Chef::User).to receive(:load).with('my_user').and_return(@user_mock)
|
31
|
+
expect(@knife).to receive(:format_for_display).with(@user_mock)
|
32
32
|
@knife.run
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'prints usage and exits when a user name is not provided' do
|
36
36
|
@knife.name_args = []
|
37
|
-
@knife.
|
38
|
-
@knife.ui.
|
39
|
-
|
37
|
+
expect(@knife).to receive(:show_usage)
|
38
|
+
expect(@knife.ui).to receive(:fatal)
|
39
|
+
expect { @knife.run }.to raise_error(SystemExit)
|
40
40
|
end
|
41
41
|
end
|
data/spec/unit/knife_spec.rb
CHANGED
@@ -42,7 +42,7 @@ describe Chef::Knife do
|
|
42
42
|
allow(Chef::Log).to receive(:init)
|
43
43
|
allow(Chef::Log).to receive(:level)
|
44
44
|
[:debug, :info, :warn, :error, :crit].each do |level_sym|
|
45
|
-
Chef::Log.
|
45
|
+
allow(Chef::Log).to receive(level_sym)
|
46
46
|
end
|
47
47
|
allow(Chef::Knife).to receive(:puts)
|
48
48
|
end
|
@@ -68,27 +68,27 @@ describe Chef::Knife do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it "has a category based on its name" do
|
71
|
-
KnifeSpecs::TestNameMapping.subcommand_category.
|
71
|
+
expect(KnifeSpecs::TestNameMapping.subcommand_category).to eq('test')
|
72
72
|
end
|
73
73
|
|
74
|
-
it "has an
|
75
|
-
KnifeSpecs::TestExplicitCategory.subcommand_category.
|
74
|
+
it "has an explicitly defined category if set" do
|
75
|
+
expect(KnifeSpecs::TestExplicitCategory.subcommand_category).to eq('cookbook site')
|
76
76
|
end
|
77
77
|
|
78
78
|
it "can reference the subcommand by its snake cased name" do
|
79
|
-
Chef::Knife.subcommands['test_name_mapping'].
|
79
|
+
expect(Chef::Knife.subcommands['test_name_mapping']).to equal(KnifeSpecs::TestNameMapping)
|
80
80
|
end
|
81
81
|
|
82
82
|
it "lists subcommands by category" do
|
83
|
-
Chef::Knife.subcommands_by_category['test'].
|
83
|
+
expect(Chef::Knife.subcommands_by_category['test']).to include('test_name_mapping')
|
84
84
|
end
|
85
85
|
|
86
86
|
it "lists subcommands by category when the subcommands have explicit categories" do
|
87
|
-
Chef::Knife.subcommands_by_category['cookbook site'].
|
87
|
+
expect(Chef::Knife.subcommands_by_category['cookbook site']).to include('test_explicit_category')
|
88
88
|
end
|
89
89
|
|
90
90
|
it "has empty dependency_loader list by default" do
|
91
|
-
KnifeSpecs::TestNameMapping.dependency_loaders.
|
91
|
+
expect(KnifeSpecs::TestNameMapping.dependency_loaders).to be_empty
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
@@ -104,22 +104,22 @@ describe Chef::Knife do
|
|
104
104
|
|
105
105
|
Chef::Knife.load_commands
|
106
106
|
|
107
|
-
Chef::Knife.subcommands.
|
108
|
-
Chef::Knife.subcommands["super_awesome_command"].
|
107
|
+
expect(Chef::Knife.subcommands).to have_key("super_awesome_command")
|
108
|
+
expect(Chef::Knife.subcommands["super_awesome_command"]).to eq(SuperAwesomeCommand)
|
109
109
|
end
|
110
110
|
|
111
111
|
it "guesses a category from a given ARGV" do
|
112
112
|
Chef::Knife.subcommands_by_category["cookbook"] << :cookbook
|
113
113
|
Chef::Knife.subcommands_by_category["cookbook site"] << :cookbook_site
|
114
|
-
Chef::Knife.guess_category(%w{cookbook foo bar baz}).
|
115
|
-
Chef::Knife.guess_category(%w{cookbook site foo bar baz}).
|
116
|
-
Chef::Knife.guess_category(%w{cookbook site --help}).
|
114
|
+
expect(Chef::Knife.guess_category(%w{cookbook foo bar baz})).to eq('cookbook')
|
115
|
+
expect(Chef::Knife.guess_category(%w{cookbook site foo bar baz})).to eq('cookbook site')
|
116
|
+
expect(Chef::Knife.guess_category(%w{cookbook site --help})).to eq('cookbook site')
|
117
117
|
end
|
118
118
|
|
119
119
|
it "finds a subcommand class based on ARGV" do
|
120
120
|
Chef::Knife.subcommands["cookbook_site_vendor"] = :CookbookSiteVendor
|
121
121
|
Chef::Knife.subcommands["cookbook"] = :Cookbook
|
122
|
-
Chef::Knife.subcommand_class_from(%w{cookbook site vendor --help foo bar baz}).
|
122
|
+
expect(Chef::Knife.subcommand_class_from(%w{cookbook site vendor --help foo bar baz})).to eq(:CookbookSiteVendor)
|
123
123
|
end
|
124
124
|
|
125
125
|
end
|
@@ -137,9 +137,9 @@ describe Chef::Knife do
|
|
137
137
|
let(:request_mock) { {} }
|
138
138
|
|
139
139
|
let(:rest) do
|
140
|
-
Net::HTTP.
|
141
|
-
Chef::RequestID.instance.
|
142
|
-
Chef::Config.
|
140
|
+
allow(Net::HTTP).to receive(:new).and_return(http_client)
|
141
|
+
allow(Chef::RequestID.instance).to receive(:request_id).and_return(request_id)
|
142
|
+
allow(Chef::Config).to receive(:chef_server_url).and_return("https://api.opscode.piab")
|
143
143
|
command = Chef::Knife.run(%w{test yourself})
|
144
144
|
rest = command.noauth_rest
|
145
145
|
rest
|
@@ -147,7 +147,7 @@ describe Chef::Knife do
|
|
147
147
|
|
148
148
|
let!(:http_client) do
|
149
149
|
http_client = Net::HTTP.new(url.host, url.port)
|
150
|
-
http_client.
|
150
|
+
allow(http_client).to receive(:request).and_yield(http_response).and_return(http_response)
|
151
151
|
http_client
|
152
152
|
end
|
153
153
|
|
@@ -155,8 +155,8 @@ describe Chef::Knife do
|
|
155
155
|
|
156
156
|
let(:http_response) do
|
157
157
|
http_response = Net::HTTPSuccess.new("1.1", "200", "successful rest req")
|
158
|
-
http_response.
|
159
|
-
http_response.
|
158
|
+
allow(http_response).to receive(:read_body)
|
159
|
+
allow(http_response).to receive(:body).and_return(body)
|
160
160
|
http_response["Content-Length"] = body.bytesize.to_s
|
161
161
|
http_response
|
162
162
|
end
|
@@ -173,7 +173,7 @@ describe Chef::Knife do
|
|
173
173
|
end
|
174
174
|
|
175
175
|
it "confirms that the headers include X-Remote-Request-Id" do
|
176
|
-
Net::HTTP::Get.
|
176
|
+
expect(Net::HTTP::Get).to receive(:new).with("/monkey", headers).and_return(request_mock)
|
177
177
|
rest.get_rest("monkey")
|
178
178
|
end
|
179
179
|
end
|
@@ -197,26 +197,26 @@ describe Chef::Knife do
|
|
197
197
|
# there is special hackery to return the subcommand instance going on here.
|
198
198
|
command = Chef::Knife.run(%w{test yourself}, extra_opts)
|
199
199
|
editor_opts = command.options[:editor]
|
200
|
-
editor_opts[:long].
|
201
|
-
editor_opts[:description].
|
202
|
-
editor_opts[:short].
|
203
|
-
editor_opts[:default].
|
200
|
+
expect(editor_opts[:long]).to eq("--editor EDITOR")
|
201
|
+
expect(editor_opts[:description]).to eq("Set the editor to use for interactive commands")
|
202
|
+
expect(editor_opts[:short]).to eq("-e EDITOR")
|
203
|
+
expect(editor_opts[:default]).to eq("/usr/bin/vim")
|
204
204
|
end
|
205
205
|
|
206
206
|
it "creates an instance of the subcommand and runs it" do
|
207
207
|
command = Chef::Knife.run(%w{test yourself})
|
208
|
-
command.
|
209
|
-
command.ran.
|
208
|
+
expect(command).to be_an_instance_of(KnifeSpecs::TestYourself)
|
209
|
+
expect(command.ran).to be_truthy
|
210
210
|
end
|
211
211
|
|
212
212
|
it "passes the command specific args to the subcommand" do
|
213
213
|
command = Chef::Knife.run(%w{test yourself with some args})
|
214
|
-
command.name_args.
|
214
|
+
expect(command.name_args).to eq(%w{with some args})
|
215
215
|
end
|
216
216
|
|
217
217
|
it "excludes the command name from the name args when parts are joined with underscores" do
|
218
218
|
command = Chef::Knife.run(%w{test_yourself with some args})
|
219
|
-
command.name_args.
|
219
|
+
expect(command.name_args).to eq(%w{with some args})
|
220
220
|
end
|
221
221
|
|
222
222
|
it "exits if no subcommand matches the CLI args" do
|
@@ -230,7 +230,7 @@ describe Chef::Knife do
|
|
230
230
|
|
231
231
|
it "loads lazy dependencies" do
|
232
232
|
Chef::Knife.run(%w{test yourself})
|
233
|
-
KnifeSpecs::TestYourself.test_deps_loaded.
|
233
|
+
expect(KnifeSpecs::TestYourself.test_deps_loaded).to be_truthy
|
234
234
|
end
|
235
235
|
|
236
236
|
it "loads lazy dependencies from multiple deps calls" do
|
@@ -240,8 +240,8 @@ describe Chef::Knife do
|
|
240
240
|
end
|
241
241
|
|
242
242
|
Chef::Knife.run(%w{test yourself})
|
243
|
-
KnifeSpecs::TestYourself.test_deps_loaded.
|
244
|
-
other_deps_loaded.
|
243
|
+
expect(KnifeSpecs::TestYourself.test_deps_loaded).to be_truthy
|
244
|
+
expect(other_deps_loaded).to be_truthy
|
245
245
|
end
|
246
246
|
|
247
247
|
describe "merging configuration options" do
|
@@ -254,21 +254,21 @@ describe Chef::Knife do
|
|
254
254
|
it "prefers the default value if no config or command line value is present" do
|
255
255
|
knife_command = KnifeSpecs::TestYourself.new([]) #empty argv
|
256
256
|
knife_command.configure_chef
|
257
|
-
knife_command.config[:opt_with_default].
|
257
|
+
expect(knife_command.config[:opt_with_default]).to eq("default-value")
|
258
258
|
end
|
259
259
|
|
260
260
|
it "prefers a value in Chef::Config[:knife] to the default" do
|
261
261
|
Chef::Config[:knife][:opt_with_default] = "from-knife-config"
|
262
262
|
knife_command = KnifeSpecs::TestYourself.new([]) #empty argv
|
263
263
|
knife_command.configure_chef
|
264
|
-
knife_command.config[:opt_with_default].
|
264
|
+
expect(knife_command.config[:opt_with_default]).to eq("from-knife-config")
|
265
265
|
end
|
266
266
|
|
267
267
|
it "prefers a value from command line over Chef::Config and the default" do
|
268
268
|
Chef::Config[:knife][:opt_with_default] = "from-knife-config"
|
269
269
|
knife_command = KnifeSpecs::TestYourself.new(["-D", "from-cli"])
|
270
270
|
knife_command.configure_chef
|
271
|
-
knife_command.config[:opt_with_default].
|
271
|
+
expect(knife_command.config[:opt_with_default]).to eq("from-cli")
|
272
272
|
end
|
273
273
|
|
274
274
|
context "verbosity is greater than zero" do
|
@@ -311,7 +311,7 @@ describe Chef::Knife do
|
|
311
311
|
end
|
312
312
|
|
313
313
|
it "does not have lazy dependencies loaded" do
|
314
|
-
expect(knife.class.test_deps_loaded).
|
314
|
+
expect(knife.class.test_deps_loaded).not_to be_truthy
|
315
315
|
end
|
316
316
|
end
|
317
317
|
|
data/spec/unit/lwrp_spec.rb
CHANGED
@@ -33,17 +33,41 @@ describe "LWRP" do
|
|
33
33
|
|
34
34
|
describe "when overriding an existing class" do
|
35
35
|
before :each do
|
36
|
-
$stderr.
|
36
|
+
allow($stderr).to receive(:write)
|
37
37
|
end
|
38
38
|
|
39
|
+
it "should not skip loading a resource when there's a top level symbol of the same name" do
|
40
|
+
Object.const_set('LwrpFoo', Class.new)
|
41
|
+
file = File.expand_path( "lwrp/resources/foo.rb", CHEF_SPEC_DATA)
|
42
|
+
expect(Chef::Log).not_to receive(:info).with(/Skipping/)
|
43
|
+
expect(Chef::Log).not_to receive(:debug).with(/anymore/)
|
44
|
+
Chef::Resource::LWRPBase.build_from_file("lwrp", file, nil)
|
45
|
+
Object.send(:remove_const, 'LwrpFoo')
|
46
|
+
Chef::Resource.send(:remove_const, 'LwrpFoo')
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should not skip loading a provider when there's a top level symbol of the same name" do
|
50
|
+
Object.const_set('LwrpBuckPasser', Class.new)
|
51
|
+
file = File.expand_path( "lwrp/providers/buck_passer.rb", CHEF_SPEC_DATA)
|
52
|
+
expect(Chef::Log).not_to receive(:info).with(/Skipping/)
|
53
|
+
expect(Chef::Log).not_to receive(:debug).with(/anymore/)
|
54
|
+
Chef::Provider::LWRPBase.build_from_file("lwrp", file, nil)
|
55
|
+
Object.send(:remove_const, 'LwrpBuckPasser')
|
56
|
+
Chef::Provider.send(:remove_const, 'LwrpBuckPasser')
|
57
|
+
end
|
58
|
+
|
59
|
+
# @todo: we need a before block to manually remove_const all of the LWRPs that we
|
60
|
+
# load in these tests. we're threading state through these tests in LWRPs that
|
61
|
+
# have already been loaded in prior tests, which probably renders some of them bogus
|
62
|
+
|
39
63
|
it "should log if attempting to load resource of same name" do
|
40
64
|
Dir[File.expand_path( "lwrp/resources/*", CHEF_SPEC_DATA)].each do |file|
|
41
65
|
Chef::Resource::LWRPBase.build_from_file("lwrp", file, nil)
|
42
66
|
end
|
43
67
|
|
44
68
|
Dir[File.expand_path( "lwrp/resources/*", CHEF_SPEC_DATA)].each do |file|
|
45
|
-
Chef::Log.
|
46
|
-
Chef::Log.
|
69
|
+
expect(Chef::Log).to receive(:info).with(/Skipping/)
|
70
|
+
expect(Chef::Log).to receive(:debug).with(/anymore/)
|
47
71
|
Chef::Resource::LWRPBase.build_from_file("lwrp", file, nil)
|
48
72
|
end
|
49
73
|
end
|
@@ -54,8 +78,8 @@ describe "LWRP" do
|
|
54
78
|
end
|
55
79
|
|
56
80
|
Dir[File.expand_path( "lwrp/providers/*", CHEF_SPEC_DATA)].each do |file|
|
57
|
-
Chef::Log.
|
58
|
-
Chef::Log.
|
81
|
+
expect(Chef::Log).to receive(:info).with(/Skipping/)
|
82
|
+
expect(Chef::Log).to receive(:debug).with(/anymore/)
|
59
83
|
Chef::Provider::LWRPBase.build_from_file("lwrp", file, nil)
|
60
84
|
end
|
61
85
|
end
|
@@ -67,11 +91,11 @@ describe "LWRP" do
|
|
67
91
|
Chef::Resource::LWRPBase.build_from_file("lwrp", file, nil)
|
68
92
|
end
|
69
93
|
first_lwr_foo_class = Chef::Resource::LwrpFoo
|
70
|
-
Chef::Resource.resource_classes.
|
94
|
+
expect(Chef::Resource.resource_classes).to include(first_lwr_foo_class)
|
71
95
|
Dir[File.expand_path( "lwrp/resources/*", CHEF_SPEC_DATA)].each do |file|
|
72
96
|
Chef::Resource::LWRPBase.build_from_file("lwrp", file, nil)
|
73
97
|
end
|
74
|
-
Chef::Resource.resource_classes.
|
98
|
+
expect(Chef::Resource.resource_classes).to include(first_lwr_foo_class)
|
75
99
|
end
|
76
100
|
|
77
101
|
it "does not attempt to remove classes from higher up namespaces [CHEF-4117]" do
|
@@ -95,27 +119,27 @@ describe "LWRP" do
|
|
95
119
|
end
|
96
120
|
|
97
121
|
it "should load the resource into a properly-named class" do
|
98
|
-
Chef::Resource.const_get("LwrpFoo").
|
122
|
+
expect(Chef::Resource.const_get("LwrpFoo")).to be_kind_of(Class)
|
99
123
|
end
|
100
124
|
|
101
125
|
it "should set resource_name" do
|
102
|
-
Chef::Resource::LwrpFoo.new("blah").resource_name.
|
126
|
+
expect(Chef::Resource::LwrpFoo.new("blah").resource_name).to eql(:lwrp_foo)
|
103
127
|
end
|
104
128
|
|
105
129
|
it "should add the specified actions to the allowed_actions array" do
|
106
|
-
Chef::Resource::LwrpFoo.new("blah").allowed_actions.
|
130
|
+
expect(Chef::Resource::LwrpFoo.new("blah").allowed_actions).to include(:pass_buck, :twiddle_thumbs)
|
107
131
|
end
|
108
132
|
|
109
133
|
it "should set the specified action as the default action" do
|
110
|
-
Chef::Resource::LwrpFoo.new("blah").action.
|
134
|
+
expect(Chef::Resource::LwrpFoo.new("blah").action).to eq(:pass_buck)
|
111
135
|
end
|
112
136
|
|
113
137
|
it "should create a method for each attribute" do
|
114
|
-
Chef::Resource::LwrpFoo.new("blah").methods.map{ |m| m.to_sym}.
|
138
|
+
expect(Chef::Resource::LwrpFoo.new("blah").methods.map{ |m| m.to_sym}).to include(:monkey)
|
115
139
|
end
|
116
140
|
|
117
141
|
it "should build attribute methods that respect validation rules" do
|
118
|
-
|
142
|
+
expect { Chef::Resource::LwrpFoo.new("blah").monkey(42) }.to raise_error(ArgumentError)
|
119
143
|
end
|
120
144
|
|
121
145
|
it "should have access to the run context and node during class definition" do
|
@@ -128,9 +152,9 @@ describe "LWRP" do
|
|
128
152
|
end
|
129
153
|
|
130
154
|
cls = Chef::Resource.const_get("LwrpNodeattr")
|
131
|
-
cls.node.
|
132
|
-
cls.run_context.
|
133
|
-
cls.node[:penguin_name].
|
155
|
+
expect(cls.node).to be_kind_of(Chef::Node)
|
156
|
+
expect(cls.run_context).to be_kind_of(Chef::RunContext)
|
157
|
+
expect(cls.node[:penguin_name]).to eql("jackass")
|
134
158
|
end
|
135
159
|
|
136
160
|
context "resource_name" do
|
@@ -247,7 +271,7 @@ describe "LWRP" do
|
|
247
271
|
end
|
248
272
|
end
|
249
273
|
|
250
|
-
it "
|
274
|
+
it "amends actions when they are already defined" do
|
251
275
|
raise_if_deprecated!
|
252
276
|
expect(child.actions).to eq([:eat, :sleep, :drink])
|
253
277
|
end
|
@@ -296,13 +320,13 @@ describe "LWRP" do
|
|
296
320
|
end
|
297
321
|
|
298
322
|
it "should load the provider into a properly-named class" do
|
299
|
-
Chef::Provider.const_get("LwrpBuckPasser").
|
323
|
+
expect(Chef::Provider.const_get("LwrpBuckPasser")).to be_kind_of(Class)
|
300
324
|
end
|
301
325
|
|
302
326
|
it "should create a method for each attribute" do
|
303
327
|
new_resource = double("new resource").as_null_object
|
304
|
-
Chef::Provider::LwrpBuckPasser.new(nil, new_resource).methods.map{|m|m.to_sym}.
|
305
|
-
Chef::Provider::LwrpThumbTwiddler.new(nil, new_resource).methods.map{|m|m.to_sym}.
|
328
|
+
expect(Chef::Provider::LwrpBuckPasser.new(nil, new_resource).methods.map{|m|m.to_sym}).to include(:action_pass_buck)
|
329
|
+
expect(Chef::Provider::LwrpThumbTwiddler.new(nil, new_resource).methods.map{|m|m.to_sym}).to include(:action_twiddle_thumbs)
|
306
330
|
end
|
307
331
|
|
308
332
|
it "should insert resources embedded in the provider into the middle of the resource collection" do
|
@@ -316,10 +340,10 @@ describe "LWRP" do
|
|
316
340
|
|
317
341
|
Chef::Runner.new(@run_context).converge
|
318
342
|
|
319
|
-
@run_context.resource_collection[0].
|
320
|
-
@run_context.resource_collection[1].name.
|
321
|
-
@run_context.resource_collection[2].name.
|
322
|
-
@run_context.resource_collection[3].
|
343
|
+
expect(@run_context.resource_collection[0]).to eql(injector)
|
344
|
+
expect(@run_context.resource_collection[1].name).to eql('prepared_thumbs')
|
345
|
+
expect(@run_context.resource_collection[2].name).to eql('twiddled_thumbs')
|
346
|
+
expect(@run_context.resource_collection[3]).to eql(dummy)
|
323
347
|
end
|
324
348
|
|
325
349
|
it "should insert embedded resources from multiple providers, including from the last position, properly into the resource collection" do
|
@@ -340,13 +364,13 @@ describe "LWRP" do
|
|
340
364
|
|
341
365
|
Chef::Runner.new(@run_context).converge
|
342
366
|
|
343
|
-
@run_context.resource_collection[0].
|
344
|
-
@run_context.resource_collection[1].name.
|
345
|
-
@run_context.resource_collection[2].name.
|
346
|
-
@run_context.resource_collection[3].
|
347
|
-
@run_context.resource_collection[4].
|
348
|
-
@run_context.resource_collection[5].name.
|
349
|
-
@run_context.resource_collection[6].name.
|
367
|
+
expect(@run_context.resource_collection[0]).to eql(injector)
|
368
|
+
expect(@run_context.resource_collection[1].name).to eql('prepared_thumbs')
|
369
|
+
expect(@run_context.resource_collection[2].name).to eql('twiddled_thumbs')
|
370
|
+
expect(@run_context.resource_collection[3]).to eql(dummy)
|
371
|
+
expect(@run_context.resource_collection[4]).to eql(injector2)
|
372
|
+
expect(@run_context.resource_collection[5].name).to eql('prepared_eyes')
|
373
|
+
expect(@run_context.resource_collection[6].name).to eql('dried_paint_watched')
|
350
374
|
end
|
351
375
|
|
352
376
|
it "should properly handle a new_resource reference" do
|
@@ -357,7 +381,7 @@ describe "LWRP" do
|
|
357
381
|
provider = Chef::Platform.provider_for_resource(resource, :twiddle_thumbs)
|
358
382
|
provider.action_twiddle_thumbs
|
359
383
|
|
360
|
-
provider.monkey_name.
|
384
|
+
expect(provider.monkey_name).to eq("my monkey's name is 'bob'")
|
361
385
|
end
|
362
386
|
|
363
387
|
it "should properly handle an embedded Resource accessing the enclosing Provider's scope" do
|
@@ -369,7 +393,7 @@ describe "LWRP" do
|
|
369
393
|
#provider = @runner.build_provider(resource)
|
370
394
|
provider.action_twiddle_thumbs
|
371
395
|
|
372
|
-
provider.enclosed_resource.monkey.
|
396
|
+
expect(provider.enclosed_resource.monkey).to eq('bob, the monkey')
|
373
397
|
end
|
374
398
|
|
375
399
|
describe "when using inline compilation" do
|
@@ -388,27 +412,27 @@ describe "LWRP" do
|
|
388
412
|
|
389
413
|
it "does not add interior resources to the exterior resource collection" do
|
390
414
|
@resource.run_action(:test)
|
391
|
-
@run_context.resource_collection.
|
415
|
+
expect(@run_context.resource_collection).to be_empty
|
392
416
|
end
|
393
417
|
|
394
418
|
context "when interior resources are updated" do
|
395
419
|
it "processes notifications within the LWRP provider's action" do
|
396
420
|
@resource.run_action(:test)
|
397
|
-
$interior_ruby_block_2.
|
421
|
+
expect($interior_ruby_block_2).to eq("executed")
|
398
422
|
end
|
399
423
|
|
400
424
|
it "marks the parent resource updated" do
|
401
425
|
@resource.run_action(:test)
|
402
|
-
@resource.
|
403
|
-
@resource.
|
426
|
+
expect(@resource).to be_updated
|
427
|
+
expect(@resource).to be_updated_by_last_action
|
404
428
|
end
|
405
429
|
end
|
406
430
|
|
407
431
|
context "when interior resources are not updated" do
|
408
432
|
it "does not mark the parent resource updated" do
|
409
433
|
@resource.run_action(:no_updates)
|
410
|
-
@resource.
|
411
|
-
@resource.
|
434
|
+
expect(@resource).not_to be_updated
|
435
|
+
expect(@resource).not_to be_updated_by_last_action
|
412
436
|
end
|
413
437
|
end
|
414
438
|
|
data/spec/unit/mash_spec.rb
CHANGED
@@ -24,27 +24,27 @@ describe Mash do
|
|
24
24
|
data = {:x=>"one", :y=>"two", :z=>"three"}
|
25
25
|
@orig = Mash.new(data)
|
26
26
|
@copy = @orig.dup
|
27
|
-
@copy.to_hash.
|
27
|
+
expect(@copy.to_hash).to eq(Mash.new(data).to_hash)
|
28
28
|
@copy[:x] = "four"
|
29
|
-
@orig[:x].
|
29
|
+
expect(@orig[:x]).to eq("one")
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should duplicate a mash with an array to a new mash" do
|
33
33
|
data = {:x=>"one", :y=>"two", :z=>[1,2,3]}
|
34
34
|
@orig = Mash.new(data)
|
35
35
|
@copy = @orig.dup
|
36
|
-
@copy.to_hash.
|
36
|
+
expect(@copy.to_hash).to eq(Mash.new(data).to_hash)
|
37
37
|
@copy[:z] << 4
|
38
|
-
@orig[:z].
|
38
|
+
expect(@orig[:z]).to eq([1,2,3])
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should duplicate a nested mash to a new mash" do
|
42
42
|
data = {:x=>"one", :y=>"two", :z=>Mash.new({:a=>[1,2,3]})}
|
43
43
|
@orig = Mash.new(data)
|
44
44
|
@copy = @orig.dup
|
45
|
-
@copy.to_hash.
|
45
|
+
expect(@copy.to_hash).to eq(Mash.new(data).to_hash)
|
46
46
|
@copy[:z][:a] << 4
|
47
|
-
@orig[:z][:a].
|
47
|
+
expect(@orig[:z][:a]).to eq([1,2,3])
|
48
48
|
end
|
49
49
|
|
50
50
|
# add more!
|