chef 14.2.0-universal-mingw32 → 14.3.37-universal-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 +13 -12
- data/Gemfile +15 -0
- data/README.md +36 -40
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/chef-apply +0 -1
- data/bin/chef-client +1 -2
- data/bin/chef-service-manager +7 -8
- data/bin/chef-shell +1 -6
- data/bin/chef-solo +1 -2
- data/bin/chef-windows-service +1 -2
- data/bin/knife +1 -2
- data/chef-universal-mingw32.gemspec +2 -2
- data/chef.gemspec +1 -1
- data/distro/ruby_bin_folder/Chef.PowerShell.Wrapper.dll +0 -0
- data/distro/ruby_bin_folder/Chef.PowerShell.dll +0 -0
- data/distro/{powershell/chef → ruby_bin_folder}/Newtonsoft.Json.dll +0 -0
- data/ext/win32-eventlog/Rakefile +14 -14
- data/lib/chef/api_client.rb +10 -10
- data/lib/chef/api_client/registration.rb +5 -5
- data/lib/chef/api_client_v1.rb +15 -15
- data/lib/chef/application.rb +1 -1
- data/lib/chef/application/apply.rb +56 -56
- data/lib/chef/application/client.rb +169 -170
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/knife.rb +79 -78
- data/lib/chef/application/solo.rb +120 -120
- data/lib/chef/application/windows_service.rb +21 -21
- data/lib/chef/application/windows_service_manager.rb +39 -39
- data/lib/chef/audit/audit_event_proxy.rb +6 -6
- data/lib/chef/audit/audit_reporter.rb +2 -2
- data/lib/chef/audit/control_group_data.rb +15 -15
- data/lib/chef/audit/runner.rb +1 -1
- data/lib/chef/chef_class.rb +16 -8
- data/lib/chef/chef_fs/chef_fs_data_store.rb +8 -8
- data/lib/chef/chef_fs/config.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/directory.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +3 -3
- data/lib/chef/chef_fs/knife.rb +6 -6
- data/lib/chef/chef_fs/parallelizer.rb +1 -1
- data/lib/chef/client.rb +3 -0
- data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/manifest_v0.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +61 -61
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -1
- data/lib/chef/cookbook/synchronizer.rb +2 -2
- data/lib/chef/cookbook_loader.rb +3 -3
- data/lib/chef/cookbook_manifest.rb +5 -5
- data/lib/chef/cookbook_site_streaming_uploader.rb +5 -5
- data/lib/chef/cookbook_uploader.rb +2 -2
- data/lib/chef/cookbook_version.rb +2 -2
- data/lib/chef/data_bag.rb +3 -3
- data/lib/chef/data_bag_item.rb +2 -2
- data/lib/chef/deprecated.rb +110 -176
- data/lib/chef/dsl/audit.rb +1 -1
- data/lib/chef/dsl/definitions.rb +1 -1
- data/lib/chef/dsl/platform_introspection.rb +5 -0
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/encrypted_data_bag_item.rb +2 -2
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/environment.rb +10 -10
- data/lib/chef/event_loggers/windows_eventlog.rb +21 -21
- data/lib/chef/exceptions.rb +3 -3
- data/lib/chef/file_cache.rb +18 -16
- data/lib/chef/formatters/base.rb +9 -10
- data/lib/chef/formatters/doc.rb +12 -16
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +51 -51
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +10 -10
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +13 -13
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +39 -39
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +16 -16
- data/lib/chef/formatters/indentable_output_stream.rb +4 -4
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -3
- data/lib/chef/handler/json_file.rb +1 -1
- data/lib/chef/http/auth_credentials.rb +2 -2
- data/lib/chef/http/authenticator.rb +6 -6
- data/lib/chef/http/cookie_manager.rb +1 -1
- data/lib/chef/http/http_request.rb +3 -3
- data/lib/chef/http/json_input.rb +1 -1
- data/lib/chef/http/json_to_model_output.rb +1 -1
- data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +9 -9
- data/lib/chef/knife.rb +5 -5
- data/lib/chef/knife/bootstrap.rb +116 -116
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/client_bulk_delete.rb +3 -3
- data/lib/chef/knife/client_create.rb +17 -17
- data/lib/chef/knife/client_delete.rb +3 -3
- data/lib/chef/knife/client_list.rb +3 -3
- data/lib/chef/knife/client_reregister.rb +3 -3
- data/lib/chef/knife/config_get.rb +126 -0
- data/lib/chef/knife/configure.rb +25 -25
- data/lib/chef/knife/cookbook_bulk_delete.rb +1 -1
- data/lib/chef/knife/cookbook_delete.rb +2 -2
- data/lib/chef/knife/cookbook_download.rb +11 -11
- data/lib/chef/knife/cookbook_list.rb +6 -6
- data/lib/chef/knife/cookbook_metadata.rb +7 -8
- data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -1
- data/lib/chef/knife/cookbook_show.rb +16 -16
- data/lib/chef/knife/cookbook_site_download.rb +11 -10
- data/lib/chef/knife/cookbook_site_install.rb +24 -24
- data/lib/chef/knife/cookbook_site_list.rb +8 -8
- data/lib/chef/knife/cookbook_site_search.rb +6 -5
- data/lib/chef/knife/cookbook_site_share.rb +20 -19
- data/lib/chef/knife/cookbook_site_show.rb +6 -5
- data/lib/chef/knife/cookbook_site_unshare.rb +5 -5
- data/lib/chef/knife/cookbook_test.rb +8 -8
- data/lib/chef/knife/cookbook_upload.rb +32 -32
- data/lib/chef/knife/core/bootstrap_context.rb +7 -7
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +7 -7
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- data/lib/chef/knife/core/node_presenter.rb +37 -37
- data/lib/chef/knife/core/status_presenter.rb +11 -11
- data/lib/chef/knife/data_bag_from_file.rb +4 -4
- data/lib/chef/knife/data_bag_list.rb +3 -3
- data/lib/chef/knife/data_bag_secret_options.rb +13 -13
- data/lib/chef/knife/delete.rb +29 -13
- data/lib/chef/knife/deps.rb +25 -9
- data/lib/chef/knife/diff.rb +30 -14
- data/lib/chef/knife/download.rb +39 -23
- data/lib/chef/knife/edit.rb +19 -3
- data/lib/chef/knife/environment_compare.rb +8 -8
- data/lib/chef/knife/environment_create.rb +3 -3
- data/lib/chef/knife/environment_from_file.rb +5 -3
- data/lib/chef/knife/environment_list.rb +3 -3
- data/lib/chef/knife/exec.rb +7 -7
- data/lib/chef/knife/key_create.rb +4 -4
- data/lib/chef/knife/key_create_base.rb +12 -12
- data/lib/chef/knife/key_edit.rb +5 -5
- data/lib/chef/knife/key_edit_base.rb +15 -15
- data/lib/chef/knife/key_list.rb +3 -3
- data/lib/chef/knife/key_list_base.rb +9 -9
- data/lib/chef/knife/list.rb +35 -19
- data/lib/chef/knife/node_edit.rb +4 -4
- data/lib/chef/knife/node_list.rb +3 -3
- data/lib/chef/knife/node_run_list_add.rb +6 -6
- data/lib/chef/knife/node_show.rb +6 -6
- data/lib/chef/knife/osc_user_create.rb +13 -13
- data/lib/chef/knife/osc_user_list.rb +3 -3
- data/lib/chef/knife/osc_user_reregister.rb +3 -3
- data/lib/chef/knife/raw.rb +32 -16
- data/lib/chef/knife/role_create.rb +3 -3
- data/lib/chef/knife/role_env_run_list_add.rb +4 -3
- data/lib/chef/knife/role_env_run_list_remove.rb +2 -2
- data/lib/chef/knife/role_env_run_list_replace.rb +1 -0
- data/lib/chef/knife/role_list.rb +3 -3
- data/lib/chef/knife/role_run_list_add.rb +4 -3
- data/lib/chef/knife/role_run_list_remove.rb +2 -2
- data/lib/chef/knife/role_run_list_replace.rb +1 -0
- data/lib/chef/knife/search.rb +23 -23
- data/lib/chef/knife/serve.rb +22 -6
- data/lib/chef/knife/show.rb +19 -3
- data/lib/chef/knife/ssh.rb +68 -68
- data/lib/chef/knife/ssl_check.rb +31 -31
- data/lib/chef/knife/ssl_fetch.rb +5 -5
- data/lib/chef/knife/status.rb +11 -11
- data/lib/chef/knife/upload.rb +41 -25
- data/lib/chef/knife/user_create.rb +28 -28
- data/lib/chef/knife/user_delete.rb +9 -9
- data/lib/chef/knife/user_edit.rb +9 -9
- data/lib/chef/knife/user_list.rb +3 -3
- data/lib/chef/knife/user_reregister.rb +12 -12
- data/lib/chef/knife/user_show.rb +9 -9
- data/lib/chef/knife/xargs.rb +52 -36
- data/lib/chef/log.rb +10 -8
- data/lib/chef/log/winevt.rb +21 -21
- data/lib/chef/mixin/api_version_request_handling.rb +6 -6
- data/lib/chef/mixin/deep_merge.rb +1 -1
- data/lib/chef/mixin/deprecation.rb +2 -2
- data/lib/chef/mixin/params_validate.rb +9 -9
- data/lib/chef/mixin/properties.rb +2 -2
- data/lib/chef/mixin/securable.rb +11 -11
- data/lib/chef/mixin/shell_out.rb +138 -82
- data/lib/chef/mixin/wide_string.rb +5 -23
- data/lib/chef/mixin/windows_env_helper.rb +1 -1
- data/lib/chef/mixin/xml_escape.rb +3 -3
- data/lib/chef/node.rb +15 -15
- data/lib/chef/node/attribute.rb +6 -6
- data/lib/chef/node/attribute_collections.rb +2 -2
- data/lib/chef/node/mixin/deep_merge_cache.rb +1 -1
- data/lib/chef/node/mixin/immutablize_array.rb +2 -2
- data/lib/chef/node/mixin/immutablize_hash.rb +2 -2
- data/lib/chef/node_map.rb +77 -3
- data/lib/chef/org.rb +8 -8
- data/lib/chef/policy_builder/expand_node_object.rb +1 -1
- data/lib/chef/powershell.rb +9 -7
- data/lib/chef/property.rb +14 -14
- data/lib/chef/provider/apt_update.rb +2 -2
- data/lib/chef/provider/cron.rb +3 -3
- data/lib/chef/provider/cron/unix.rb +2 -2
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +8 -8
- data/lib/chef/provider/execute.rb +1 -1
- data/lib/chef/provider/group/aix.rb +6 -6
- data/lib/chef/provider/group/dscl.rb +1 -1
- data/lib/chef/provider/group/gpasswd.rb +4 -4
- data/lib/chef/provider/group/groupadd.rb +3 -3
- data/lib/chef/provider/group/groupmod.rb +6 -6
- data/lib/chef/provider/group/pw.rb +4 -4
- data/lib/chef/provider/group/suse.rb +2 -2
- data/lib/chef/provider/group/usermod.rb +1 -1
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/ifconfig/aix.rb +1 -1
- data/lib/chef/provider/mdadm.rb +1 -1
- data/lib/chef/provider/mount/mount.rb +1 -1
- data/lib/chef/provider/mount/windows.rb +7 -7
- data/lib/chef/provider/package.rb +3 -18
- data/lib/chef/provider/package/apt.rb +4 -4
- data/lib/chef/provider/package/bff.rb +9 -9
- data/lib/chef/provider/package/chocolatey.rb +7 -7
- data/lib/chef/provider/package/dnf.rb +2 -2
- data/lib/chef/provider/package/dpkg.rb +6 -6
- data/lib/chef/provider/package/freebsd/base.rb +2 -2
- data/lib/chef/provider/package/freebsd/pkg.rb +6 -6
- data/lib/chef/provider/package/freebsd/pkgng.rb +5 -5
- data/lib/chef/provider/package/freebsd/port.rb +4 -4
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/ips.rb +6 -6
- data/lib/chef/provider/package/macports.rb +6 -6
- data/lib/chef/provider/package/msu.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +5 -5
- data/lib/chef/provider/package/pacman.rb +4 -4
- data/lib/chef/provider/package/paludis.rb +3 -3
- data/lib/chef/provider/package/portage.rb +5 -5
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rpm.rb +10 -10
- data/lib/chef/provider/package/rubygems.rb +4 -4
- data/lib/chef/provider/package/smartos.rb +4 -4
- data/lib/chef/provider/package/solaris.rb +9 -9
- data/lib/chef/provider/package/windows.rb +4 -3
- data/lib/chef/provider/package/yum.rb +2 -2
- data/lib/chef/provider/package/zypper.rb +4 -4
- data/lib/chef/provider/powershell_script.rb +73 -73
- data/lib/chef/provider/reboot.rb +4 -4
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_file/cache_control_data.rb +2 -2
- data/lib/chef/provider/remote_file/sftp.rb +1 -1
- data/lib/chef/provider/resource_update.rb +1 -1
- data/lib/chef/provider/route.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +3 -3
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/simple.rb +1 -0
- data/lib/chef/provider/service/solaris.rb +1 -1
- data/lib/chef/provider/service/systemd.rb +2 -2
- data/lib/chef/provider/service/windows.rb +17 -17
- data/lib/chef/provider/subversion.rb +3 -3
- data/lib/chef/provider/systemd_unit.rb +2 -2
- data/lib/chef/provider/template/content.rb +1 -1
- data/lib/chef/provider/user/aix.rb +6 -6
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/linux.rb +6 -6
- data/lib/chef/provider/user/pw.rb +5 -5
- data/lib/chef/provider/user/solaris.rb +6 -6
- data/lib/chef/provider/user/useradd.rb +7 -7
- data/lib/chef/provider/windows_env.rb +6 -6
- data/lib/chef/provider/windows_task.rb +22 -24
- data/lib/chef/resource.rb +26 -4
- data/lib/chef/resource/chef_handler.rb +2 -0
- data/lib/chef/resource/chocolatey_config.rb +83 -0
- data/lib/chef/resource/chocolatey_source.rb +95 -0
- data/lib/chef/resource/cron.rb +5 -5
- data/lib/chef/resource/dsc_script.rb +12 -11
- data/lib/chef/resource/execute.rb +1 -1
- data/lib/chef/resource/file/verification.rb +1 -1
- data/lib/chef/resource/freebsd_package.rb +3 -1
- data/lib/chef/resource/group.rb +2 -2
- data/lib/chef/resource/homebrew_package.rb +2 -1
- data/lib/chef/resource/homebrew_tap.rb +1 -1
- data/lib/chef/resource/hostname.rb +23 -7
- data/lib/chef/resource/http_request.rb +6 -3
- data/lib/chef/resource/ifconfig.rb +57 -17
- data/lib/chef/resource/ips_package.rb +3 -1
- data/lib/chef/resource/kernel_module.rb +129 -0
- data/lib/chef/resource/launchd.rb +205 -98
- data/lib/chef/resource/log.rb +7 -2
- data/lib/chef/resource/mdadm.rb +29 -8
- data/lib/chef/resource/ohai.rb +2 -0
- data/lib/chef/resource/ohai_hint.rb +5 -3
- data/lib/chef/resource/openssl_dhparam.rb +1 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +2 -0
- data/lib/chef/resource/paludis_package.rb +1 -1
- data/lib/chef/resource/portage_package.rb +2 -0
- data/lib/chef/resource/powershell_package.rb +2 -0
- data/lib/chef/resource/powershell_package_source.rb +165 -0
- data/lib/chef/resource/powershell_script.rb +2 -2
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/remote_directory.rb +3 -3
- data/lib/chef/resource/remote_file.rb +2 -2
- data/lib/chef/resource/resource_notification.rb +16 -16
- data/lib/chef/resource/rhsm_errata.rb +1 -1
- data/lib/chef/resource/rhsm_errata_level.rb +1 -1
- data/lib/chef/resource/rhsm_register.rb +4 -4
- data/lib/chef/resource/rhsm_repo.rb +2 -2
- data/lib/chef/resource/rhsm_subscription.rb +2 -2
- data/lib/chef/resource/script.rb +1 -1
- data/lib/chef/resource/service.rb +18 -18
- data/lib/chef/resource/ssh_known_hosts_entry.rb +146 -0
- data/lib/chef/resource/sudo.rb +4 -4
- data/lib/chef/resource/support/ssh_known_hosts.erb +3 -0
- data/lib/chef/resource/sysctl.rb +9 -5
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/user.rb +15 -15
- data/lib/chef/resource/windows_feature_dism.rb +10 -9
- data/lib/chef/resource/windows_feature_powershell.rb +24 -13
- data/lib/chef/resource/windows_script.rb +1 -1
- data/lib/chef/resource/windows_service.rb +2 -2
- data/lib/chef/resource/windows_task.rb +3 -3
- data/lib/chef/resource_definition.rb +1 -1
- data/lib/chef/resource_inspector.rb +1 -0
- data/lib/chef/resource_reporter.rb +4 -4
- data/lib/chef/resources.rb +5 -0
- data/lib/chef/role.rb +8 -8
- data/lib/chef/run_context.rb +8 -8
- data/lib/chef/run_list/run_list_expansion.rb +6 -6
- data/lib/chef/run_list/run_list_item.rb +1 -1
- data/lib/chef/run_list/versioned_recipe_list.rb +3 -3
- data/lib/chef/run_status.rb +10 -10
- data/lib/chef/shell.rb +60 -60
- data/lib/chef/shell/ext.rb +151 -151
- data/lib/chef/shell/shell_session.rb +2 -2
- data/lib/chef/user.rb +11 -11
- data/lib/chef/user_v1.rb +26 -26
- data/lib/chef/util/backup.rb +2 -2
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/configuration_generator.rb +11 -11
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
- data/lib/chef/util/file_edit.rb +14 -14
- data/lib/chef/util/powershell/cmdlet.rb +4 -4
- data/lib/chef/util/selinux.rb +2 -2
- data/lib/chef/util/windows/net_group.rb +1 -1
- data/lib/chef/util/windows/net_use.rb +3 -3
- data/lib/chef/util/windows/net_user.rb +12 -12
- data/lib/chef/util/windows/volume.rb +2 -2
- data/lib/chef/version.rb +3 -3
- data/lib/chef/version_constraint.rb +3 -3
- data/lib/chef/win32/api.rb +6 -6
- data/lib/chef/win32/api/error.rb +2 -2
- data/lib/chef/win32/api/file.rb +12 -12
- data/lib/chef/win32/api/net.rb +58 -58
- data/lib/chef/win32/registry.rb +8 -8
- data/lib/chef/win32/security.rb +6 -6
- data/lib/chef/win32/security/securable_object.rb +10 -10
- data/lib/chef/win32/unicode.rb +6 -0
- data/lib/chef/win32/version.rb +16 -16
- data/spec/functional/audit/rspec_formatter_spec.rb +1 -1
- data/spec/functional/audit/runner_spec.rb +1 -1
- data/spec/functional/dsl/reboot_pending_spec.rb +3 -3
- data/spec/functional/dsl/registry_helper_spec.rb +3 -3
- data/spec/functional/http/simple_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +2 -2
- data/spec/functional/mixin/shell_out_spec.rb +8 -4
- data/spec/functional/rebooter_spec.rb +6 -6
- data/spec/functional/resource/aixinit_service_spec.rb +2 -2
- data/spec/functional/resource/apt_package_spec.rb +17 -17
- data/spec/functional/resource/bash_spec.rb +1 -1
- data/spec/functional/resource/bff_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +1 -1
- data/spec/functional/resource/dnf_package_spec.rb +7 -7
- data/spec/functional/resource/dsc_script_spec.rb +94 -94
- data/spec/functional/resource/execute_spec.rb +4 -4
- data/spec/functional/resource/file_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +19 -19
- data/spec/functional/resource/ifconfig_spec.rb +5 -5
- data/spec/functional/resource/link_spec.rb +1 -1
- data/spec/functional/resource/mount_spec.rb +2 -2
- data/spec/functional/resource/powershell_script_spec.rb +13 -13
- data/spec/functional/resource/reboot_spec.rb +3 -3
- data/spec/functional/resource/registry_spec.rb +82 -82
- data/spec/functional/resource/remote_file_spec.rb +2 -2
- data/spec/functional/resource/rpm_spec.rb +1 -1
- data/spec/functional/resource/template_spec.rb +5 -5
- data/spec/functional/resource/user/dscl_spec.rb +3 -3
- data/spec/functional/resource/windows_env_spec.rb +1 -1
- data/spec/functional/resource/windows_service_spec.rb +1 -1
- data/spec/functional/resource/windows_task_spec.rb +92 -38
- data/spec/functional/resource/yum_package_spec.rb +8 -8
- data/spec/functional/run_lock_spec.rb +4 -4
- data/spec/functional/shell_spec.rb +1 -1
- data/spec/functional/util/powershell/cmdlet_spec.rb +7 -7
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/crypto_spec.rb +9 -9
- data/spec/functional/win32/registry_spec.rb +66 -66
- data/spec/integration/client/client_spec.rb +219 -219
- data/spec/integration/client/exit_code_spec.rb +19 -19
- data/spec/integration/client/ipv6_spec.rb +36 -36
- data/spec/integration/knife/chef_fs_data_store_spec.rb +130 -130
- data/spec/integration/knife/chef_repo_path_spec.rb +418 -418
- data/spec/integration/knife/chef_repository_file_system_spec.rb +35 -35
- data/spec/integration/knife/chefignore_spec.rb +88 -88
- data/spec/integration/knife/client_bulk_delete_spec.rb +49 -49
- data/spec/integration/knife/client_create_spec.rb +5 -5
- data/spec/integration/knife/client_delete_spec.rb +13 -13
- data/spec/integration/knife/client_key_delete_spec.rb +2 -2
- data/spec/integration/knife/client_key_list_spec.rb +4 -4
- data/spec/integration/knife/client_list_spec.rb +8 -8
- data/spec/integration/knife/common_options_spec.rb +31 -31
- data/spec/integration/knife/config_get_spec.rb +183 -0
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +38 -38
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +14 -14
- data/spec/integration/knife/cookbook_download_spec.rb +12 -12
- data/spec/integration/knife/cookbook_list_spec.rb +8 -8
- data/spec/integration/knife/cookbook_show_spec.rb +81 -81
- data/spec/integration/knife/cookbook_upload_spec.rb +24 -24
- data/spec/integration/knife/data_bag_delete_spec.rb +8 -8
- data/spec/integration/knife/data_bag_from_file_spec.rb +47 -47
- data/spec/integration/knife/data_bag_list_spec.rb +4 -4
- data/spec/integration/knife/data_bag_show_spec.rb +7 -7
- data/spec/integration/knife/delete_spec.rb +593 -593
- data/spec/integration/knife/deps_spec.rb +185 -185
- data/spec/integration/knife/diff_spec.rb +116 -116
- data/spec/integration/knife/download_spec.rb +510 -510
- data/spec/integration/knife/environment_compare_spec.rb +15 -15
- data/spec/integration/knife/environment_from_file_spec.rb +59 -59
- data/spec/integration/knife/environment_list_spec.rb +4 -4
- data/spec/integration/knife/environment_show_spec.rb +25 -25
- data/spec/integration/knife/list_spec.rb +731 -731
- data/spec/integration/knife/node_bulk_delete_spec.rb +8 -8
- data/spec/integration/knife/node_delete_spec.rb +6 -6
- data/spec/integration/knife/node_environment_set_spec.rb +3 -3
- data/spec/integration/knife/node_from_file_spec.rb +16 -16
- data/spec/integration/knife/node_list_spec.rb +5 -5
- data/spec/integration/knife/raw_spec.rb +117 -117
- data/spec/integration/knife/role_bulk_delete_spec.rb +8 -8
- data/spec/integration/knife/role_delete_spec.rb +6 -6
- data/spec/integration/knife/role_from_file_spec.rb +42 -42
- data/spec/integration/knife/role_list_spec.rb +5 -5
- data/spec/integration/knife/role_show_spec.rb +9 -9
- data/spec/integration/knife/show_spec.rb +57 -57
- data/spec/integration/knife/upload_spec.rb +396 -396
- data/spec/integration/recipes/accumulator_spec.rb +2 -2
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +8 -8
- data/spec/integration/recipes/lwrp_spec.rb +12 -12
- data/spec/integration/recipes/notifies_spec.rb +167 -167
- data/spec/integration/recipes/notifying_block_spec.rb +2 -2
- data/spec/integration/recipes/remote_directory.rb +1 -1
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +99 -99
- data/spec/integration/recipes/resource_load_spec.rb +8 -8
- data/spec/integration/solo/solo_spec.rb +40 -40
- data/spec/scripts/ssl-serve.rb +12 -12
- data/spec/spec_helper.rb +73 -73
- data/spec/stress/win32/file_spec.rb +2 -2
- data/spec/stress/win32/security_spec.rb +2 -2
- data/spec/support/platform_helpers.rb +1 -1
- data/spec/support/shared/context/client.rb +25 -25
- data/spec/support/shared/functional/securable_resource.rb +13 -13
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +6 -6
- data/spec/support/shared/functional/win32_service.rb +5 -5
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/integration/app_server_support.rb +3 -3
- data/spec/support/shared/integration/integration_helper.rb +2 -2
- data/spec/support/shared/integration/knife_support.rb +9 -3
- data/spec/support/shared/unit/api_error_inspector.rb +6 -6
- data/spec/support/shared/unit/api_versioning.rb +2 -2
- data/spec/support/shared/unit/execute_resource.rb +2 -2
- data/spec/support/shared/unit/provider/file.rb +12 -12
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +34 -34
- data/spec/support/shared/unit/user_and_client_shared.rb +3 -3
- data/spec/tiny_server.rb +8 -8
- data/spec/unit/api_client/registration_spec.rb +30 -30
- data/spec/unit/api_client_spec.rb +6 -6
- data/spec/unit/api_client_v1_spec.rb +6 -6
- data/spec/unit/application/apply_spec.rb +4 -4
- data/spec/unit/application/client_spec.rb +11 -11
- data/spec/unit/application/knife_spec.rb +3 -3
- data/spec/unit/application/solo_spec.rb +5 -5
- data/spec/unit/application_spec.rb +11 -11
- data/spec/unit/audit/audit_event_proxy_spec.rb +48 -48
- data/spec/unit/audit/audit_reporter_spec.rb +51 -55
- data/spec/unit/audit/control_group_data_spec.rb +20 -20
- data/spec/unit/audit/runner_spec.rb +2 -2
- data/spec/unit/chef_class_spec.rb +120 -0
- data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +3 -3
- data/spec/unit/chef_fs/diff_spec.rb +45 -45
- data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +2 -2
- data/spec/unit/chef_fs/file_system_spec.rb +8 -8
- data/spec/unit/chef_fs/parallelizer.rb +12 -12
- data/spec/unit/client_spec.rb +15 -15
- data/spec/unit/config_fetcher_spec.rb +23 -23
- data/spec/unit/config_spec.rb +2 -2
- data/spec/unit/cookbook/metadata_spec.rb +81 -81
- data/spec/unit/cookbook/synchronizer_spec.rb +171 -171
- data/spec/unit/cookbook_loader_spec.rb +10 -5
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +6 -6
- data/spec/unit/cookbook_uploader_spec.rb +8 -8
- data/spec/unit/cookbook_version_file_specificity_spec.rb +135 -135
- data/spec/unit/daemon_spec.rb +4 -4
- data/spec/unit/data_bag_item_spec.rb +3 -3
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector/resource_report_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +4 -3
- data/spec/unit/deprecated_spec.rb +18 -12
- data/spec/unit/dsl/audit_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +16 -16
- data/spec/unit/dsl/reboot_pending_spec.rb +1 -1
- data/spec/unit/environment_spec.rb +16 -16
- data/spec/unit/file_access_control_spec.rb +8 -8
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +26 -26
- data/spec/unit/formatters/error_description_spec.rb +39 -39
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +16 -16
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +5 -5
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +4 -4
- data/spec/unit/handler/json_file_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +1 -1
- data/spec/unit/http/authenticator_spec.rb +17 -17
- data/spec/unit/http/ssl_policies_spec.rb +1 -1
- data/spec/unit/http/validate_content_length_spec.rb +2 -2
- data/spec/unit/key_spec.rb +12 -12
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +3 -3
- data/spec/unit/knife/client_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/client_delete_spec.rb +1 -1
- data/spec/unit/knife/client_reregister_spec.rb +1 -1
- data/spec/unit/knife/configure_client_spec.rb +4 -4
- data/spec/unit/knife/configure_spec.rb +1 -1
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/cookbook_delete_spec.rb +4 -4
- data/spec/unit/knife/cookbook_download_spec.rb +21 -21
- data/spec/unit/knife/cookbook_list_spec.rb +7 -7
- data/spec/unit/knife/cookbook_show_spec.rb +24 -24
- data/spec/unit/knife/cookbook_site_download_spec.rb +23 -23
- data/spec/unit/knife/cookbook_site_install_spec.rb +4 -4
- data/spec/unit/knife/cookbook_site_share_spec.rb +10 -10
- data/spec/unit/knife/cookbook_site_unshare_spec.rb +2 -2
- data/spec/unit/knife/cookbook_upload_spec.rb +19 -19
- data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -37
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +20 -20
- data/spec/unit/knife/core/object_loader_spec.rb +1 -1
- data/spec/unit/knife/core/ui_spec.rb +55 -55
- data/spec/unit/knife/data_bag_create_spec.rb +2 -2
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/knife/data_bag_secret_options_spec.rb +5 -5
- data/spec/unit/knife/environment_from_file_spec.rb +1 -1
- data/spec/unit/knife/key_create_spec.rb +4 -4
- data/spec/unit/knife/key_delete_spec.rb +3 -3
- data/spec/unit/knife/key_edit_spec.rb +3 -3
- data/spec/unit/knife/key_list_spec.rb +3 -3
- data/spec/unit/knife/key_show_spec.rb +3 -3
- data/spec/unit/knife/node_delete_spec.rb +1 -1
- data/spec/unit/knife/node_edit_spec.rb +7 -7
- data/spec/unit/knife/node_from_file_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/osc_user_edit_spec.rb +1 -1
- data/spec/unit/knife/osc_user_reregister_spec.rb +1 -1
- data/spec/unit/knife/role_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/role_create_spec.rb +1 -1
- data/spec/unit/knife/role_delete_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_add_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/role_from_file_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_add_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/ssh_spec.rb +25 -25
- data/spec/unit/knife/ssl_check_spec.rb +23 -23
- data/spec/unit/knife/ssl_fetch_spec.rb +11 -11
- data/spec/unit/knife/user_delete_spec.rb +1 -1
- data/spec/unit/knife/user_reregister_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +26 -26
- data/spec/unit/log/syslog_spec.rb +1 -1
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mash_spec.rb +3 -3
- data/spec/unit/mixin/api_version_request_handling_spec.rb +16 -16
- data/spec/unit/mixin/checksum_spec.rb +1 -1
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +8 -8
- data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +96 -96
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +27 -27
- data/spec/unit/mixin/shell_out_spec.rb +286 -132
- data/spec/unit/mixin/user_context_spec.rb +1 -1
- data/spec/unit/mixin/xml_escape_spec.rb +1 -1
- data/spec/unit/node/attribute_spec.rb +10 -10
- data/spec/unit/node/vivid_mash_spec.rb +3 -3
- data/spec/unit/node_map_spec.rb +71 -3
- data/spec/unit/node_spec.rb +15 -15
- data/spec/unit/org_spec.rb +2 -2
- data/spec/unit/platform/query_helpers_spec.rb +26 -26
- data/spec/unit/policy_builder/expand_node_object_spec.rb +4 -4
- data/spec/unit/policy_builder/policyfile_spec.rb +29 -29
- data/spec/unit/property_spec.rb +5 -5
- data/spec/unit/provider/apt_repository_spec.rb +19 -19
- data/spec/unit/provider/cookbook_file/content_spec.rb +1 -1
- data/spec/unit/provider/cookbook_file_spec.rb +1 -1
- data/spec/unit/provider/cron/unix_spec.rb +12 -12
- data/spec/unit/provider/cron_spec.rb +279 -279
- data/spec/unit/provider/dsc_resource_spec.rb +6 -6
- data/spec/unit/provider/execute_spec.rb +2 -2
- data/spec/unit/provider/file/content_spec.rb +1 -1
- data/spec/unit/provider/file_spec.rb +1 -1
- data/spec/unit/provider/git_spec.rb +123 -123
- data/spec/unit/provider/group/dscl_spec.rb +18 -18
- data/spec/unit/provider/group/gpasswd_spec.rb +7 -7
- data/spec/unit/provider/group/groupadd_spec.rb +7 -7
- data/spec/unit/provider/group/groupmod_spec.rb +13 -13
- data/spec/unit/provider/group/pw_spec.rb +4 -4
- data/spec/unit/provider/group/suse_spec.rb +2 -2
- data/spec/unit/provider/group/usermod_spec.rb +4 -4
- data/spec/unit/provider/group_spec.rb +3 -3
- data/spec/unit/provider/ifconfig/aix_spec.rb +17 -17
- data/spec/unit/provider/ifconfig/debian_spec.rb +16 -16
- data/spec/unit/provider/ifconfig_spec.rb +16 -16
- data/spec/unit/provider/launchd_spec.rb +52 -52
- data/spec/unit/provider/link_spec.rb +7 -7
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/mount/aix_spec.rb +39 -39
- data/spec/unit/provider/mount/mount_spec.rb +26 -26
- data/spec/unit/provider/mount/solaris_spec.rb +2 -2
- data/spec/unit/provider/mount/windows_spec.rb +6 -6
- data/spec/unit/provider/ohai_spec.rb +9 -9
- data/spec/unit/provider/osx_profile_spec.rb +1 -1
- data/spec/unit/provider/package/apt_spec.rb +186 -186
- data/spec/unit/provider/package/bff_spec.rb +36 -36
- data/spec/unit/provider/package/cab_spec.rb +58 -58
- data/spec/unit/provider/package/chocolatey_spec.rb +34 -34
- data/spec/unit/provider/package/dpkg_spec.rb +33 -33
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +35 -35
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +22 -22
- data/spec/unit/provider/package/freebsd/port_spec.rb +21 -21
- data/spec/unit/provider/package/homebrew_spec.rb +4 -4
- data/spec/unit/provider/package/ips_spec.rb +94 -94
- data/spec/unit/provider/package/macports_spec.rb +23 -23
- data/spec/unit/provider/package/msu_spec.rb +44 -44
- data/spec/unit/provider/package/openbsd_spec.rb +19 -19
- data/spec/unit/provider/package/pacman_spec.rb +50 -50
- data/spec/unit/provider/package/paludis_spec.rb +33 -33
- data/spec/unit/provider/package/portage_spec.rb +25 -25
- data/spec/unit/provider/package/powershell_spec.rb +98 -85
- data/spec/unit/provider/package/rpm_spec.rb +21 -21
- data/spec/unit/provider/package/rubygems_spec.rb +71 -71
- data/spec/unit/provider/package/smartos_spec.rb +21 -21
- data/spec/unit/provider/package/solaris_spec.rb +38 -38
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +11 -4
- data/spec/unit/provider/package/zypper_spec.rb +42 -46
- data/spec/unit/provider/package_spec.rb +2 -2
- data/spec/unit/provider/powershell_script_spec.rb +1 -1
- data/spec/unit/provider/registry_key_spec.rb +22 -22
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +7 -7
- data/spec/unit/provider/remote_file/content_spec.rb +4 -4
- data/spec/unit/provider/remote_file/fetcher_spec.rb +5 -5
- data/spec/unit/provider/remote_file/ftp_spec.rb +1 -1
- data/spec/unit/provider/remote_file/http_spec.rb +1 -1
- data/spec/unit/provider/remote_file/local_file_spec.rb +2 -2
- data/spec/unit/provider/remote_file/network_file_spec.rb +3 -3
- data/spec/unit/provider/remote_file/sftp_spec.rb +2 -2
- data/spec/unit/provider/remote_file_spec.rb +1 -1
- data/spec/unit/provider/script_spec.rb +1 -1
- data/spec/unit/provider/service/aix_service_spec.rb +8 -8
- data/spec/unit/provider/service/aixinit_service_spec.rb +3 -3
- data/spec/unit/provider/service/arch_service_spec.rb +21 -21
- data/spec/unit/provider/service/debian_service_spec.rb +2 -2
- data/spec/unit/provider/service/freebsd_service_spec.rb +30 -30
- data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
- data/spec/unit/provider/service/init_service_spec.rb +14 -14
- data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
- data/spec/unit/provider/service/invokercd_service_spec.rb +17 -17
- data/spec/unit/provider/service/macosx_spec.rb +59 -59
- data/spec/unit/provider/service/openbsd_service_spec.rb +6 -6
- data/spec/unit/provider/service/redhat_spec.rb +27 -27
- data/spec/unit/provider/service/simple_service_spec.rb +14 -14
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +19 -19
- data/spec/unit/provider/service/systemd_service_spec.rb +13 -13
- data/spec/unit/provider/service/upstart_service_spec.rb +5 -5
- data/spec/unit/provider/service/windows_spec.rb +38 -38
- data/spec/unit/provider/service_spec.rb +3 -3
- data/spec/unit/provider/subversion_spec.rb +13 -13
- data/spec/unit/provider/systemd_unit_spec.rb +10 -10
- data/spec/unit/provider/template/content_spec.rb +44 -44
- data/spec/unit/provider/template_spec.rb +2 -2
- data/spec/unit/provider/user/aix_spec.rb +5 -5
- data/spec/unit/provider/user/dscl_spec.rb +12 -12
- data/spec/unit/provider/user/pw_spec.rb +12 -12
- data/spec/unit/provider/user/solaris_spec.rb +6 -6
- data/spec/unit/provider/windows_env_spec.rb +2 -2
- data/spec/unit/provider/windows_task_spec.rb +16 -16
- data/spec/unit/provider/zypper_repository_spec.rb +7 -7
- data/spec/unit/provider_resolver_spec.rb +3 -3
- data/spec/unit/recipe_spec.rb +13 -13
- data/spec/unit/resource/chocolatey_config_spec.rb +98 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +102 -0
- data/spec/unit/resource/conditional_spec.rb +1 -1
- data/spec/unit/resource/cookbook_file_spec.rb +3 -3
- data/spec/unit/resource/dnf_package_spec.rb +3 -3
- data/spec/unit/resource/dsc_script_spec.rb +10 -10
- data/spec/unit/resource/execute_spec.rb +2 -2
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/file/verification_spec.rb +1 -1
- data/spec/unit/resource/file_spec.rb +3 -3
- data/spec/unit/resource/freebsd_package_spec.rb +5 -4
- data/spec/unit/resource/group_spec.rb +4 -4
- data/spec/unit/resource/kernel_module_spec.rb +48 -0
- data/spec/unit/resource/mount_spec.rb +13 -3
- data/spec/unit/resource/package_spec.rb +2 -2
- data/spec/unit/resource/powershell_package_source_spec.rb +219 -0
- data/spec/unit/resource/powershell_package_spec.rb +10 -1
- data/spec/unit/resource/powershell_script_spec.rb +8 -8
- data/spec/unit/resource/registry_key_spec.rb +19 -19
- data/spec/unit/resource/remote_file_spec.rb +2 -2
- data/spec/unit/resource/resource_notification_spec.rb +8 -8
- data/spec/unit/resource/service_spec.rb +3 -3
- data/spec/unit/resource/ssh_known_hosts_entry_spec.rb +55 -0
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/windows_feature_dism.rb +5 -5
- data/spec/unit/resource/windows_feature_powershell.rb +27 -6
- data/spec/unit/resource/yum_package_spec.rb +3 -3
- data/spec/unit/resource_collection/resource_set_spec.rb +6 -6
- data/spec/unit/resource_collection_spec.rb +5 -5
- data/spec/unit/resource_definition_spec.rb +2 -2
- data/spec/unit/resource_inspector_spec.rb +3 -3
- data/spec/unit/resource_reporter_spec.rb +24 -24
- data/spec/unit/resource_spec.rb +65 -31
- data/spec/unit/role_spec.rb +22 -22
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/run_list/run_list_item_spec.rb +3 -3
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +12 -12
- data/spec/unit/run_list_spec.rb +6 -6
- data/spec/unit/runner_spec.rb +4 -4
- data/spec/unit/scan_access_control_spec.rb +3 -3
- data/spec/unit/shell/model_wrapper_spec.rb +4 -4
- data/spec/unit/shell/shell_ext_spec.rb +4 -4
- data/spec/unit/shell/shell_session_spec.rb +28 -28
- data/spec/unit/user_spec.rb +2 -2
- data/spec/unit/user_v1_spec.rb +25 -25
- data/spec/unit/util/diff_spec.rb +1 -1
- data/spec/unit/util/dsc/configuration_generator_spec.rb +4 -4
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +105 -105
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +16 -16
- data/spec/unit/util/file_edit_spec.rb +38 -38
- data/spec/unit/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/unit/util/selinux_spec.rb +10 -10
- data/spec/unit/win32/registry_spec.rb +3 -3
- data/spec/unit/windows_service_spec.rb +2 -2
- data/tasks/cbgb.rb +3 -3
- data/tasks/dependencies.rb +6 -8
- data/tasks/maintainers.rb +7 -7
- data/tasks/rspec.rb +2 -2
- metadata +24 -83
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +0 -33
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +0 -272
- data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +0 -57
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +0 -68
- data/acceptance/.shared/kitchen_acceptance/metadata.rb +0 -1
- data/acceptance/Gemfile +0 -19
- data/acceptance/Gemfile.lock +0 -266
- data/acceptance/README.md +0 -137
- data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/basics/.kitchen.yml +0 -4
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +0 -19
- data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +0 -6
- data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +0 -8
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +0 -16
- data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +0 -3
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +0 -101
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +0 -3
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +0 -7
- data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +0 -44
- data/acceptance/data-collector/.kitchen.yml +0 -9
- data/acceptance/data-collector/Berksfile +0 -3
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +0 -208
- data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +0 -8
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -61
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +0 -43
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +0 -41
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/top-cookbooks/.gitignore +0 -1
- data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +0 -6
- data/acceptance/top-cookbooks/.kitchen.iis.yml +0 -4
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.powershell.yml +0 -4
- data/acceptance/top-cookbooks/.kitchen.sql_server.yml +0 -5
- data/acceptance/top-cookbooks/.kitchen.winbox.yml +0 -8
- data/acceptance/top-cookbooks/.kitchen.windows.yml +0 -38
- data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +0 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/trivial/.kitchen.yml +0 -7
- data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +0 -5
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +0 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/windows-service/.kitchen.yml +0 -7
- data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +0 -58
- data/distro/powershell/chef/Chef.PowerShell.dll +0 -0
@@ -32,14 +32,14 @@ describe "knife role delete", :workstation do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "deletes a role" do
|
35
|
-
knife("role delete car", input: "Y").should_succeed
|
36
|
-
Do you really want to delete car? (Y/N) Deleted role[car]
|
35
|
+
knife("role delete car", input: "Y").should_succeed <<~EOM
|
36
|
+
Do you really want to delete car? (Y/N) Deleted role[car]
|
37
37
|
EOM
|
38
38
|
|
39
|
-
knife("role list").should_succeed
|
40
|
-
cat
|
41
|
-
cdr
|
42
|
-
cons
|
39
|
+
knife("role list").should_succeed <<~EOM
|
40
|
+
cat
|
41
|
+
cdr
|
42
|
+
cons
|
43
43
|
EOM
|
44
44
|
end
|
45
45
|
|
@@ -29,64 +29,64 @@ describe "knife role from file", :workstation do
|
|
29
29
|
when_the_repository "has some roles" do
|
30
30
|
before do
|
31
31
|
|
32
|
-
file "roles/cons.json",
|
33
|
-
{
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
32
|
+
file "roles/cons.json", <<~EOM
|
33
|
+
{
|
34
|
+
"name": "cons",
|
35
|
+
"description": "An role",
|
36
|
+
"json_class": "Chef::role",
|
37
|
+
"chef_type": "role",
|
38
|
+
"default_attributes": {
|
39
|
+
"hola": "Amigos!"
|
40
|
+
},
|
41
|
+
"override_attributes": {
|
42
42
|
|
43
|
-
|
44
|
-
}
|
43
|
+
}
|
44
|
+
}
|
45
45
|
EOM
|
46
46
|
|
47
|
-
file "roles/car.json",
|
48
|
-
{
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
47
|
+
file "roles/car.json", <<~EOM
|
48
|
+
{
|
49
|
+
"name": "car",
|
50
|
+
"description": "A role for list nodes",
|
51
|
+
"json_class": "Chef::Role",
|
52
|
+
"chef_type": "role",
|
53
|
+
"default_attributes": {
|
54
|
+
"hola": "Amigos!"
|
55
|
+
},
|
56
|
+
"override_attributes": {
|
57
57
|
|
58
|
-
|
59
|
-
}
|
58
|
+
}
|
59
|
+
}
|
60
60
|
EOM
|
61
61
|
|
62
|
-
file "roles/cdr.json",
|
63
|
-
{
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
62
|
+
file "roles/cdr.json", <<~EOM
|
63
|
+
{
|
64
|
+
"name": "cdr",
|
65
|
+
"description": "A role for last nodes",
|
66
|
+
"json_class": "Chef::Role",
|
67
|
+
"chef_type": "role",
|
68
|
+
"default_attributes": {
|
69
|
+
"hola": "Amigos!"
|
70
|
+
},
|
71
|
+
"override_attributes": {
|
72
72
|
|
73
|
-
|
74
|
-
}
|
73
|
+
}
|
74
|
+
}
|
75
75
|
EOM
|
76
76
|
|
77
77
|
end
|
78
78
|
|
79
79
|
it "uploads a single file" do
|
80
|
-
knife("role from file #{role_dir}/cons.json").should_succeed stderr:
|
81
|
-
Updated Role cons
|
80
|
+
knife("role from file #{role_dir}/cons.json").should_succeed stderr: <<~EOM
|
81
|
+
Updated Role cons
|
82
82
|
EOM
|
83
83
|
end
|
84
84
|
|
85
85
|
it "uploads many files" do
|
86
|
-
knife("role from file #{role_dir}/cons.json #{role_dir}/car.json #{role_dir}/cdr.json").should_succeed stderr:
|
87
|
-
Updated Role cons
|
88
|
-
Updated Role car
|
89
|
-
Updated Role cdr
|
86
|
+
knife("role from file #{role_dir}/cons.json #{role_dir}/car.json #{role_dir}/cdr.json").should_succeed stderr: <<~EOM
|
87
|
+
Updated Role cons
|
88
|
+
Updated Role car
|
89
|
+
Updated Role cdr
|
90
90
|
EOM
|
91
91
|
end
|
92
92
|
|
@@ -32,11 +32,11 @@ describe "knife role list", :workstation do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "lists all cookbooks" do
|
35
|
-
knife("role list").should_succeed
|
36
|
-
car
|
37
|
-
cat
|
38
|
-
cdr
|
39
|
-
cons
|
35
|
+
knife("role list").should_succeed <<~EOM
|
36
|
+
car
|
37
|
+
cat
|
38
|
+
cdr
|
39
|
+
cons
|
40
40
|
EOM
|
41
41
|
end
|
42
42
|
|
@@ -33,15 +33,15 @@ describe "knife role show", :workstation do
|
|
33
33
|
|
34
34
|
# rubocop:disable Layout/TrailingWhitespace
|
35
35
|
it "shows a cookbook" do
|
36
|
-
knife("role show cons").should_succeed
|
37
|
-
chef_type: role
|
38
|
-
default_attributes:
|
39
|
-
description:
|
40
|
-
env_run_lists:
|
41
|
-
json_class: Chef::Role
|
42
|
-
name: cons
|
43
|
-
override_attributes:
|
44
|
-
run_list:
|
36
|
+
knife("role show cons").should_succeed <<~EOM
|
37
|
+
chef_type: role
|
38
|
+
default_attributes:
|
39
|
+
description:
|
40
|
+
env_run_lists:
|
41
|
+
json_class: Chef::Role
|
42
|
+
name: cons
|
43
|
+
override_attributes:
|
44
|
+
run_list:
|
45
45
|
EOM
|
46
46
|
end
|
47
47
|
# rubocop:enable Layout/TrailingWhitespace
|
@@ -49,63 +49,63 @@ describe "knife show", :workstation do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
it "knife show /cookbooks/x/metadata.rb shows the remote version" do
|
52
|
-
knife("show /cookbooks/x/metadata.rb").should_succeed
|
53
|
-
/cookbooks/x/metadata.rb:
|
54
|
-
name "x"; version "1.0.0"
|
52
|
+
knife("show /cookbooks/x/metadata.rb").should_succeed <<~EOM
|
53
|
+
/cookbooks/x/metadata.rb:
|
54
|
+
name "x"; version "1.0.0"
|
55
55
|
EOM
|
56
56
|
end
|
57
57
|
it "knife show --local /cookbooks/x/metadata.rb shows the local version" do
|
58
|
-
knife("show --local /cookbooks/x/metadata.rb").should_succeed
|
59
|
-
/cookbooks/x/metadata.rb:
|
60
|
-
name "x"; version "1.0.0"
|
58
|
+
knife("show --local /cookbooks/x/metadata.rb").should_succeed <<~EOM
|
59
|
+
/cookbooks/x/metadata.rb:
|
60
|
+
name "x"; version "1.0.0"
|
61
61
|
EOM
|
62
62
|
end
|
63
63
|
it "knife show /data_bags/x/y.json shows the remote version" do
|
64
|
-
knife("show /data_bags/x/y.json").should_succeed
|
65
|
-
/data_bags/x/y.json:
|
66
|
-
{
|
67
|
-
|
68
|
-
}
|
64
|
+
knife("show /data_bags/x/y.json").should_succeed <<~EOM
|
65
|
+
/data_bags/x/y.json:
|
66
|
+
{
|
67
|
+
"id": "y"
|
68
|
+
}
|
69
69
|
EOM
|
70
70
|
end
|
71
71
|
it "knife show --local /data_bags/x/y.json shows the local version" do
|
72
|
-
knife("show --local /data_bags/x/y.json").should_succeed
|
73
|
-
/data_bags/x/y.json:
|
74
|
-
{
|
75
|
-
|
76
|
-
}
|
72
|
+
knife("show --local /data_bags/x/y.json").should_succeed <<~EOM
|
73
|
+
/data_bags/x/y.json:
|
74
|
+
{
|
75
|
+
"foo": "bar"
|
76
|
+
}
|
77
77
|
EOM
|
78
78
|
end
|
79
|
-
it "knife show /environments/x.json shows the remote version", :
|
80
|
-
knife("show /environments/x.json").should_succeed
|
81
|
-
/environments/x.json:
|
82
|
-
{
|
83
|
-
|
84
|
-
}
|
79
|
+
it "knife show /environments/x.json shows the remote version", skip: (RUBY_VERSION < "1.9") do
|
80
|
+
knife("show /environments/x.json").should_succeed <<~EOM
|
81
|
+
/environments/x.json:
|
82
|
+
{
|
83
|
+
"name": "x"
|
84
|
+
}
|
85
85
|
EOM
|
86
86
|
end
|
87
87
|
it "knife show --local /environments/x.json shows the local version" do
|
88
|
-
knife("show --local /environments/x.json").should_succeed
|
89
|
-
/environments/x.json:
|
90
|
-
{
|
91
|
-
|
92
|
-
}
|
88
|
+
knife("show --local /environments/x.json").should_succeed <<~EOM
|
89
|
+
/environments/x.json:
|
90
|
+
{
|
91
|
+
"foo": "bar"
|
92
|
+
}
|
93
93
|
EOM
|
94
94
|
end
|
95
|
-
it "knife show /roles/x.json shows the remote version", :
|
96
|
-
knife("show /roles/x.json").should_succeed
|
97
|
-
/roles/x.json:
|
98
|
-
{
|
99
|
-
|
100
|
-
}
|
95
|
+
it "knife show /roles/x.json shows the remote version", skip: (RUBY_VERSION < "1.9") do
|
96
|
+
knife("show /roles/x.json").should_succeed <<~EOM
|
97
|
+
/roles/x.json:
|
98
|
+
{
|
99
|
+
"name": "x"
|
100
|
+
}
|
101
101
|
EOM
|
102
102
|
end
|
103
103
|
it "knife show --local /roles/x.json shows the local version" do
|
104
|
-
knife("show --local /roles/x.json").should_succeed
|
105
|
-
/roles/x.json:
|
106
|
-
{
|
107
|
-
|
108
|
-
}
|
104
|
+
knife("show --local /roles/x.json").should_succeed <<~EOM
|
105
|
+
/roles/x.json:
|
106
|
+
{
|
107
|
+
"foo": "bar"
|
108
|
+
}
|
109
109
|
EOM
|
110
110
|
end
|
111
111
|
# show directory
|
@@ -135,22 +135,22 @@ EOM
|
|
135
135
|
"name" => "x",
|
136
136
|
}
|
137
137
|
end
|
138
|
-
it "knife show shows the attributes in a predetermined order", :
|
139
|
-
knife("show /environments/x.json").should_succeed
|
140
|
-
/environments/x.json:
|
141
|
-
{
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
}
|
138
|
+
it "knife show shows the attributes in a predetermined order", skip: (RUBY_VERSION < "1.9") do
|
139
|
+
knife("show /environments/x.json").should_succeed <<~EOM
|
140
|
+
/environments/x.json:
|
141
|
+
{
|
142
|
+
"name": "x",
|
143
|
+
"description": "woo",
|
144
|
+
"cookbook_versions": {
|
145
|
+
"blah": "= 1.0.0"
|
146
|
+
},
|
147
|
+
"default_attributes": {
|
148
|
+
"foo": "bar"
|
149
|
+
},
|
150
|
+
"override_attributes": {
|
151
|
+
"x": "y"
|
152
|
+
}
|
153
|
+
}
|
154
154
|
EOM
|
155
155
|
end
|
156
156
|
end
|
@@ -158,9 +158,9 @@ EOM
|
|
158
158
|
when_the_repository "has an environment with bad JSON" do
|
159
159
|
before { file "environments/x.json", "{" }
|
160
160
|
it "knife show succeeds" do
|
161
|
-
knife("show --local /environments/x.json").should_succeed
|
162
|
-
/environments/x.json:
|
163
|
-
{
|
161
|
+
knife("show --local /environments/x.json").should_succeed <<~EOM
|
162
|
+
/environments/x.json:
|
163
|
+
{
|
164
164
|
EOM
|
165
165
|
end
|
166
166
|
end
|
@@ -52,36 +52,36 @@ describe "knife upload", :workstation do
|
|
52
52
|
|
53
53
|
it "knife upload does nothing" do
|
54
54
|
knife("upload /").should_succeed ""
|
55
|
-
knife("diff --name-status /").should_succeed
|
56
|
-
D\t/clients/chef-validator.json
|
57
|
-
D\t/clients/chef-webui.json
|
58
|
-
D\t/clients/x.json
|
59
|
-
D\t/cookbooks/x
|
60
|
-
D\t/data_bags/x
|
61
|
-
D\t/environments/_default.json
|
62
|
-
D\t/environments/x.json
|
63
|
-
D\t/nodes/x.json
|
64
|
-
D\t/roles/x.json
|
65
|
-
D\t/users/admin.json
|
66
|
-
D\t/users/x.json
|
55
|
+
knife("diff --name-status /").should_succeed <<~EOM
|
56
|
+
D\t/clients/chef-validator.json
|
57
|
+
D\t/clients/chef-webui.json
|
58
|
+
D\t/clients/x.json
|
59
|
+
D\t/cookbooks/x
|
60
|
+
D\t/data_bags/x
|
61
|
+
D\t/environments/_default.json
|
62
|
+
D\t/environments/x.json
|
63
|
+
D\t/nodes/x.json
|
64
|
+
D\t/roles/x.json
|
65
|
+
D\t/users/admin.json
|
66
|
+
D\t/users/x.json
|
67
67
|
EOM
|
68
68
|
end
|
69
69
|
|
70
70
|
it "knife upload --purge deletes everything" do
|
71
|
-
knife("upload --purge /").should_succeed(
|
72
|
-
Deleted extra entry /clients/chef-validator.json (purge is on)
|
73
|
-
Deleted extra entry /clients/chef-webui.json (purge is on)
|
74
|
-
Deleted extra entry /clients/x.json (purge is on)
|
75
|
-
Deleted extra entry /cookbooks/x (purge is on)
|
76
|
-
Deleted extra entry /data_bags/x (purge is on)
|
77
|
-
Deleted extra entry /environments/x.json (purge is on)
|
78
|
-
Deleted extra entry /nodes/x.json (purge is on)
|
79
|
-
Deleted extra entry /roles/x.json (purge is on)
|
80
|
-
Deleted extra entry /users/admin.json (purge is on)
|
81
|
-
Deleted extra entry /users/x.json (purge is on)
|
82
|
-
EOM
|
83
|
-
knife("diff --name-status /").should_succeed
|
84
|
-
D\t/environments/_default.json
|
71
|
+
knife("upload --purge /").should_succeed(<<~EOM, stderr: "WARNING: /environments/_default.json cannot be deleted (default environment cannot be modified).\n")
|
72
|
+
Deleted extra entry /clients/chef-validator.json (purge is on)
|
73
|
+
Deleted extra entry /clients/chef-webui.json (purge is on)
|
74
|
+
Deleted extra entry /clients/x.json (purge is on)
|
75
|
+
Deleted extra entry /cookbooks/x (purge is on)
|
76
|
+
Deleted extra entry /data_bags/x (purge is on)
|
77
|
+
Deleted extra entry /environments/x.json (purge is on)
|
78
|
+
Deleted extra entry /nodes/x.json (purge is on)
|
79
|
+
Deleted extra entry /roles/x.json (purge is on)
|
80
|
+
Deleted extra entry /users/admin.json (purge is on)
|
81
|
+
Deleted extra entry /users/x.json (purge is on)
|
82
|
+
EOM
|
83
|
+
knife("diff --name-status /").should_succeed <<~EOM
|
84
|
+
D\t/environments/_default.json
|
85
85
|
EOM
|
86
86
|
end
|
87
87
|
end
|
@@ -129,22 +129,22 @@ EOM
|
|
129
129
|
|
130
130
|
context "except the role file is textually different, but not ACTUALLY different" do
|
131
131
|
before do
|
132
|
-
file "roles/x.json",
|
133
|
-
{
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
}
|
132
|
+
file "roles/x.json", <<~EOM
|
133
|
+
{
|
134
|
+
"chef_type": "role",
|
135
|
+
"default_attributes": {
|
136
|
+
},
|
137
|
+
"env_run_lists": {
|
138
|
+
},
|
139
|
+
"json_class": "Chef::Role",
|
140
|
+
"name": "x",
|
141
|
+
"description": "",
|
142
|
+
"override_attributes": {
|
143
|
+
},
|
144
|
+
"run_list": [
|
145
|
+
|
146
|
+
]
|
147
|
+
}
|
148
148
|
EOM
|
149
149
|
end
|
150
150
|
|
@@ -156,9 +156,9 @@ EOM
|
|
156
156
|
|
157
157
|
context "the role is in ruby" do
|
158
158
|
before do
|
159
|
-
file "roles/x.rb",
|
160
|
-
name "x"
|
161
|
-
description "blargle"
|
159
|
+
file "roles/x.rb", <<~EOM
|
160
|
+
name "x"
|
161
|
+
description "blargle"
|
162
162
|
EOM
|
163
163
|
end
|
164
164
|
|
@@ -197,33 +197,33 @@ EOM
|
|
197
197
|
end
|
198
198
|
|
199
199
|
it "knife upload adds the new files" do
|
200
|
-
knife("upload /").should_succeed
|
201
|
-
Created /clients/y.json
|
202
|
-
Updated /cookbooks/x
|
203
|
-
Created /cookbooks/y
|
204
|
-
Created /data_bags/x/z.json
|
205
|
-
Created /data_bags/y
|
206
|
-
Created /data_bags/y/zz.json
|
207
|
-
Created /environments/y.json
|
208
|
-
Created /nodes/y.json
|
209
|
-
Created /roles/y.json
|
210
|
-
Created /users/y.json
|
200
|
+
knife("upload /").should_succeed <<~EOM
|
201
|
+
Created /clients/y.json
|
202
|
+
Updated /cookbooks/x
|
203
|
+
Created /cookbooks/y
|
204
|
+
Created /data_bags/x/z.json
|
205
|
+
Created /data_bags/y
|
206
|
+
Created /data_bags/y/zz.json
|
207
|
+
Created /environments/y.json
|
208
|
+
Created /nodes/y.json
|
209
|
+
Created /roles/y.json
|
210
|
+
Created /users/y.json
|
211
211
|
EOM
|
212
212
|
knife("diff /").should_succeed ""
|
213
213
|
end
|
214
214
|
|
215
215
|
it "knife upload --no-diff adds the new files" do
|
216
|
-
knife("upload --no-diff /").should_succeed
|
217
|
-
Created /clients/y.json
|
218
|
-
Updated /cookbooks/x
|
219
|
-
Created /cookbooks/y
|
220
|
-
Created /data_bags/x/z.json
|
221
|
-
Created /data_bags/y
|
222
|
-
Created /data_bags/y/zz.json
|
223
|
-
Created /environments/y.json
|
224
|
-
Created /nodes/y.json
|
225
|
-
Created /roles/y.json
|
226
|
-
Created /users/y.json
|
216
|
+
knife("upload --no-diff /").should_succeed <<~EOM
|
217
|
+
Created /clients/y.json
|
218
|
+
Updated /cookbooks/x
|
219
|
+
Created /cookbooks/y
|
220
|
+
Created /data_bags/x/z.json
|
221
|
+
Created /data_bags/y
|
222
|
+
Created /data_bags/y/zz.json
|
223
|
+
Created /environments/y.json
|
224
|
+
Created /nodes/y.json
|
225
|
+
Created /roles/y.json
|
226
|
+
Created /users/y.json
|
227
227
|
EOM
|
228
228
|
knife("diff --name-status /").should_succeed ""
|
229
229
|
end
|
@@ -233,35 +233,35 @@ EOM
|
|
233
233
|
when_the_repository "is empty" do
|
234
234
|
it "knife upload does nothing" do
|
235
235
|
knife("upload /").should_succeed ""
|
236
|
-
knife("diff --name-status /").should_succeed
|
237
|
-
D\t/clients
|
238
|
-
D\t/cookbooks
|
239
|
-
D\t/data_bags
|
240
|
-
D\t/environments
|
241
|
-
D\t/nodes
|
242
|
-
D\t/roles
|
243
|
-
D\t/users
|
236
|
+
knife("diff --name-status /").should_succeed <<~EOM
|
237
|
+
D\t/clients
|
238
|
+
D\t/cookbooks
|
239
|
+
D\t/data_bags
|
240
|
+
D\t/environments
|
241
|
+
D\t/nodes
|
242
|
+
D\t/roles
|
243
|
+
D\t/users
|
244
244
|
EOM
|
245
245
|
end
|
246
246
|
|
247
247
|
it "knife upload --purge deletes nothing" do
|
248
|
-
knife("upload --purge /").should_fail
|
249
|
-
ERROR: /clients cannot be deleted.
|
250
|
-
ERROR: /cookbooks cannot be deleted.
|
251
|
-
ERROR: /data_bags cannot be deleted.
|
252
|
-
ERROR: /environments cannot be deleted.
|
253
|
-
ERROR: /nodes cannot be deleted.
|
254
|
-
ERROR: /roles cannot be deleted.
|
255
|
-
ERROR: /users cannot be deleted.
|
256
|
-
EOM
|
257
|
-
knife("diff --name-status /").should_succeed
|
258
|
-
D\t/clients
|
259
|
-
D\t/cookbooks
|
260
|
-
D\t/data_bags
|
261
|
-
D\t/environments
|
262
|
-
D\t/nodes
|
263
|
-
D\t/roles
|
264
|
-
D\t/users
|
248
|
+
knife("upload --purge /").should_fail <<~EOM
|
249
|
+
ERROR: /clients cannot be deleted.
|
250
|
+
ERROR: /cookbooks cannot be deleted.
|
251
|
+
ERROR: /data_bags cannot be deleted.
|
252
|
+
ERROR: /environments cannot be deleted.
|
253
|
+
ERROR: /nodes cannot be deleted.
|
254
|
+
ERROR: /roles cannot be deleted.
|
255
|
+
ERROR: /users cannot be deleted.
|
256
|
+
EOM
|
257
|
+
knife("diff --name-status /").should_succeed <<~EOM
|
258
|
+
D\t/clients
|
259
|
+
D\t/cookbooks
|
260
|
+
D\t/data_bags
|
261
|
+
D\t/environments
|
262
|
+
D\t/nodes
|
263
|
+
D\t/roles
|
264
|
+
D\t/users
|
265
265
|
EOM
|
266
266
|
end
|
267
267
|
|
@@ -271,7 +271,7 @@ EOM
|
|
271
271
|
end
|
272
272
|
|
273
273
|
it "knife upload with no parameters reports an error" do
|
274
|
-
knife("upload").should_fail "FATAL: You must specify at least one argument. If you want to upload everything in this directory, run \"knife upload .\"\n", :
|
274
|
+
knife("upload").should_fail "FATAL: You must specify at least one argument. If you want to upload everything in this directory, run \"knife upload .\"\n", stdout: /USAGE/
|
275
275
|
end
|
276
276
|
end
|
277
277
|
end
|
@@ -285,19 +285,19 @@ EOM
|
|
285
285
|
end
|
286
286
|
|
287
287
|
it "knife upload of the data bag uploads only the values in the data bag item and no other" do
|
288
|
-
knife("upload /data_bags/x/y.json").should_succeed
|
289
|
-
Created /data_bags/x
|
290
|
-
Created /data_bags/x/y.json
|
288
|
+
knife("upload /data_bags/x/y.json").should_succeed <<~EOM
|
289
|
+
Created /data_bags/x
|
290
|
+
Created /data_bags/x/y.json
|
291
291
|
EOM
|
292
292
|
knife("diff --name-status /data_bags").should_succeed <<EOM
|
293
293
|
EOM
|
294
|
-
expect(Chef::JSONCompat.parse(knife("raw /data/x/y").stdout, :
|
294
|
+
expect(Chef::JSONCompat.parse(knife("raw /data/x/y").stdout, create_additions: false).keys.sort).to eq(%w{foo id})
|
295
295
|
end
|
296
296
|
|
297
297
|
it "knife upload /data_bags/x /data_bags/x/y.json uploads x once" do
|
298
|
-
knife("upload /data_bags/x /data_bags/x/y.json").should_succeed
|
299
|
-
Created /data_bags/x
|
300
|
-
Created /data_bags/x/y.json
|
298
|
+
knife("upload /data_bags/x /data_bags/x/y.json").should_succeed <<~EOM
|
299
|
+
Created /data_bags/x
|
300
|
+
Created /data_bags/x/y.json
|
301
301
|
EOM
|
302
302
|
end
|
303
303
|
end
|
@@ -309,12 +309,12 @@ EOM
|
|
309
309
|
end
|
310
310
|
|
311
311
|
it "upload preserves chef_type and data_bag" do
|
312
|
-
knife("upload /data_bags/x/y.json").should_succeed
|
313
|
-
Created /data_bags/x
|
314
|
-
Created /data_bags/x/y.json
|
312
|
+
knife("upload /data_bags/x/y.json").should_succeed <<~EOM
|
313
|
+
Created /data_bags/x
|
314
|
+
Created /data_bags/x/y.json
|
315
315
|
EOM
|
316
316
|
knife("diff --name-status /data_bags").should_succeed ""
|
317
|
-
result = Chef::JSONCompat.parse(knife("raw /data/x/y").stdout, :
|
317
|
+
result = Chef::JSONCompat.parse(knife("raw /data/x/y").stdout, create_additions: false)
|
318
318
|
expect(result.keys.sort).to eq(%w{chef_type data_bag id})
|
319
319
|
expect(result["chef_type"]).to eq("aaa")
|
320
320
|
expect(result["data_bag"]).to eq("bbb")
|
@@ -328,12 +328,12 @@ EOM
|
|
328
328
|
file "data_bags/x/z.json", {}
|
329
329
|
end
|
330
330
|
it "knife upload of one data bag item itself succeeds" do
|
331
|
-
knife("upload /data_bags/x/y.json").should_succeed
|
332
|
-
Created /data_bags/x
|
333
|
-
Created /data_bags/x/y.json
|
331
|
+
knife("upload /data_bags/x/y.json").should_succeed <<~EOM
|
332
|
+
Created /data_bags/x
|
333
|
+
Created /data_bags/x/y.json
|
334
334
|
EOM
|
335
|
-
knife("diff --name-status /data_bags").should_succeed
|
336
|
-
A\t/data_bags/x/z.json
|
335
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
336
|
+
A\t/data_bags/x/z.json
|
337
337
|
EOM
|
338
338
|
end
|
339
339
|
end
|
@@ -353,62 +353,62 @@ EOM
|
|
353
353
|
end
|
354
354
|
|
355
355
|
it "knife upload of the modified file succeeds" do
|
356
|
-
knife("upload /data_bags/x/modified.json").should_succeed
|
357
|
-
Updated /data_bags/x/modified.json
|
356
|
+
knife("upload /data_bags/x/modified.json").should_succeed <<~EOM
|
357
|
+
Updated /data_bags/x/modified.json
|
358
358
|
EOM
|
359
|
-
knife("diff --name-status /data_bags").should_succeed
|
360
|
-
D\t/data_bags/x/deleted.json
|
361
|
-
A\t/data_bags/x/added.json
|
359
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
360
|
+
D\t/data_bags/x/deleted.json
|
361
|
+
A\t/data_bags/x/added.json
|
362
362
|
EOM
|
363
363
|
end
|
364
364
|
it "knife upload of the unmodified file does nothing" do
|
365
365
|
knife("upload /data_bags/x/unmodified.json").should_succeed ""
|
366
|
-
knife("diff --name-status /data_bags").should_succeed
|
367
|
-
D\t/data_bags/x/deleted.json
|
368
|
-
M\t/data_bags/x/modified.json
|
369
|
-
A\t/data_bags/x/added.json
|
366
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
367
|
+
D\t/data_bags/x/deleted.json
|
368
|
+
M\t/data_bags/x/modified.json
|
369
|
+
A\t/data_bags/x/added.json
|
370
370
|
EOM
|
371
371
|
end
|
372
372
|
it "knife upload of the added file succeeds" do
|
373
|
-
knife("upload /data_bags/x/added.json").should_succeed
|
374
|
-
Created /data_bags/x/added.json
|
373
|
+
knife("upload /data_bags/x/added.json").should_succeed <<~EOM
|
374
|
+
Created /data_bags/x/added.json
|
375
375
|
EOM
|
376
|
-
knife("diff --name-status /data_bags").should_succeed
|
377
|
-
D\t/data_bags/x/deleted.json
|
378
|
-
M\t/data_bags/x/modified.json
|
376
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
377
|
+
D\t/data_bags/x/deleted.json
|
378
|
+
M\t/data_bags/x/modified.json
|
379
379
|
EOM
|
380
380
|
end
|
381
381
|
it "knife upload of the deleted file does nothing" do
|
382
382
|
knife("upload /data_bags/x/deleted.json").should_succeed ""
|
383
|
-
knife("diff --name-status /data_bags").should_succeed
|
384
|
-
D\t/data_bags/x/deleted.json
|
385
|
-
M\t/data_bags/x/modified.json
|
386
|
-
A\t/data_bags/x/added.json
|
383
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
384
|
+
D\t/data_bags/x/deleted.json
|
385
|
+
M\t/data_bags/x/modified.json
|
386
|
+
A\t/data_bags/x/added.json
|
387
387
|
EOM
|
388
388
|
end
|
389
389
|
it "knife upload --purge of the deleted file deletes it" do
|
390
|
-
knife("upload --purge /data_bags/x/deleted.json").should_succeed
|
391
|
-
Deleted extra entry /data_bags/x/deleted.json (purge is on)
|
390
|
+
knife("upload --purge /data_bags/x/deleted.json").should_succeed <<~EOM
|
391
|
+
Deleted extra entry /data_bags/x/deleted.json (purge is on)
|
392
392
|
EOM
|
393
|
-
knife("diff --name-status /data_bags").should_succeed
|
394
|
-
M\t/data_bags/x/modified.json
|
395
|
-
A\t/data_bags/x/added.json
|
393
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
394
|
+
M\t/data_bags/x/modified.json
|
395
|
+
A\t/data_bags/x/added.json
|
396
396
|
EOM
|
397
397
|
end
|
398
398
|
it "knife upload of the entire data bag uploads everything" do
|
399
|
-
knife("upload /data_bags/x").should_succeed
|
400
|
-
Created /data_bags/x/added.json
|
401
|
-
Updated /data_bags/x/modified.json
|
399
|
+
knife("upload /data_bags/x").should_succeed <<~EOM
|
400
|
+
Created /data_bags/x/added.json
|
401
|
+
Updated /data_bags/x/modified.json
|
402
402
|
EOM
|
403
|
-
knife("diff --name-status /data_bags").should_succeed
|
404
|
-
D\t/data_bags/x/deleted.json
|
403
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
404
|
+
D\t/data_bags/x/deleted.json
|
405
405
|
EOM
|
406
406
|
end
|
407
407
|
it "knife upload --purge of the entire data bag uploads everything" do
|
408
|
-
knife("upload --purge /data_bags/x").should_succeed
|
409
|
-
Created /data_bags/x/added.json
|
410
|
-
Updated /data_bags/x/modified.json
|
411
|
-
Deleted extra entry /data_bags/x/deleted.json (purge is on)
|
408
|
+
knife("upload --purge /data_bags/x").should_succeed <<~EOM
|
409
|
+
Created /data_bags/x/added.json
|
410
|
+
Updated /data_bags/x/modified.json
|
411
|
+
Deleted extra entry /data_bags/x/deleted.json (purge is on)
|
412
412
|
EOM
|
413
413
|
knife("diff --name-status /data_bags").should_succeed ""
|
414
414
|
end
|
@@ -419,22 +419,22 @@ EOM
|
|
419
419
|
end
|
420
420
|
|
421
421
|
it "knife upload fails" do
|
422
|
-
knife("upload").should_fail "FATAL: You must specify at least one argument. If you want to upload everything in this directory, run \"knife upload .\"\n", :
|
422
|
+
knife("upload").should_fail "FATAL: You must specify at least one argument. If you want to upload everything in this directory, run \"knife upload .\"\n", stdout: /USAGE/
|
423
423
|
end
|
424
424
|
|
425
425
|
it "knife upload --purge . uploads everything" do
|
426
|
-
knife("upload --purge .").should_succeed
|
427
|
-
Created x/added.json
|
428
|
-
Updated x/modified.json
|
429
|
-
Deleted extra entry x/deleted.json (purge is on)
|
426
|
+
knife("upload --purge .").should_succeed <<~EOM
|
427
|
+
Created x/added.json
|
428
|
+
Updated x/modified.json
|
429
|
+
Deleted extra entry x/deleted.json (purge is on)
|
430
430
|
EOM
|
431
431
|
knife("diff --name-status /data_bags").should_succeed ""
|
432
432
|
end
|
433
433
|
it "knife upload --purge * uploads everything" do
|
434
|
-
knife("upload --purge *").should_succeed
|
435
|
-
Created x/added.json
|
436
|
-
Updated x/modified.json
|
437
|
-
Deleted extra entry x/deleted.json (purge is on)
|
434
|
+
knife("upload --purge *").should_succeed <<~EOM
|
435
|
+
Created x/added.json
|
436
|
+
Updated x/modified.json
|
437
|
+
Deleted extra entry x/deleted.json (purge is on)
|
438
438
|
EOM
|
439
439
|
knife("diff --name-status /data_bags").should_succeed ""
|
440
440
|
end
|
@@ -466,14 +466,14 @@ EOM
|
|
466
466
|
# technically we shouldn't have deleted missing files. But ... cookbooks
|
467
467
|
# are a special case.
|
468
468
|
it "knife upload of the cookbook itself succeeds" do
|
469
|
-
knife("upload /cookbooks/x").should_succeed
|
470
|
-
Updated /cookbooks/x
|
469
|
+
knife("upload /cookbooks/x").should_succeed <<~EOM
|
470
|
+
Updated /cookbooks/x
|
471
471
|
EOM
|
472
472
|
knife("diff --name-status /cookbooks").should_succeed ""
|
473
473
|
end
|
474
474
|
it "knife upload --purge of the cookbook itself succeeds" do
|
475
|
-
knife("upload /cookbooks/x").should_succeed
|
476
|
-
Updated /cookbooks/x
|
475
|
+
knife("upload /cookbooks/x").should_succeed <<~EOM
|
476
|
+
Updated /cookbooks/x
|
477
477
|
EOM
|
478
478
|
knife("diff --name-status /cookbooks").should_succeed ""
|
479
479
|
end
|
@@ -485,8 +485,8 @@ EOM
|
|
485
485
|
end
|
486
486
|
|
487
487
|
it "knife upload of the cookbook succeeds" do
|
488
|
-
knife("upload /cookbooks/x").should_succeed
|
489
|
-
Updated /cookbooks/x
|
488
|
+
knife("upload /cookbooks/x").should_succeed <<~EOM
|
489
|
+
Updated /cookbooks/x
|
490
490
|
EOM
|
491
491
|
knife("diff --name-status /cookbooks").should_succeed ""
|
492
492
|
end
|
@@ -500,8 +500,8 @@ EOM
|
|
500
500
|
end
|
501
501
|
|
502
502
|
it "knife upload of the cookbook succeeds" do
|
503
|
-
knife("upload /cookbooks/x").should_succeed
|
504
|
-
Updated /cookbooks/x
|
503
|
+
knife("upload /cookbooks/x").should_succeed <<~EOM
|
504
|
+
Updated /cookbooks/x
|
505
505
|
EOM
|
506
506
|
knife("diff --name-status /cookbooks").should_succeed ""
|
507
507
|
end
|
@@ -513,8 +513,8 @@ EOM
|
|
513
513
|
end
|
514
514
|
|
515
515
|
it "knife upload --freeze freezes the cookbook" do
|
516
|
-
knife("upload --freeze /cookbooks/x").should_succeed
|
517
|
-
Updated /cookbooks/x
|
516
|
+
knife("upload --freeze /cookbooks/x").should_succeed <<~EOM
|
517
|
+
Updated /cookbooks/x
|
518
518
|
EOM
|
519
519
|
# Modify a file and attempt to upload
|
520
520
|
file "cookbooks/x/metadata.rb", 'name "x"; version "1.0.0"#different'
|
@@ -525,7 +525,7 @@ EOM
|
|
525
525
|
|
526
526
|
when_the_chef_server "has a frozen cookbook" do
|
527
527
|
before do
|
528
|
-
cookbook "frozencook", "1.0.0", {}, :
|
528
|
+
cookbook "frozencook", "1.0.0", {}, frozen: true
|
529
529
|
end
|
530
530
|
|
531
531
|
when_the_repository "has an update to said cookbook" do
|
@@ -538,8 +538,8 @@ EOM
|
|
538
538
|
knife("upload /cookbooks/frozencook").should_fail "ERROR: /cookbooks failed to write: Cookbook frozencook is frozen\n"
|
539
539
|
end
|
540
540
|
it "knife upload --force uploads the frozen cookbook" do
|
541
|
-
knife("upload --force /cookbooks/frozencook").should_succeed
|
542
|
-
Updated /cookbooks/frozencook
|
541
|
+
knife("upload --force /cookbooks/frozencook").should_succeed <<~EOM
|
542
|
+
Updated /cookbooks/frozencook
|
543
543
|
EOM
|
544
544
|
end
|
545
545
|
end
|
@@ -558,18 +558,18 @@ EOM
|
|
558
558
|
end
|
559
559
|
|
560
560
|
it "knife upload /cookbooks/x uploads the local version" do
|
561
|
-
knife("diff --name-status /cookbooks").should_succeed
|
562
|
-
M\t/cookbooks/x/metadata.rb
|
563
|
-
D\t/cookbooks/x/onlyin1.0.1.rb
|
564
|
-
A\t/cookbooks/x/onlyin1.0.0.rb
|
561
|
+
knife("diff --name-status /cookbooks").should_succeed <<~EOM
|
562
|
+
M\t/cookbooks/x/metadata.rb
|
563
|
+
D\t/cookbooks/x/onlyin1.0.1.rb
|
564
|
+
A\t/cookbooks/x/onlyin1.0.0.rb
|
565
565
|
EOM
|
566
|
-
knife("upload --purge /cookbooks/x").should_succeed
|
567
|
-
Updated /cookbooks/x
|
566
|
+
knife("upload --purge /cookbooks/x").should_succeed <<~EOM
|
567
|
+
Updated /cookbooks/x
|
568
568
|
EOM
|
569
|
-
knife("diff --name-status /cookbooks").should_succeed
|
570
|
-
M\t/cookbooks/x/metadata.rb
|
571
|
-
D\t/cookbooks/x/onlyin1.0.1.rb
|
572
|
-
A\t/cookbooks/x/onlyin1.0.0.rb
|
569
|
+
knife("diff --name-status /cookbooks").should_succeed <<~EOM
|
570
|
+
M\t/cookbooks/x/metadata.rb
|
571
|
+
D\t/cookbooks/x/onlyin1.0.1.rb
|
572
|
+
A\t/cookbooks/x/onlyin1.0.0.rb
|
573
573
|
EOM
|
574
574
|
end
|
575
575
|
end
|
@@ -581,8 +581,8 @@ EOM
|
|
581
581
|
end
|
582
582
|
|
583
583
|
it "knife upload /cookbooks/x uploads the local version" do
|
584
|
-
knife("upload --purge /cookbooks/x").should_succeed
|
585
|
-
Updated /cookbooks/x
|
584
|
+
knife("upload --purge /cookbooks/x").should_succeed <<~EOM
|
585
|
+
Updated /cookbooks/x
|
586
586
|
EOM
|
587
587
|
knife("diff --name-status /cookbooks").should_succeed ""
|
588
588
|
end
|
@@ -594,18 +594,18 @@ EOM
|
|
594
594
|
end
|
595
595
|
|
596
596
|
it "knife upload /cookbooks/x uploads the local version" do
|
597
|
-
knife("diff --name-status /cookbooks").should_succeed
|
598
|
-
M\t/cookbooks/x/metadata.rb
|
599
|
-
D\t/cookbooks/x/onlyin1.0.1.rb
|
600
|
-
A\t/cookbooks/x/onlyin1.0.0.rb
|
597
|
+
knife("diff --name-status /cookbooks").should_succeed <<~EOM
|
598
|
+
M\t/cookbooks/x/metadata.rb
|
599
|
+
D\t/cookbooks/x/onlyin1.0.1.rb
|
600
|
+
A\t/cookbooks/x/onlyin1.0.0.rb
|
601
601
|
EOM
|
602
|
-
knife("upload --purge /cookbooks/x").should_succeed
|
603
|
-
Updated /cookbooks/x
|
602
|
+
knife("upload --purge /cookbooks/x").should_succeed <<~EOM
|
603
|
+
Updated /cookbooks/x
|
604
604
|
EOM
|
605
|
-
knife("diff --name-status /cookbooks").should_succeed
|
606
|
-
M\t/cookbooks/x/metadata.rb
|
607
|
-
D\t/cookbooks/x/onlyin1.0.1.rb
|
608
|
-
A\t/cookbooks/x/onlyin1.0.0.rb
|
605
|
+
knife("diff --name-status /cookbooks").should_succeed <<~EOM
|
606
|
+
M\t/cookbooks/x/metadata.rb
|
607
|
+
D\t/cookbooks/x/onlyin1.0.1.rb
|
608
|
+
A\t/cookbooks/x/onlyin1.0.0.rb
|
609
609
|
EOM
|
610
610
|
end
|
611
611
|
end
|
@@ -616,8 +616,8 @@ EOM
|
|
616
616
|
end
|
617
617
|
|
618
618
|
it "knife upload /cookbooks/x uploads the new version" do
|
619
|
-
knife("upload --purge /cookbooks/x").should_succeed
|
620
|
-
Updated /cookbooks/x
|
619
|
+
knife("upload --purge /cookbooks/x").should_succeed <<~EOM
|
620
|
+
Updated /cookbooks/x
|
621
621
|
EOM
|
622
622
|
knife("diff --name-status /cookbooks").should_succeed ""
|
623
623
|
end
|
@@ -635,24 +635,24 @@ EOM
|
|
635
635
|
end
|
636
636
|
|
637
637
|
it "knife upload tries and fails" do
|
638
|
-
error1 =
|
639
|
-
WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
ERROR: /environments/x.json failed to write: Parse error reading JSON: parse error: premature EOF
|
644
|
-
|
645
|
-
|
638
|
+
error1 = <<~EOH
|
639
|
+
WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF
|
640
|
+
{
|
641
|
+
(right here) ------^
|
642
|
+
|
643
|
+
ERROR: /environments/x.json failed to write: Parse error reading JSON: parse error: premature EOF
|
644
|
+
{
|
645
|
+
(right here) ------^
|
646
646
|
EOH
|
647
647
|
|
648
|
-
warn =
|
649
|
-
WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF
|
650
|
-
|
651
|
-
|
648
|
+
warn = <<~EOH
|
649
|
+
WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF
|
650
|
+
{
|
651
|
+
(right here) ------^
|
652
652
|
|
653
653
|
EOH
|
654
654
|
knife("upload /environments/x.json").should_fail(error1)
|
655
|
-
knife("diff --name-status /environments/x.json").should_succeed("M\t/environments/x.json\n", :
|
655
|
+
knife("diff --name-status /environments/x.json").should_succeed("M\t/environments/x.json\n", stderr: warn)
|
656
656
|
end
|
657
657
|
end
|
658
658
|
|
@@ -716,8 +716,8 @@ WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error
|
|
716
716
|
file "cookbooks/x/metadata.rb", cb_metadata("x", "1.0.0", "\nchef_version '~> 999.0'")
|
717
717
|
end
|
718
718
|
it "knife upload succeeds" do
|
719
|
-
knife("upload /cookbooks/x").should_succeed
|
720
|
-
Created /cookbooks/x
|
719
|
+
knife("upload /cookbooks/x").should_succeed <<~EOM
|
720
|
+
Created /cookbooks/x
|
721
721
|
EOM
|
722
722
|
knife("diff --name-status /cookbooks").should_succeed ""
|
723
723
|
end
|
@@ -751,36 +751,36 @@ EOM
|
|
751
751
|
|
752
752
|
it "knife upload does nothing" do
|
753
753
|
knife("upload /").should_succeed ""
|
754
|
-
knife("diff --name-status /").should_succeed
|
755
|
-
D\t/clients/chef-validator.json
|
756
|
-
D\t/clients/chef-webui.json
|
757
|
-
D\t/clients/x.json
|
758
|
-
D\t/cookbooks/x-1.0.0
|
759
|
-
D\t/data_bags/x
|
760
|
-
D\t/environments/_default.json
|
761
|
-
D\t/environments/x.json
|
762
|
-
D\t/nodes/x.json
|
763
|
-
D\t/roles/x.json
|
764
|
-
D\t/users/admin.json
|
765
|
-
D\t/users/x.json
|
754
|
+
knife("diff --name-status /").should_succeed <<~EOM
|
755
|
+
D\t/clients/chef-validator.json
|
756
|
+
D\t/clients/chef-webui.json
|
757
|
+
D\t/clients/x.json
|
758
|
+
D\t/cookbooks/x-1.0.0
|
759
|
+
D\t/data_bags/x
|
760
|
+
D\t/environments/_default.json
|
761
|
+
D\t/environments/x.json
|
762
|
+
D\t/nodes/x.json
|
763
|
+
D\t/roles/x.json
|
764
|
+
D\t/users/admin.json
|
765
|
+
D\t/users/x.json
|
766
766
|
EOM
|
767
767
|
end
|
768
768
|
|
769
769
|
it "knife upload --purge deletes everything" do
|
770
|
-
knife("upload --purge /").should_succeed(
|
771
|
-
Deleted extra entry /clients/chef-validator.json (purge is on)
|
772
|
-
Deleted extra entry /clients/chef-webui.json (purge is on)
|
773
|
-
Deleted extra entry /clients/x.json (purge is on)
|
774
|
-
Deleted extra entry /cookbooks/x-1.0.0 (purge is on)
|
775
|
-
Deleted extra entry /data_bags/x (purge is on)
|
776
|
-
Deleted extra entry /environments/x.json (purge is on)
|
777
|
-
Deleted extra entry /nodes/x.json (purge is on)
|
778
|
-
Deleted extra entry /roles/x.json (purge is on)
|
779
|
-
Deleted extra entry /users/admin.json (purge is on)
|
780
|
-
Deleted extra entry /users/x.json (purge is on)
|
781
|
-
EOM
|
782
|
-
knife("diff --name-status /").should_succeed
|
783
|
-
D\t/environments/_default.json
|
770
|
+
knife("upload --purge /").should_succeed(<<~EOM, stderr: "WARNING: /environments/_default.json cannot be deleted (default environment cannot be modified).\n")
|
771
|
+
Deleted extra entry /clients/chef-validator.json (purge is on)
|
772
|
+
Deleted extra entry /clients/chef-webui.json (purge is on)
|
773
|
+
Deleted extra entry /clients/x.json (purge is on)
|
774
|
+
Deleted extra entry /cookbooks/x-1.0.0 (purge is on)
|
775
|
+
Deleted extra entry /data_bags/x (purge is on)
|
776
|
+
Deleted extra entry /environments/x.json (purge is on)
|
777
|
+
Deleted extra entry /nodes/x.json (purge is on)
|
778
|
+
Deleted extra entry /roles/x.json (purge is on)
|
779
|
+
Deleted extra entry /users/admin.json (purge is on)
|
780
|
+
Deleted extra entry /users/x.json (purge is on)
|
781
|
+
EOM
|
782
|
+
knife("diff --name-status /").should_succeed <<~EOM
|
783
|
+
D\t/environments/_default.json
|
784
784
|
EOM
|
785
785
|
end
|
786
786
|
end
|
@@ -824,22 +824,22 @@ EOM
|
|
824
824
|
context "except the role file is textually different, but not ACTUALLY different" do
|
825
825
|
|
826
826
|
before do
|
827
|
-
file "roles/x.json",
|
828
|
-
{
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
}
|
827
|
+
file "roles/x.json", <<~EOM
|
828
|
+
{
|
829
|
+
"chef_type": "role",
|
830
|
+
"default_attributes": {
|
831
|
+
},
|
832
|
+
"env_run_lists": {
|
833
|
+
},
|
834
|
+
"json_class": "Chef::Role",
|
835
|
+
"name": "x",
|
836
|
+
"description": "",
|
837
|
+
"override_attributes": {
|
838
|
+
},
|
839
|
+
"run_list": [
|
840
|
+
|
841
|
+
]
|
842
|
+
}
|
843
843
|
EOM
|
844
844
|
end
|
845
845
|
|
@@ -864,18 +864,18 @@ EOM
|
|
864
864
|
end
|
865
865
|
|
866
866
|
it "knife upload adds the new files" do
|
867
|
-
knife("upload /").should_succeed
|
868
|
-
Created /clients/y.json
|
869
|
-
Updated /cookbooks/x-1.0.0
|
870
|
-
Created /cookbooks/x-2.0.0
|
871
|
-
Created /cookbooks/y-1.0.0
|
872
|
-
Created /data_bags/x/z.json
|
873
|
-
Created /data_bags/y
|
874
|
-
Created /data_bags/y/zz.json
|
875
|
-
Created /environments/y.json
|
876
|
-
Created /nodes/y.json
|
877
|
-
Created /roles/y.json
|
878
|
-
Created /users/y.json
|
867
|
+
knife("upload /").should_succeed <<~EOM
|
868
|
+
Created /clients/y.json
|
869
|
+
Updated /cookbooks/x-1.0.0
|
870
|
+
Created /cookbooks/x-2.0.0
|
871
|
+
Created /cookbooks/y-1.0.0
|
872
|
+
Created /data_bags/x/z.json
|
873
|
+
Created /data_bags/y
|
874
|
+
Created /data_bags/y/zz.json
|
875
|
+
Created /environments/y.json
|
876
|
+
Created /nodes/y.json
|
877
|
+
Created /roles/y.json
|
878
|
+
Created /users/y.json
|
879
879
|
EOM
|
880
880
|
knife("diff --name-status /").should_succeed ""
|
881
881
|
end
|
@@ -885,35 +885,35 @@ EOM
|
|
885
885
|
when_the_repository "is empty" do
|
886
886
|
it "knife upload does nothing" do
|
887
887
|
knife("upload /").should_succeed ""
|
888
|
-
knife("diff --name-status /").should_succeed
|
889
|
-
D\t/clients
|
890
|
-
D\t/cookbooks
|
891
|
-
D\t/data_bags
|
892
|
-
D\t/environments
|
893
|
-
D\t/nodes
|
894
|
-
D\t/roles
|
895
|
-
D\t/users
|
888
|
+
knife("diff --name-status /").should_succeed <<~EOM
|
889
|
+
D\t/clients
|
890
|
+
D\t/cookbooks
|
891
|
+
D\t/data_bags
|
892
|
+
D\t/environments
|
893
|
+
D\t/nodes
|
894
|
+
D\t/roles
|
895
|
+
D\t/users
|
896
896
|
EOM
|
897
897
|
end
|
898
898
|
|
899
899
|
it "knife upload --purge deletes nothing" do
|
900
|
-
knife("upload --purge /").should_fail
|
901
|
-
ERROR: /clients cannot be deleted.
|
902
|
-
ERROR: /cookbooks cannot be deleted.
|
903
|
-
ERROR: /data_bags cannot be deleted.
|
904
|
-
ERROR: /environments cannot be deleted.
|
905
|
-
ERROR: /nodes cannot be deleted.
|
906
|
-
ERROR: /roles cannot be deleted.
|
907
|
-
ERROR: /users cannot be deleted.
|
908
|
-
EOM
|
909
|
-
knife("diff --name-status /").should_succeed
|
910
|
-
D\t/clients
|
911
|
-
D\t/cookbooks
|
912
|
-
D\t/data_bags
|
913
|
-
D\t/environments
|
914
|
-
D\t/nodes
|
915
|
-
D\t/roles
|
916
|
-
D\t/users
|
900
|
+
knife("upload --purge /").should_fail <<~EOM
|
901
|
+
ERROR: /clients cannot be deleted.
|
902
|
+
ERROR: /cookbooks cannot be deleted.
|
903
|
+
ERROR: /data_bags cannot be deleted.
|
904
|
+
ERROR: /environments cannot be deleted.
|
905
|
+
ERROR: /nodes cannot be deleted.
|
906
|
+
ERROR: /roles cannot be deleted.
|
907
|
+
ERROR: /users cannot be deleted.
|
908
|
+
EOM
|
909
|
+
knife("diff --name-status /").should_succeed <<~EOM
|
910
|
+
D\t/clients
|
911
|
+
D\t/cookbooks
|
912
|
+
D\t/data_bags
|
913
|
+
D\t/environments
|
914
|
+
D\t/nodes
|
915
|
+
D\t/roles
|
916
|
+
D\t/users
|
917
917
|
EOM
|
918
918
|
end
|
919
919
|
|
@@ -922,7 +922,7 @@ EOM
|
|
922
922
|
cwd "."
|
923
923
|
end
|
924
924
|
it "knife upload with no parameters reports an error" do
|
925
|
-
knife("upload").should_fail "FATAL: You must specify at least one argument. If you want to upload everything in this directory, run \"knife upload .\"\n", :
|
925
|
+
knife("upload").should_fail "FATAL: You must specify at least one argument. If you want to upload everything in this directory, run \"knife upload .\"\n", stdout: /USAGE/
|
926
926
|
end
|
927
927
|
end
|
928
928
|
end
|
@@ -937,12 +937,12 @@ EOM
|
|
937
937
|
end
|
938
938
|
|
939
939
|
it "knife upload of one data bag item itself succeeds" do
|
940
|
-
knife("upload /data_bags/x/y.json").should_succeed
|
941
|
-
Created /data_bags/x
|
942
|
-
Created /data_bags/x/y.json
|
940
|
+
knife("upload /data_bags/x/y.json").should_succeed <<~EOM
|
941
|
+
Created /data_bags/x
|
942
|
+
Created /data_bags/x/y.json
|
943
943
|
EOM
|
944
|
-
knife("diff --name-status /data_bags").should_succeed
|
945
|
-
A\t/data_bags/x/z.json
|
944
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
945
|
+
A\t/data_bags/x/z.json
|
946
946
|
EOM
|
947
947
|
end
|
948
948
|
end
|
@@ -960,62 +960,62 @@ EOM
|
|
960
960
|
end
|
961
961
|
|
962
962
|
it "knife upload of the modified file succeeds" do
|
963
|
-
knife("upload /data_bags/x/modified.json").should_succeed
|
964
|
-
Updated /data_bags/x/modified.json
|
963
|
+
knife("upload /data_bags/x/modified.json").should_succeed <<~EOM
|
964
|
+
Updated /data_bags/x/modified.json
|
965
965
|
EOM
|
966
|
-
knife("diff --name-status /data_bags").should_succeed
|
967
|
-
D\t/data_bags/x/deleted.json
|
968
|
-
A\t/data_bags/x/added.json
|
966
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
967
|
+
D\t/data_bags/x/deleted.json
|
968
|
+
A\t/data_bags/x/added.json
|
969
969
|
EOM
|
970
970
|
end
|
971
971
|
it "knife upload of the unmodified file does nothing" do
|
972
972
|
knife("upload /data_bags/x/unmodified.json").should_succeed ""
|
973
|
-
knife("diff --name-status /data_bags").should_succeed
|
974
|
-
D\t/data_bags/x/deleted.json
|
975
|
-
M\t/data_bags/x/modified.json
|
976
|
-
A\t/data_bags/x/added.json
|
973
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
974
|
+
D\t/data_bags/x/deleted.json
|
975
|
+
M\t/data_bags/x/modified.json
|
976
|
+
A\t/data_bags/x/added.json
|
977
977
|
EOM
|
978
978
|
end
|
979
979
|
it "knife upload of the added file succeeds" do
|
980
|
-
knife("upload /data_bags/x/added.json").should_succeed
|
981
|
-
Created /data_bags/x/added.json
|
980
|
+
knife("upload /data_bags/x/added.json").should_succeed <<~EOM
|
981
|
+
Created /data_bags/x/added.json
|
982
982
|
EOM
|
983
|
-
knife("diff --name-status /data_bags").should_succeed
|
984
|
-
D\t/data_bags/x/deleted.json
|
985
|
-
M\t/data_bags/x/modified.json
|
983
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
984
|
+
D\t/data_bags/x/deleted.json
|
985
|
+
M\t/data_bags/x/modified.json
|
986
986
|
EOM
|
987
987
|
end
|
988
988
|
it "knife upload of the deleted file does nothing" do
|
989
989
|
knife("upload /data_bags/x/deleted.json").should_succeed ""
|
990
|
-
knife("diff --name-status /data_bags").should_succeed
|
991
|
-
D\t/data_bags/x/deleted.json
|
992
|
-
M\t/data_bags/x/modified.json
|
993
|
-
A\t/data_bags/x/added.json
|
990
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
991
|
+
D\t/data_bags/x/deleted.json
|
992
|
+
M\t/data_bags/x/modified.json
|
993
|
+
A\t/data_bags/x/added.json
|
994
994
|
EOM
|
995
995
|
end
|
996
996
|
it "knife upload --purge of the deleted file deletes it" do
|
997
|
-
knife("upload --purge /data_bags/x/deleted.json").should_succeed
|
998
|
-
Deleted extra entry /data_bags/x/deleted.json (purge is on)
|
997
|
+
knife("upload --purge /data_bags/x/deleted.json").should_succeed <<~EOM
|
998
|
+
Deleted extra entry /data_bags/x/deleted.json (purge is on)
|
999
999
|
EOM
|
1000
|
-
knife("diff --name-status /data_bags").should_succeed
|
1001
|
-
M\t/data_bags/x/modified.json
|
1002
|
-
A\t/data_bags/x/added.json
|
1000
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
1001
|
+
M\t/data_bags/x/modified.json
|
1002
|
+
A\t/data_bags/x/added.json
|
1003
1003
|
EOM
|
1004
1004
|
end
|
1005
1005
|
it "knife upload of the entire data bag uploads everything" do
|
1006
|
-
knife("upload /data_bags/x").should_succeed
|
1007
|
-
Created /data_bags/x/added.json
|
1008
|
-
Updated /data_bags/x/modified.json
|
1006
|
+
knife("upload /data_bags/x").should_succeed <<~EOM
|
1007
|
+
Created /data_bags/x/added.json
|
1008
|
+
Updated /data_bags/x/modified.json
|
1009
1009
|
EOM
|
1010
|
-
knife("diff --name-status /data_bags").should_succeed
|
1011
|
-
D\t/data_bags/x/deleted.json
|
1010
|
+
knife("diff --name-status /data_bags").should_succeed <<~EOM
|
1011
|
+
D\t/data_bags/x/deleted.json
|
1012
1012
|
EOM
|
1013
1013
|
end
|
1014
1014
|
it "knife upload --purge of the entire data bag uploads everything" do
|
1015
|
-
knife("upload --purge /data_bags/x").should_succeed
|
1016
|
-
Created /data_bags/x/added.json
|
1017
|
-
Updated /data_bags/x/modified.json
|
1018
|
-
Deleted extra entry /data_bags/x/deleted.json (purge is on)
|
1015
|
+
knife("upload --purge /data_bags/x").should_succeed <<~EOM
|
1016
|
+
Created /data_bags/x/added.json
|
1017
|
+
Updated /data_bags/x/modified.json
|
1018
|
+
Deleted extra entry /data_bags/x/deleted.json (purge is on)
|
1019
1019
|
EOM
|
1020
1020
|
knife("diff --name-status /data_bags").should_succeed ""
|
1021
1021
|
end
|
@@ -1024,21 +1024,21 @@ EOM
|
|
1024
1024
|
cwd "data_bags"
|
1025
1025
|
end
|
1026
1026
|
it "knife upload fails" do
|
1027
|
-
knife("upload").should_fail "FATAL: You must specify at least one argument. If you want to upload everything in this directory, run \"knife upload .\"\n", :
|
1027
|
+
knife("upload").should_fail "FATAL: You must specify at least one argument. If you want to upload everything in this directory, run \"knife upload .\"\n", stdout: /USAGE/
|
1028
1028
|
end
|
1029
1029
|
it "knife upload --purge . uploads everything" do
|
1030
|
-
knife("upload --purge .").should_succeed
|
1031
|
-
Created x/added.json
|
1032
|
-
Updated x/modified.json
|
1033
|
-
Deleted extra entry x/deleted.json (purge is on)
|
1030
|
+
knife("upload --purge .").should_succeed <<~EOM
|
1031
|
+
Created x/added.json
|
1032
|
+
Updated x/modified.json
|
1033
|
+
Deleted extra entry x/deleted.json (purge is on)
|
1034
1034
|
EOM
|
1035
1035
|
knife("diff --name-status /data_bags").should_succeed ""
|
1036
1036
|
end
|
1037
1037
|
it "knife upload --purge * uploads everything" do
|
1038
|
-
knife("upload --purge *").should_succeed
|
1039
|
-
Created x/added.json
|
1040
|
-
Updated x/modified.json
|
1041
|
-
Deleted extra entry x/deleted.json (purge is on)
|
1038
|
+
knife("upload --purge *").should_succeed <<~EOM
|
1039
|
+
Created x/added.json
|
1040
|
+
Updated x/modified.json
|
1041
|
+
Deleted extra entry x/deleted.json (purge is on)
|
1042
1042
|
EOM
|
1043
1043
|
knife("diff --name-status /data_bags").should_succeed ""
|
1044
1044
|
end
|
@@ -1070,15 +1070,15 @@ EOM
|
|
1070
1070
|
# technically we shouldn't have deleted missing files. But ... cookbooks
|
1071
1071
|
# are a special case.
|
1072
1072
|
it "knife upload of the cookbook itself succeeds" do
|
1073
|
-
knife("upload /cookbooks/x-1.0.0").should_succeed
|
1074
|
-
Updated /cookbooks/x-1.0.0
|
1073
|
+
knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM
|
1074
|
+
Updated /cookbooks/x-1.0.0
|
1075
1075
|
EOM
|
1076
1076
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1077
1077
|
end
|
1078
1078
|
|
1079
1079
|
it "knife upload --purge of the cookbook itself succeeds" do
|
1080
|
-
knife("upload /cookbooks/x-1.0.0").should_succeed
|
1081
|
-
Updated /cookbooks/x-1.0.0
|
1080
|
+
knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM
|
1081
|
+
Updated /cookbooks/x-1.0.0
|
1082
1082
|
EOM
|
1083
1083
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1084
1084
|
end
|
@@ -1090,8 +1090,8 @@ EOM
|
|
1090
1090
|
end
|
1091
1091
|
|
1092
1092
|
it "knife upload of the cookbook succeeds" do
|
1093
|
-
knife("upload /cookbooks/x-1.0.0").should_succeed
|
1094
|
-
Updated /cookbooks/x-1.0.0
|
1093
|
+
knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM
|
1094
|
+
Updated /cookbooks/x-1.0.0
|
1095
1095
|
EOM
|
1096
1096
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1097
1097
|
end
|
@@ -1105,8 +1105,8 @@ EOM
|
|
1105
1105
|
end
|
1106
1106
|
|
1107
1107
|
it "knife upload of the cookbook succeeds" do
|
1108
|
-
knife("upload /cookbooks/x-1.0.0").should_succeed
|
1109
|
-
Updated /cookbooks/x-1.0.0
|
1108
|
+
knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM
|
1109
|
+
Updated /cookbooks/x-1.0.0
|
1110
1110
|
EOM
|
1111
1111
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1112
1112
|
end
|
@@ -1126,13 +1126,13 @@ EOM
|
|
1126
1126
|
end
|
1127
1127
|
|
1128
1128
|
it "knife upload /cookbooks uploads the local version" do
|
1129
|
-
knife("diff --name-status /cookbooks").should_succeed
|
1130
|
-
M\t/cookbooks/x-1.0.0/onlyin1.0.0.rb
|
1131
|
-
D\t/cookbooks/x-1.0.1
|
1129
|
+
knife("diff --name-status /cookbooks").should_succeed <<~EOM
|
1130
|
+
M\t/cookbooks/x-1.0.0/onlyin1.0.0.rb
|
1131
|
+
D\t/cookbooks/x-1.0.1
|
1132
1132
|
EOM
|
1133
|
-
knife("upload --purge /cookbooks").should_succeed
|
1134
|
-
Updated /cookbooks/x-1.0.0
|
1135
|
-
Deleted extra entry /cookbooks/x-1.0.1 (purge is on)
|
1133
|
+
knife("upload --purge /cookbooks").should_succeed <<~EOM
|
1134
|
+
Updated /cookbooks/x-1.0.0
|
1135
|
+
Deleted extra entry /cookbooks/x-1.0.1 (purge is on)
|
1136
1136
|
EOM
|
1137
1137
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1138
1138
|
end
|
@@ -1144,9 +1144,9 @@ EOM
|
|
1144
1144
|
cookbook "x", "0.9.9", { "onlyin0.9.9.rb" => "hi" }
|
1145
1145
|
end
|
1146
1146
|
it "knife upload /cookbooks uploads the local version" do
|
1147
|
-
knife("upload --purge /cookbooks").should_succeed
|
1148
|
-
Updated /cookbooks/x-1.0.0
|
1149
|
-
Deleted extra entry /cookbooks/x-0.9.9 (purge is on)
|
1147
|
+
knife("upload --purge /cookbooks").should_succeed <<~EOM
|
1148
|
+
Updated /cookbooks/x-1.0.0
|
1149
|
+
Deleted extra entry /cookbooks/x-0.9.9 (purge is on)
|
1150
1150
|
EOM
|
1151
1151
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1152
1152
|
end
|
@@ -1158,13 +1158,13 @@ EOM
|
|
1158
1158
|
end
|
1159
1159
|
|
1160
1160
|
it "knife upload /cookbooks/x uploads the local version" do
|
1161
|
-
knife("diff --name-status /cookbooks").should_succeed
|
1162
|
-
D\t/cookbooks/x-1.0.1
|
1163
|
-
A\t/cookbooks/x-1.0.0
|
1161
|
+
knife("diff --name-status /cookbooks").should_succeed <<~EOM
|
1162
|
+
D\t/cookbooks/x-1.0.1
|
1163
|
+
A\t/cookbooks/x-1.0.0
|
1164
1164
|
EOM
|
1165
|
-
knife("upload --purge /cookbooks").should_succeed
|
1166
|
-
Created /cookbooks/x-1.0.0
|
1167
|
-
Deleted extra entry /cookbooks/x-1.0.1 (purge is on)
|
1165
|
+
knife("upload --purge /cookbooks").should_succeed <<~EOM
|
1166
|
+
Created /cookbooks/x-1.0.0
|
1167
|
+
Deleted extra entry /cookbooks/x-1.0.1 (purge is on)
|
1168
1168
|
EOM
|
1169
1169
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1170
1170
|
end
|
@@ -1176,9 +1176,9 @@ EOM
|
|
1176
1176
|
end
|
1177
1177
|
|
1178
1178
|
it "knife upload /cookbooks/x uploads the new version" do
|
1179
|
-
knife("upload --purge /cookbooks").should_succeed
|
1180
|
-
Created /cookbooks/x-1.0.0
|
1181
|
-
Deleted extra entry /cookbooks/x-0.9.9 (purge is on)
|
1179
|
+
knife("upload --purge /cookbooks").should_succeed <<~EOM
|
1180
|
+
Created /cookbooks/x-1.0.0
|
1181
|
+
Deleted extra entry /cookbooks/x-0.9.9 (purge is on)
|
1182
1182
|
EOM
|
1183
1183
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1184
1184
|
end
|
@@ -1250,8 +1250,8 @@ EOM
|
|
1250
1250
|
file "cookbooks/x-1.0.0/metadata.rb", cb_metadata("x", "1.0.0", "\nchef_version '~> 999.0'")
|
1251
1251
|
end
|
1252
1252
|
it "knife upload succeeds" do
|
1253
|
-
knife("upload /cookbooks/x-1.0.0").should_succeed
|
1254
|
-
Created /cookbooks/x-1.0.0
|
1253
|
+
knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM
|
1254
|
+
Created /cookbooks/x-1.0.0
|
1255
1255
|
EOM
|
1256
1256
|
knife("diff --name-status /cookbooks").should_succeed ""
|
1257
1257
|
end
|
@@ -1274,7 +1274,7 @@ EOM
|
|
1274
1274
|
end
|
1275
1275
|
end
|
1276
1276
|
|
1277
|
-
when_the_chef_server "is in Enterprise mode", :
|
1277
|
+
when_the_chef_server "is in Enterprise mode", osc_compat: false, single_org: false do
|
1278
1278
|
before do
|
1279
1279
|
user "foo", {}
|
1280
1280
|
user "bar", {}
|
@@ -1313,24 +1313,24 @@ EOM
|
|
1313
1313
|
end
|
1314
1314
|
|
1315
1315
|
it "knife upload / uploads everything" do
|
1316
|
-
knife("upload /").should_succeed
|
1317
|
-
Updated /acls/groups/blah.json
|
1318
|
-
Created /clients/x.json
|
1319
|
-
Created /containers/x.json
|
1320
|
-
Created /cookbook_artifacts/x-1x1
|
1321
|
-
Created /cookbooks/x
|
1322
|
-
Created /data_bags/x
|
1323
|
-
Created /data_bags/x/y.json
|
1324
|
-
Created /environments/x.json
|
1325
|
-
Created /groups/x.json
|
1326
|
-
Updated /invitations.json
|
1327
|
-
Updated /members.json
|
1328
|
-
Created /nodes/x.json
|
1329
|
-
Updated /org.json
|
1330
|
-
Created /policies/blah-1.0.0.json
|
1331
|
-
Created /policies/x-1.0.0.json
|
1332
|
-
Created /policy_groups/x.json
|
1333
|
-
Created /roles/x.json
|
1316
|
+
knife("upload /").should_succeed <<~EOM
|
1317
|
+
Updated /acls/groups/blah.json
|
1318
|
+
Created /clients/x.json
|
1319
|
+
Created /containers/x.json
|
1320
|
+
Created /cookbook_artifacts/x-1x1
|
1321
|
+
Created /cookbooks/x
|
1322
|
+
Created /data_bags/x
|
1323
|
+
Created /data_bags/x/y.json
|
1324
|
+
Created /environments/x.json
|
1325
|
+
Created /groups/x.json
|
1326
|
+
Updated /invitations.json
|
1327
|
+
Updated /members.json
|
1328
|
+
Created /nodes/x.json
|
1329
|
+
Updated /org.json
|
1330
|
+
Created /policies/blah-1.0.0.json
|
1331
|
+
Created /policies/x-1.0.0.json
|
1332
|
+
Created /policy_groups/x.json
|
1333
|
+
Created /roles/x.json
|
1334
1334
|
EOM
|
1335
1335
|
expect(api.get("association_requests").map { |a| a["username"] }).to eq([ "foo" ])
|
1336
1336
|
expect(api.get("users").map { |a| a["user"]["username"] }).to eq([ "bar" ])
|
@@ -1366,8 +1366,8 @@ EOM
|
|
1366
1366
|
end
|
1367
1367
|
|
1368
1368
|
it "knife upload makes no changes" do
|
1369
|
-
knife("upload /").should_succeed
|
1370
|
-
Updated /acls/groups/blah.json
|
1369
|
+
knife("upload /").should_succeed <<~EOM
|
1370
|
+
Updated /acls/groups/blah.json
|
1371
1371
|
EOM
|
1372
1372
|
end
|
1373
1373
|
end
|
@@ -1378,8 +1378,8 @@ EOM
|
|
1378
1378
|
end
|
1379
1379
|
|
1380
1380
|
it "should fail because policies are not updateable" do
|
1381
|
-
knife("upload /policies/x-1.0.0.json").should_fail
|
1382
|
-
ERROR: /policies/x-1.0.0.json cannot be updated: policy revisions are immutable once uploaded. If you want to change the policy, create a new revision with your changes.
|
1381
|
+
knife("upload /policies/x-1.0.0.json").should_fail <<~EOM
|
1382
|
+
ERROR: /policies/x-1.0.0.json cannot be updated: policy revisions are immutable once uploaded. If you want to change the policy, create a new revision with your changes.
|
1383
1383
|
EOM
|
1384
1384
|
end
|
1385
1385
|
end
|
@@ -1390,8 +1390,8 @@ EOM
|
|
1390
1390
|
end
|
1391
1391
|
|
1392
1392
|
it "should fail because cookbook_artifacts cannot be updated" do
|
1393
|
-
knife("upload /cookbook_artifacts/x-1x1").should_fail
|
1394
|
-
ERROR: /cookbook_artifacts/x-1x1 cannot be updated: cookbook artifacts are immutable once uploaded.
|
1393
|
+
knife("upload /cookbook_artifacts/x-1x1").should_fail <<~EOM
|
1394
|
+
ERROR: /cookbook_artifacts/x-1x1 cannot be updated: cookbook artifacts are immutable once uploaded.
|
1395
1395
|
EOM
|
1396
1396
|
end
|
1397
1397
|
end
|
@@ -1420,20 +1420,20 @@ EOM
|
|
1420
1420
|
end
|
1421
1421
|
|
1422
1422
|
it "knife upload updates everything" do
|
1423
|
-
knife("upload /").should_succeed
|
1424
|
-
Updated /acls/groups/blah.json
|
1425
|
-
Updated /clients/x.json
|
1426
|
-
Updated /cookbooks/x
|
1427
|
-
Updated /data_bags/x/y.json
|
1428
|
-
Updated /environments/x.json
|
1429
|
-
Updated /groups/x.json
|
1430
|
-
Updated /invitations.json
|
1431
|
-
Updated /members.json
|
1432
|
-
Updated /nodes/x.json
|
1433
|
-
Updated /org.json
|
1434
|
-
Created /policies/blah-1.0.0.json
|
1435
|
-
Updated /policy_groups/x.json
|
1436
|
-
Updated /roles/x.json
|
1423
|
+
knife("upload /").should_succeed <<~EOM
|
1424
|
+
Updated /acls/groups/blah.json
|
1425
|
+
Updated /clients/x.json
|
1426
|
+
Updated /cookbooks/x
|
1427
|
+
Updated /data_bags/x/y.json
|
1428
|
+
Updated /environments/x.json
|
1429
|
+
Updated /groups/x.json
|
1430
|
+
Updated /invitations.json
|
1431
|
+
Updated /members.json
|
1432
|
+
Updated /nodes/x.json
|
1433
|
+
Updated /org.json
|
1434
|
+
Created /policies/blah-1.0.0.json
|
1435
|
+
Updated /policy_groups/x.json
|
1436
|
+
Updated /roles/x.json
|
1437
1437
|
EOM
|
1438
1438
|
knife("diff --name-status --diff-filter=AMT /").should_succeed ""
|
1439
1439
|
end
|
@@ -1472,7 +1472,7 @@ EOM
|
|
1472
1472
|
end
|
1473
1473
|
|
1474
1474
|
it "knife upload / emits a warning for bar and invites foobar" do
|
1475
|
-
knife("upload /").should_succeed "Updated /invitations.json\n", :
|
1475
|
+
knife("upload /").should_succeed "Updated /invitations.json\n", stderr: "WARN: Could not invite bar to organization foo: User bar is already in organization foo\n"
|
1476
1476
|
expect(api.get("association_requests").map { |a| a["username"] }).to eq(%w{foo foobar})
|
1477
1477
|
expect(api.get("users").map { |a| a["user"]["username"] }).to eq([ "bar" ])
|
1478
1478
|
end
|