chef 16.2.44 → 16.4.35
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 +4 -4
- data/Rakefile +3 -16
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +4 -3
- data/lib/chef/action_collection.rb +4 -0
- data/lib/chef/api_client/registration.rb +8 -8
- data/lib/chef/application.rb +18 -1
- data/lib/chef/application/apply.rb +6 -5
- data/lib/chef/application/base.rb +2 -0
- data/lib/chef/application/client.rb +3 -0
- data/lib/chef/application/windows_service.rb +27 -27
- data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
- data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
- data/lib/chef/chef_class.rb +0 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +54 -54
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
- 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/chef_server/organization_invites_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
- 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 +18 -18
- 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/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/client.rb +14 -14
- 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 +15 -29
- data/lib/chef/data_bag.rb +1 -2
- data/lib/chef/data_collector/run_end_message.rb +11 -1
- data/lib/chef/deprecated.rb +8 -0
- data/lib/chef/digester.rb +3 -2
- data/lib/chef/dsl/platform_introspection.rb +9 -7
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/environment.rb +3 -4
- data/lib/chef/exceptions.rb +4 -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/file_content_management/tempfile.rb +9 -9
- data/lib/chef/handler.rb +2 -0
- data/lib/chef/http.rb +12 -12
- data/lib/chef/http/authenticator.rb +3 -1
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/bootstrap.rb +18 -15
- data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
- data/lib/chef/knife/config_get.rb +1 -0
- 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_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +29 -37
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +3 -2
- data/lib/chef/knife/core/subcommand_loader.rb +20 -1
- data/lib/chef/knife/core/ui.rb +8 -2
- data/lib/chef/knife/core/windows_bootstrap_context.rb +33 -26
- data/lib/chef/knife/delete.rb +15 -15
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/rehash.rb +3 -21
- data/lib/chef/knife/ssh.rb +11 -7
- data/lib/chef/knife/xargs.rb +19 -19
- data/lib/chef/knife/yaml_convert.rb +1 -1
- data/lib/chef/log.rb +7 -2
- data/lib/chef/mixin/checksum.rb +0 -1
- data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
- data/lib/chef/mixin/deep_merge.rb +35 -6
- data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
- data/lib/chef/mixin/openssl_helper.rb +30 -6
- data/lib/chef/mixin/path_sanity.rb +5 -4
- 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/monkey_patches/webrick-utils.rb +10 -10
- data/lib/chef/node.rb +36 -12
- data/lib/chef/node/attribute.rb +2 -4
- data/lib/chef/node_map.rb +21 -18
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/property.rb +1 -1
- data/lib/chef/provider/cron/unix.rb +0 -2
- data/lib/chef/provider/git.rb +17 -9
- data/lib/chef/provider/group.rb +0 -2
- data/lib/chef/provider/group/suse.rb +5 -5
- data/lib/chef/provider/ifconfig.rb +1 -4
- data/lib/chef/provider/mount.rb +0 -2
- data/lib/chef/provider/mount/solaris.rb +0 -1
- data/lib/chef/provider/package.rb +0 -2
- data/lib/chef/provider/package/rubygems.rb +1 -1
- data/lib/chef/provider/package/snap.rb +3 -4
- data/lib/chef/provider/package/windows.rb +9 -4
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -9
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +21 -5
- data/lib/chef/provider/route.rb +1 -1
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +1 -4
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +10 -10
- data/lib/chef/provider/systemd_unit.rb +0 -2
- data/lib/chef/provider/template/content.rb +1 -0
- data/lib/chef/provider/user/dscl.rb +2 -2
- data/lib/chef/provider/user/mac.rb +9 -9
- data/lib/chef/provider/windows_task.rb +0 -3
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +1 -2
- data/lib/chef/providers.rb +0 -1
- data/lib/chef/recipe.rb +1 -1
- data/lib/chef/resource.rb +9 -11
- data/lib/chef/resource/alternatives.rb +1 -1
- data/lib/chef/resource/apt_repository.rb +1 -10
- data/lib/chef/resource/build_essential.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
- data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
- data/lib/chef/resource/chef_gem.rb +57 -21
- data/lib/chef/resource/chef_vault_secret.rb +13 -13
- data/lib/chef/resource/chocolatey_feature.rb +1 -2
- data/lib/chef/resource/cron/cron_d.rb +1 -1
- data/lib/chef/resource/cron_access.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/execute.rb +4 -5
- data/lib/chef/resource/gem_package.rb +35 -2
- data/lib/chef/resource/homebrew_update.rb +2 -2
- data/lib/chef/resource/hostname.rb +18 -18
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +176 -61
- data/lib/chef/resource/openssl_dhparam.rb +2 -0
- data/lib/chef/resource/openssl_ec_private_key.rb +2 -0
- data/lib/chef/resource/openssl_ec_public_key.rb +2 -0
- data/lib/chef/resource/openssl_rsa_private_key.rb +2 -0
- data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
- data/lib/chef/resource/openssl_x509_certificate.rb +35 -35
- data/lib/chef/resource/openssl_x509_crl.rb +3 -2
- data/lib/chef/resource/openssl_x509_request.rb +23 -20
- data/lib/chef/resource/osx_profile.rb +227 -5
- data/lib/chef/resource/powershell_package_source.rb +1 -1
- data/lib/chef/resource/powershell_script.rb +24 -30
- 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 +31 -4
- data/lib/chef/resource/swap_file.rb +17 -0
- data/lib/chef/resource/sysctl.rb +5 -5
- 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 +2 -0
- data/lib/chef/resource/windows_audit_policy.rb +3 -0
- data/lib/chef/resource/windows_auto_run.rb +2 -0
- data/lib/chef/resource/windows_certificate.rb +2 -0
- data/lib/chef/resource/windows_dfs_folder.rb +2 -0
- data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
- data/lib/chef/resource/windows_dfs_server.rb +2 -0
- data/lib/chef/resource/windows_dns_record.rb +25 -5
- data/lib/chef/resource/windows_dns_zone.rb +12 -7
- data/lib/chef/resource/windows_feature.rb +2 -0
- data/lib/chef/resource/windows_feature_dism.rb +10 -0
- data/lib/chef/resource/windows_feature_powershell.rb +14 -2
- data/lib/chef/resource/windows_firewall_profile.rb +199 -0
- data/lib/chef/resource/windows_firewall_rule.rb +5 -3
- data/lib/chef/resource/windows_font.rb +3 -1
- data/lib/chef/resource/windows_pagefile.rb +4 -0
- data/lib/chef/resource/windows_printer.rb +17 -18
- data/lib/chef/resource/windows_printer_port.rb +14 -13
- data/lib/chef/resource/windows_security_policy.rb +52 -21
- data/lib/chef/resource/windows_share.rb +5 -3
- data/lib/chef/resource/windows_shortcut.rb +2 -0
- data/lib/chef/resource/windows_uac.rb +2 -0
- data/lib/chef/resource/windows_user_privilege.rb +27 -2
- data/lib/chef/resource/windows_workgroup.rb +2 -3
- data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
- data/lib/chef/resource_inspector.rb +7 -1
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/role.rb +3 -4
- data/lib/chef/run_context/cookbook_compiler.rb +20 -20
- data/lib/chef/run_status.rb +2 -6
- data/lib/chef/server_api_versions.rb +4 -0
- data/lib/chef/shell.rb +1 -1
- data/lib/chef/shell/shell_session.rb +2 -0
- data/lib/chef/util/backup.rb +1 -1
- data/lib/chef/util/diff.rb +11 -12
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/win32/file.rb +2 -2
- data/lib/chef/win32/file/version_info.rb +5 -5
- data/lib/chef/win32/registry.rb +1 -2
- data/spec/data/ssl/chef-rspec.cert +15 -15
- 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 +8 -9
- 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 +3 -3
- data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +10 -2
- data/spec/functional/resource/dnf_package_spec.rb +4 -1
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/dsc_script_spec.rb +0 -1
- data/spec/functional/resource/execute_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +23 -1
- data/spec/functional/resource/group_spec.rb +21 -9
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +7 -7
- data/spec/functional/resource/link_spec.rb +22 -25
- 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 +8 -8
- data/spec/functional/resource/remote_file_spec.rb +7 -13
- data/spec/functional/resource/rpm_spec.rb +3 -3
- data/spec/functional/resource/timezone_spec.rb +2 -0
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_font_spec.rb +49 -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 -4
- data/spec/functional/resource/windows_service_spec.rb +4 -0
- data/spec/functional/resource/windows_task_spec.rb +4 -3
- 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 +26 -25
- 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/functional/win32/registry_spec.rb +8 -8
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/knife/common_options_spec.rb +12 -12
- data/spec/integration/knife/config_get_profile_spec.rb +69 -68
- data/spec/integration/knife/config_get_spec.rb +126 -125
- data/spec/integration/knife/config_list_profiles_spec.rb +181 -152
- data/spec/integration/knife/config_use_profile_spec.rb +115 -61
- 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/diff_spec.rb +3 -1
- data/spec/integration/knife/download_spec.rb +3 -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/knife/serve_spec.rb +5 -5
- data/spec/integration/knife/upload_spec.rb +3 -1
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +2 -2
- 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 +16 -10
- data/spec/support/chef_helpers.rb +1 -20
- data/spec/support/platform_helpers.rb +9 -11
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- 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 +20 -21
- 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/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +5 -5
- data/spec/support/shared/integration/integration_helper.rb +22 -52
- 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/provider/file.rb +12 -8
- data/spec/support/shared/unit/script_resource.rb +6 -20
- data/spec/support/shared/unit/windows_script_resource.rb +15 -28
- data/spec/unit/application/solo_spec.rb +4 -2
- data/spec/unit/application_spec.rb +4 -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 +23 -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 +12 -8
- 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 +20 -2
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +17 -20
- data/spec/unit/knife/cookbook_download_spec.rb +6 -6
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- 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/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_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/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/template_spec.rb +30 -30
- data/spec/unit/mixin/unformatter_spec.rb +2 -2
- data/spec/unit/mixin/uris_spec.rb +1 -1
- data/spec/unit/mixin/which.rb +8 -0
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
- data/spec/unit/node/immutable_collections_spec.rb +6 -2
- data/spec/unit/node_spec.rb +103 -16
- data/spec/unit/property_spec.rb +5 -5
- data/spec/unit/provider/batch_spec.rb +1 -1
- data/spec/unit/provider/cron/unix_spec.rb +1 -1
- 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/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/rubygems_spec.rb +5 -10
- data/spec/unit/provider/package/smartos_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 +11 -4
- data/spec/unit/provider/remote_directory_spec.rb +9 -9
- data/spec/unit/provider/service/arch_service_spec.rb +3 -2
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
- data/spec/unit/provider/service/macosx_spec.rb +3 -3
- data/spec/unit/provider/service/redhat_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- 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_resolver_spec.rb +6 -6
- data/spec/unit/provider_spec.rb +1 -0
- data/spec/unit/resource/batch_spec.rb +6 -6
- data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
- data/spec/unit/resource/execute_spec.rb +123 -118
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
- data/spec/unit/resource/osx_profile_spec.rb +233 -0
- data/spec/unit/resource/powershell_script_spec.rb +11 -29
- data/spec/unit/resource/script_spec.rb +6 -1
- data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
- 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_reporter_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +25 -8
- data/spec/unit/role_spec.rb +30 -28
- 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/server_api_spec.rb +43 -16
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/diff_spec.rb +1 -15
- data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +2 -1
- data/spec/unit/win32/security_spec.rb +4 -3
- data/tasks/rspec.rb +1 -1
- metadata +45 -24
- data/lib/chef/provider/osx_profile.rb +0 -255
- data/spec/unit/provider/osx_profile_spec.rb +0 -255
|
@@ -72,10 +72,8 @@ class Chef
|
|
|
72
72
|
Chef::Log.trace("Current checksum: #{current_checksum}; manifest checksum: #{found_manifest_record["checksum"]})")
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
full_path_cache_filename = Chef::FileCache.load(cache_filename, false)
|
|
76
|
-
|
|
77
75
|
# return the filename, not the contents (second argument= false)
|
|
78
|
-
|
|
76
|
+
Chef::FileCache.load(cache_filename, false)
|
|
79
77
|
end
|
|
80
78
|
|
|
81
79
|
def validate_cached_copy(cache_filename)
|
|
@@ -120,8 +120,7 @@ class Chef
|
|
|
120
120
|
path = Chef::Util::PathHelper.escape_glob_dir(cookbook_path)
|
|
121
121
|
files = Dir[File.join(path, "**", "*.rb")]
|
|
122
122
|
files = remove_ignored_files(files)
|
|
123
|
-
|
|
124
|
-
files
|
|
123
|
+
remove_uninteresting_ruby_files(files)
|
|
125
124
|
end
|
|
126
125
|
|
|
127
126
|
def untested_ruby_files
|
data/lib/chef/cookbook_loader.rb
CHANGED
|
@@ -44,14 +44,11 @@ class Chef
|
|
|
44
44
|
# @return [Array<String>] the array of repo paths containing cookbook dirs
|
|
45
45
|
attr_reader :repo_paths
|
|
46
46
|
|
|
47
|
-
attr_accessor :tmp_working_dir_path
|
|
48
|
-
|
|
49
47
|
# XXX: this is highly questionable combined with the Hash-style each method
|
|
50
48
|
include Enumerable
|
|
51
49
|
|
|
52
50
|
# @param repo_paths [Array<String>] the array of repo paths containing cookbook dirs
|
|
53
51
|
def initialize(*repo_paths)
|
|
54
|
-
@tmp_working_dir_path = nil
|
|
55
52
|
@repo_paths = repo_paths.flatten.compact.map { |p| File.expand_path(p) }
|
|
56
53
|
raise ArgumentError, "You must specify at least one cookbook repo path" if @repo_paths.empty?
|
|
57
54
|
end
|
|
@@ -140,27 +137,23 @@ class Chef
|
|
|
140
137
|
|
|
141
138
|
# This method creates tmp directory and copies all cookbooks into it and creates cookbook loader object which points to tmp directory
|
|
142
139
|
def self.copy_to_tmp_dir_from_array(cookbooks)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
dest = File.join(@tmp_working_dir_path, cookbook.name.to_s, path_in_cookbook)
|
|
154
|
-
FileUtils.mkdir_p(File.dirname(dest))
|
|
155
|
-
FileUtils.cp_r(on_disk_path, dest)
|
|
140
|
+
Dir.mktmpdir do |tmp_dir|
|
|
141
|
+
cookbooks.each do |cookbook|
|
|
142
|
+
checksums_to_on_disk_paths = cookbook.checksums
|
|
143
|
+
cookbook.each_file do |manifest_record|
|
|
144
|
+
path_in_cookbook = manifest_record[:path]
|
|
145
|
+
on_disk_path = checksums_to_on_disk_paths[manifest_record[:checksum]]
|
|
146
|
+
dest = File.join(tmp_dir, cookbook.name.to_s, path_in_cookbook)
|
|
147
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
|
148
|
+
FileUtils.cp_r(on_disk_path, dest)
|
|
149
|
+
end
|
|
156
150
|
end
|
|
151
|
+
tmp_cookbook_loader ||= begin
|
|
152
|
+
Chef::Cookbook::FileVendor.fetch_from_disk(tmp_dir)
|
|
153
|
+
CookbookLoader.new(tmp_dir)
|
|
154
|
+
end
|
|
155
|
+
yield tmp_cookbook_loader
|
|
157
156
|
end
|
|
158
|
-
tmp_cookbook_loader ||= begin
|
|
159
|
-
Chef::Cookbook::FileVendor.fetch_from_disk(@tmp_working_dir_path)
|
|
160
|
-
CookbookLoader.new(@tmp_working_dir_path)
|
|
161
|
-
end
|
|
162
|
-
tmp_cookbook_loader.tmp_working_dir_path = @tmp_working_dir_path
|
|
163
|
-
tmp_cookbook_loader
|
|
164
157
|
end
|
|
165
158
|
|
|
166
159
|
# generates metadata.json adds it in the manifest
|
|
@@ -181,13 +174,6 @@ class Chef
|
|
|
181
174
|
end
|
|
182
175
|
end
|
|
183
176
|
|
|
184
|
-
# removes the tmp_dir_path
|
|
185
|
-
def unlink!
|
|
186
|
-
raise "Invalid directory path." if @tmp_working_dir_path.nil?
|
|
187
|
-
|
|
188
|
-
FileUtils.rm_rf(@tmp_working_dir_path)
|
|
189
|
-
end
|
|
190
|
-
|
|
191
177
|
alias :cookbooks :values
|
|
192
178
|
|
|
193
179
|
private
|
data/lib/chef/data_bag.rb
CHANGED
|
@@ -133,7 +133,17 @@ class Chef
|
|
|
133
133
|
end
|
|
134
134
|
|
|
135
135
|
hash["conditional"] = action_record.conditional.to_text if action_record.status == :skipped
|
|
136
|
-
|
|
136
|
+
|
|
137
|
+
unless action_record.exception.nil?
|
|
138
|
+
hash["error_message"] = action_record.exception.message
|
|
139
|
+
|
|
140
|
+
hash["error"] = {
|
|
141
|
+
"class" => action_record.exception.class,
|
|
142
|
+
"message" => action_record.exception.message,
|
|
143
|
+
"backtrace" => action_record.exception.backtrace,
|
|
144
|
+
"description" => action_record.error_description,
|
|
145
|
+
}
|
|
146
|
+
end
|
|
137
147
|
|
|
138
148
|
hash
|
|
139
149
|
end
|
data/lib/chef/deprecated.rb
CHANGED
|
@@ -241,6 +241,14 @@ class Chef
|
|
|
241
241
|
target 30
|
|
242
242
|
end
|
|
243
243
|
|
|
244
|
+
class ResourceNameWithoutProvides < Base
|
|
245
|
+
target 31
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
class AttributeBlacklistConfiguration < Base
|
|
249
|
+
target 32
|
|
250
|
+
end
|
|
251
|
+
|
|
244
252
|
class Generic < Base
|
|
245
253
|
def url
|
|
246
254
|
"https://docs.chef.io/chef_deprecations_client/"
|
data/lib/chef/digester.rb
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
#
|
|
20
20
|
|
|
21
21
|
require "openssl" unless defined?(OpenSSL)
|
|
22
|
+
require "digest" unless defined?(Digest)
|
|
22
23
|
require "singleton" unless defined?(Singleton)
|
|
23
24
|
|
|
24
25
|
class Chef
|
|
@@ -50,11 +51,11 @@ class Chef
|
|
|
50
51
|
end
|
|
51
52
|
|
|
52
53
|
def generate_md5_checksum_for_file(file)
|
|
53
|
-
checksum_file(file,
|
|
54
|
+
checksum_file(file, ::Digest::MD5.new)
|
|
54
55
|
end
|
|
55
56
|
|
|
56
57
|
def generate_md5_checksum(io)
|
|
57
|
-
checksum_io(io,
|
|
58
|
+
checksum_io(io, ::Digest::MD5.new)
|
|
58
59
|
end
|
|
59
60
|
|
|
60
61
|
private
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require "chef-utils" unless defined?(ChefUtils::CANARY)
|
|
20
|
+
require_relative "../mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
|
|
20
21
|
|
|
21
22
|
class Chef
|
|
22
23
|
module DSL
|
|
@@ -25,6 +26,7 @@ class Chef
|
|
|
25
26
|
# #value_for_platform.
|
|
26
27
|
module PlatformIntrospection
|
|
27
28
|
include ChefUtils
|
|
29
|
+
include Chef::Mixin::ChefUtilsWiring
|
|
28
30
|
|
|
29
31
|
# Implementation class for determining platform dependent values
|
|
30
32
|
class PlatformDependentValue
|
|
@@ -77,14 +79,14 @@ class Chef
|
|
|
77
79
|
key_matches = []
|
|
78
80
|
keys = @values[platform].keys
|
|
79
81
|
keys.each do |k|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
end
|
|
84
|
-
rescue Chef::Exceptions::InvalidVersionConstraint => e
|
|
85
|
-
Chef::Log.trace "Caught InvalidVersionConstraint. This means that a key in value_for_platform cannot be interpreted as a Chef::VersionConstraint::Platform."
|
|
86
|
-
Chef::Log.trace(e)
|
|
82
|
+
|
|
83
|
+
if Chef::VersionConstraint::Platform.new(k).include?(node_version)
|
|
84
|
+
key_matches << k
|
|
87
85
|
end
|
|
86
|
+
rescue Chef::Exceptions::InvalidVersionConstraint => e
|
|
87
|
+
Chef::Log.trace "Caught InvalidVersionConstraint. This means that a key in value_for_platform cannot be interpreted as a Chef::VersionConstraint::Platform."
|
|
88
|
+
Chef::Log.trace(e)
|
|
89
|
+
|
|
88
90
|
end
|
|
89
91
|
return @values[platform][version] if key_matches.include?(version)
|
|
90
92
|
|
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
|
|
@@ -255,11 +254,11 @@ class Chef
|
|
|
255
254
|
js_file = File.join(Chef::Config[:environment_path], "#{name}.json")
|
|
256
255
|
rb_file = File.join(Chef::Config[:environment_path], "#{name}.rb")
|
|
257
256
|
|
|
258
|
-
if File.
|
|
257
|
+
if File.exist?(js_file)
|
|
259
258
|
# from_json returns object.class => json_class in the JSON.
|
|
260
259
|
hash = Chef::JSONCompat.parse(IO.read(js_file))
|
|
261
260
|
from_hash(hash)
|
|
262
|
-
elsif File.
|
|
261
|
+
elsif File.exist?(rb_file)
|
|
263
262
|
environment = Chef::Environment.new
|
|
264
263
|
environment.name(name)
|
|
265
264
|
environment.from_file(rb_file)
|
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
|
|
@@ -422,7 +423,7 @@ class Chef
|
|
|
422
423
|
|
|
423
424
|
class ChecksumMismatch < RuntimeError
|
|
424
425
|
def initialize(res_cksum, cont_cksum)
|
|
425
|
-
super "Checksum on resource (#{res_cksum}) does not match checksum on content (#{cont_cksum})"
|
|
426
|
+
super "Checksum on resource (#{res_cksum}...) does not match checksum on content (#{cont_cksum}...)"
|
|
426
427
|
end
|
|
427
428
|
end
|
|
428
429
|
|
|
@@ -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|
|
|
@@ -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)
|
|
@@ -39,15 +39,15 @@ class Chef
|
|
|
39
39
|
errors = [ ]
|
|
40
40
|
|
|
41
41
|
tempfile_dirnames.each do |tempfile_dirname|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
|
|
43
|
+
# preserving the file extension of the target filename should be considered a public API
|
|
44
|
+
tf = ::Tempfile.open([tempfile_basename, tempfile_extension], tempfile_dirname)
|
|
45
|
+
break
|
|
46
|
+
rescue SystemCallError => e
|
|
47
|
+
message = "Creating temp file under '#{tempfile_dirname}' failed with: '#{e.message}'"
|
|
48
|
+
Chef::Log.trace(message)
|
|
49
|
+
errors << message
|
|
50
|
+
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
raise Chef::Exceptions::FileContentStagingError, errors if tf.nil?
|
data/lib/chef/handler.rb
CHANGED
|
@@ -240,6 +240,8 @@ class Chef
|
|
|
240
240
|
# This ensures that all handlers get a chance to run even if one fails.
|
|
241
241
|
# This method should not be overridden by subclasses unless you know what
|
|
242
242
|
# you're doing.
|
|
243
|
+
#
|
|
244
|
+
# @api private
|
|
243
245
|
def run_report_safely(run_status)
|
|
244
246
|
run_report_unsafe(run_status)
|
|
245
247
|
rescue Exception => e
|
data/lib/chef/http.rb
CHANGED
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
#
|
|
23
23
|
|
|
24
24
|
require "tempfile" unless defined?(Tempfile)
|
|
25
|
-
require "
|
|
25
|
+
require "openssl" unless defined?(OpenSSL)
|
|
26
|
+
require "net/http" unless defined?(Net::HTTP)
|
|
26
27
|
require "uri" unless defined?(URI)
|
|
27
28
|
require_relative "http/basic_client"
|
|
28
29
|
require_relative "monkey_patches/net_http"
|
|
@@ -52,13 +53,12 @@ class Chef
|
|
|
52
53
|
|
|
53
54
|
def handle_chunk(next_chunk)
|
|
54
55
|
# stream handlers handle responses so must be applied in reverse order
|
|
55
|
-
# (same as #apply_stream_complete_middleware or #
|
|
56
|
+
# (same as #apply_stream_complete_middleware or #apply_response_middleware)
|
|
56
57
|
@stream_handlers.reverse.inject(next_chunk) do |chunk, handler|
|
|
57
58
|
Chef::Log.trace("Chef::HTTP::StreamHandler calling #{handler.class}#handle_chunk")
|
|
58
59
|
handler.handle_chunk(chunk)
|
|
59
60
|
end
|
|
60
61
|
end
|
|
61
|
-
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
def self.middlewares
|
|
@@ -155,7 +155,7 @@ class Chef
|
|
|
155
155
|
rescue Net::HTTPClientException => e
|
|
156
156
|
http_attempts += 1
|
|
157
157
|
response = e.response
|
|
158
|
-
if response.is_a?(Net::HTTPNotAcceptable) && version_retries - http_attempts
|
|
158
|
+
if response.is_a?(Net::HTTPNotAcceptable) && version_retries - http_attempts >= 0
|
|
159
159
|
Chef::Log.trace("Negotiating protocol version with #{url}, retry #{http_attempts}/#{version_retries}")
|
|
160
160
|
retry
|
|
161
161
|
else
|
|
@@ -194,7 +194,7 @@ class Chef
|
|
|
194
194
|
rescue Net::HTTPClientException => e
|
|
195
195
|
http_attempts += 1
|
|
196
196
|
response = e.response
|
|
197
|
-
if response.is_a?(Net::HTTPNotAcceptable) && version_retries - http_attempts
|
|
197
|
+
if response.is_a?(Net::HTTPNotAcceptable) && version_retries - http_attempts >= 0
|
|
198
198
|
Chef::Log.trace("Negotiating protocol version with #{url}, retry #{http_attempts}/#{version_retries}")
|
|
199
199
|
retry
|
|
200
200
|
else
|
|
@@ -250,7 +250,7 @@ class Chef
|
|
|
250
250
|
rescue Net::HTTPClientException => e
|
|
251
251
|
http_attempts += 1
|
|
252
252
|
response = e.response
|
|
253
|
-
if response.is_a?(Net::HTTPNotAcceptable) && version_retries - http_attempts
|
|
253
|
+
if response.is_a?(Net::HTTPNotAcceptable) && version_retries - http_attempts >= 0
|
|
254
254
|
Chef::Log.trace("Negotiating protocol version with #{url}, retry #{http_attempts}/#{version_retries}")
|
|
255
255
|
retry
|
|
256
256
|
else
|
|
@@ -429,7 +429,7 @@ class Chef
|
|
|
429
429
|
response, request, return_value = yield
|
|
430
430
|
# handle HTTP 50X Error
|
|
431
431
|
if response.is_a?(Net::HTTPServerError) && !Chef::Config.local_mode
|
|
432
|
-
if http_retry_count - http_attempts
|
|
432
|
+
if http_retry_count - http_attempts >= 0
|
|
433
433
|
sleep_time = 1 + (2**http_attempts) + rand(2**http_attempts)
|
|
434
434
|
Chef::Log.error("Server returned error #{response.code} for #{url}, retrying #{http_attempts}/#{http_retry_count} in #{sleep_time}s")
|
|
435
435
|
sleep(sleep_time)
|
|
@@ -439,7 +439,7 @@ class Chef
|
|
|
439
439
|
return [response, request, return_value]
|
|
440
440
|
end
|
|
441
441
|
rescue SocketError, Errno::ETIMEDOUT, Errno::ECONNRESET => e
|
|
442
|
-
if http_retry_count - http_attempts
|
|
442
|
+
if http_retry_count - http_attempts >= 0
|
|
443
443
|
Chef::Log.error("Error connecting to #{url}, retry #{http_attempts}/#{http_retry_count}")
|
|
444
444
|
sleep(http_retry_delay)
|
|
445
445
|
retry
|
|
@@ -447,21 +447,21 @@ class Chef
|
|
|
447
447
|
e.message.replace "Error connecting to #{url} - #{e.message}"
|
|
448
448
|
raise e
|
|
449
449
|
rescue Errno::ECONNREFUSED
|
|
450
|
-
if http_retry_count - http_attempts
|
|
450
|
+
if http_retry_count - http_attempts >= 0
|
|
451
451
|
Chef::Log.error("Connection refused connecting to #{url}, retry #{http_attempts}/#{http_retry_count}")
|
|
452
452
|
sleep(http_retry_delay)
|
|
453
453
|
retry
|
|
454
454
|
end
|
|
455
455
|
raise Errno::ECONNREFUSED, "Connection refused connecting to #{url}, giving up"
|
|
456
456
|
rescue Timeout::Error
|
|
457
|
-
if http_retry_count - http_attempts
|
|
457
|
+
if http_retry_count - http_attempts >= 0
|
|
458
458
|
Chef::Log.error("Timeout connecting to #{url}, retry #{http_attempts}/#{http_retry_count}")
|
|
459
459
|
sleep(http_retry_delay)
|
|
460
460
|
retry
|
|
461
461
|
end
|
|
462
462
|
raise Timeout::Error, "Timeout connecting to #{url}, giving up"
|
|
463
463
|
rescue OpenSSL::SSL::SSLError => e
|
|
464
|
-
if (http_retry_count - http_attempts
|
|
464
|
+
if (http_retry_count - http_attempts >= 0) && !e.message.include?("certificate verify failed")
|
|
465
465
|
Chef::Log.error("SSL Error connecting to #{url}, retry #{http_attempts}/#{http_retry_count}")
|
|
466
466
|
sleep(http_retry_delay)
|
|
467
467
|
retry
|
|
@@ -471,7 +471,7 @@ class Chef
|
|
|
471
471
|
end
|
|
472
472
|
|
|
473
473
|
def version_retries
|
|
474
|
-
@version_retries ||= options[:version_class]
|
|
474
|
+
@version_retries ||= options[:version_class]&.possible_requests || 1
|
|
475
475
|
end
|
|
476
476
|
|
|
477
477
|
# @api private
|
|
@@ -24,7 +24,7 @@ class Chef
|
|
|
24
24
|
class HTTP
|
|
25
25
|
class Authenticator
|
|
26
26
|
|
|
27
|
-
DEFAULT_SERVER_API_VERSION = "
|
|
27
|
+
DEFAULT_SERVER_API_VERSION = "2".freeze
|
|
28
28
|
|
|
29
29
|
attr_reader :signing_key_filename
|
|
30
30
|
attr_reader :raw_key
|
|
@@ -68,6 +68,8 @@ class Chef
|
|
|
68
68
|
version_class.best_request_version
|
|
69
69
|
elsif api_version
|
|
70
70
|
api_version
|
|
71
|
+
elsif Chef::ServerAPIVersions.instance.negotiated?
|
|
72
|
+
Chef::ServerAPIVersions.instance.max_server_version.to_s
|
|
71
73
|
else
|
|
72
74
|
DEFAULT_SERVER_API_VERSION
|
|
73
75
|
end
|