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
@@ -0,0 +1,60 @@
|
|
1
|
+
|
2
|
+
require 'chef/application/windows_service_manager'
|
3
|
+
|
4
|
+
shared_context "using Win32::Service" do
|
5
|
+
# Some helper methods.
|
6
|
+
|
7
|
+
def test_service_exists?
|
8
|
+
::Win32::Service.exists?("spec-service")
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_service_state
|
12
|
+
::Win32::Service.status("spec-service").current_state
|
13
|
+
end
|
14
|
+
|
15
|
+
def service_manager
|
16
|
+
Chef::Application::WindowsServiceManager.new(test_service)
|
17
|
+
end
|
18
|
+
|
19
|
+
def cleanup
|
20
|
+
# Uninstall if the test service is installed.
|
21
|
+
if test_service_exists?
|
22
|
+
|
23
|
+
# We can only uninstall when the service is stopped.
|
24
|
+
if test_service_state != "stopped"
|
25
|
+
::Win32::Service.send("stop", "spec-service")
|
26
|
+
while test_service_state != "stopped"
|
27
|
+
sleep 1
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
::Win32::Service.delete("spec-service")
|
32
|
+
end
|
33
|
+
|
34
|
+
# Delete the test_service_file if it exists
|
35
|
+
if File.exists?(test_service_file)
|
36
|
+
File.delete(test_service_file)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
# Definition for the test-service
|
43
|
+
|
44
|
+
let(:test_service) {
|
45
|
+
{
|
46
|
+
:service_name => "spec-service",
|
47
|
+
:service_display_name => "Spec Test Service",
|
48
|
+
:service_description => "Service for testing Chef::Application::WindowsServiceManager.",
|
49
|
+
:service_file_path => File.expand_path(File.join(File.dirname(__FILE__), '../../platforms/win32/spec_service.rb'))
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
# Test service creates a file for us to verify that it is running.
|
54
|
+
# Since our test service is running as Local System we should look
|
55
|
+
# for the file it creates under SYSTEM temp directory
|
56
|
+
|
57
|
+
let(:test_service_file) {
|
58
|
+
"#{ENV['SystemDrive']}\\windows\\temp\\spec_service_file"
|
59
|
+
}
|
60
|
+
end
|
@@ -83,29 +83,29 @@ shared_context Chef::Resource::WindowsScript do
|
|
83
83
|
|
84
84
|
it "should create a process with the expected architecture" do
|
85
85
|
resource.run_action(:run)
|
86
|
-
get_process_architecture.
|
86
|
+
expect(get_process_architecture).to eq(expected_architecture_output.downcase)
|
87
87
|
end
|
88
88
|
|
89
89
|
it "should execute guards with the same architecture as the resource" do
|
90
90
|
resource.only_if resource_guard_command
|
91
91
|
resource.run_action(:run)
|
92
|
-
get_process_architecture.
|
93
|
-
get_guard_process_architecture.
|
94
|
-
get_guard_process_architecture.
|
92
|
+
expect(get_process_architecture).to eq(expected_architecture_output.downcase)
|
93
|
+
expect(get_guard_process_architecture).to eq(expected_architecture_output.downcase)
|
94
|
+
expect(get_guard_process_architecture).to eq(get_process_architecture)
|
95
95
|
end
|
96
96
|
|
97
97
|
let (:architecture) { :x86_64 }
|
98
98
|
it "should execute a 64-bit guard if the guard's architecture is specified as 64-bit", :windows64_only do
|
99
99
|
resource.only_if resource_guard_command, :architecture => :x86_64
|
100
100
|
resource.run_action(:run)
|
101
|
-
get_guard_process_architecture.
|
101
|
+
expect(get_guard_process_architecture).to eq('amd64')
|
102
102
|
end
|
103
103
|
|
104
104
|
let (:architecture) { :i386 }
|
105
105
|
it "should execute a 32-bit guard if the guard's architecture is specified as 32-bit" do
|
106
106
|
resource.only_if resource_guard_command, :architecture => :i386
|
107
107
|
resource.run_action(:run)
|
108
|
-
get_guard_process_architecture.
|
108
|
+
expect(get_guard_process_architecture).to eq('x86')
|
109
109
|
end
|
110
110
|
end
|
111
111
|
end
|
@@ -122,11 +122,11 @@ shared_context Chef::Resource::WindowsScript do
|
|
122
122
|
|
123
123
|
context "when evaluating guards" do
|
124
124
|
it "has a guard_interpreter attribute set to the short name of the resource" do
|
125
|
-
resource.guard_interpreter.
|
125
|
+
expect(resource.guard_interpreter).to eq(resource.resource_name)
|
126
126
|
resource.not_if "findstr.exe /thiscommandhasnonzeroexitstatus"
|
127
127
|
expect(Chef::Resource).to receive(:resource_for_node).and_call_original
|
128
128
|
expect(resource.class).to receive(:new).and_call_original
|
129
|
-
resource.should_skip?(:run).
|
129
|
+
expect(resource.should_skip?(:run)).to be_falsey
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
@@ -103,6 +103,9 @@ module KnifeSupport
|
|
103
103
|
private
|
104
104
|
|
105
105
|
class KnifeResult
|
106
|
+
|
107
|
+
include ::RSpec::Matchers
|
108
|
+
|
106
109
|
def initialize(stdout, stderr, exit_code)
|
107
110
|
@stdout = stdout
|
108
111
|
@stderr = stderr
|
@@ -150,20 +153,20 @@ module KnifeSupport
|
|
150
153
|
stderr_actual = @stderr.sub(/^WARNING: No knife configuration file found\n/, '')
|
151
154
|
|
152
155
|
if expected[:stderr].is_a?(Regexp)
|
153
|
-
stderr_actual.
|
156
|
+
expect(stderr_actual).to match(expected[:stderr])
|
154
157
|
else
|
155
|
-
stderr_actual.
|
158
|
+
expect(stderr_actual).to eq(expected[:stderr])
|
156
159
|
end
|
157
160
|
stdout_actual = @stdout
|
158
161
|
if Chef::Platform.windows?
|
159
162
|
stderr_actual = stderr_actual.gsub("\r\n", "\n")
|
160
163
|
stdout_actual = stdout_actual.gsub("\r\n", "\n")
|
161
164
|
end
|
162
|
-
@exit_code.
|
165
|
+
expect(@exit_code).to eq(expected[:exit_code])
|
163
166
|
if expected[:stdout].is_a?(Regexp)
|
164
|
-
stdout_actual.
|
167
|
+
expect(stdout_actual).to match(expected[:stdout])
|
165
168
|
else
|
166
|
-
stdout_actual.
|
169
|
+
expect(stdout_actual).to eq(expected[:stdout])
|
167
170
|
end
|
168
171
|
end
|
169
172
|
end
|
@@ -12,12 +12,12 @@ RSpec::Matchers.define :exit_with_code do |exp_code|
|
|
12
12
|
actual and actual == exp_code
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
failure_message do |block|
|
16
16
|
"expected block to call exit(#{exp_code}) but exit" +
|
17
17
|
(actual.nil? ? " not called" : "(#{actual}) was called")
|
18
18
|
end
|
19
19
|
|
20
|
-
|
20
|
+
failure_message_when_negated do |block|
|
21
21
|
"expected block not to call exit(#{exp_code})"
|
22
22
|
end
|
23
23
|
|
@@ -25,4 +25,8 @@ RSpec::Matchers.define :exit_with_code do |exp_code|
|
|
25
25
|
"expect block to call exit(#{exp_code})"
|
26
26
|
end
|
27
27
|
|
28
|
+
def supports_block_expectations?
|
29
|
+
true
|
30
|
+
end
|
31
|
+
|
28
32
|
end
|
@@ -23,7 +23,7 @@
|
|
23
23
|
# runs without error, but don't make assertions about the output. This is
|
24
24
|
# because aspects such as how information gets formatted, what's included, etc.
|
25
25
|
# are still in flux. When testing an inspector, change the outputter to use
|
26
|
-
# STDOUT and manually check the
|
26
|
+
# STDOUT and manually check the output.
|
27
27
|
|
28
28
|
shared_examples_for "an api error inspector" do
|
29
29
|
|
@@ -72,7 +72,7 @@ shared_examples_for "an api error inspector" do
|
|
72
72
|
before do
|
73
73
|
@response_body = "synchronize the clock on your host"
|
74
74
|
@response = Net::HTTPUnauthorized.new("1.1", "401", "(response) unauthorized")
|
75
|
-
@response.
|
75
|
+
allow(@response).to receive(:body).and_return(@response_body)
|
76
76
|
@exception = Net::HTTPServerException.new("(exception) unauthorized", @response)
|
77
77
|
@inspector = described_class.new(@node_name, @exception, @config)
|
78
78
|
@inspector.add_explanation(@description)
|
@@ -88,7 +88,7 @@ shared_examples_for "an api error inspector" do
|
|
88
88
|
before do
|
89
89
|
@response_body = "check your key and node name"
|
90
90
|
@response = Net::HTTPUnauthorized.new("1.1", "401", "(response) unauthorized")
|
91
|
-
@response.
|
91
|
+
allow(@response).to receive(:body).and_return(@response_body)
|
92
92
|
@exception = Net::HTTPServerException.new("(exception) unauthorized", @response)
|
93
93
|
@inspector = described_class.new(@node_name, @exception, @config)
|
94
94
|
@inspector.add_explanation(@description)
|
@@ -104,7 +104,7 @@ shared_examples_for "an api error inspector" do
|
|
104
104
|
before do
|
105
105
|
@response_body = "forbidden"
|
106
106
|
@response = Net::HTTPForbidden.new("1.1", "403", "(response) forbidden")
|
107
|
-
@response.
|
107
|
+
allow(@response).to receive(:body).and_return(@response_body)
|
108
108
|
@exception = Net::HTTPServerException.new("(exception) forbidden", @response)
|
109
109
|
@inspector = described_class.new(@node_name, @exception, @config)
|
110
110
|
@inspector.add_explanation(@description)
|
@@ -120,7 +120,7 @@ shared_examples_for "an api error inspector" do
|
|
120
120
|
before do
|
121
121
|
@response_body = "didn't like your data"
|
122
122
|
@response = Net::HTTPBadRequest.new("1.1", "400", "(response) bad request")
|
123
|
-
@response.
|
123
|
+
allow(@response).to receive(:body).and_return(@response_body)
|
124
124
|
@exception = Net::HTTPServerException.new("(exception) bad request", @response)
|
125
125
|
@inspector = described_class.new(@node_name, @exception, @config)
|
126
126
|
@inspector.add_explanation(@description)
|
@@ -136,7 +136,7 @@ shared_examples_for "an api error inspector" do
|
|
136
136
|
before do
|
137
137
|
@response_body = "probably caused by a redirect to a get"
|
138
138
|
@response = Net::HTTPNotFound.new("1.1", "404", "(response) not found")
|
139
|
-
@response.
|
139
|
+
allow(@response).to receive(:body).and_return(@response_body)
|
140
140
|
@exception = Net::HTTPServerException.new("(exception) not found", @response)
|
141
141
|
@inspector = described_class.new(@node_name, @exception, @config)
|
142
142
|
@inspector.add_explanation(@description)
|
@@ -151,7 +151,7 @@ shared_examples_for "an api error inspector" do
|
|
151
151
|
before do
|
152
152
|
@response_body = "sad trombone"
|
153
153
|
@response = Net::HTTPInternalServerError.new("1.1", "500", "(response) internal server error")
|
154
|
-
@response.
|
154
|
+
allow(@response).to receive(:body).and_return(@response_body)
|
155
155
|
@exception = Net::HTTPFatalError.new("(exception) internal server error", @response)
|
156
156
|
@inspector = described_class.new(@node_name, @exception, @config)
|
157
157
|
@inspector.add_explanation(@description)
|
@@ -166,7 +166,7 @@ shared_examples_for "an api error inspector" do
|
|
166
166
|
before do
|
167
167
|
@response_body = "sad trombone orchestra"
|
168
168
|
@response = Net::HTTPBadGateway.new("1.1", "502", "(response) bad gateway")
|
169
|
-
@response.
|
169
|
+
allow(@response).to receive(:body).and_return(@response_body)
|
170
170
|
@exception = Net::HTTPFatalError.new("(exception) bad gateway", @response)
|
171
171
|
@inspector = described_class.new(@node_name, @exception, @config)
|
172
172
|
@inspector.add_explanation(@description)
|
@@ -26,85 +26,89 @@ shared_examples_for "an execute resource" do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should create a new Chef::Resource::Execute" do
|
29
|
-
@resource.
|
30
|
-
@resource.
|
29
|
+
expect(@resource).to be_a_kind_of(Chef::Resource)
|
30
|
+
expect(@resource).to be_a_kind_of(Chef::Resource::Execute)
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should set the command to the first argument to new" do
|
34
|
-
@resource.command.
|
34
|
+
expect(@resource.command).to eql(resource_instance_name)
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should accept an array on instantiation, too" do
|
38
38
|
resource = Chef::Resource::Execute.new(%w{something else})
|
39
|
-
resource.
|
40
|
-
resource.
|
41
|
-
resource.command.
|
39
|
+
expect(resource).to be_a_kind_of(Chef::Resource)
|
40
|
+
expect(resource).to be_a_kind_of(Chef::Resource::Execute)
|
41
|
+
expect(resource.command).to eql(%w{something else})
|
42
42
|
end
|
43
43
|
|
44
44
|
it "should accept a string for the command to run" do
|
45
45
|
@resource.command "something"
|
46
|
-
@resource.command.
|
46
|
+
expect(@resource.command).to eql("something")
|
47
47
|
end
|
48
48
|
|
49
49
|
it "should accept an array for the command to run" do
|
50
50
|
@resource.command %w{something else}
|
51
|
-
@resource.command.
|
51
|
+
expect(@resource.command).to eql(%w{something else})
|
52
52
|
end
|
53
53
|
|
54
54
|
it "should accept a string for the cwd" do
|
55
55
|
@resource.cwd "something"
|
56
|
-
@resource.cwd.
|
56
|
+
expect(@resource.cwd).to eql("something")
|
57
57
|
end
|
58
58
|
|
59
59
|
it "should accept a hash for the environment" do
|
60
60
|
test_hash = { :one => :two }
|
61
61
|
@resource.environment(test_hash)
|
62
|
-
@resource.environment.
|
62
|
+
expect(@resource.environment).to eql(test_hash)
|
63
63
|
end
|
64
64
|
|
65
65
|
it "allows the environment to be specified with #env" do
|
66
|
-
@resource.
|
66
|
+
expect(@resource).to respond_to(:env)
|
67
67
|
end
|
68
68
|
|
69
69
|
it "should accept a string for the group" do
|
70
70
|
@resource.group "something"
|
71
|
-
@resource.group.
|
71
|
+
expect(@resource.group).to eql("something")
|
72
72
|
end
|
73
73
|
|
74
74
|
it "should accept an integer for the group" do
|
75
75
|
@resource.group 1
|
76
|
-
@resource.group.
|
76
|
+
expect(@resource.group).to eql(1)
|
77
77
|
end
|
78
78
|
|
79
|
-
it "should accept an array for the execution path in Chef-12 and log deprecation message" do
|
79
|
+
it "should accept an array for the execution path in Chef-12 and log deprecation message", :chef_lt_13_only do
|
80
80
|
expect(Chef::Log).to receive(:warn).at_least(:once)
|
81
81
|
@resource.path ["woot"]
|
82
82
|
expect(@resource.path).to eql(["woot"])
|
83
83
|
end
|
84
84
|
|
85
|
+
it "should raise an exception in chef-13", :chef_gte_13_only do
|
86
|
+
expect(@resource.path [ "woot" ]).to raise_error
|
87
|
+
end
|
88
|
+
|
85
89
|
it "should accept an integer for the return code" do
|
86
90
|
@resource.returns 1
|
87
|
-
@resource.returns.
|
91
|
+
expect(@resource.returns).to eql(1)
|
88
92
|
end
|
89
93
|
|
90
94
|
it "should accept an integer for the timeout" do
|
91
95
|
@resource.timeout 1
|
92
|
-
@resource.timeout.
|
96
|
+
expect(@resource.timeout).to eql(1)
|
93
97
|
end
|
94
98
|
|
95
99
|
it "should accept a string for the user" do
|
96
100
|
@resource.user "something"
|
97
|
-
@resource.user.
|
101
|
+
expect(@resource.user).to eql("something")
|
98
102
|
end
|
99
103
|
|
100
104
|
it "should accept an integer for the user" do
|
101
105
|
@resource.user 1
|
102
|
-
@resource.user.
|
106
|
+
expect(@resource.user).to eql(1)
|
103
107
|
end
|
104
108
|
|
105
109
|
it "should accept a string for creates" do
|
106
110
|
@resource.creates "something"
|
107
|
-
@resource.creates.
|
111
|
+
expect(@resource.creates).to eql("something")
|
108
112
|
end
|
109
113
|
|
110
114
|
describe "when it has cwd, environment, group, path, return value, and a user" do
|
@@ -118,7 +122,7 @@ shared_examples_for "an execute resource" do
|
|
118
122
|
end
|
119
123
|
|
120
124
|
it "returns the command as its identity" do
|
121
|
-
@resource.identity.
|
125
|
+
expect(@resource.identity).to eq("grep")
|
122
126
|
end
|
123
127
|
end
|
124
128
|
end
|
@@ -56,7 +56,7 @@ module FileSystemSupport
|
|
56
56
|
def no_blocking_calls_allowed
|
57
57
|
[ Chef::ChefFS::FileSystem::MemoryFile, Chef::ChefFS::FileSystem::MemoryDir ].each do |c|
|
58
58
|
[ :children, :exists?, :read ].each do |m|
|
59
|
-
c.
|
59
|
+
allow_any_instance_of(c).to receive(m).and_raise("#{m.to_s} should not be called")
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
@@ -64,7 +64,7 @@ module FileSystemSupport
|
|
64
64
|
def list_should_yield_paths(fs, pattern_str, *expected_paths)
|
65
65
|
result_paths = []
|
66
66
|
Chef::ChefFS::FileSystem.list(fs, pattern(pattern_str)).each { |result| result_paths << result.path }
|
67
|
-
result_paths.
|
67
|
+
expect(result_paths).to match_array(expected_paths)
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
@@ -44,49 +44,49 @@ shared_examples_for "a platform introspector" do
|
|
44
44
|
|
45
45
|
it "returns a default value when there is no known platform" do
|
46
46
|
node = Hash.new
|
47
|
-
platform_introspector.value_for_platform(@platform_hash).
|
47
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq("default")
|
48
48
|
end
|
49
49
|
|
50
50
|
it "returns a default value when there is no known platform family" do
|
51
|
-
platform_introspector.value_for_platform_family(@platform_family_hash).
|
51
|
+
expect(platform_introspector.value_for_platform_family(@platform_family_hash)).to eq("default value")
|
52
52
|
end
|
53
53
|
|
54
54
|
it "returns a default value when the current platform doesn't match" do
|
55
55
|
node.automatic_attrs[:platform] = "not-a-known-platform"
|
56
|
-
platform_introspector.value_for_platform(@platform_hash).
|
56
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq("default")
|
57
57
|
end
|
58
58
|
|
59
59
|
it "returns a default value when current platform_family doesn't match" do
|
60
60
|
node.automatic_attrs[:platform_family] = "ultra-derived-linux"
|
61
|
-
platform_introspector.value_for_platform_family(@platform_family_hash).
|
61
|
+
expect(platform_introspector.value_for_platform_family(@platform_family_hash)).to eq("default value")
|
62
62
|
end
|
63
63
|
|
64
64
|
it "returns a value based on the current platform" do
|
65
65
|
node.automatic_attrs[:platform] = "openbsd"
|
66
|
-
platform_introspector.value_for_platform(@platform_hash).
|
66
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq("openbsd")
|
67
67
|
end
|
68
68
|
|
69
69
|
it "returns a value based on the current platform family" do
|
70
70
|
node.automatic_attrs[:platform_family] = "debian"
|
71
|
-
platform_introspector.value_for_platform_family(@platform_family_hash).
|
71
|
+
expect(platform_introspector.value_for_platform_family(@platform_family_hash)).to eq("debian value")
|
72
72
|
end
|
73
73
|
|
74
74
|
it "returns a version-specific value based on the current platform" do
|
75
75
|
node.automatic_attrs[:platform] = "openbsd"
|
76
76
|
node.automatic_attrs[:platform_version] = "1.2.3"
|
77
|
-
platform_introspector.value_for_platform(@platform_hash).
|
77
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq("openbsd-1.2.3")
|
78
78
|
end
|
79
79
|
|
80
80
|
it "returns a value based on the current platform if version not found" do
|
81
81
|
node.automatic_attrs[:platform] = "openbsd"
|
82
82
|
node.automatic_attrs[:platform_version] = "0.0.0"
|
83
|
-
platform_introspector.value_for_platform(@platform_hash).
|
83
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq("openbsd")
|
84
84
|
end
|
85
85
|
|
86
86
|
it 'returns the exact match' do
|
87
87
|
node.automatic_attrs[:platform] = 'exact_match'
|
88
88
|
node.automatic_attrs[:platform_version] = '1.2.3'
|
89
|
-
platform_introspector.value_for_platform(@platform_hash).
|
89
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq('exact')
|
90
90
|
end
|
91
91
|
|
92
92
|
it 'raises RuntimeError' do
|
@@ -98,20 +98,20 @@ shared_examples_for "a platform introspector" do
|
|
98
98
|
it 'should return the value for that match' do
|
99
99
|
node.automatic_attrs[:platform] = 'successful_matches'
|
100
100
|
node.automatic_attrs[:platform_version] = '2.9'
|
101
|
-
platform_introspector.value_for_platform(@platform_hash).
|
101
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq('matched < 3.0')
|
102
102
|
end
|
103
103
|
|
104
104
|
describe "when platform versions is an array" do
|
105
105
|
it "returns a version-specific value based on the current platform" do
|
106
106
|
node.automatic_attrs[:platform] = "debian"
|
107
107
|
node.automatic_attrs[:platform_version] = "6"
|
108
|
-
platform_introspector.value_for_platform(@platform_hash).
|
108
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq("debian-5/6")
|
109
109
|
end
|
110
110
|
|
111
111
|
it "returns a value based on the current platform if version not found" do
|
112
112
|
node.automatic_attrs[:platform] = "debian"
|
113
113
|
node.automatic_attrs[:platform_version] = "0.0.0"
|
114
|
-
platform_introspector.value_for_platform(@platform_hash).
|
114
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq("debian")
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
@@ -119,17 +119,17 @@ shared_examples_for "a platform introspector" do
|
|
119
119
|
|
120
120
|
it "returns true if the node is a provided platform and platforms are provided as symbols" do
|
121
121
|
node.automatic_attrs[:platform] = 'ubuntu'
|
122
|
-
platform_introspector.platform?([:redhat, :ubuntu]).
|
122
|
+
expect(platform_introspector.platform?([:redhat, :ubuntu])).to eq(true)
|
123
123
|
end
|
124
124
|
|
125
125
|
it "returns true if the node is a provided platform and platforms are provided as strings" do
|
126
126
|
node.automatic_attrs[:platform] = 'ubuntu'
|
127
|
-
platform_introspector.platform?(["redhat", "ubuntu"]).
|
127
|
+
expect(platform_introspector.platform?(["redhat", "ubuntu"])).to eq(true)
|
128
128
|
end
|
129
129
|
|
130
130
|
it "returns false if the node is not of the provided platforms" do
|
131
131
|
node.automatic_attrs[:platform] = 'ubuntu'
|
132
|
-
platform_introspector.platform?(:splatlinux).
|
132
|
+
expect(platform_introspector.platform?(:splatlinux)).to eq(false)
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
@@ -137,21 +137,21 @@ shared_examples_for "a platform introspector" do
|
|
137
137
|
|
138
138
|
it "returns true if the node is in a provided platform family and families are provided as symbols" do
|
139
139
|
node.automatic_attrs[:platform_family] = 'debian'
|
140
|
-
platform_introspector.platform_family?([:rhel, :debian]).
|
140
|
+
expect(platform_introspector.platform_family?([:rhel, :debian])).to eq(true)
|
141
141
|
end
|
142
142
|
|
143
143
|
it "returns true if the node is a provided platform and platforms are provided as strings" do
|
144
144
|
node.automatic_attrs[:platform_family] = 'rhel'
|
145
|
-
platform_introspector.platform_family?(["rhel", "debian"]).
|
145
|
+
expect(platform_introspector.platform_family?(["rhel", "debian"])).to eq(true)
|
146
146
|
end
|
147
147
|
|
148
148
|
it "returns false if the node is not of the provided platforms" do
|
149
149
|
node.automatic_attrs[:platform_family] = 'suse'
|
150
|
-
platform_introspector.platform_family?(:splatlinux).
|
150
|
+
expect(platform_introspector.platform_family?(:splatlinux)).to eq(false)
|
151
151
|
end
|
152
152
|
|
153
153
|
it "returns false if the node is not of the provided platforms and platform_family is not set" do
|
154
|
-
platform_introspector.platform_family?(:splatlinux).
|
154
|
+
expect(platform_introspector.platform_family?(:splatlinux)).to eq(false)
|
155
155
|
end
|
156
156
|
|
157
157
|
end
|
@@ -170,13 +170,13 @@ shared_examples_for "a platform introspector" do
|
|
170
170
|
it "returns the correct default for a given platform" do
|
171
171
|
node.automatic_attrs[:platform] = "debian"
|
172
172
|
node.automatic_attrs[:platform_version] = '9000'
|
173
|
-
platform_introspector.value_for_platform(@platform_hash).
|
173
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq([ :restart, :reload, :status ])
|
174
174
|
end
|
175
175
|
|
176
176
|
it "returns the correct platform+version specific value " do
|
177
177
|
node.automatic_attrs[:platform] = "debian"
|
178
178
|
node.automatic_attrs[:platform_version] = '4.0'
|
179
|
-
platform_introspector.value_for_platform(@platform_hash).
|
179
|
+
expect(platform_introspector.value_for_platform(@platform_hash)).to eq([:restart, :reload])
|
180
180
|
end
|
181
181
|
end
|
182
182
|
|