chef 15.11.3-universal-mingw32 → 16.1.16-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/Gemfile +3 -7
- data/README.md +1 -1
- data/Rakefile +44 -16
- data/chef.gemspec +6 -4
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/action_collection.rb +16 -5
- data/lib/chef/application.rb +33 -54
- data/lib/chef/application/apply.rb +18 -1
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +6 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -3
- data/lib/chef/client.rb +16 -14
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +45 -22
- data/lib/chef/cookbook_loader.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +38 -3
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +4 -0
- data/lib/chef/digester.rb +4 -4
- data/lib/chef/dist.rb +8 -0
- data/lib/chef/dsl/chef_vault.rb +84 -0
- data/lib/chef/dsl/declare_resource.rb +7 -5
- data/lib/chef/dsl/platform_introspection.rb +3 -2
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +2 -4
- data/lib/chef/knife/acl_add.rb +57 -0
- data/lib/chef/knife/acl_base.rb +183 -0
- data/lib/chef/knife/acl_bulk_add.rb +78 -0
- data/lib/chef/knife/acl_bulk_remove.rb +83 -0
- data/lib/chef/knife/acl_remove.rb +62 -0
- data/lib/chef/knife/acl_show.rb +56 -0
- data/lib/chef/knife/bootstrap.rb +84 -90
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +2 -2
- data/lib/chef/knife/bootstrap/client_builder.rb +2 -2
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +11 -11
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +12 -12
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- data/lib/chef/knife/core/node_presenter.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/ui.rb +17 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +44 -42
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- data/lib/chef/knife/group_add.rb +55 -0
- data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
- data/lib/chef/knife/group_destroy.rb +53 -0
- data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
- data/lib/chef/knife/group_remove.rb +56 -0
- data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
- data/lib/chef/knife/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -31
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +2 -3
- data/lib/chef/knife/supermarket_list.rb +1 -2
- data/lib/chef/knife/supermarket_search.rb +1 -2
- data/lib/chef/knife/supermarket_share.rb +1 -2
- data/lib/chef/knife/supermarket_show.rb +1 -2
- data/lib/chef/knife/supermarket_unshare.rb +1 -2
- data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
- data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
- data/lib/chef/knife/user_invite_list.rb +34 -0
- data/lib/chef/knife/user_invite_rescind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +16 -2
- data/lib/chef/mixin/shell_out.rb +1 -5
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node/mixin/immutablize_array.rb +4 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
- data/lib/chef/node_map.rb +5 -31
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +24 -6
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +3 -3
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +3 -9
- data/lib/chef/provider/file.rb +6 -6
- data/lib/chef/provider/git.rb +84 -27
- data/lib/chef/provider/group.rb +4 -4
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/launchd.rb +45 -64
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +5 -6
- data/lib/chef/provider/package/chocolatey.rb +1 -3
- data/lib/chef/provider/package/dnf.rb +66 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +85 -26
- data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
- data/lib/chef/provider/package/dnf/version.rb +5 -1
- data/lib/chef/provider/package/dpkg.rb +1 -1
- data/lib/chef/provider/package/freebsd/base.rb +2 -1
- data/lib/chef/provider/package/homebrew.rb +107 -43
- data/lib/chef/provider/package/macports.rb +0 -2
- data/lib/chef/provider/package/msu.rb +4 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/portage.rb +1 -0
- data/lib/chef/provider/package/powershell.rb +1 -1
- data/lib/chef/provider/package/rubygems.rb +30 -3
- data/lib/chef/provider/package/windows.rb +29 -53
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +1 -9
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +5 -11
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +5 -5
- data/lib/chef/provider/remote_file/ftp.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +2 -1
- data/lib/chef/provider/remote_file/sftp.rb +3 -2
- data/lib/chef/provider/route.rb +5 -3
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/provider/service.rb +8 -8
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +30 -28
- data/lib/chef/provider/service/macosx.rb +16 -10
- data/lib/chef/provider/service/systemd.rb +12 -12
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +5 -11
- data/lib/chef/provider/subversion.rb +25 -5
- data/lib/chef/provider/systemd_unit.rb +26 -25
- data/lib/chef/provider/user.rb +6 -6
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/mac.rb +20 -15
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/provider/windows_env.rb +3 -3
- data/lib/chef/provider/windows_script.rb +2 -2
- data/lib/chef/provider/windows_task.rb +10 -10
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +44 -57
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +210 -0
- data/lib/chef/resource/apt_package.rb +33 -3
- data/lib/chef/resource/apt_preference.rb +103 -7
- data/lib/chef/resource/apt_repository.rb +357 -18
- data/lib/chef/resource/apt_update.rb +58 -5
- data/lib/chef/resource/archive_file.rb +6 -5
- data/lib/chef/resource/bash.rb +3 -1
- data/lib/chef/resource/batch.rb +1 -1
- data/lib/chef/resource/bff_package.rb +10 -2
- data/lib/chef/resource/breakpoint.rb +1 -2
- data/lib/chef/resource/build_essential.rb +49 -51
- data/lib/chef/resource/cab_package.rb +9 -2
- data/lib/chef/resource/chef_client_cron.rb +228 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +201 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +180 -0
- data/lib/chef/resource/chef_gem.rb +15 -18
- data/lib/chef/resource/chef_handler.rb +5 -4
- data/lib/chef/resource/chef_sleep.rb +7 -5
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +8 -4
- data/lib/chef/resource/chocolatey_feature.rb +7 -4
- data/lib/chef/resource/chocolatey_package.rb +7 -4
- data/lib/chef/resource/chocolatey_source.rb +7 -4
- data/lib/chef/resource/cookbook_file.rb +4 -3
- data/lib/chef/resource/cron.rb +34 -80
- data/lib/chef/resource/cron_access.rb +10 -6
- data/lib/chef/resource/cron_d.rb +44 -95
- data/lib/chef/resource/csh.rb +3 -1
- data/lib/chef/resource/directory.rb +3 -3
- data/lib/chef/resource/dmg_package.rb +22 -19
- data/lib/chef/resource/dnf_package.rb +3 -4
- data/lib/chef/resource/dpkg_package.rb +3 -2
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +15 -14
- data/lib/chef/resource/file.rb +14 -9
- data/lib/chef/resource/freebsd_package.rb +3 -2
- data/lib/chef/resource/gem_package.rb +19 -11
- data/lib/chef/resource/group.rb +5 -2
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +3 -2
- data/lib/chef/resource/homebrew_package.rb +5 -3
- data/lib/chef/resource/homebrew_tap.rb +3 -2
- data/lib/chef/resource/hostname.rb +26 -20
- data/lib/chef/resource/http_request.rb +1 -2
- data/lib/chef/resource/ifconfig.rb +8 -8
- data/lib/chef/resource/ips_package.rb +11 -3
- data/lib/chef/resource/kernel_module.rb +30 -30
- data/lib/chef/resource/ksh.rb +3 -1
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/link.rb +5 -27
- data/lib/chef/resource/locale.rb +60 -26
- data/lib/chef/resource/log.rb +13 -2
- data/lib/chef/resource/lwrp_base.rb +1 -1
- data/lib/chef/resource/macos_userdefaults.rb +18 -10
- data/lib/chef/resource/macosx_service.rb +3 -2
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +63 -3
- data/lib/chef/resource/mount.rb +4 -1
- data/lib/chef/resource/msu_package.rb +19 -2
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +20 -4
- data/lib/chef/resource/ohai_hint.rb +4 -13
- data/lib/chef/resource/openbsd_package.rb +10 -2
- data/lib/chef/resource/openssl_dhparam.rb +11 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +24 -2
- data/lib/chef/resource/openssl_ec_public_key.rb +22 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +21 -2
- data/lib/chef/resource/openssl_rsa_public_key.rb +23 -2
- data/lib/chef/resource/openssl_x509_certificate.rb +38 -2
- data/lib/chef/resource/openssl_x509_crl.rb +13 -2
- data/lib/chef/resource/openssl_x509_request.rb +38 -2
- data/lib/chef/resource/osx_profile.rb +4 -3
- data/lib/chef/resource/package.rb +3 -2
- data/lib/chef/resource/pacman_package.rb +3 -2
- data/lib/chef/resource/paludis_package.rb +13 -4
- data/lib/chef/resource/perl.rb +3 -1
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +14 -4
- data/lib/chef/resource/powershell_package.rb +2 -4
- data/lib/chef/resource/powershell_package_source.rb +4 -2
- data/lib/chef/resource/powershell_script.rb +8 -18
- data/lib/chef/resource/python.rb +3 -1
- data/lib/chef/resource/reboot.rb +1 -2
- data/lib/chef/resource/registry_key.rb +2 -3
- data/lib/chef/resource/remote_directory.rb +3 -1
- data/lib/chef/resource/remote_file.rb +3 -2
- data/lib/chef/resource/rhsm_errata.rb +1 -4
- data/lib/chef/resource/rhsm_errata_level.rb +1 -2
- data/lib/chef/resource/rhsm_register.rb +3 -3
- data/lib/chef/resource/rhsm_repo.rb +4 -3
- data/lib/chef/resource/rhsm_subscription.rb +5 -4
- data/lib/chef/resource/route.rb +6 -2
- data/lib/chef/resource/rpm_package.rb +13 -3
- data/lib/chef/resource/ruby.rb +3 -1
- data/lib/chef/resource/ruby_block.rb +2 -5
- data/lib/chef/resource/scm/_scm.rb +49 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +10 -7
- data/lib/chef/resource/script.rb +7 -4
- data/lib/chef/resource/service.rb +7 -8
- data/lib/chef/resource/smartos_package.rb +10 -2
- data/lib/chef/resource/snap_package.rb +4 -2
- data/lib/chef/resource/solaris_package.rb +10 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +11 -11
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -2
- data/lib/chef/resource/support/ulimit.erb +41 -0
- data/lib/chef/resource/swap_file.rb +7 -5
- data/lib/chef/resource/sysctl.rb +63 -4
- data/lib/chef/resource/systemd_unit.rb +6 -4
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +8 -19
- data/lib/chef/resource/user.rb +3 -5
- data/lib/chef/resource/user/aix_user.rb +0 -2
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +0 -2
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user/pw_user.rb +0 -2
- data/lib/chef/resource/user/solaris_user.rb +0 -2
- data/lib/chef/resource/user/windows_user.rb +0 -2
- data/lib/chef/resource/user_ulimit.rb +116 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +20 -7
- data/lib/chef/resource/windows_auto_run.rb +2 -3
- data/lib/chef/resource/windows_certificate.rb +3 -3
- data/lib/chef/resource/windows_dfs_folder.rb +1 -2
- data/lib/chef/resource/windows_dfs_namespace.rb +1 -2
- data/lib/chef/resource/windows_dfs_server.rb +2 -3
- data/lib/chef/resource/windows_dns_record.rb +0 -1
- data/lib/chef/resource/windows_dns_zone.rb +0 -1
- data/lib/chef/resource/windows_env.rb +12 -4
- data/lib/chef/resource/windows_feature.rb +59 -4
- data/lib/chef/resource/windows_feature_dism.rb +24 -24
- data/lib/chef/resource/windows_feature_powershell.rb +44 -78
- data/lib/chef/resource/windows_firewall_rule.rb +121 -8
- data/lib/chef/resource/windows_font.rb +10 -2
- data/lib/chef/resource/windows_package.rb +76 -7
- data/lib/chef/resource/windows_pagefile.rb +31 -4
- data/lib/chef/resource/windows_path.rb +18 -2
- data/lib/chef/resource/windows_printer.rb +26 -7
- data/lib/chef/resource/windows_printer_port.rb +29 -2
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +119 -0
- data/lib/chef/resource/windows_service.rb +46 -32
- data/lib/chef/resource/windows_share.rb +22 -6
- data/lib/chef/resource/windows_shortcut.rb +13 -3
- data/lib/chef/resource/windows_task.rb +129 -16
- data/lib/chef/resource/windows_uac.rb +20 -2
- data/lib/chef/resource/windows_user_privilege.rb +199 -0
- data/lib/chef/resource/windows_workgroup.rb +19 -4
- data/lib/chef/resource/yum_package.rb +91 -7
- data/lib/chef/resource/yum_repository.rb +30 -12
- data/lib/chef/resource/zypper_package.rb +32 -5
- data/lib/chef/resource/zypper_repository.rb +19 -6
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +3 -2
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/scan_access_control.rb +1 -1
- data/lib/chef/shell.rb +22 -0
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/error.rb +3 -1
- data/lib/chef/win32/api/file.rb +1 -1
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +1 -9
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/security.rb +40 -2
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +23 -19
- data/spec/functional/resource/cron_spec.rb +10 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +1 -1
- data/spec/functional/resource/launchd_spec.rb +232 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/msu_package_spec.rb +5 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +4 -4
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -1
- data/spec/functional/shell_spec.rb +1 -1
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +0 -6
- data/spec/functional/win32/security_spec.rb +22 -0
- data/spec/integration/client/client_spec.rb +123 -2
- data/spec/integration/knife/cookbook_show_spec.rb +28 -26
- data/spec/integration/knife/data_bag_show_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +34 -6
- data/spec/integration/knife/redirection_spec.rb +2 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +3 -3
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +49 -20
- data/spec/integration/recipes/notifying_block_spec.rb +8 -5
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +45 -143
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -1
- data/spec/integration/recipes/resource_load_spec.rb +133 -12
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/spec_helper.rb +18 -3
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
- data/spec/support/platform_helpers.rb +2 -20
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/http.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +3 -16
- data/spec/support/shared/integration/knife_support.rb +9 -6
- data/spec/support/shared/unit/mock_shellout.rb +1 -1
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- data/spec/unit/application/apply_spec.rb +3 -0
- data/spec/unit/application/client_spec.rb +5 -1
- data/spec/unit/application_spec.rb +1 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -2
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_collector_spec.rb +39 -18
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
- data/spec/unit/knife/bootstrap_spec.rb +20 -38
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +9 -63
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/ssh_spec.rb +8 -111
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/shell_out_spec.rb +25 -31
- data/spec/unit/node/attribute_spec.rb +3 -3
- data/spec/unit/node_spec.rb +24 -0
- data/spec/unit/platform/query_helpers_spec.rb +0 -143
- data/spec/unit/property/state_spec.rb +12 -7
- data/spec/unit/property/validation_spec.rb +25 -1
- data/spec/unit/property_spec.rb +12 -9
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +34 -36
- data/spec/unit/provider/apt_update_spec.rb +12 -11
- data/spec/unit/provider/cookbook_file_spec.rb +4 -4
- data/spec/unit/provider/cron_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +4 -15
- data/spec/unit/provider/file_spec.rb +4 -4
- data/spec/unit/provider/git_spec.rb +41 -1
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/launchd_spec.rb +8 -50
- data/spec/unit/provider/link_spec.rb +0 -1
- data/spec/unit/provider/log_spec.rb +3 -3
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +3 -2
- data/spec/unit/provider/package/rubygems_spec.rb +211 -26
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/powershell_script_spec.rb +21 -61
- data/spec/unit/provider/remote_file_spec.rb +3 -4
- data/spec/unit/provider/service/debian_service_spec.rb +34 -13
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +17 -17
- data/spec/unit/provider_resolver_spec.rb +4 -4
- data/spec/unit/recipe_spec.rb +68 -0
- data/spec/unit/resource/alternatives_spec.rb +120 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -18
- data/spec/unit/resource/apt_repository_spec.rb +0 -18
- data/spec/unit/resource/apt_update_spec.rb +0 -18
- data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
- data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
- data/spec/unit/resource/cron_d_spec.rb +6 -48
- data/spec/unit/resource/cron_spec.rb +4 -10
- data/spec/unit/resource/gem_package_spec.rb +3 -3
- data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
- data/spec/unit/resource/link_spec.rb +0 -4
- data/spec/unit/resource/locale_spec.rb +0 -34
- data/spec/unit/resource/msu_package_spec.rb +4 -0
- data/spec/unit/resource/ohai_spec.rb +56 -2
- data/spec/unit/resource/plist_spec.rb +130 -0
- data/spec/unit/resource/powershell_script_spec.rb +0 -5
- data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
- data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
- data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
- data/spec/unit/resource/service_spec.rb +4 -0
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/user_ulimit_spec.rb +53 -0
- data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +2 -17
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +14 -0
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource_reporter_spec.rb +2 -6
- data/spec/unit/resource_spec.rb +10 -3
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/win32/registry_spec.rb +1 -1
- data/tasks/rspec.rb +6 -14
- metadata +92 -37
- data/lib/chef/dsl/core.rb +0 -52
- data/lib/chef/knife/cookbook_site_share.rb +0 -41
- data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
- data/lib/chef/provider/apt_preference.rb +0 -93
- data/lib/chef/provider/apt_repository.rb +0 -358
- data/lib/chef/provider/apt_update.rb +0 -79
- data/lib/chef/provider/log.rb +0 -43
- data/lib/chef/provider/mdadm.rb +0 -85
- data/lib/chef/provider/ohai.rb +0 -45
- data/lib/chef/resource/git.rb +0 -37
- data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -382,7 +382,7 @@ describe Chef::Knife::Bootstrap do
|
|
382
382
|
k
|
383
383
|
end
|
384
384
|
|
385
|
-
let(:options) { ["--bootstrap-no-proxy", setting
|
385
|
+
let(:options) { ["--bootstrap-no-proxy", setting] }
|
386
386
|
|
387
387
|
let(:template_file) { File.expand_path(File.join(CHEF_SPEC_DATA, "bootstrap", "no_proxy.erb")) }
|
388
388
|
|
@@ -518,6 +518,7 @@ describe Chef::Knife::Bootstrap do
|
|
518
518
|
|
519
519
|
before do
|
520
520
|
Chef::Config[:knife][:bootstrap_template] = template_file
|
521
|
+
knife.merge_configs
|
521
522
|
end
|
522
523
|
|
523
524
|
let(:rendered_template) do
|
@@ -530,7 +531,6 @@ describe Chef::Knife::Bootstrap do
|
|
530
531
|
end
|
531
532
|
|
532
533
|
it "renders 'fips true'" do
|
533
|
-
Chef::Config[:fips] = true
|
534
534
|
expect(rendered_template).to match("fips")
|
535
535
|
end
|
536
536
|
end
|
@@ -617,6 +617,7 @@ describe Chef::Knife::Bootstrap do
|
|
617
617
|
allow(knife).to receive(:host_descriptor).and_return host_descriptor
|
618
618
|
if knife_connection_protocol
|
619
619
|
Chef::Config[:knife][:connection_protocol] = knife_connection_protocol
|
620
|
+
knife.merge_configs
|
620
621
|
end
|
621
622
|
end
|
622
623
|
|
@@ -827,6 +828,7 @@ describe Chef::Knife::Bootstrap do
|
|
827
828
|
before do
|
828
829
|
# Set everything to easily identifiable and obviously fake values
|
829
830
|
# to verify that Chef::Config is being sourced instead of knife.config
|
831
|
+
knife.config = {}
|
830
832
|
Chef::Config[:knife][:max_wait] = 9999
|
831
833
|
Chef::Config[:knife][:winrm_user] = "winbob"
|
832
834
|
Chef::Config[:knife][:winrm_port] = 9999
|
@@ -841,21 +843,7 @@ describe Chef::Knife::Bootstrap do
|
|
841
843
|
Chef::Config[:knife][:winrm_ssl_peer_fingerprint] = "ABCDEF"
|
842
844
|
end
|
843
845
|
|
844
|
-
context "and unsupported Chef::Config options are given in Chef::Config, not in CLI" do
|
845
|
-
before do
|
846
|
-
Chef::Config[:knife][:connection_password] = "blah"
|
847
|
-
Chef::Config[:knife][:winrm_password] = "blah"
|
848
|
-
end
|
849
|
-
it "does not include the corresponding option in the connection options" do
|
850
|
-
expect(knife.connection_opts.key?(:password)).to eq false
|
851
|
-
end
|
852
|
-
end
|
853
|
-
|
854
846
|
context "and no CLI options have been given" do
|
855
|
-
before do
|
856
|
-
knife.config = {}
|
857
|
-
knife.merge_configs
|
858
|
-
end
|
859
847
|
let(:expected_result) do
|
860
848
|
{
|
861
849
|
logger: Chef::Log, # not configurable
|
@@ -875,6 +863,7 @@ describe Chef::Knife::Bootstrap do
|
|
875
863
|
end
|
876
864
|
|
877
865
|
it "generates a config hash using the Chef::Config values" do
|
866
|
+
knife.merge_configs
|
878
867
|
expect(knife.connection_opts).to match expected_result
|
879
868
|
end
|
880
869
|
|
@@ -886,7 +875,7 @@ describe Chef::Knife::Bootstrap do
|
|
886
875
|
logger: Chef::Log, # not configurable
|
887
876
|
ca_trust_path: "no trust",
|
888
877
|
max_wait_until_ready: 9999,
|
889
|
-
operation_timeout:
|
878
|
+
operation_timeout: 9999,
|
890
879
|
ssl_peer_fingerprint: "ABCDEF",
|
891
880
|
winrm_transport: "kerberos",
|
892
881
|
winrm_basic_auth_only: true,
|
@@ -906,10 +895,10 @@ describe Chef::Knife::Bootstrap do
|
|
906
895
|
knife.config[:connection_port] = 12
|
907
896
|
knife.config[:winrm_port] = "13" # indirectly verify we're not looking for the wrong CLI flag
|
908
897
|
knife.config[:connection_password] = "lobster"
|
909
|
-
knife.merge_configs
|
910
898
|
end
|
911
899
|
|
912
900
|
it "generates a config hash using the CLI options when available and falling back to Chef::Config values" do
|
901
|
+
knife.merge_configs
|
913
902
|
expect(knife.connection_opts).to match expected_result
|
914
903
|
end
|
915
904
|
end
|
@@ -956,6 +945,7 @@ describe Chef::Knife::Bootstrap do
|
|
956
945
|
}
|
957
946
|
end
|
958
947
|
it "generates a config hash using the CLI options and pulling nothing from Chef::Config" do
|
948
|
+
knife.merge_configs
|
959
949
|
expect(knife.connection_opts).to match expected_result
|
960
950
|
end
|
961
951
|
end
|
@@ -965,7 +955,6 @@ describe Chef::Knife::Bootstrap do
|
|
965
955
|
before do
|
966
956
|
# We will use knife's actual config since these tests
|
967
957
|
# have assumptions based on CLI default values
|
968
|
-
knife.merge_configs
|
969
958
|
end
|
970
959
|
let(:expected_result) do
|
971
960
|
{
|
@@ -979,6 +968,7 @@ describe Chef::Knife::Bootstrap do
|
|
979
968
|
}
|
980
969
|
end
|
981
970
|
it "populates appropriate defaults" do
|
971
|
+
knife.merge_configs
|
982
972
|
expect(knife.connection_opts).to match expected_result
|
983
973
|
end
|
984
974
|
end
|
@@ -992,6 +982,7 @@ describe Chef::Knife::Bootstrap do
|
|
992
982
|
before do
|
993
983
|
# Set everything to easily identifiable and obviously fake values
|
994
984
|
# to verify that Chef::Config is being sourced instead of knife.config
|
985
|
+
knife.config = {}
|
995
986
|
Chef::Config[:knife][:max_wait] = 9999
|
996
987
|
Chef::Config[:knife][:session_timeout] = 9999
|
997
988
|
Chef::Config[:knife][:ssh_user] = "sshbob"
|
@@ -1004,10 +995,6 @@ describe Chef::Knife::Bootstrap do
|
|
1004
995
|
end
|
1005
996
|
|
1006
997
|
context "and no CLI options have been given" do
|
1007
|
-
before do
|
1008
|
-
knife.config = {}
|
1009
|
-
knife.merge_configs
|
1010
|
-
end
|
1011
998
|
let(:expected_result) do
|
1012
999
|
{
|
1013
1000
|
logger: Chef::Log, # not configurable
|
@@ -1021,13 +1008,14 @@ describe Chef::Knife::Bootstrap do
|
|
1021
1008
|
keys_only: true,
|
1022
1009
|
key_files: ["/identity.pem", "/gateway.pem"],
|
1023
1010
|
sudo: false,
|
1024
|
-
verify_host_key:
|
1011
|
+
verify_host_key: "always",
|
1025
1012
|
port: 9999,
|
1026
1013
|
non_interactive: true,
|
1027
1014
|
}
|
1028
1015
|
end
|
1029
1016
|
|
1030
1017
|
it "generates a correct config hash using the Chef::Config values" do
|
1018
|
+
knife.merge_configs
|
1031
1019
|
expect(knife.connection_opts).to match expected_result
|
1032
1020
|
end
|
1033
1021
|
end
|
@@ -1041,6 +1029,7 @@ describe Chef::Knife::Bootstrap do
|
|
1041
1029
|
Chef::Config[:knife][:ssh_forward_agent] = "blah"
|
1042
1030
|
end
|
1043
1031
|
it "does not include the corresponding option in the connection options" do
|
1032
|
+
knife.merge_configs
|
1044
1033
|
expect(knife.connection_opts.key?(:password)).to eq false
|
1045
1034
|
expect(knife.connection_opts.key?(:ssh_forward_agent)).to eq false
|
1046
1035
|
expect(knife.connection_opts.key?(:use_sudo)).to eq false
|
@@ -1050,6 +1039,7 @@ describe Chef::Knife::Bootstrap do
|
|
1050
1039
|
|
1051
1040
|
context "and some CLI options have been given" do
|
1052
1041
|
before do
|
1042
|
+
knife.config = {}
|
1053
1043
|
knife.config[:connection_user] = "sshalice"
|
1054
1044
|
knife.config[:connection_port] = 12
|
1055
1045
|
knife.config[:ssh_port] = "13" # canary to indirectly verify we're not looking for the wrong CLI flag
|
@@ -1059,7 +1049,6 @@ describe Chef::Knife::Bootstrap do
|
|
1059
1049
|
knife.config[:use_sudo] = true
|
1060
1050
|
knife.config[:use_sudo_pasword] = true
|
1061
1051
|
knife.config[:ssh_forward_agent] = true
|
1062
|
-
knife.merge_configs
|
1063
1052
|
end
|
1064
1053
|
|
1065
1054
|
let(:expected_result) do
|
@@ -1076,19 +1065,21 @@ describe Chef::Knife::Bootstrap do
|
|
1076
1065
|
keys_only: false, # implied false from config password present
|
1077
1066
|
key_files: ["/identity.pem", "/gateway.pem"], # Config
|
1078
1067
|
sudo: true, # ccli
|
1079
|
-
verify_host_key:
|
1068
|
+
verify_host_key: "always", # Config
|
1080
1069
|
port: 12, # cli
|
1081
1070
|
non_interactive: true,
|
1082
1071
|
}
|
1083
1072
|
end
|
1084
1073
|
|
1085
1074
|
it "generates a config hash using the CLI options when available and falling back to Chef::Config values" do
|
1075
|
+
knife.merge_configs
|
1086
1076
|
expect(knife.connection_opts).to match expected_result
|
1087
1077
|
end
|
1088
1078
|
end
|
1089
1079
|
|
1090
1080
|
context "and all CLI options have been given" do
|
1091
1081
|
before do
|
1082
|
+
knife.config = {}
|
1092
1083
|
knife.config[:max_wait] = 150
|
1093
1084
|
knife.config[:session_timeout] = 120
|
1094
1085
|
knife.config[:connection_user] = "sshroot"
|
@@ -1133,6 +1124,7 @@ describe Chef::Knife::Bootstrap do
|
|
1133
1124
|
}
|
1134
1125
|
end
|
1135
1126
|
it "generates a config hash using the CLI options and pulling nothing from Chef::Config" do
|
1127
|
+
knife.merge_configs
|
1136
1128
|
expect(knife.connection_opts).to match expected_result
|
1137
1129
|
end
|
1138
1130
|
end
|
@@ -1141,7 +1133,7 @@ describe Chef::Knife::Bootstrap do
|
|
1141
1133
|
before do
|
1142
1134
|
# We will use knife's actual config since these tests
|
1143
1135
|
# have assumptions based on CLI default values
|
1144
|
-
|
1136
|
+
config = {}
|
1145
1137
|
end
|
1146
1138
|
|
1147
1139
|
let(:expected_result) do
|
@@ -1157,6 +1149,7 @@ describe Chef::Knife::Bootstrap do
|
|
1157
1149
|
}
|
1158
1150
|
end
|
1159
1151
|
it "populates appropriate defaults" do
|
1152
|
+
knife.merge_configs
|
1160
1153
|
expect(knife.connection_opts).to match expected_result
|
1161
1154
|
end
|
1162
1155
|
end
|
@@ -1173,17 +1166,6 @@ describe Chef::Knife::Bootstrap do
|
|
1173
1166
|
allow(knife).to receive(:connection_protocol).and_return connection_protocol
|
1174
1167
|
end
|
1175
1168
|
|
1176
|
-
context "when determining knife config keys for user and port" do
|
1177
|
-
let(:connection_protocol) { "fake" }
|
1178
|
-
it "uses the protocol name to resolve the knife config keys" do
|
1179
|
-
allow(knife).to receive(:config_value).with(:max_wait)
|
1180
|
-
|
1181
|
-
expect(knife).to receive(:config_value).with(:connection_port, :fake_port)
|
1182
|
-
expect(knife).to receive(:config_value).with(:connection_user, :fake_user)
|
1183
|
-
knife.base_opts
|
1184
|
-
end
|
1185
|
-
end
|
1186
|
-
|
1187
1169
|
context "for all protocols" do
|
1188
1170
|
context "when password is provided" do
|
1189
1171
|
before do
|
@@ -20,12 +20,6 @@ require "spec_helper"
|
|
20
20
|
require "chef/knife/core/bootstrap_context"
|
21
21
|
|
22
22
|
describe Chef::Knife::Core::BootstrapContext do
|
23
|
-
before do
|
24
|
-
# This is required because the chef-fips pipeline does
|
25
|
-
# has a default value of true for fips
|
26
|
-
Chef::Config[:fips] = false
|
27
|
-
end
|
28
|
-
|
29
23
|
let(:config) { { foo: :bar, color: true } }
|
30
24
|
let(:run_list) { Chef::RunList.new("recipe[tmux]", "role[base]") }
|
31
25
|
let(:chef_config) do
|
@@ -86,6 +80,20 @@ describe Chef::Knife::Core::BootstrapContext do
|
|
86
80
|
end
|
87
81
|
end
|
88
82
|
|
83
|
+
describe "when file_cache_path is set" do
|
84
|
+
let(:chef_config) { { file_cache_path: "/home/opscode/cache" } }
|
85
|
+
it "sets file_cache_path in the generated config file" do
|
86
|
+
expect(bootstrap_context.config_content).to include("file_cache_path \"/home/opscode/cache\"")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "when file_backup_path is set" do
|
91
|
+
let(:chef_config) { { file_backup_path: "/home/opscode/backup" } }
|
92
|
+
it "sets file_backup_path in the generated config file" do
|
93
|
+
expect(bootstrap_context.config_content).to include("file_backup_path \"/home/opscode/backup\"")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
89
97
|
describe "alternate chef-client path" do
|
90
98
|
let(:chef_config) { { chef_client_path: "/usr/local/bin/chef-client" } }
|
91
99
|
it "runs chef-client from another path when specified" do
|
@@ -141,7 +149,7 @@ describe Chef::Knife::Core::BootstrapContext do
|
|
141
149
|
let(:config) { { policy_name: "my_app_server", policy_group: "staging" } }
|
142
150
|
|
143
151
|
it "includes them in the first_boot data and excludes run_list" do
|
144
|
-
expect(Chef::JSONCompat.to_json(bootstrap_context.first_boot)).to eq(Chef::JSONCompat.to_json(
|
152
|
+
expect(Chef::JSONCompat.to_json(bootstrap_context.first_boot)).to eq(Chef::JSONCompat.to_json({ policy_name: "my_app_server", policy_group: "staging" }))
|
145
153
|
end
|
146
154
|
|
147
155
|
end
|
@@ -168,34 +176,18 @@ describe Chef::Knife::Core::BootstrapContext do
|
|
168
176
|
expect(bootstrap_context.config_content).not_to include("ssl_verify_mode")
|
169
177
|
end
|
170
178
|
|
171
|
-
describe "when configured
|
172
|
-
let(:
|
173
|
-
{
|
174
|
-
knife: { ssl_verify_mode: :verify_peer },
|
175
|
-
}
|
176
|
-
end
|
179
|
+
describe "when configured via the config hash" do
|
180
|
+
let(:config) { { node_ssl_verify_mode: "none" } }
|
177
181
|
|
178
182
|
it "uses the config value" do
|
179
|
-
expect(bootstrap_context.config_content).to include("ssl_verify_mode :
|
180
|
-
end
|
181
|
-
|
182
|
-
describe "when configured via CLI" do
|
183
|
-
let(:config) { { node_ssl_verify_mode: "none" } }
|
184
|
-
|
185
|
-
it "uses CLI value" do
|
186
|
-
expect(bootstrap_context.config_content).to include("ssl_verify_mode :verify_none")
|
187
|
-
end
|
183
|
+
expect(bootstrap_context.config_content).to include("ssl_verify_mode :verify_none")
|
188
184
|
end
|
189
185
|
end
|
190
186
|
end
|
191
187
|
|
192
188
|
describe "fips mode" do
|
193
189
|
before do
|
194
|
-
|
195
|
-
end
|
196
|
-
|
197
|
-
after do
|
198
|
-
Chef::Config.reset!
|
190
|
+
chef_config[:fips] = true
|
199
191
|
end
|
200
192
|
|
201
193
|
it "sets fips mode in the client.rb" do
|
@@ -208,23 +200,11 @@ describe Chef::Knife::Core::BootstrapContext do
|
|
208
200
|
expect(bootstrap_context.config_content).not_to include("verify_api_cert")
|
209
201
|
end
|
210
202
|
|
211
|
-
describe "when configured
|
212
|
-
let(:
|
213
|
-
{
|
214
|
-
knife: { verify_api_cert: :false },
|
215
|
-
}
|
216
|
-
end
|
217
|
-
|
218
|
-
it "uses the config value" do
|
219
|
-
expect(bootstrap_context.config_content).to include("verify_api_cert false")
|
220
|
-
end
|
221
|
-
|
222
|
-
describe "when configured via CLI" do
|
223
|
-
let(:config) { { node_verify_api_cert: true } }
|
203
|
+
describe "when configured via the config hash" do
|
204
|
+
let(:config) { { node_verify_api_cert: true } }
|
224
205
|
|
225
|
-
|
226
|
-
|
227
|
-
end
|
206
|
+
it "uses config value" do
|
207
|
+
expect(bootstrap_context.config_content).to include("verify_api_cert true")
|
228
208
|
end
|
229
209
|
end
|
230
210
|
end
|
@@ -507,6 +507,22 @@ describe Chef::Knife::UI do
|
|
507
507
|
end
|
508
508
|
end
|
509
509
|
|
510
|
+
describe "color" do
|
511
|
+
context "when ui.color? => true" do
|
512
|
+
it "returns colored output" do
|
513
|
+
expect(@ui).to receive(:color?).and_return(true)
|
514
|
+
expect(@ui.color("a_bus_is", :yellow)).to eql("\e[33ma_bus_is\e[0m")
|
515
|
+
end
|
516
|
+
end
|
517
|
+
|
518
|
+
context "when ui.color? => false" do
|
519
|
+
it "returns plain output" do
|
520
|
+
expect(@ui).to receive(:color?).and_return(false)
|
521
|
+
expect(@ui.color("a_bus_is", :yellow)).to eql("a_bus_is")
|
522
|
+
end
|
523
|
+
end
|
524
|
+
end
|
525
|
+
|
510
526
|
describe "confirm" do
|
511
527
|
let(:stdout) { StringIO.new }
|
512
528
|
let(:output) { stdout.string }
|
@@ -20,19 +20,14 @@ require "spec_helper"
|
|
20
20
|
require "chef/knife/core/windows_bootstrap_context"
|
21
21
|
describe Chef::Knife::Core::WindowsBootstrapContext do
|
22
22
|
let(:config) { {} }
|
23
|
-
let(:
|
23
|
+
let(:chef_config) { Chef::Config.save } # "dup" to a hash
|
24
|
+
let(:bootstrap_context) { Chef::Knife::Core::WindowsBootstrapContext.new(config, nil, chef_config, nil) }
|
24
25
|
|
25
26
|
describe "fips" do
|
26
|
-
before do
|
27
|
-
Chef::Config[:fips] = fips_mode
|
28
|
-
end
|
29
|
-
|
30
|
-
after do
|
31
|
-
Chef::Config.reset!
|
32
|
-
end
|
33
|
-
|
34
27
|
context "when fips is set" do
|
35
|
-
|
28
|
+
before do
|
29
|
+
chef_config[:fips] = true
|
30
|
+
end
|
36
31
|
|
37
32
|
it "sets fips mode in the client.rb" do
|
38
33
|
expect(bootstrap_context.config_content).to match(/fips true/)
|
@@ -40,7 +35,9 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
|
|
40
35
|
end
|
41
36
|
|
42
37
|
context "when fips is not set" do
|
43
|
-
|
38
|
+
before do
|
39
|
+
chef_config[:fips] = false
|
40
|
+
end
|
44
41
|
|
45
42
|
it "sets fips mode in the client.rb" do
|
46
43
|
expect(bootstrap_context.config_content).not_to match(/fips true/)
|
@@ -220,7 +217,7 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
|
|
220
217
|
let(:custom_url) { "file://something" }
|
221
218
|
let(:config) { { msi_url: custom_url, install: true } }
|
222
219
|
|
223
|
-
it "returns the
|
220
|
+
it "returns the overridden url" do
|
224
221
|
expect(bootstrap_context.msi_url).to eq(custom_url)
|
225
222
|
end
|
226
223
|
|
@@ -229,55 +226,4 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
|
|
229
226
|
end
|
230
227
|
end
|
231
228
|
end
|
232
|
-
|
233
|
-
describe "bootstrap_install_command for bootstrap through WinRM" do
|
234
|
-
context "when bootstrap_install_command option is passed on CLI" do
|
235
|
-
let(:bootstrap) { Chef::Knife::Bootstrap.new(["--bootstrap-install-command", "chef-client"]) }
|
236
|
-
before do
|
237
|
-
bootstrap.config[:bootstrap_install_command] = "chef-client"
|
238
|
-
end
|
239
|
-
|
240
|
-
it "sets the bootstrap_install_command option under Chef::Config::Knife object" do
|
241
|
-
expect(Chef::Config[:knife][:bootstrap_install_command]).to eq("chef-client")
|
242
|
-
end
|
243
|
-
|
244
|
-
after do
|
245
|
-
bootstrap.config.delete(:bootstrap_install_command)
|
246
|
-
Chef::Config[:knife].delete(:bootstrap_install_command)
|
247
|
-
end
|
248
|
-
end
|
249
|
-
|
250
|
-
context "when bootstrap_install_command option is not passed on CLI" do
|
251
|
-
let(:bootstrap) { Chef::Knife::Bootstrap.new([]) }
|
252
|
-
it "does not set the bootstrap_install_command option under Chef::Config::Knife object" do
|
253
|
-
expect(Chef::Config[:knife][:bootstrap_install_command]). to eq(nil)
|
254
|
-
end
|
255
|
-
end
|
256
|
-
end
|
257
|
-
|
258
|
-
describe "bootstrap_install_command for bootstrap through SSH" do
|
259
|
-
context "when bootstrap_install_command option is passed on CLI" do
|
260
|
-
let(:bootstrap) { Chef::Knife::Bootstrap.new(["--bootstrap-install-command", "chef-client"]) }
|
261
|
-
before do
|
262
|
-
bootstrap.config[:bootstrap_install_command] = "chef-client"
|
263
|
-
end
|
264
|
-
|
265
|
-
it "sets the bootstrap_install_command option under Chef::Config::Knife object" do
|
266
|
-
expect(Chef::Config[:knife][:bootstrap_install_command]).to eq("chef-client")
|
267
|
-
end
|
268
|
-
|
269
|
-
after do
|
270
|
-
bootstrap.config.delete(:bootstrap_install_command)
|
271
|
-
Chef::Config[:knife].delete(:bootstrap_install_command)
|
272
|
-
end
|
273
|
-
end
|
274
|
-
|
275
|
-
context "when bootstrap_install_command option is not passed on CLI" do
|
276
|
-
let(:bootstrap) { Chef::Knife::Bootstrap.new([]) }
|
277
|
-
it "does not set the bootstrap_install_command option under Chef::Config::Knife object" do
|
278
|
-
expect(Chef::Config[:knife][:bootstrap_install_command]). to eq(nil)
|
279
|
-
end
|
280
|
-
end
|
281
|
-
end
|
282
|
-
|
283
229
|
end
|