chef 16.1.0-universal-mingw32 → 16.3.38-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 +6 -7
- data/README.md +3 -3
- data/Rakefile +4 -3
- data/chef-universal-mingw32.gemspec +2 -2
- data/chef.gemspec +7 -6
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/application.rb +12 -0
- data/lib/chef/application/apply.rb +2 -1
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
- data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
- 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 +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +2 -2
- data/lib/chef/chef_fs/path_utils.rb +4 -4
- data/lib/chef/client.rb +3 -3
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +2 -2
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -3
- data/lib/chef/cookbook/syntax_check.rb +1 -2
- data/lib/chef/cookbook_loader.rb +16 -30
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +4 -4
- data/lib/chef/data_bag.rb +5 -6
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +12 -0
- data/lib/chef/digester.rb +5 -4
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/dsl/platform_introspection.rb +2 -0
- 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/environment.rb +1 -2
- data/lib/chef/exceptions.rb +3 -0
- data/lib/chef/file_access_control.rb +1 -1
- data/lib/chef/file_access_control/windows.rb +2 -2
- data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/http.rb +19 -4
- data/lib/chef/http/authenticator.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +1 -1
- data/lib/chef/http/json_output.rb +1 -1
- data/lib/chef/http/ssl_policies.rb +18 -0
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +6 -6
- data/lib/chef/knife/bootstrap.rb +24 -24
- 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 +9 -9
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
- data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
- data/lib/chef/knife/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/config_get.rb +2 -1
- data/lib/chef/knife/config_list_profiles.rb +4 -1
- data/lib/chef/knife/config_use_profile.rb +15 -5
- data/lib/chef/knife/configure.rb +1 -1
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +6 -14
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -1
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +21 -2
- data/lib/chef/knife/core/ui.rb +8 -2
- data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -4
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/node_bulk_delete.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +1 -1
- data/lib/chef/knife/rehash.rb +3 -21
- data/lib/chef/knife/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/ssh.rb +7 -3
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/log.rb +8 -3
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
- data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
- data/lib/chef/mixin/openssl_helper.rb +31 -9
- data/lib/chef/mixin/path_sanity.rb +5 -4
- data/lib/chef/mixin/properties.rb +2 -2
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/mixin/shell_out.rb +4 -188
- data/lib/chef/mixin/template.rb +1 -0
- data/lib/chef/mixin/which.rb +6 -3
- data/lib/chef/mixins.rb +1 -0
- data/lib/chef/node.rb +36 -12
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node_map.rb +21 -18
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/property.rb +2 -2
- data/lib/chef/provider.rb +3 -3
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron.rb +2 -14
- data/lib/chef/provider/directory.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +1 -1
- data/lib/chef/provider/git.rb +12 -4
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/solaris.rb +0 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +1 -1
- data/lib/chef/provider/package/dpkg.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +3 -2
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rubygems.rb +3 -3
- data/lib/chef/provider/package/snap.rb +97 -29
- data/lib/chef/provider/package/windows.rb +11 -6
- data/lib/chef/provider/package/windows/msi.rb +3 -3
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
- data/lib/chef/provider/package/yum.rb +1 -1
- 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 +10 -14
- data/lib/chef/provider/remote_directory.rb +2 -2
- data/lib/chef/provider/remote_file/http.rb +4 -1
- data/lib/chef/provider/script.rb +4 -75
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +4 -4
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +1 -1
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +15 -11
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/windows_task.rb +4 -2
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +31 -11
- data/lib/chef/resource.rb +27 -14
- data/lib/chef/resource/alternatives.rb +1 -1
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/archive_file.rb +28 -8
- data/lib/chef/resource/bash.rb +0 -1
- data/lib/chef/resource/batch.rb +4 -2
- data/lib/chef/resource/build_essential.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +14 -2
- data/lib/chef/resource/chef_gem.rb +57 -21
- data/lib/chef/resource/chef_handler.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +1 -1
- data/lib/chef/resource/chocolatey_feature.rb +1 -2
- data/lib/chef/resource/cron/_cron_shared.rb +98 -0
- data/lib/chef/resource/cron/cron.rb +46 -0
- data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
- data/lib/chef/resource/cron_access.rb +13 -5
- data/lib/chef/resource/csh.rb +0 -1
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/execute.rb +480 -10
- data/lib/chef/resource/file.rb +10 -8
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +35 -2
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_package.rb +30 -1
- data/lib/chef/resource/homebrew_update.rb +107 -0
- data/lib/chef/resource/hostname.rb +7 -20
- data/lib/chef/resource/kernel_module.rb +14 -1
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/locale.rb +3 -3
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +176 -56
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +11 -14
- data/lib/chef/resource/openssl_x509_crl.rb +1 -2
- data/lib/chef/resource/perl.rb +0 -1
- data/lib/chef/resource/plist.rb +23 -4
- data/lib/chef/resource/powershell_script.rb +4 -2
- data/lib/chef/resource/python.rb +0 -1
- data/lib/chef/resource/remote_file.rb +26 -10
- data/lib/chef/resource/ruby.rb +0 -1
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/service.rb +2 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +16 -1
- data/lib/chef/resource/sudo.rb +30 -3
- data/lib/chef/resource/swap_file.rb +17 -0
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +15 -0
- data/lib/chef/resource/user_ulimit.rb +1 -1
- data/lib/chef/resource/windows_ad_join.rb +30 -1
- data/lib/chef/resource/windows_audit_policy.rb +227 -0
- data/lib/chef/resource/windows_auto_run.rb +11 -0
- data/lib/chef/resource/windows_certificate.rb +27 -1
- data/lib/chef/resource/windows_dfs_server.rb +1 -1
- data/lib/chef/resource/windows_dns_record.rb +17 -0
- data/lib/chef/resource/windows_firewall_profile.rb +197 -0
- data/lib/chef/resource/windows_font.rb +3 -3
- data/lib/chef/resource/windows_package.rb +1 -1
- data/lib/chef/resource/windows_pagefile.rb +2 -2
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +67 -36
- data/lib/chef/resource/windows_shortcut.rb +1 -2
- data/lib/chef/resource/windows_task.rb +10 -10
- data/lib/chef/resource/windows_user_privilege.rb +33 -10
- data/lib/chef/resource/yum_repository.rb +9 -9
- data/lib/chef/resource_inspector.rb +11 -4
- data/lib/chef/resources.rb +5 -2
- data/lib/chef/role.rb +1 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/search/query.rb +1 -1
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/shell/shell_session.rb +2 -0
- data/lib/chef/util/diff.rb +2 -3
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.rb +1 -1
- data/lib/chef/version.rb +2 -2
- 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/file.rb +1 -1
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/registry.rb +3 -4
- data/lib/chef/win32/security.rb +1 -1
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/functional/knife/configure_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +5 -16
- data/spec/functional/resource/aix_service_spec.rb +9 -2
- data/spec/functional/resource/aixinit_service_spec.rb +1 -2
- data/spec/functional/resource/apt_package_spec.rb +0 -1
- data/spec/functional/resource/bash_spec.rb +3 -2
- data/spec/functional/resource/bff_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
- data/spec/functional/resource/cron_spec.rb +20 -2
- data/spec/functional/resource/dnf_package_spec.rb +6 -3
- data/spec/functional/resource/execute_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +29 -7
- data/spec/functional/resource/group_spec.rb +15 -3
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +3 -3
- data/spec/functional/resource/link_spec.rb +2 -5
- data/spec/functional/resource/mount_spec.rb +9 -1
- data/spec/functional/resource/msu_package_spec.rb +9 -3
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- data/spec/functional/resource/remote_file_spec.rb +9 -15
- data/spec/functional/resource/rpm_spec.rb +1 -1
- data/spec/functional/resource/timezone_spec.rb +2 -0
- data/spec/functional/resource/windows_package_spec.rb +0 -1
- data/spec/functional/resource/windows_path_spec.rb +4 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -1
- data/spec/functional/resource/windows_service_spec.rb +4 -0
- data/spec/functional/resource/windows_task_spec.rb +16 -15
- data/spec/functional/resource/windows_user_privilege_spec.rb +1 -2
- data/spec/functional/resource/yum_package_spec.rb +4 -1
- data/spec/functional/resource/zypper_package_spec.rb +4 -1
- data/spec/functional/run_lock_spec.rb +2 -1
- data/spec/functional/shell_spec.rb +5 -6
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/crypto_spec.rb +1 -1
- data/spec/integration/knife/config_list_profiles_spec.rb +30 -2
- data/spec/integration/knife/config_use_profile_spec.rb +55 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +28 -1
- data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
- data/spec/integration/knife/environment_from_file_spec.rb +1 -1
- data/spec/integration/knife/node_from_file_spec.rb +1 -1
- data/spec/integration/knife/role_from_file_spec.rb +1 -1
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +1 -1
- data/spec/integration/recipes/notifying_block_spec.rb +1 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +5 -1
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
- data/spec/integration/recipes/resource_load_spec.rb +4 -2
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +1 -1
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +10 -4
- data/spec/support/chef_helpers.rb +2 -21
- data/spec/support/platform_helpers.rb +1 -3
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +0 -1
- data/spec/support/shared/functional/securable_resource.rb +1 -2
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/integration/knife_support.rb +2 -9
- data/spec/support/shared/unit/application_dot_d.rb +0 -1
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/support/shared/unit/provider/file.rb +12 -8
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- data/spec/unit/application/solo_spec.rb +4 -2
- data/spec/unit/application_spec.rb +11 -2
- data/spec/unit/chef_fs/config_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +8 -8
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
- data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +1 -1
- data/spec/unit/client_spec.rb +4 -1
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
- data/spec/unit/data_bag_spec.rb +6 -3
- data/spec/unit/data_collector_spec.rb +1 -1
- data/spec/unit/decorator_spec.rb +23 -23
- data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
- data/spec/unit/environment_spec.rb +5 -1
- data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
- data/spec/unit/guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +1 -1
- data/spec/unit/http/ssl_policies_spec.rb +20 -0
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +5 -8
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_show_spec.rb +6 -7
- data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/log/syslog_spec.rb +6 -10
- data/spec/unit/log/winevt_spec.rb +21 -13
- data/spec/unit/lwrp_spec.rb +9 -6
- data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/powershell_out_spec.rb +2 -4
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +0 -1
- data/spec/unit/mixin/shell_out_spec.rb +25 -26
- data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
- data/spec/unit/mixin/unformatter_spec.rb +2 -2
- data/spec/unit/mixin/uris_spec.rb +1 -1
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/mixin/which.rb +8 -0
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/node_spec.rb +98 -11
- data/spec/unit/property_spec.rb +6 -6
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron/unix_spec.rb +1 -1
- data/spec/unit/provider/cron_spec.rb +9 -49
- data/spec/unit/provider/dsc_resource_spec.rb +22 -38
- data/spec/unit/provider/dsc_script_spec.rb +10 -10
- data/spec/unit/provider/execute_spec.rb +1 -8
- data/spec/unit/provider/git_spec.rb +3 -3
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/ifconfig_spec.rb +0 -1
- data/spec/unit/provider/mdadm_spec.rb +1 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/openbsd_spec.rb +1 -1
- data/spec/unit/provider/package/pacman_spec.rb +17 -20
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +96 -87
- data/spec/unit/provider/package/rubygems_spec.rb +5 -10
- data/spec/unit/provider/package/smartos_spec.rb +1 -1
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
- data/spec/unit/provider/package/windows_spec.rb +30 -53
- data/spec/unit/provider/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/windows_spec.rb +2 -6
- data/spec/unit/provider/systemd_unit_spec.rb +28 -24
- data/spec/unit/provider/user/dscl_spec.rb +2 -2
- data/spec/unit/provider/windows_env_spec.rb +5 -4
- data/spec/unit/provider/zypper_repository_spec.rb +60 -10
- data/spec/unit/provider_spec.rb +1 -0
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
- data/spec/unit/resource/cron_spec.rb +2 -2
- data/spec/unit/resource/execute_spec.rb +10 -0
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
- data/spec/unit/resource/homebrew_update_spec.rb +30 -0
- data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
- data/spec/unit/resource/powershell_script_spec.rb +10 -15
- data/spec/unit/resource/timezone_spec.rb +1 -1
- data/spec/unit/resource/windows_audit_policy_spec.rb +64 -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_firewall_profile_spec.rb +77 -0
- data/spec/unit/resource/windows_package_spec.rb +1 -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 -1
- data/spec/unit/resource_spec.rb +84 -1
- data/spec/unit/role_spec.rb +23 -21
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/diff_spec.rb +1 -15
- data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
- data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +2 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- data/spec/unit/win32/registry_spec.rb +1 -1
- data/spec/unit/win32/security_spec.rb +4 -3
- metadata +68 -40
- data/lib/chef/resource/cron.rb +0 -157
data/lib/chef/environment.rb
CHANGED
@@ -119,7 +119,7 @@ class Chef
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def to_h
|
122
|
-
|
122
|
+
{
|
123
123
|
"name" => @name,
|
124
124
|
"description" => @description,
|
125
125
|
"cookbook_versions" => @cookbook_versions,
|
@@ -128,7 +128,6 @@ class Chef
|
|
128
128
|
"default_attributes" => @default_attributes,
|
129
129
|
"override_attributes" => @override_attributes,
|
130
130
|
}
|
131
|
-
result
|
132
131
|
end
|
133
132
|
|
134
133
|
alias_method :to_hash, :to_h
|
data/lib/chef/exceptions.rb
CHANGED
@@ -198,6 +198,7 @@ class Chef
|
|
198
198
|
class MetadataNotFound < StandardError
|
199
199
|
attr_reader :install_path
|
200
200
|
attr_reader :cookbook_name
|
201
|
+
|
201
202
|
def initialize(install_path, cookbook_name)
|
202
203
|
@install_path = install_path
|
203
204
|
@cookbook_name = cookbook_name
|
@@ -448,6 +449,7 @@ class Chef
|
|
448
449
|
# to correctly populate the backtrace with the wrapped backtraces.
|
449
450
|
class RunFailedWrappingError < RuntimeError
|
450
451
|
attr_reader :wrapped_errors
|
452
|
+
|
451
453
|
def initialize(*errors)
|
452
454
|
errors = errors.select { |e| !e.nil? }
|
453
455
|
output = "Found #{errors.size} errors, they are stored in the backtrace"
|
@@ -488,6 +490,7 @@ class Chef
|
|
488
490
|
|
489
491
|
class MultipleDscResourcesFound < RuntimeError
|
490
492
|
attr_reader :resources_found
|
493
|
+
|
491
494
|
def initialize(resources_found)
|
492
495
|
@resources_found = resources_found
|
493
496
|
matches_info = @resources_found.each do |r|
|
@@ -26,7 +26,7 @@ class Chef
|
|
26
26
|
# the values specified by a value object, usually a Chef::Resource.
|
27
27
|
class FileAccessControl
|
28
28
|
|
29
|
-
if RUBY_PLATFORM
|
29
|
+
if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
|
30
30
|
require_relative "file_access_control/windows"
|
31
31
|
include FileAccessControl::Windows
|
32
32
|
else
|
@@ -96,7 +96,7 @@ class Chef
|
|
96
96
|
self_ace.mask = securable_object.predict_rights_mask(target_ace.mask)
|
97
97
|
new_target_acl << self_ace
|
98
98
|
end
|
99
|
-
# As there is no
|
99
|
+
# As there is no inheritance needed in case of WRITE permissions.
|
100
100
|
if target_ace.mask != Chef::ReservedNames::Win32::API::Security::WRITE && target_ace.flags & (CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE) != 0
|
101
101
|
children_ace = target_ace.dup
|
102
102
|
children_ace.flags |= INHERIT_ONLY_ACE
|
@@ -242,7 +242,7 @@ class Chef
|
|
242
242
|
flags = 0
|
243
243
|
|
244
244
|
#
|
245
|
-
# Configure child
|
245
|
+
# Configure child inheritance only if the resource is some
|
246
246
|
# type of a directory.
|
247
247
|
#
|
248
248
|
if resource.is_a? Chef::Resource::Directory
|
@@ -51,7 +51,7 @@ class Chef
|
|
51
51
|
# in the case where i'm running chef-solo on my homedir as myself and some root-shell
|
52
52
|
# work has caused dotfiles of mine to change to root-owned, i'm fine with this not being
|
53
53
|
# exceptional, and i think most use cases will consider this to not be exceptional, and
|
54
|
-
# the right thing is to fix the ownership of the file to the user running the
|
54
|
+
# the right thing is to fix the ownership of the file to the user running the command
|
55
55
|
# (which requires write perms to the directory, or mv will throw an exception)
|
56
56
|
begin
|
57
57
|
::File.chown(uid, nil, src)
|
data/lib/chef/formatters/base.rb
CHANGED
@@ -142,7 +142,7 @@ class Chef
|
|
142
142
|
|
143
143
|
# Generic callback for any attribute/library/lwrp/recipe file in a
|
144
144
|
# cookbook getting loaded. The per-filetype callbacks for file load are
|
145
|
-
#
|
145
|
+
# overridden so that they call this instead. This means that a subclass of
|
146
146
|
# Formatters::Base can implement #file_loaded to do the same thing for
|
147
147
|
# every kind of file that Chef loads from a recipe instead of
|
148
148
|
# implementing all the per-filetype callbacks.
|
@@ -41,7 +41,7 @@ class Chef
|
|
41
41
|
|
42
42
|
if found_error_in_cookbooks?
|
43
43
|
traceback = filtered_bt.map { |line| " #{line}" }.join("\n")
|
44
|
-
error_description.section("Cookbook Trace:", traceback)
|
44
|
+
error_description.section("Cookbook Trace: (most recent call first)", traceback)
|
45
45
|
error_description.section("Relevant File Content:", context)
|
46
46
|
end
|
47
47
|
|
@@ -37,7 +37,7 @@ class Chef
|
|
37
37
|
error_description.section(exception.class.name, exception.message)
|
38
38
|
|
39
39
|
unless filtered_bt.empty?
|
40
|
-
error_description.section("Cookbook Trace:", filtered_bt.join("\n"))
|
40
|
+
error_description.section("Cookbook Trace: (most recent call first)", filtered_bt.join("\n"))
|
41
41
|
end
|
42
42
|
|
43
43
|
unless dynamic_resource?
|
@@ -79,8 +79,8 @@ class Chef
|
|
79
79
|
loop do
|
80
80
|
|
81
81
|
# low rent parser. try to gracefully handle nested blocks in resources
|
82
|
-
nesting += 1 if
|
83
|
-
nesting -= 1 if
|
82
|
+
nesting += 1 if /[\s]+do[\s]*/.match?(lines[current_line])
|
83
|
+
nesting -= 1 if /end[\s]*$/.match?(lines[current_line])
|
84
84
|
|
85
85
|
relevant_lines << format_line(current_line, lines[current_line])
|
86
86
|
|
data/lib/chef/http.rb
CHANGED
@@ -52,7 +52,7 @@ class Chef
|
|
52
52
|
|
53
53
|
def handle_chunk(next_chunk)
|
54
54
|
# stream handlers handle responses so must be applied in reverse order
|
55
|
-
# (same as #apply_stream_complete_middleware or #
|
55
|
+
# (same as #apply_stream_complete_middleware or #apply_response_middleware)
|
56
56
|
@stream_handlers.reverse.inject(next_chunk) do |chunk, handler|
|
57
57
|
Chef::Log.trace("Chef::HTTP::StreamHandler calling #{handler.class}#handle_chunk")
|
58
58
|
handler.handle_chunk(chunk)
|
@@ -269,7 +269,7 @@ class Chef
|
|
269
269
|
if keepalives && !base_url.nil?
|
270
270
|
# only reuse the http_client if we want keepalives and have a base_url
|
271
271
|
@http_client ||= {}
|
272
|
-
# the per-host per-port cache here gets
|
272
|
+
# the per-host per-port cache here gets persistent connections correct when
|
273
273
|
# redirecting to different servers
|
274
274
|
if base_url.is_a?(String) # sigh, this kind of abuse can't happen with strongly typed languages
|
275
275
|
@http_client[base_url] ||= build_http_client(base_url)
|
@@ -291,6 +291,21 @@ class Chef
|
|
291
291
|
|
292
292
|
private
|
293
293
|
|
294
|
+
# @api private
|
295
|
+
def ssl_policy
|
296
|
+
return Chef::HTTP::APISSLPolicy unless @options[:ssl_verify_mode]
|
297
|
+
|
298
|
+
case @options[:ssl_verify_mode]
|
299
|
+
when :verify_none
|
300
|
+
Chef::HTTP::VerifyNoneSSLPolicy
|
301
|
+
when :verify_peer
|
302
|
+
Chef::HTTP::VerifyPeerSSLPolicy
|
303
|
+
else
|
304
|
+
Chef::Log.error("Chef::HTTP was passed an ssl_verify_mode of #{@options[:ssl_verify_mode]} which is unsupported. Falling back to the API policy")
|
305
|
+
Chef::HTTP::APISSLPolicy
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
294
309
|
# @api private
|
295
310
|
def build_http_client(base_url)
|
296
311
|
if chef_zero_uri?(base_url)
|
@@ -304,7 +319,7 @@ class Chef
|
|
304
319
|
|
305
320
|
SocketlessChefZeroClient.new(base_url)
|
306
321
|
else
|
307
|
-
BasicClient.new(base_url, ssl_policy:
|
322
|
+
BasicClient.new(base_url, ssl_policy: ssl_policy, keepalives: keepalives)
|
308
323
|
end
|
309
324
|
end
|
310
325
|
|
@@ -312,7 +327,7 @@ class Chef
|
|
312
327
|
def create_url(path)
|
313
328
|
return path if path.is_a?(URI)
|
314
329
|
|
315
|
-
if
|
330
|
+
if %r{^(http|https|chefzero)://}i.match?(path)
|
316
331
|
URI.parse(path)
|
317
332
|
elsif path.nil? || path.empty?
|
318
333
|
URI.parse(@url)
|
@@ -22,7 +22,7 @@ require_relative "http_request"
|
|
22
22
|
class Chef
|
23
23
|
class HTTP
|
24
24
|
|
25
|
-
# Middleware-
|
25
|
+
# Middleware-ish class for handling compression in HTTP responses.
|
26
26
|
class Decompressor
|
27
27
|
class NoopInflater
|
28
28
|
def inflate(chunk)
|
@@ -128,7 +128,7 @@ class Chef
|
|
128
128
|
rescue NoMethodError => e
|
129
129
|
# http://redmine.ruby-lang.org/issues/show/2708
|
130
130
|
# http://redmine.ruby-lang.org/issues/show/2758
|
131
|
-
if
|
131
|
+
if /#{Regexp.escape(%q{undefined method `closed?' for nil:NilClass})}/.match?(e.to_s)
|
132
132
|
Chef::Log.trace("Rescued error in http connect, re-raising as Errno::ECONNREFUSED to hide bug in net/http")
|
133
133
|
Chef::Log.trace("#{e.class.name}: #{e}")
|
134
134
|
Chef::Log.trace(e.backtrace.join("\n"))
|
@@ -47,7 +47,7 @@ class Chef
|
|
47
47
|
# needed to keep conditional get stuff working correctly.
|
48
48
|
return [http_response, rest_request, return_value] if return_value == false
|
49
49
|
|
50
|
-
if http_response["content-type"]
|
50
|
+
if /json/.match?(http_response["content-type"])
|
51
51
|
if http_response.body.nil?
|
52
52
|
return_value = nil
|
53
53
|
elsif raw_output
|
@@ -129,5 +129,23 @@ class Chef
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
+
# This policy is used when we want to explicitly turn on verification
|
133
|
+
# for a specific request regardless of the API Policy. For example, when
|
134
|
+
# doing a `remote_file` where the user specified `verify_mode :verify_peer`
|
135
|
+
class VerifyPeerSSLPolicy < DefaultSSLPolicy
|
136
|
+
def set_verify_mode
|
137
|
+
http_client.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
# This policy is used when we want to explicitly turn off verification
|
142
|
+
# for a specific request regardless of the API Policy. For example, when
|
143
|
+
# doing a `remote_file` where the user specified `verify_mode :verify_none`
|
144
|
+
class VerifyNoneSSLPolicy < DefaultSSLPolicy
|
145
|
+
def set_verify_mode
|
146
|
+
http_client.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
132
150
|
end
|
133
151
|
end
|
data/lib/chef/json_compat.rb
CHANGED
data/lib/chef/key.rb
CHANGED
@@ -252,7 +252,7 @@ class Chef
|
|
252
252
|
OpenSSL::ASN1::Integer.new(openssl_key_object.public_key.n),
|
253
253
|
OpenSSL::ASN1::Integer.new(openssl_key_object.public_key.e),
|
254
254
|
])
|
255
|
-
OpenSSL::Digest
|
255
|
+
OpenSSL::Digest.hexdigest("SHA1", data_string.to_der).scan(/../).join(":")
|
256
256
|
end
|
257
257
|
|
258
258
|
def list(keys, actor, load_method_symbol, inflate)
|
data/lib/chef/knife.rb
CHANGED
@@ -20,10 +20,10 @@
|
|
20
20
|
require "forwardable" unless defined?(Forwardable)
|
21
21
|
require_relative "version"
|
22
22
|
require "mixlib/cli" unless defined?(Mixlib::CLI)
|
23
|
-
require "chef-utils/dsl/
|
23
|
+
require "chef-utils/dsl/default_paths" unless defined?(ChefUtils::DSL::DefaultPaths)
|
24
24
|
require_relative "workstation_config_loader"
|
25
25
|
require_relative "mixin/convert_to_class_name"
|
26
|
-
require_relative "mixin/
|
26
|
+
require_relative "mixin/default_paths"
|
27
27
|
require_relative "knife/core/subcommand_loader"
|
28
28
|
require_relative "knife/core/ui"
|
29
29
|
require_relative "local_mode"
|
@@ -40,7 +40,7 @@ class Chef
|
|
40
40
|
Chef::HTTP::HTTPRequest.user_agent = "#{Chef::Dist::PRODUCT} Knife#{Chef::HTTP::HTTPRequest::UA_COMMON}"
|
41
41
|
|
42
42
|
include Mixlib::CLI
|
43
|
-
include ChefUtils::DSL::
|
43
|
+
include ChefUtils::DSL::DefaultPaths
|
44
44
|
extend Chef::Mixin::ConvertToClassName
|
45
45
|
extend Forwardable
|
46
46
|
|
@@ -248,7 +248,7 @@ class Chef
|
|
248
248
|
category_desc = preferred_category ? preferred_category + " " : ""
|
249
249
|
msg "Available #{category_desc}subcommands: (for details, knife SUB-COMMAND --help)\n\n"
|
250
250
|
subcommand_loader.list_commands(preferred_category).sort.each do |category, commands|
|
251
|
-
next if
|
251
|
+
next if /deprecated/i.match?(category)
|
252
252
|
|
253
253
|
msg "** #{category.upcase} COMMANDS **"
|
254
254
|
commands.sort.each do |command|
|
@@ -327,7 +327,7 @@ class Chef
|
|
327
327
|
end
|
328
328
|
|
329
329
|
# Grab a copy before config merge occurs, so that we can later identify
|
330
|
-
#
|
330
|
+
# where a given config value is sourced from.
|
331
331
|
@original_config = config.dup
|
332
332
|
|
333
333
|
# copy Mixlib::CLI over so that it can be configured in config.rb/knife.rb
|
@@ -484,7 +484,7 @@ class Chef
|
|
484
484
|
unless respond_to?(:run)
|
485
485
|
ui.error "You need to add a #run method to your knife command before you can use it"
|
486
486
|
end
|
487
|
-
ENV["PATH"] =
|
487
|
+
ENV["PATH"] = default_paths if Chef::Config[:enforce_default_paths] || Chef::Config[:enforce_path_sanity]
|
488
488
|
maybe_setup_fips
|
489
489
|
Chef::LocalMode.with_server_connectivity do
|
490
490
|
run
|
data/lib/chef/knife/bootstrap.rb
CHANGED
@@ -94,7 +94,7 @@ class Chef
|
|
94
94
|
boolean: true
|
95
95
|
|
96
96
|
# This option was provided in knife bootstrap windows winrm,
|
97
|
-
# but it is ignored in knife-windows/WinrmSession, and so remains
|
97
|
+
# but it is ignored in knife-windows/WinrmSession, and so remains unimplemented here.
|
98
98
|
# option :kerberos_keytab_file,
|
99
99
|
# :short => "-T KEYTAB_FILE",
|
100
100
|
# :long => "--keytab-file KEYTAB_FILE",
|
@@ -275,7 +275,7 @@ class Chef
|
|
275
275
|
accumulator
|
276
276
|
}
|
277
277
|
|
278
|
-
# bootstrap override: url of a an installer shell script
|
278
|
+
# bootstrap override: url of a an installer shell script to use in place of omnitruck
|
279
279
|
# Note that the bootstrap template _only_ references this out of Chef::Config, and not from
|
280
280
|
# the provided options to knife bootstrap, so we set the Chef::Config option here.
|
281
281
|
option :bootstrap_url,
|
@@ -538,7 +538,7 @@ class Chef
|
|
538
538
|
end
|
539
539
|
|
540
540
|
def run
|
541
|
-
check_license
|
541
|
+
check_license if ChefConfig::Dist::ENFORCE_LICENSE
|
542
542
|
|
543
543
|
plugin_setup!
|
544
544
|
validate_name_args!
|
@@ -580,11 +580,8 @@ class Chef
|
|
580
580
|
|
581
581
|
bootstrap_context.client_pem = client_builder.client_path
|
582
582
|
else
|
583
|
-
ui.
|
584
|
-
|
585
|
-
Delete your validation key in order to use your user credentials for client registration instead.
|
586
|
-
EOM
|
587
|
-
|
583
|
+
ui.warn "Performing legacy client registration with the validation key at #{Chef::Config[:validation_key]}..."
|
584
|
+
ui.warn "Remove the key file or remove the 'validation_key' configuration option from your config.rb (knife.rb) to use more secure user credentials for client registration."
|
588
585
|
end
|
589
586
|
end
|
590
587
|
|
@@ -602,7 +599,7 @@ class Chef
|
|
602
599
|
end
|
603
600
|
|
604
601
|
def connect!
|
605
|
-
ui.info("Connecting to #{ui.color(server_name, :bold)}")
|
602
|
+
ui.info("Connecting to #{ui.color(server_name, :bold)} using #{connection_protocol}")
|
606
603
|
opts ||= connection_opts.dup
|
607
604
|
do_connect(opts)
|
608
605
|
rescue Train::Error => e
|
@@ -633,9 +630,7 @@ class Chef
|
|
633
630
|
raise
|
634
631
|
else
|
635
632
|
ui.warn("Failed to authenticate #{opts[:user]} to #{server_name} - trying password auth")
|
636
|
-
password = ui.ask("Enter password for #{opts[:user]}@#{server_name}:"
|
637
|
-
q.echo = false
|
638
|
-
end
|
633
|
+
password = ui.ask("Enter password for #{opts[:user]}@#{server_name}:", echo: false)
|
639
634
|
end
|
640
635
|
|
641
636
|
opts.merge! force_ssh_password_opts(password)
|
@@ -649,9 +644,7 @@ class Chef
|
|
649
644
|
raise
|
650
645
|
else
|
651
646
|
ui.warn("Failed to authenticate #{opts[:user]} to #{server_name} - trying password auth")
|
652
|
-
password = ui.ask("Enter password for #{opts[:user]}@#{server_name}:"
|
653
|
-
q.echo = false
|
654
|
-
end
|
647
|
+
password = ui.ask("Enter password for #{opts[:user]}@#{server_name}:", echo: false)
|
655
648
|
end
|
656
649
|
|
657
650
|
opts.merge! force_winrm_password_opts(password)
|
@@ -684,9 +677,7 @@ class Chef
|
|
684
677
|
retry
|
685
678
|
elsif config[:use_sudo_password] && (e.reason == :sudo_password_required || e.reason == :bad_sudo_password) && limit < 3
|
686
679
|
ui.warn("Failed to authenticate #{conn_options[:user]} to #{server_name} - #{e.message} \n sudo: #{limit} incorrect password attempt")
|
687
|
-
sudo_password = ui.ask("Enter sudo password for #{conn_options[:user]}@#{server_name}:"
|
688
|
-
q.echo = false
|
689
|
-
end
|
680
|
+
sudo_password = ui.ask("Enter sudo password for #{conn_options[:user]}@#{server_name}:", echo: false)
|
690
681
|
limit += 1
|
691
682
|
conn_options[:sudo_password] = sudo_password
|
692
683
|
|
@@ -706,14 +697,23 @@ class Chef
|
|
706
697
|
true
|
707
698
|
end
|
708
699
|
|
700
|
+
# FIXME: someone needs to clean this up properly: https://github.com/chef/chef/issues/9645
|
701
|
+
# This code is deliberately left without an abstraction around deprecating the config options to avoid knife plugins from
|
702
|
+
# using those methods (which will need to be deprecated and break them) via inheritance (ruby does not have a true `private`
|
703
|
+
# so the lack of any inheritable implementation is because of that).
|
704
|
+
#
|
709
705
|
def winrm_auth_method
|
710
|
-
|
706
|
+
config.key?(:winrm_auth_method) ? config[:winrm_auth_method] : config.key?(:winrm_authentications_protocol) ? config[:winrm_authentication_protocol] : "negotiate" # rubocop:disable Style/NestedTernaryOperator
|
707
|
+
end
|
708
|
+
|
709
|
+
def ssh_verify_host_key
|
710
|
+
config.key?(:ssh_verify_host_key) ? config[:ssh_verify_host_key] : config.key?(:host_key_verify) ? config[:host_key_verify] : "always" # rubocop:disable Style/NestedTernaryOperator
|
711
711
|
end
|
712
712
|
|
713
713
|
# Fail if using plaintext auth without ssl because
|
714
714
|
# this can expose keys in plaintext on the wire.
|
715
715
|
# TODO test for this method
|
716
|
-
# TODO check that the
|
716
|
+
# TODO check that the protocol is valid.
|
717
717
|
def validate_winrm_transport_opts!
|
718
718
|
return true unless winrm?
|
719
719
|
|
@@ -908,7 +908,7 @@ class Chef
|
|
908
908
|
{ self_signed: config[:winrm_no_verify_cert] === true }
|
909
909
|
elsif ssh?
|
910
910
|
# Fall back to the old knife config key name for back compat.
|
911
|
-
{ verify_host_key:
|
911
|
+
{ verify_host_key: ssh_verify_host_key }
|
912
912
|
else
|
913
913
|
{}
|
914
914
|
end
|
@@ -967,7 +967,7 @@ class Chef
|
|
967
967
|
gw_host = split[1]
|
968
968
|
end
|
969
969
|
gw_host, gw_port = gw_host.split(":", 2)
|
970
|
-
# TODO - validate
|
970
|
+
# TODO - validate convertible port in config validation?
|
971
971
|
gw_port = Integer(gw_port) rescue nil
|
972
972
|
opts[:bastion_host] = gw_host
|
973
973
|
opts[:bastion_user] = gw_user
|
@@ -1054,7 +1054,7 @@ class Chef
|
|
1054
1054
|
# @api deprecated
|
1055
1055
|
#
|
1056
1056
|
def config_value(key, fallback_key = nil, default = nil)
|
1057
|
-
Chef.deprecated(:knife_bootstrap_apis, "Use of config_value
|
1057
|
+
Chef.deprecated(:knife_bootstrap_apis, "Use of config_value is deprecated. Knife plugin authors should access the config hash directly, which does correct merging of cli and config options.")
|
1058
1058
|
if config.key?(key)
|
1059
1059
|
# the first key is the primary key so we check the merged hash first
|
1060
1060
|
config[key]
|
@@ -1073,7 +1073,7 @@ class Chef
|
|
1073
1073
|
remote_path
|
1074
1074
|
end
|
1075
1075
|
|
1076
|
-
# build the command string for
|
1076
|
+
# build the command string for bootstrapping
|
1077
1077
|
# @return String
|
1078
1078
|
def bootstrap_command(remote_path)
|
1079
1079
|
if connection.windows?
|
@@ -102,7 +102,7 @@ class Chef
|
|
102
102
|
config[:bootstrap_vault_item]
|
103
103
|
end
|
104
104
|
|
105
|
-
# Helper to return a ruby object
|
105
|
+
# Helper to return a ruby object representing all the data bags and items
|
106
106
|
# to update via chef-vault.
|
107
107
|
#
|
108
108
|
# @return [Hash] deserialized ruby hash with all the vault items
|