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,90 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
3
|
+
# Author:: Will Albenzi (<walbenzi@gmail.com>)
|
4
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
require 'spec_helper'
|
21
|
+
|
22
|
+
describe Chef::Knife::RoleRunListClear do
|
23
|
+
before(:each) do
|
24
|
+
Chef::Config[:role_name] = "will"
|
25
|
+
@setup = Chef::Knife::RoleRunListAdd.new
|
26
|
+
@setup.name_args = [ "will", "role[monkey]", "role[person]" ]
|
27
|
+
|
28
|
+
@knife = Chef::Knife::RoleRunListClear.new
|
29
|
+
@knife.config = {
|
30
|
+
:print_after => nil
|
31
|
+
}
|
32
|
+
@knife.name_args = [ "will" ]
|
33
|
+
allow(@knife).to receive(:output).and_return(true)
|
34
|
+
|
35
|
+
@role = Chef::Role.new()
|
36
|
+
@role.name("will")
|
37
|
+
allow(@role).to receive(:save).and_return(true)
|
38
|
+
|
39
|
+
allow(@knife.ui).to receive(:confirm).and_return(true)
|
40
|
+
allow(Chef::Role).to receive(:load).and_return(@role)
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
describe "run" do
|
47
|
+
|
48
|
+
|
49
|
+
# it "should display all the things" do
|
50
|
+
# @knife.run
|
51
|
+
# @role.to_json.should == 'show all the things'
|
52
|
+
# end
|
53
|
+
|
54
|
+
it "should load the node" do
|
55
|
+
expect(Chef::Role).to receive(:load).with("will").and_return(@role)
|
56
|
+
@knife.run
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should remove the item from the run list" do
|
60
|
+
@setup.run
|
61
|
+
@knife.run
|
62
|
+
expect(@role.run_list[0]).to be_nil
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should save the node" do
|
66
|
+
expect(@role).to receive(:save).and_return(true)
|
67
|
+
@knife.run
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should print the run list" do
|
71
|
+
expect(@knife).to receive(:output).and_return(true)
|
72
|
+
@knife.config[:print_after] = true
|
73
|
+
@setup.run
|
74
|
+
@knife.run
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "should clear an environmental run list of roles and recipes" do
|
78
|
+
it "should remove the items from the run list" do
|
79
|
+
@setup.name_args = [ "will", "recipe[orange::chicken]", "role[monkey]", "recipe[duck::type]", "role[person]", "role[bird]", "role[town]" ]
|
80
|
+
@setup.run
|
81
|
+
@knife.name_args = [ 'will' ]
|
82
|
+
@knife.run
|
83
|
+
expect(@role.run_list[0]).to be_nil
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
|
@@ -0,0 +1,98 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
3
|
+
# Author:: Will Albenzi (<walbenzi@gmail.com>)
|
4
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
require 'spec_helper'
|
21
|
+
|
22
|
+
describe Chef::Knife::RoleRunListRemove do
|
23
|
+
before(:each) do
|
24
|
+
Chef::Config[:role_name] = "will"
|
25
|
+
@setup = Chef::Knife::RoleRunListAdd.new
|
26
|
+
@setup.name_args = [ "will", "role[monkey]", "role[person]" ]
|
27
|
+
|
28
|
+
@knife = Chef::Knife::RoleRunListRemove.new
|
29
|
+
@knife.config = {
|
30
|
+
:print_after => nil
|
31
|
+
}
|
32
|
+
@knife.name_args = [ "will", "role[monkey]" ]
|
33
|
+
allow(@knife).to receive(:output).and_return(true)
|
34
|
+
|
35
|
+
@role = Chef::Role.new()
|
36
|
+
@role.name("will")
|
37
|
+
allow(@role).to receive(:save).and_return(true)
|
38
|
+
|
39
|
+
allow(@knife.ui).to receive(:confirm).and_return(true)
|
40
|
+
allow(Chef::Role).to receive(:load).and_return(@role)
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
describe "run" do
|
47
|
+
|
48
|
+
|
49
|
+
# it "should display all the things" do
|
50
|
+
# @knife.run
|
51
|
+
# @role.to_json.should == 'show all the things'
|
52
|
+
# end
|
53
|
+
|
54
|
+
it "should load the node" do
|
55
|
+
expect(Chef::Role).to receive(:load).with("will").and_return(@role)
|
56
|
+
@knife.run
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should remove the item from the run list" do
|
60
|
+
@setup.run
|
61
|
+
@knife.run
|
62
|
+
expect(@role.run_list[0]).to eq('role[person]')
|
63
|
+
expect(@role.run_list[1]).to be_nil
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should save the node" do
|
67
|
+
expect(@role).to receive(:save).and_return(true)
|
68
|
+
@knife.run
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should print the run list" do
|
72
|
+
expect(@knife).to receive(:output).and_return(true)
|
73
|
+
@knife.config[:print_after] = true
|
74
|
+
@setup.run
|
75
|
+
@knife.run
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "run with a list of roles and recipes" do
|
79
|
+
it "should remove the items from the run list" do
|
80
|
+
@setup.name_args = [ "will", "recipe[orange::chicken]", "role[monkey]", "recipe[duck::type]", "role[person]", "role[bird]", "role[town]" ]
|
81
|
+
@setup.run
|
82
|
+
@knife.name_args = [ 'will', 'role[monkey]' ]
|
83
|
+
@knife.run
|
84
|
+
@knife.name_args = [ 'will', 'recipe[duck::type]' ]
|
85
|
+
@knife.run
|
86
|
+
expect(@role.run_list).not_to include('role[monkey]')
|
87
|
+
expect(@role.run_list).not_to include('recipe[duck::type]')
|
88
|
+
expect(@role.run_list[0]).to eq('recipe[orange::chicken]')
|
89
|
+
expect(@role.run_list[1]).to eq('role[person]')
|
90
|
+
expect(@role.run_list[2]).to eq('role[bird]')
|
91
|
+
expect(@role.run_list[3]).to eq('role[town]')
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
|
@@ -0,0 +1,101 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
3
|
+
# Author:: Will Albenzi (<walbenzi@gmail.com>)
|
4
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
require 'spec_helper'
|
21
|
+
|
22
|
+
describe Chef::Knife::RoleRunListReplace do
|
23
|
+
before(:each) do
|
24
|
+
Chef::Config[:role_name] = "will"
|
25
|
+
@setup = Chef::Knife::RoleRunListAdd.new
|
26
|
+
@setup.name_args = [ "will", "role[monkey]", "role[dude]", "role[fixer]" ]
|
27
|
+
|
28
|
+
@knife = Chef::Knife::RoleRunListReplace.new
|
29
|
+
@knife.config = {
|
30
|
+
:print_after => nil
|
31
|
+
}
|
32
|
+
@knife.name_args = [ "will", "role[dude]", "role[person]" ]
|
33
|
+
allow(@knife).to receive(:output).and_return(true)
|
34
|
+
|
35
|
+
@role = Chef::Role.new()
|
36
|
+
@role.name("will")
|
37
|
+
allow(@role).to receive(:save).and_return(true)
|
38
|
+
|
39
|
+
allow(@knife.ui).to receive(:confirm).and_return(true)
|
40
|
+
allow(Chef::Role).to receive(:load).and_return(@role)
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
describe "run" do
|
47
|
+
|
48
|
+
|
49
|
+
# it "should display all the things" do
|
50
|
+
# @knife.run
|
51
|
+
# @role.to_json.should == 'show all the things'
|
52
|
+
# end
|
53
|
+
|
54
|
+
it "should load the node" do
|
55
|
+
expect(Chef::Role).to receive(:load).with("will").and_return(@role)
|
56
|
+
@knife.run
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should remove the item from the run list" do
|
60
|
+
@setup.run
|
61
|
+
@knife.run
|
62
|
+
expect(@role.run_list[0]).to eq('role[monkey]')
|
63
|
+
expect(@role.run_list[1]).not_to eq('role[dude]')
|
64
|
+
expect(@role.run_list[1]).to eq('role[person]')
|
65
|
+
expect(@role.run_list[2]).to eq('role[fixer]')
|
66
|
+
expect(@role.run_list[3]).to be_nil
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should save the node" do
|
70
|
+
expect(@role).to receive(:save).and_return(true)
|
71
|
+
@knife.run
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should print the run list" do
|
75
|
+
expect(@knife).to receive(:output).and_return(true)
|
76
|
+
@knife.config[:print_after] = true
|
77
|
+
@setup.run
|
78
|
+
@knife.run
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "run with a list of roles and recipes" do
|
82
|
+
it "should replace the items from the run list" do
|
83
|
+
@setup.name_args = [ "will", "recipe[orange::chicken]", "role[monkey]", "recipe[duck::type]", "role[person]", "role[bird]", "role[town]" ]
|
84
|
+
@setup.run
|
85
|
+
@knife.name_args = [ 'will', 'role[monkey]', 'role[gibbon]' ]
|
86
|
+
@knife.run
|
87
|
+
@knife.name_args = [ 'will', 'recipe[duck::type]', 'recipe[duck::mallard]' ]
|
88
|
+
@knife.run
|
89
|
+
expect(@role.run_list).not_to include('role[monkey]')
|
90
|
+
expect(@role.run_list).not_to include('recipe[duck::type]')
|
91
|
+
expect(@role.run_list[0]).to eq('recipe[orange::chicken]')
|
92
|
+
expect(@role.run_list[1]).to eq('role[gibbon]')
|
93
|
+
expect(@role.run_list[2]).to eq('recipe[duck::mallard]')
|
94
|
+
expect(@role.run_list[3]).to eq('role[person]')
|
95
|
+
expect(@role.run_list[4]).to eq('role[bird]')
|
96
|
+
expect(@role.run_list[5]).to eq('role[town]')
|
97
|
+
expect(@role.run_list[6]).to be_nil
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
3
|
+
# Author:: Will Albenzi (<walbenzi@gmail.com>)
|
4
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
require 'spec_helper'
|
21
|
+
|
22
|
+
describe Chef::Knife::RoleRunListSet do
|
23
|
+
before(:each) do
|
24
|
+
Chef::Config[:role_name] = "will"
|
25
|
+
@setup = Chef::Knife::RoleRunListAdd.new
|
26
|
+
@setup.name_args = [ "will", "role[monkey]", "role[person]", "role[bucket]" ]
|
27
|
+
|
28
|
+
@knife = Chef::Knife::RoleRunListSet.new
|
29
|
+
@knife.config = {
|
30
|
+
:print_after => nil
|
31
|
+
}
|
32
|
+
@knife.name_args = [ "will", "role[owen]", "role[mauntel]" ]
|
33
|
+
allow(@knife).to receive(:output).and_return(true)
|
34
|
+
|
35
|
+
@role = Chef::Role.new()
|
36
|
+
@role.name("will")
|
37
|
+
allow(@role).to receive(:save).and_return(true)
|
38
|
+
|
39
|
+
allow(@knife.ui).to receive(:confirm).and_return(true)
|
40
|
+
allow(Chef::Role).to receive(:load).and_return(@role)
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
describe "run" do
|
47
|
+
|
48
|
+
|
49
|
+
# it "should display all the things" do
|
50
|
+
# @knife.run
|
51
|
+
# @role.to_json.should == 'show all the things'
|
52
|
+
# end
|
53
|
+
|
54
|
+
it "should load the node" do
|
55
|
+
expect(Chef::Role).to receive(:load).with("will").and_return(@role)
|
56
|
+
@knife.run
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should replace all the items in the runlist with what is specified" do
|
60
|
+
@setup.run
|
61
|
+
@knife.run
|
62
|
+
expect(@role.run_list[0]).to eq("role[owen]")
|
63
|
+
expect(@role.run_list[1]).to eq("role[mauntel]")
|
64
|
+
expect(@role.run_list[2]).to be_nil
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should save the node" do
|
68
|
+
expect(@role).to receive(:save).and_return(true)
|
69
|
+
@knife.run
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should print the run list" do
|
73
|
+
expect(@knife).to receive(:output).and_return(true)
|
74
|
+
@knife.config[:print_after] = true
|
75
|
+
@setup.run
|
76
|
+
@knife.run
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "should clear an environmental run list of roles and recipes" do
|
80
|
+
it "should remove the items from the run list" do
|
81
|
+
@setup.name_args = [ "will", "recipe[orange::chicken]", "role[monkey]", "recipe[duck::type]", "role[person]", "role[bird]", "role[town]" ]
|
82
|
+
@setup.run
|
83
|
+
@knife.name_args = [ "will", "role[coke]", "role[pepsi]" ]
|
84
|
+
@knife.run
|
85
|
+
expect(@role.run_list[0]).to eq("role[coke]")
|
86
|
+
expect(@role.run_list[1]).to eq("role[pepsi]")
|
87
|
+
expect(@role.run_list[2]).to be_nil
|
88
|
+
expect(@role.run_list[3]).to be_nil
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
data/spec/unit/knife/ssh_spec.rb
CHANGED
@@ -45,8 +45,8 @@ describe Chef::Knife::Ssh do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def configure_query(node_array)
|
48
|
-
@query.
|
49
|
-
Chef::Search::Query.
|
48
|
+
allow(@query).to receive(:search).and_return([node_array])
|
49
|
+
allow(Chef::Search::Query).to receive(:new).and_return(@query)
|
50
50
|
end
|
51
51
|
|
52
52
|
def self.should_return_specified_attributes
|
@@ -54,7 +54,7 @@ describe Chef::Knife::Ssh do
|
|
54
54
|
@knife.config[:attribute] = "ipaddress"
|
55
55
|
@knife.config[:attribute_from_cli] = "ipaddress"
|
56
56
|
configure_query([@node_foo, @node_bar])
|
57
|
-
@knife.
|
57
|
+
expect(@knife).to receive(:session_from_list).with([['10.0.0.1', nil], ['10.0.0.2', nil]])
|
58
58
|
@knife.configure_session
|
59
59
|
end
|
60
60
|
|
@@ -62,14 +62,14 @@ describe Chef::Knife::Ssh do
|
|
62
62
|
@knife.config[:attribute] = "config_file" # this value will be the config file
|
63
63
|
@knife.config[:attribute_from_cli] = "ipaddress" # this is the value of the command line via #configure_attribute
|
64
64
|
configure_query([@node_foo, @node_bar])
|
65
|
-
@knife.
|
65
|
+
expect(@knife).to receive(:session_from_list).with([['10.0.0.1', nil], ['10.0.0.2', nil]])
|
66
66
|
@knife.configure_session
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
it "searchs for and returns an array of fqdns" do
|
71
71
|
configure_query([@node_foo, @node_bar])
|
72
|
-
@knife.
|
72
|
+
expect(@knife).to receive(:session_from_list).with([
|
73
73
|
['foo.example.org', nil],
|
74
74
|
['bar.example.org', nil]
|
75
75
|
])
|
@@ -86,7 +86,7 @@ describe Chef::Knife::Ssh do
|
|
86
86
|
|
87
87
|
it "returns an array of cloud public hostnames" do
|
88
88
|
configure_query([@node_foo, @node_bar])
|
89
|
-
@knife.
|
89
|
+
expect(@knife).to receive(:session_from_list).with([
|
90
90
|
['ec2-10-0-0-1.compute-1.amazonaws.com', nil],
|
91
91
|
['ec2-10-0-0-2.compute-1.amazonaws.com', nil]
|
92
92
|
])
|
@@ -98,22 +98,22 @@ describe Chef::Knife::Ssh do
|
|
98
98
|
|
99
99
|
it "should raise an error if no host are found" do
|
100
100
|
configure_query([ ])
|
101
|
-
@knife.ui.
|
102
|
-
@knife.
|
101
|
+
expect(@knife.ui).to receive(:fatal)
|
102
|
+
expect(@knife).to receive(:exit).with(10)
|
103
103
|
@knife.configure_session
|
104
104
|
end
|
105
105
|
|
106
106
|
context "when there are some hosts found but they do not have an attribute to connect with" do
|
107
107
|
before do
|
108
|
-
@query.
|
108
|
+
allow(@query).to receive(:search).and_return([[@node_foo, @node_bar]])
|
109
109
|
@node_foo.automatic_attrs[:fqdn] = nil
|
110
110
|
@node_bar.automatic_attrs[:fqdn] = nil
|
111
|
-
Chef::Search::Query.
|
111
|
+
allow(Chef::Search::Query).to receive(:new).and_return(@query)
|
112
112
|
end
|
113
113
|
|
114
114
|
it "should raise a specific error (CHEF-3402)" do
|
115
|
-
@knife.ui.
|
116
|
-
@knife.
|
115
|
+
expect(@knife.ui).to receive(:fatal).with(/^2 nodes found/)
|
116
|
+
expect(@knife).to receive(:exit).with(10)
|
117
117
|
@knife.configure_session
|
118
118
|
end
|
119
119
|
end
|
@@ -126,7 +126,7 @@ describe Chef::Knife::Ssh do
|
|
126
126
|
|
127
127
|
it "returns an array of provided values" do
|
128
128
|
@knife.instance_variable_set(:@name_args, ["foo.example.org bar.example.org"])
|
129
|
-
@knife.
|
129
|
+
expect(@knife).to receive(:session_from_list).with(['foo.example.org', 'bar.example.org'])
|
130
130
|
@knife.configure_session
|
131
131
|
end
|
132
132
|
end
|
@@ -140,34 +140,34 @@ describe Chef::Knife::Ssh do
|
|
140
140
|
|
141
141
|
it "should return fqdn by default" do
|
142
142
|
@knife.configure_attribute
|
143
|
-
@knife.config[:attribute].
|
143
|
+
expect(@knife.config[:attribute]).to eq("fqdn")
|
144
144
|
end
|
145
145
|
|
146
146
|
it "should return the value set in the configuration file" do
|
147
147
|
Chef::Config[:knife][:ssh_attribute] = "config_file"
|
148
148
|
@knife.configure_attribute
|
149
|
-
@knife.config[:attribute].
|
149
|
+
expect(@knife.config[:attribute]).to eq("config_file")
|
150
150
|
end
|
151
151
|
|
152
152
|
it "should return the value set on the command line" do
|
153
153
|
@knife.config[:attribute] = "command_line"
|
154
154
|
@knife.configure_attribute
|
155
|
-
@knife.config[:attribute].
|
155
|
+
expect(@knife.config[:attribute]).to eq("command_line")
|
156
156
|
end
|
157
157
|
|
158
158
|
it "should set attribute_from_cli to the value of attribute from the command line" do
|
159
159
|
@knife.config[:attribute] = "command_line"
|
160
160
|
@knife.configure_attribute
|
161
|
-
@knife.config[:attribute].
|
162
|
-
@knife.config[:attribute_from_cli].
|
161
|
+
expect(@knife.config[:attribute]).to eq("command_line")
|
162
|
+
expect(@knife.config[:attribute_from_cli]).to eq("command_line")
|
163
163
|
end
|
164
164
|
|
165
165
|
it "should prefer the command line over the config file for the value of attribute_from_cli" do
|
166
166
|
Chef::Config[:knife][:ssh_attribute] = "config_file"
|
167
167
|
@knife.config[:attribute] = "command_line"
|
168
168
|
@knife.configure_attribute
|
169
|
-
@knife.config[:attribute].
|
170
|
-
@knife.config[:attribute_from_cli].
|
169
|
+
expect(@knife.config[:attribute]).to eq("command_line")
|
170
|
+
expect(@knife.config[:attribute_from_cli]).to eq("command_line")
|
171
171
|
end
|
172
172
|
end
|
173
173
|
|
@@ -175,22 +175,22 @@ describe Chef::Knife::Ssh do
|
|
175
175
|
before :each do
|
176
176
|
@knife.instance_variable_set(:@longest, 0)
|
177
177
|
ssh_config = {:timeout => 50, :user => "locutus", :port => 23 }
|
178
|
-
Net::SSH.
|
178
|
+
allow(Net::SSH).to receive(:configuration_for).with('the.b.org').and_return(ssh_config)
|
179
179
|
end
|
180
180
|
|
181
181
|
it "uses the port from an ssh config file" do
|
182
182
|
@knife.session_from_list([['the.b.org', nil]])
|
183
|
-
@knife.session.servers[0].port.
|
183
|
+
expect(@knife.session.servers[0].port).to eq(23)
|
184
184
|
end
|
185
185
|
|
186
186
|
it "uses the port from a cloud attr" do
|
187
187
|
@knife.session_from_list([['the.b.org', 123]])
|
188
|
-
@knife.session.servers[0].port.
|
188
|
+
expect(@knife.session.servers[0].port).to eq(123)
|
189
189
|
end
|
190
190
|
|
191
191
|
it "uses the user from an ssh config file" do
|
192
192
|
@knife.session_from_list([['the.b.org', 123]])
|
193
|
-
@knife.session.servers[0].user.
|
193
|
+
expect(@knife.session.servers[0].user).to eq("locutus")
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
@@ -206,26 +206,26 @@ describe Chef::Knife::Ssh do
|
|
206
206
|
let(:command) { "false" }
|
207
207
|
|
208
208
|
before do
|
209
|
-
execution_channel.
|
210
|
-
|
209
|
+
expect(execution_channel).
|
210
|
+
to receive(:on_request).
|
211
211
|
and_yield(nil, double(:data_stream, :read_long => exit_status))
|
212
212
|
|
213
|
-
session_channel.
|
214
|
-
|
213
|
+
expect(session_channel).
|
214
|
+
to receive(:exec).
|
215
215
|
with(command).
|
216
216
|
and_yield(execution_channel, true)
|
217
217
|
|
218
|
-
execution_channel2.
|
219
|
-
|
218
|
+
expect(execution_channel2).
|
219
|
+
to receive(:on_request).
|
220
220
|
and_yield(nil, double(:data_stream, :read_long => exit_status2))
|
221
221
|
|
222
|
-
session_channel2.
|
223
|
-
|
222
|
+
expect(session_channel2).
|
223
|
+
to receive(:exec).
|
224
224
|
with(command).
|
225
225
|
and_yield(execution_channel2, true)
|
226
226
|
|
227
|
-
session.
|
228
|
-
|
227
|
+
expect(session).
|
228
|
+
to receive(:open_channel).
|
229
229
|
and_yield(session_channel).
|
230
230
|
and_yield(session_channel2)
|
231
231
|
end
|
@@ -235,7 +235,7 @@ describe Chef::Knife::Ssh do
|
|
235
235
|
let(:exit_status2) { 0 }
|
236
236
|
|
237
237
|
it "returns a 0 exit code" do
|
238
|
-
@knife.ssh_command(command, session).
|
238
|
+
expect(@knife.ssh_command(command, session)).to eq(0)
|
239
239
|
end
|
240
240
|
end
|
241
241
|
|
@@ -244,7 +244,7 @@ describe Chef::Knife::Ssh do
|
|
244
244
|
let(:exit_status2) { 0 }
|
245
245
|
|
246
246
|
it "returns a non-zero exit code" do
|
247
|
-
@knife.ssh_command(command, session).
|
247
|
+
expect(@knife.ssh_command(command, session)).to eq(1)
|
248
248
|
end
|
249
249
|
end
|
250
250
|
|
@@ -253,7 +253,7 @@ describe Chef::Knife::Ssh do
|
|
253
253
|
let(:exit_status2) { 2 }
|
254
254
|
|
255
255
|
it "returns a non-zero exit code" do
|
256
|
-
@knife.ssh_command(command, session).
|
256
|
+
expect(@knife.ssh_command(command, session)).to eq(2)
|
257
257
|
end
|
258
258
|
end
|
259
259
|
end
|
@@ -261,9 +261,9 @@ describe Chef::Knife::Ssh do
|
|
261
261
|
describe "#run" do
|
262
262
|
before do
|
263
263
|
@query = Chef::Search::Query.new
|
264
|
-
@query.
|
265
|
-
Chef::Search::Query.
|
266
|
-
@knife.
|
264
|
+
expect(@query).to receive(:search).and_return([[@node_foo]])
|
265
|
+
allow(Chef::Search::Query).to receive(:new).and_return(@query)
|
266
|
+
allow(@knife).to receive(:ssh_command).and_return(exit_code)
|
267
267
|
@knife.name_args = ['*:*', 'false']
|
268
268
|
end
|
269
269
|
|
@@ -271,7 +271,7 @@ describe Chef::Knife::Ssh do
|
|
271
271
|
let(:exit_code) { 1 }
|
272
272
|
|
273
273
|
it "should exit with a non-zero exit code" do
|
274
|
-
@knife.
|
274
|
+
expect(@knife).to receive(:exit).with(exit_code)
|
275
275
|
@knife.run
|
276
276
|
end
|
277
277
|
end
|
@@ -280,7 +280,7 @@ describe Chef::Knife::Ssh do
|
|
280
280
|
let(:exit_code) { 0 }
|
281
281
|
|
282
282
|
it "should not exit" do
|
283
|
-
@knife.
|
283
|
+
expect(@knife).not_to receive(:exit)
|
284
284
|
@knife.run
|
285
285
|
end
|
286
286
|
end
|
@@ -296,23 +296,23 @@ describe Chef::Knife::Ssh do
|
|
296
296
|
# in this case ssh_password_ng exists, but ssh_password does not
|
297
297
|
it "should prompt for a password when ssh_passsword_ng is nil" do
|
298
298
|
@knife.config[:ssh_password_ng] = nil
|
299
|
-
@knife.
|
299
|
+
expect(@knife).to receive(:get_password).and_return("mysekretpassw0rd")
|
300
300
|
@knife.configure_password
|
301
|
-
@knife.config[:ssh_password].
|
301
|
+
expect(@knife.config[:ssh_password]).to eq("mysekretpassw0rd")
|
302
302
|
end
|
303
303
|
|
304
304
|
it "should set ssh_password to false if ssh_password_ng is false" do
|
305
305
|
@knife.config[:ssh_password_ng] = false
|
306
|
-
@knife.
|
306
|
+
expect(@knife).not_to receive(:get_password)
|
307
307
|
@knife.configure_password
|
308
|
-
@knife.config[:ssh_password].
|
308
|
+
expect(@knife.config[:ssh_password]).to be_falsey
|
309
309
|
end
|
310
310
|
|
311
311
|
it "should set ssh_password to ssh_password_ng if we set a password" do
|
312
312
|
@knife.config[:ssh_password_ng] = "mysekretpassw0rd"
|
313
|
-
@knife.
|
313
|
+
expect(@knife).not_to receive(:get_password)
|
314
314
|
@knife.configure_password
|
315
|
-
@knife.config[:ssh_password].
|
315
|
+
expect(@knife.config[:ssh_password]).to eq("mysekretpassw0rd")
|
316
316
|
end
|
317
317
|
end
|
318
318
|
|
@@ -320,23 +320,23 @@ describe Chef::Knife::Ssh do
|
|
320
320
|
# in this case ssh_password exists, but ssh_password_ng does not
|
321
321
|
it "should set ssh_password to nil when ssh_password is nil" do
|
322
322
|
@knife.config[:ssh_password] = nil
|
323
|
-
@knife.
|
323
|
+
expect(@knife).not_to receive(:get_password)
|
324
324
|
@knife.configure_password
|
325
|
-
@knife.config[:ssh_password].
|
325
|
+
expect(@knife.config[:ssh_password]).to be_nil
|
326
326
|
end
|
327
327
|
|
328
328
|
it "should set ssh_password to false when ssh_password is false" do
|
329
329
|
@knife.config[:ssh_password] = false
|
330
|
-
@knife.
|
330
|
+
expect(@knife).not_to receive(:get_password)
|
331
331
|
@knife.configure_password
|
332
|
-
@knife.config[:ssh_password].
|
332
|
+
expect(@knife.config[:ssh_password]).to be_falsey
|
333
333
|
end
|
334
334
|
|
335
335
|
it "should set ssh_password to ssh_password if we set a password" do
|
336
336
|
@knife.config[:ssh_password] = "mysekretpassw0rd"
|
337
|
-
@knife.
|
337
|
+
expect(@knife).not_to receive(:get_password)
|
338
338
|
@knife.configure_password
|
339
|
-
@knife.config[:ssh_password].
|
339
|
+
expect(@knife.config[:ssh_password]).to eq("mysekretpassw0rd")
|
340
340
|
end
|
341
341
|
end
|
342
342
|
context "when setting ssh_password in the config variable" do
|
@@ -347,23 +347,23 @@ describe Chef::Knife::Ssh do
|
|
347
347
|
# in this case ssh_password_ng exists, but ssh_password does not
|
348
348
|
it "should prompt for a password when ssh_passsword_ng is nil" do
|
349
349
|
@knife.config[:ssh_password_ng] = nil
|
350
|
-
@knife.
|
350
|
+
expect(@knife).to receive(:get_password).and_return("mysekretpassw0rd")
|
351
351
|
@knife.configure_password
|
352
|
-
@knife.config[:ssh_password].
|
352
|
+
expect(@knife.config[:ssh_password]).to eq("mysekretpassw0rd")
|
353
353
|
end
|
354
354
|
|
355
355
|
it "should set ssh_password to the configured knife.rb value if ssh_password_ng is false" do
|
356
356
|
@knife.config[:ssh_password_ng] = false
|
357
|
-
@knife.
|
357
|
+
expect(@knife).not_to receive(:get_password)
|
358
358
|
@knife.configure_password
|
359
|
-
@knife.config[:ssh_password].
|
359
|
+
expect(@knife.config[:ssh_password]).to eq("my_knife_passw0rd")
|
360
360
|
end
|
361
361
|
|
362
362
|
it "should set ssh_password to ssh_password_ng if we set a password" do
|
363
363
|
@knife.config[:ssh_password_ng] = "mysekretpassw0rd"
|
364
|
-
@knife.
|
364
|
+
expect(@knife).not_to receive(:get_password)
|
365
365
|
@knife.configure_password
|
366
|
-
@knife.config[:ssh_password].
|
366
|
+
expect(@knife.config[:ssh_password]).to eq("mysekretpassw0rd")
|
367
367
|
end
|
368
368
|
end
|
369
369
|
|
@@ -371,23 +371,23 @@ describe Chef::Knife::Ssh do
|
|
371
371
|
# in this case ssh_password exists, but ssh_password_ng does not
|
372
372
|
it "should set ssh_password to the configured knife.rb value when ssh_password is nil" do
|
373
373
|
@knife.config[:ssh_password] = nil
|
374
|
-
@knife.
|
374
|
+
expect(@knife).not_to receive(:get_password)
|
375
375
|
@knife.configure_password
|
376
|
-
@knife.config[:ssh_password].
|
376
|
+
expect(@knife.config[:ssh_password]).to eq("my_knife_passw0rd")
|
377
377
|
end
|
378
378
|
|
379
379
|
it "should set ssh_password to the configured knife.rb value when ssh_password is false" do
|
380
380
|
@knife.config[:ssh_password] = false
|
381
|
-
@knife.
|
381
|
+
expect(@knife).not_to receive(:get_password)
|
382
382
|
@knife.configure_password
|
383
|
-
@knife.config[:ssh_password].
|
383
|
+
expect(@knife.config[:ssh_password]).to eq("my_knife_passw0rd")
|
384
384
|
end
|
385
385
|
|
386
386
|
it "should set ssh_password to ssh_password if we set a password" do
|
387
387
|
@knife.config[:ssh_password] = "mysekretpassw0rd"
|
388
|
-
@knife.
|
388
|
+
expect(@knife).not_to receive(:get_password)
|
389
389
|
@knife.configure_password
|
390
|
-
@knife.config[:ssh_password].
|
390
|
+
expect(@knife.config[:ssh_password]).to eq("mysekretpassw0rd")
|
391
391
|
end
|
392
392
|
end
|
393
393
|
end
|