chef 15.17.4-universal-mingw32 → 16.0.257-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 +14 -20
- data/README.md +6 -6
- data/Rakefile +18 -23
- data/chef-universal-mingw32.gemspec +4 -4
- data/chef.gemspec +10 -26
- 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/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +33 -54
- data/lib/chef/application/apply.rb +20 -3
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.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/multiplexed_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +0 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.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_version.rb +40 -5
- data/lib/chef/data_bag.rb +2 -2
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/deprecated.rb +1 -9
- 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 +2 -3
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/environment.rb +2 -2
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +0 -3
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -2
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/knife.rb +1 -3
- 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 +93 -97
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +20 -20
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +13 -15
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -3
- 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 +45 -58
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- data/lib/chef/knife/environment_compare.rb +1 -1
- data/lib/chef/knife/exec.rb +2 -2
- 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/list.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -50
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +1 -2
- 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_recind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/create_path.rb +8 -8
- data/lib/chef/mixin/openssl_helper.rb +3 -26
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +13 -1
- data/lib/chef/mixin/shell_out.rb +0 -4
- data/lib/chef/mixin/template.rb +0 -1
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
- 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 +7 -36
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +22 -4
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +2 -2
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -8
- data/lib/chef/provider/file.rb +5 -5
- 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 +36 -51
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/mount/solaris.rb +1 -0
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +3 -4
- 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 +84 -30
- 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/freebsd/pkgng.rb +1 -3
- data/lib/chef/provider/package/homebrew.rb +106 -42
- data/lib/chef/provider/package/msu.rb +3 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/powershell.rb +2 -6
- data/lib/chef/provider/package/rubygems.rb +29 -2
- data/lib/chef/provider/package/snap.rb +27 -96
- data/lib/chef/provider/package/windows.rb +3 -2
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +0 -8
- data/lib/chef/provider/package/yum/yum_helper.py +0 -4
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +4 -10
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +3 -3
- 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 +2 -2
- data/lib/chef/provider/service/debian.rb +31 -29
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +7 -12
- data/lib/chef/provider/service/openbsd.rb +1 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +3 -3
- 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/dscl.rb +3 -3
- data/lib/chef/provider/user/mac.rb +10 -9
- 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 +7 -9
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +11 -31
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +41 -56
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +149 -0
- data/lib/chef/resource/apt_package.rb +2 -1
- data/lib/chef/resource/apt_preference.rb +69 -2
- data/lib/chef/resource/apt_repository.rb +337 -5
- data/lib/chef/resource/apt_update.rb +52 -1
- data/lib/chef/resource/archive_file.rb +9 -29
- data/lib/chef/resource/bash.rb +2 -0
- data/lib/chef/resource/bff_package.rb +9 -1
- data/lib/chef/resource/breakpoint.rb +0 -1
- data/lib/chef/resource/build_essential.rb +42 -48
- data/lib/chef/resource/cab_package.rb +8 -1
- data/lib/chef/resource/chef_client_cron.rb +225 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +198 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +177 -0
- data/lib/chef/resource/chef_gem.rb +9 -16
- data/lib/chef/resource/chef_handler.rb +2 -1
- data/lib/chef/resource/chef_sleep.rb +0 -1
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +3 -1
- data/lib/chef/resource/chocolatey_feature.rb +2 -1
- data/lib/chef/resource/chocolatey_package.rb +2 -1
- data/lib/chef/resource/chocolatey_source.rb +2 -1
- data/lib/chef/resource/cookbook_file.rb +1 -1
- data/lib/chef/resource/cron.rb +22 -68
- data/lib/chef/resource/cron_access.rb +8 -15
- data/lib/chef/resource/cron_d.rb +9 -75
- data/lib/chef/resource/csh.rb +2 -0
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +4 -4
- data/lib/chef/resource/dnf_package.rb +2 -3
- data/lib/chef/resource/dpkg_package.rb +2 -1
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +13 -12
- data/lib/chef/resource/file.rb +3 -1
- data/lib/chef/resource/freebsd_package.rb +2 -1
- data/lib/chef/resource/gem_package.rb +14 -6
- data/lib/chef/resource/group.rb +4 -1
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +5 -4
- data/lib/chef/resource/homebrew_package.rb +4 -2
- data/lib/chef/resource/homebrew_tap.rb +2 -1
- data/lib/chef/resource/hostname.rb +41 -36
- data/lib/chef/resource/http_request.rb +0 -1
- data/lib/chef/resource/ifconfig.rb +1 -1
- data/lib/chef/resource/ips_package.rb +10 -2
- data/lib/chef/resource/kernel_module.rb +29 -29
- data/lib/chef/resource/ksh.rb +2 -0
- data/lib/chef/resource/launchd.rb +6 -6
- data/lib/chef/resource/link.rb +1 -23
- data/lib/chef/resource/locale.rb +58 -24
- data/lib/chef/resource/log.rb +12 -1
- data/lib/chef/resource/lwrp_base.rb +1 -8
- data/lib/chef/resource/macos_userdefaults.rb +9 -6
- data/lib/chef/resource/macosx_service.rb +2 -1
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +62 -2
- data/lib/chef/resource/mount.rb +3 -0
- data/lib/chef/resource/msu_package.rb +13 -1
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +19 -3
- data/lib/chef/resource/ohai_hint.rb +3 -12
- data/lib/chef/resource/openbsd_package.rb +9 -1
- data/lib/chef/resource/openssl_dhparam.rb +10 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +23 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +21 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +20 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +22 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +37 -1
- data/lib/chef/resource/openssl_x509_crl.rb +12 -1
- data/lib/chef/resource/openssl_x509_request.rb +37 -1
- data/lib/chef/resource/osx_profile.rb +3 -2
- data/lib/chef/resource/package.rb +2 -1
- data/lib/chef/resource/pacman_package.rb +2 -1
- data/lib/chef/resource/paludis_package.rb +12 -3
- data/lib/chef/resource/perl.rb +2 -0
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +13 -3
- data/lib/chef/resource/powershell_package.rb +1 -3
- data/lib/chef/resource/powershell_package_source.rb +3 -1
- data/lib/chef/resource/powershell_script.rb +7 -17
- data/lib/chef/resource/python.rb +2 -0
- data/lib/chef/resource/reboot.rb +0 -1
- data/lib/chef/resource/registry_key.rb +1 -2
- data/lib/chef/resource/remote_directory.rb +2 -0
- data/lib/chef/resource/remote_file.rb +2 -0
- data/lib/chef/resource/rhsm_errata.rb +0 -1
- data/lib/chef/resource/rhsm_errata_level.rb +0 -1
- data/lib/chef/resource/rhsm_register.rb +2 -1
- data/lib/chef/resource/rhsm_repo.rb +3 -1
- data/lib/chef/resource/rhsm_subscription.rb +4 -1
- data/lib/chef/resource/route.rb +5 -1
- data/lib/chef/resource/rpm_package.rb +9 -2
- data/lib/chef/resource/ruby.rb +2 -0
- data/lib/chef/resource/ruby_block.rb +1 -1
- data/lib/chef/resource/scm/_scm.rb +48 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +8 -5
- data/lib/chef/resource/script.rb +6 -3
- data/lib/chef/resource/service.rb +6 -7
- data/lib/chef/resource/smartos_package.rb +9 -1
- data/lib/chef/resource/snap_package.rb +3 -1
- data/lib/chef/resource/solaris_package.rb +9 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +9 -9
- 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 +5 -3
- data/lib/chef/resource/sysctl.rb +2 -2
- data/lib/chef/resource/systemd_unit.rb +4 -2
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +7 -18
- data/lib/chef/resource/user.rb +1 -3
- 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 +114 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +19 -6
- data/lib/chef/resource/windows_auto_run.rb +0 -1
- data/lib/chef/resource/windows_certificate.rb +1 -1
- data/lib/chef/resource/windows_dfs_folder.rb +0 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
- data/lib/chef/resource/windows_dfs_server.rb +0 -1
- 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 +2 -3
- data/lib/chef/resource/windows_feature.rb +2 -2
- data/lib/chef/resource/windows_feature_dism.rb +9 -22
- data/lib/chef/resource/windows_feature_powershell.rb +17 -82
- data/lib/chef/resource/windows_firewall_rule.rb +119 -10
- data/lib/chef/resource/windows_font.rb +1 -3
- data/lib/chef/resource/windows_package.rb +13 -4
- data/lib/chef/resource/windows_pagefile.rb +0 -1
- data/lib/chef/resource/windows_path.rb +0 -1
- data/lib/chef/resource/windows_printer.rb +0 -1
- data/lib/chef/resource/windows_printer_port.rb +0 -1
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +90 -0
- data/lib/chef/resource/windows_service.rb +45 -31
- data/lib/chef/resource/windows_share.rb +3 -7
- data/lib/chef/resource/windows_shortcut.rb +0 -1
- data/lib/chef/resource/windows_task.rb +14 -15
- data/lib/chef/resource/windows_uac.rb +0 -1
- data/lib/chef/resource/windows_user_privilege.rb +157 -0
- data/lib/chef/resource/windows_workgroup.rb +0 -1
- data/lib/chef/resource/yum_package.rb +3 -1
- data/lib/chef/resource/yum_repository.rb +2 -1
- data/lib/chef/resource/zypper_package.rb +3 -2
- data/lib/chef/resource/zypper_repository.rb +2 -1
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +6 -6
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/role.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/shell.rb +23 -32
- data/lib/chef/shell/shell_session.rb +0 -2
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/configuration_generator.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/version_string.rb +1 -1
- data/lib/chef/win32/api/file.rb +18 -18
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +3 -11
- data/lib/chef/win32/process.rb +2 -2
- data/lib/chef/win32/security.rb +40 -2
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +27 -23
- data/spec/functional/resource/aix_service_spec.rb +1 -0
- data/spec/functional/resource/aixinit_service_spec.rb +8 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -0
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +11 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +6 -5
- data/spec/functional/resource/link_spec.rb +17 -17
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/rpm_spec.rb +2 -2
- data/spec/functional/resource/user/dscl_spec.rb +2 -2
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +8 -8
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -2
- data/spec/functional/shell_spec.rb +6 -6
- 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/functional/win32/service_manager_spec.rb +1 -1
- 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 +30 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +50 -21
- data/spec/integration/recipes/notifying_block_spec.rb +9 -6
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +46 -144
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -3
- data/spec/integration/recipes/resource_load_spec.rb +133 -13
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +11 -14
- 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 +44 -19
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +3 -3
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +5 -18
- data/spec/support/shared/integration/knife_support.rb +14 -8
- 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 -9
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +4 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +3 -4
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +38 -17
- data/spec/unit/dsl/platform_introspection_spec.rb +0 -1
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -3
- data/spec/unit/file_access_control_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 +36 -54
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +6 -5
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +8 -68
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/ssh_spec.rb +10 -113
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_spec.rb +3 -5
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/securable_spec.rb +1 -0
- data/spec/unit/mixin/user_context_spec.rb +9 -1
- data/spec/unit/node/attribute_spec.rb +2 -2
- 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 +18 -15
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +9 -11
- 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 +44 -4
- 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/osx_profile_spec.rb +2 -2
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +2 -2
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/msu_spec.rb +3 -3
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/powershell_spec.rb +88 -96
- data/spec/unit/provider/package/rubygems_spec.rb +221 -31
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +53 -30
- 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/arch_service_spec.rb +2 -3
- data/spec/unit/provider/service/debian_service_spec.rb +35 -14
- data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider/service/windows_spec.rb +6 -2
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/systemd_unit_spec.rb +24 -28
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +25 -75
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/provider_spec.rb +0 -1
- 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/archive_file_spec.rb +2 -11
- 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/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_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +6 -47
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +4 -1
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_reporter_spec.rb +1 -5
- data/spec/unit/resource_spec.rb +11 -4
- data/spec/unit/role_spec.rb +11 -11
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +0 -9
- data/spec/unit/win32/security_spec.rb +3 -4
- data/tasks/rspec.rb +1 -1
- metadata +116 -87
- 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/functional/resource/windows_font_spec.rb +0 -49
- data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -94,7 +94,7 @@ describe Chef::Knife::CookbookDownload do
|
|
94
94
|
let (:manifest_data) { { all_files: [] } }
|
95
95
|
it "should determine which version to download" do
|
96
96
|
expect(@knife).to receive(:determine_version).and_return("1.0.0")
|
97
|
-
expect(File).to receive(:
|
97
|
+
expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(false)
|
98
98
|
@knife.run
|
99
99
|
end
|
100
100
|
end
|
@@ -111,7 +111,7 @@ describe Chef::Knife::CookbookDownload do
|
|
111
111
|
end
|
112
112
|
|
113
113
|
it "should print an error and exit if the cookbook download directory already exists" do
|
114
|
-
expect(File).to receive(:
|
114
|
+
expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
|
115
115
|
expect(@knife.ui).to receive(:fatal).with(%r{/var/tmp/chef/foobar-1\.0\.0 exists}i)
|
116
116
|
expect { @knife.run }.to raise_error(SystemExit)
|
117
117
|
end
|
@@ -135,7 +135,7 @@ describe Chef::Knife::CookbookDownload do
|
|
135
135
|
end
|
136
136
|
|
137
137
|
it "should download the cookbook when the cookbook download directory doesn't exist" do
|
138
|
-
expect(File).to receive(:
|
138
|
+
expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(false)
|
139
139
|
@knife.run
|
140
140
|
%w{attributes recipes templates}.each do |segment|
|
141
141
|
expect(@stderr.string).to match /downloading #{segment}/im
|
@@ -147,7 +147,7 @@ describe Chef::Knife::CookbookDownload do
|
|
147
147
|
describe "with -f or --force" do
|
148
148
|
it "should remove the existing the cookbook download directory if it exists" do
|
149
149
|
@knife.config[:force] = true
|
150
|
-
expect(File).to receive(:
|
150
|
+
expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
|
151
151
|
expect(FileUtils).to receive(:rm_rf).with("/var/tmp/chef/foobar-1.0.0")
|
152
152
|
@knife.run
|
153
153
|
end
|
@@ -323,18 +323,19 @@ describe Chef::Knife::CookbookUpload do
|
|
323
323
|
|
324
324
|
context "when cookbook path is an array" do
|
325
325
|
it "should warn users that no cookbooks exist" do
|
326
|
-
cookbook_path =
|
327
|
-
knife.
|
328
|
-
|
326
|
+
knife.config[:cookbook_path] = ["/chef-repo/cookbooks", "/home/user/cookbooks"]
|
327
|
+
expect(knife.ui).to receive(:warn).with(
|
328
|
+
/Could not find any cookbooks in your cookbook path: '#{knife.config[:cookbook_path].join(', ')}'\. Use --cookbook-path to specify the desired path\./
|
329
|
+
)
|
329
330
|
knife.run
|
330
331
|
end
|
331
332
|
end
|
332
333
|
|
333
334
|
context "when cookbook path is a string" do
|
334
335
|
it "should warn users that no cookbooks exist" do
|
335
|
-
knife.config[:cookbook_path] =
|
336
|
+
knife.config[:cookbook_path] = "/chef-repo/cookbooks"
|
336
337
|
expect(knife.ui).to receive(:warn).with(
|
337
|
-
|
338
|
+
/Could not find any cookbooks in your cookbook path: '#{knife.config[:cookbook_path]}'\. Use --cookbook-path to specify the desired path\./
|
338
339
|
)
|
339
340
|
knife.run
|
340
341
|
end
|
@@ -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
|
@@ -50,7 +50,7 @@ describe Chef::Knife::SubcommandLoader::HashedCommandLoader do
|
|
50
50
|
|
51
51
|
describe "#list_commands" do
|
52
52
|
before do
|
53
|
-
allow(File).to receive(:
|
53
|
+
allow(File).to receive(:exists?).and_return(true)
|
54
54
|
end
|
55
55
|
|
56
56
|
it "lists all commands by category when no argument is given" do
|
@@ -63,7 +63,7 @@ describe Chef::Knife::SubcommandLoader::HashedCommandLoader do
|
|
63
63
|
|
64
64
|
context "when the plugin path is invalid" do
|
65
65
|
before do
|
66
|
-
expect(File).to receive(:
|
66
|
+
expect(File).to receive(:exists?).with("/file/for/plugin/b").and_return(false)
|
67
67
|
end
|
68
68
|
|
69
69
|
it "lists all commands by category when no argument is given" do
|
@@ -90,7 +90,7 @@ describe Chef::Knife::SubcommandLoader::HashedCommandLoader do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it "loads the correct file and returns true if the command exists" do
|
93
|
-
allow(File).to receive(:
|
93
|
+
allow(File).to receive(:exists?).and_return(true)
|
94
94
|
expect(Kernel).to receive(:load).with("/file/for/plugin/a").and_return(true)
|
95
95
|
expect(loader.load_command(["cool_a"])).to eq(true)
|
96
96
|
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/)
|
@@ -184,12 +181,6 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
|
|
184
181
|
end
|
185
182
|
end
|
186
183
|
|
187
|
-
describe "#start_chef" do
|
188
|
-
it "returns the expected string" do
|
189
|
-
expect(bootstrap_context.start_chef).to match(%r{SET \"PATH=%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\Wbem;%SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0\\;C:\\ruby\\bin;C:\/opscode\/chef\\bin;C:\/opscode\/chef\\embedded\\bin\;%PATH%\"\n})
|
190
|
-
end
|
191
|
-
end
|
192
|
-
|
193
184
|
describe "msi_url" do
|
194
185
|
context "when msi_url config option is not set" do
|
195
186
|
let(:config) { { channel: "stable" } }
|
@@ -229,55 +220,4 @@ describe Chef::Knife::Core::WindowsBootstrapContext do
|
|
229
220
|
end
|
230
221
|
end
|
231
222
|
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
223
|
end
|
@@ -50,8 +50,8 @@ describe Chef::Knife::DataBagSecretOptions do
|
|
50
50
|
describe "#validate_secrets" do
|
51
51
|
|
52
52
|
it "throws an error when provided with both --secret and --secret-file on the CL" do
|
53
|
-
|
54
|
-
|
53
|
+
example_db.config[:cl_secret_file] = secret_file.path
|
54
|
+
example_db.config[:cl_secret] = secret
|
55
55
|
expect(example_db).to receive(:exit).with(1)
|
56
56
|
expect(example_db.ui).to receive(:fatal).with("Please specify only one of --secret, --secret-file")
|
57
57
|
|
@@ -61,6 +61,7 @@ describe Chef::Knife::DataBagSecretOptions do
|
|
61
61
|
it "throws an error when provided with `secret` and `secret_file` in knife.rb" do
|
62
62
|
Chef::Config[:knife][:secret_file] = secret_file.path
|
63
63
|
Chef::Config[:knife][:secret] = secret
|
64
|
+
example_db.merge_configs
|
64
65
|
expect(example_db).to receive(:exit).with(1)
|
65
66
|
expect(example_db.ui).to receive(:fatal).with("Please specify only one of 'secret' or 'secret_file' in your config file")
|
66
67
|
|
@@ -72,14 +73,16 @@ describe Chef::Knife::DataBagSecretOptions do
|
|
72
73
|
describe "#read_secret" do
|
73
74
|
|
74
75
|
it "returns the secret first" do
|
75
|
-
|
76
|
-
|
76
|
+
example_db.config[:cl_secret] = secret
|
77
|
+
Chef::Config[:knife][:secret] = secret
|
78
|
+
example_db.merge_configs
|
77
79
|
expect(example_db.read_secret).to eq(secret)
|
78
80
|
end
|
79
81
|
|
80
82
|
it "returns the secret_file only if secret does not exist" do
|
81
|
-
|
82
|
-
|
83
|
+
example_db.config[:cl_secret_file] = secret_file.path
|
84
|
+
Chef::Config[:knife][:secret_file] = secret_file.path
|
85
|
+
example_db.merge_configs
|
83
86
|
expect(Chef::EncryptedDataBagItem).to receive(:load_secret).with(secret_file.path).and_return("secret file contents")
|
84
87
|
expect(example_db.read_secret).to eq("secret file contents")
|
85
88
|
end
|
@@ -87,11 +90,13 @@ describe Chef::Knife::DataBagSecretOptions do
|
|
87
90
|
it "returns the secret from the knife.rb config" do
|
88
91
|
Chef::Config[:knife][:secret_file] = secret_file.path
|
89
92
|
Chef::Config[:knife][:secret] = secret
|
93
|
+
example_db.merge_configs
|
90
94
|
expect(example_db.read_secret).to eq(secret)
|
91
95
|
end
|
92
96
|
|
93
97
|
it "returns the secret_file from the knife.rb config only if the secret does not exist" do
|
94
98
|
Chef::Config[:knife][:secret_file] = secret_file.path
|
99
|
+
example_db.merge_configs
|
95
100
|
expect(Chef::EncryptedDataBagItem).to receive(:load_secret).with(secret_file.path).and_return("secret file contents")
|
96
101
|
expect(example_db.read_secret).to eq("secret file contents")
|
97
102
|
end
|
@@ -101,58 +106,61 @@ describe Chef::Knife::DataBagSecretOptions do
|
|
101
106
|
describe "#encryption_secret_provided?" do
|
102
107
|
|
103
108
|
it "returns true if the secret is passed on the CL" do
|
104
|
-
|
109
|
+
example_db.config[:cl_secret] = secret
|
105
110
|
expect(example_db.encryption_secret_provided?).to eq(true)
|
106
111
|
end
|
107
112
|
|
108
113
|
it "returns true if the secret_file is passed on the CL" do
|
109
|
-
|
114
|
+
example_db.config[:cl_secret_file] = secret_file.path
|
110
115
|
expect(example_db.encryption_secret_provided?).to eq(true)
|
111
116
|
end
|
112
117
|
|
113
118
|
it "returns true if --encrypt is passed on the CL and :secret is in config" do
|
114
|
-
|
119
|
+
example_db.config[:encrypt] = true
|
115
120
|
Chef::Config[:knife][:secret] = secret
|
121
|
+
example_db.merge_configs
|
116
122
|
expect(example_db.encryption_secret_provided?).to eq(true)
|
117
123
|
end
|
118
124
|
|
119
125
|
it "returns true if --encrypt is passed on the CL and :secret_file is in config" do
|
120
|
-
|
126
|
+
example_db.config[:encrypt] = true
|
121
127
|
Chef::Config[:knife][:secret_file] = secret_file.path
|
128
|
+
example_db.merge_configs
|
122
129
|
expect(example_db.encryption_secret_provided?).to eq(true)
|
123
130
|
end
|
124
131
|
|
125
132
|
it "throws an error if --encrypt is passed and there is not :secret or :secret_file in the config" do
|
126
|
-
|
133
|
+
example_db.config[:encrypt] = true
|
127
134
|
expect(example_db).to receive(:exit).with(1)
|
128
135
|
expect(example_db.ui).to receive(:fatal).with("No secret or secret_file specified in config, unable to encrypt item.")
|
129
136
|
example_db.encryption_secret_provided?
|
130
137
|
end
|
131
138
|
|
132
139
|
it "returns false if no secret is passed" do
|
133
|
-
expect(example_db).to receive(:config).and_return({})
|
134
140
|
expect(example_db.encryption_secret_provided?).to eq(false)
|
135
141
|
end
|
136
142
|
|
137
143
|
it "returns false if --encrypt is not provided and :secret is in the config" do
|
138
|
-
expect(example_db).to receive(:config).and_return({})
|
139
144
|
Chef::Config[:knife][:secret] = secret
|
145
|
+
example_db.merge_configs
|
140
146
|
expect(example_db.encryption_secret_provided?).to eq(false)
|
141
147
|
end
|
142
148
|
|
143
149
|
it "returns false if --encrypt is not provided and :secret_file is in the config" do
|
144
|
-
expect(example_db).to receive(:config).and_return({})
|
145
150
|
Chef::Config[:knife][:secret_file] = secret_file.path
|
151
|
+
example_db.merge_configs
|
146
152
|
expect(example_db.encryption_secret_provided?).to eq(false)
|
147
153
|
end
|
148
154
|
|
149
155
|
it "returns true if --encrypt is not provided, :secret is in the config and need_encrypt_flag is false" do
|
150
156
|
Chef::Config[:knife][:secret] = secret
|
157
|
+
example_db.merge_configs
|
151
158
|
expect(example_db.encryption_secret_provided_ignore_encrypt_flag?).to eq(true)
|
152
159
|
end
|
153
160
|
|
154
161
|
it "returns true if --encrypt is not provided, :secret_file is in the config and need_encrypt_flag is false" do
|
155
162
|
Chef::Config[:knife][:secret_file] = secret_file.path
|
163
|
+
example_db.merge_configs
|
156
164
|
expect(example_db.encryption_secret_provided_ignore_encrypt_flag?).to eq(true)
|
157
165
|
end
|
158
166
|
|