chef 16.2.44-universal-mingw32 → 16.4.35-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 +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 +2 -2
- data/lib/chef/application.rb +13 -1
- data/lib/chef/application/apply.rb +6 -5
- 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 +53 -40
- data/lib/chef/provider/osx_profile.rb +0 -255
- data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -81,7 +81,7 @@ class Chef
|
|
81
81
|
end
|
82
82
|
|
83
83
|
requirements.assert(:all_actions) do |a|
|
84
|
-
a.assertion { ::File.
|
84
|
+
a.assertion { ::File.exist?(@plist.to_s) }
|
85
85
|
a.failure_message Chef::Exceptions::Service,
|
86
86
|
"Could not find plist for #{@new_resource}"
|
87
87
|
end
|
@@ -221,7 +221,7 @@ class Chef
|
|
221
221
|
return nil if @plist.nil?
|
222
222
|
|
223
223
|
# Plist must exist by this point
|
224
|
-
raise Chef::Exceptions::FileNotFound, "Cannot find #{@plist}!" unless ::File.
|
224
|
+
raise Chef::Exceptions::FileNotFound, "Cannot find #{@plist}!" unless ::File.exist?(@plist)
|
225
225
|
|
226
226
|
# Most services have the same internal label as the name of the
|
227
227
|
# plist file. However, there is no rule saying that *has* to be
|
@@ -16,7 +16,6 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require_relative "../../mixin/shell_out"
|
20
19
|
require_relative "init"
|
21
20
|
require_relative "../../resource/service"
|
22
21
|
|
@@ -27,8 +26,6 @@ class Chef
|
|
27
26
|
|
28
27
|
provides :service, os: "openbsd"
|
29
28
|
|
30
|
-
include Chef::Mixin::ShellOut
|
31
|
-
|
32
29
|
attr_reader :init_command, :rc_conf, :rc_conf_local, :enabled_state_found
|
33
30
|
|
34
31
|
RC_CONF_PATH = "/etc/rc.conf".freeze
|
@@ -132,7 +129,7 @@ class Chef
|
|
132
129
|
end
|
133
130
|
|
134
131
|
def update_rcl(value)
|
135
|
-
FileUtils.touch RC_CONF_LOCAL_PATH unless ::File.
|
132
|
+
FileUtils.touch RC_CONF_LOCAL_PATH unless ::File.exist? RC_CONF_LOCAL_PATH
|
136
133
|
::File.write(RC_CONF_LOCAL_PATH, value)
|
137
134
|
@rc_conf_local = value
|
138
135
|
end
|
@@ -56,7 +56,7 @@ class Chef
|
|
56
56
|
|
57
57
|
requirements.assert(:all_actions) do |a|
|
58
58
|
chkconfig_file = "/sbin/chkconfig"
|
59
|
-
a.assertion { ::File.
|
59
|
+
a.assertion { ::File.exist? chkconfig_file }
|
60
60
|
a.failure_message Chef::Exceptions::Service, "#{chkconfig_file} does not exist!"
|
61
61
|
end
|
62
62
|
|
@@ -80,7 +80,7 @@ class Chef
|
|
80
80
|
|
81
81
|
super
|
82
82
|
|
83
|
-
if ::File.
|
83
|
+
if ::File.exist?("/sbin/chkconfig")
|
84
84
|
chkconfig = shell_out!("/sbin/chkconfig --list #{current_resource.service_name}", returns: [0, 1])
|
85
85
|
unless run_levels.nil? || run_levels.empty?
|
86
86
|
all_levels_match = true
|
@@ -135,7 +135,7 @@ class Chef
|
|
135
135
|
end
|
136
136
|
end
|
137
137
|
# Get enabled/disabled state by reading job configuration file
|
138
|
-
if ::File.
|
138
|
+
if ::File.exist?("#{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}")
|
139
139
|
logger.trace("#{@new_resource} found #{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}")
|
140
140
|
::File.open("#{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}", "r") do |file|
|
141
141
|
while line = file.gets
|
@@ -95,17 +95,17 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
95
95
|
shell_out!(@new_resource.start_command)
|
96
96
|
else
|
97
97
|
spawn_command_thread do
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
end
|
98
|
+
|
99
|
+
Win32::Service.start(@new_resource.service_name)
|
100
|
+
rescue SystemCallError => ex
|
101
|
+
if ex.errno == ERROR_SERVICE_LOGON_FAILED
|
102
|
+
logger.error ex.message
|
103
|
+
raise Chef::Exceptions::Service,
|
104
|
+
"Service #{@new_resource} did not start due to a logon failure (error #{ERROR_SERVICE_LOGON_FAILED}): possibly the specified user '#{@new_resource.run_as_user}' does not have the 'log on as a service' privilege, or the password is incorrect."
|
105
|
+
else
|
106
|
+
raise ex
|
108
107
|
end
|
108
|
+
|
109
109
|
end
|
110
110
|
wait_for_state(RUNNING)
|
111
111
|
end
|
@@ -18,7 +18,6 @@
|
|
18
18
|
|
19
19
|
require_relative "../provider"
|
20
20
|
require_relative "../mixin/which"
|
21
|
-
require_relative "../mixin/shell_out"
|
22
21
|
require_relative "../resource/file"
|
23
22
|
require_relative "../resource/file/verification/systemd_unit"
|
24
23
|
require "iniparse"
|
@@ -28,7 +27,6 @@ class Chef
|
|
28
27
|
class Provider
|
29
28
|
class SystemdUnit < Chef::Provider
|
30
29
|
include Chef::Mixin::Which
|
31
|
-
include Chef::Mixin::ShellOut
|
32
30
|
|
33
31
|
provides :systemd_unit
|
34
32
|
|
@@ -562,7 +562,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
562
562
|
# Sets a value in user information hash using Chef attributes as keys.
|
563
563
|
#
|
564
564
|
def dscl_set(user_hash, key, value)
|
565
|
-
raise "Unknown dscl key #{key}" unless DSCL_PROPERTY_MAP.
|
565
|
+
raise "Unknown dscl key #{key}" unless DSCL_PROPERTY_MAP.key?(key)
|
566
566
|
|
567
567
|
user_hash[DSCL_PROPERTY_MAP[key]] = [ value ]
|
568
568
|
user_hash
|
@@ -572,7 +572,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
572
572
|
# Gets a value from user information hash using Chef attributes as keys.
|
573
573
|
#
|
574
574
|
def dscl_get(user_hash, key)
|
575
|
-
raise "Unknown dscl key #{key}" unless DSCL_PROPERTY_MAP.
|
575
|
+
raise "Unknown dscl key #{key}" unless DSCL_PROPERTY_MAP.key?(key)
|
576
576
|
|
577
577
|
# DSCL values are set as arrays
|
578
578
|
value = user_hash[DSCL_PROPERTY_MAP[key]]
|
@@ -583,16 +583,16 @@ class Chef
|
|
583
583
|
timeout = Time.now + 5
|
584
584
|
|
585
585
|
loop do
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
end
|
586
|
+
|
587
|
+
run_dscl("read", "/Users/#{new_resource.username}", "ShadowHashData")
|
588
|
+
break
|
589
|
+
rescue Chef::Exceptions::DsclCommandFailed => e
|
590
|
+
if Time.now < timeout
|
591
|
+
sleep 0.1
|
592
|
+
else
|
593
|
+
raise Chef::Exceptions::User, e.message
|
595
594
|
end
|
595
|
+
|
596
596
|
end
|
597
597
|
end
|
598
598
|
|
@@ -16,7 +16,6 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require_relative "../mixin/shell_out"
|
20
19
|
require "rexml/document" unless defined?(REXML::Document)
|
21
20
|
require "iso8601" if ChefUtils.windows?
|
22
21
|
require_relative "../provider"
|
@@ -26,8 +25,6 @@ require "win32/taskscheduler" if ChefUtils.windows?
|
|
26
25
|
class Chef
|
27
26
|
class Provider
|
28
27
|
class WindowsTask < Chef::Provider
|
29
|
-
include Chef::Mixin::ShellOut
|
30
|
-
|
31
28
|
if ChefUtils.windows?
|
32
29
|
include Win32
|
33
30
|
|
@@ -37,7 +37,7 @@ class Chef
|
|
37
37
|
if template_available?(new_resource.source)
|
38
38
|
source new_resource.source
|
39
39
|
else
|
40
|
-
source ::File.expand_path("
|
40
|
+
source ::File.expand_path("support/yum_repo.erb", __dir__)
|
41
41
|
local true
|
42
42
|
end
|
43
43
|
sensitive new_resource.sensitive
|
@@ -19,7 +19,6 @@
|
|
19
19
|
require_relative "../resource"
|
20
20
|
require_relative "../dsl/declare_resource"
|
21
21
|
require_relative "noop"
|
22
|
-
require_relative "../mixin/shell_out"
|
23
22
|
require "shellwords" unless defined?(Shellwords)
|
24
23
|
require_relative "../dist"
|
25
24
|
|
@@ -41,7 +40,7 @@ class Chef
|
|
41
40
|
if template_available?(new_resource.source)
|
42
41
|
source new_resource.source
|
43
42
|
else
|
44
|
-
source ::File.expand_path("
|
43
|
+
source ::File.expand_path("support/zypper_repo.erb", __dir__)
|
45
44
|
local true
|
46
45
|
end
|
47
46
|
sensitive new_resource.sensitive
|
data/lib/chef/providers.rb
CHANGED
@@ -36,7 +36,6 @@ require_relative "provider/mount"
|
|
36
36
|
require_relative "provider/noop"
|
37
37
|
require_relative "provider/package"
|
38
38
|
require_relative "provider/powershell_script"
|
39
|
-
require_relative "provider/osx_profile"
|
40
39
|
require_relative "provider/remote_directory"
|
41
40
|
require_relative "provider/remote_file"
|
42
41
|
require_relative "provider/route"
|
data/lib/chef/recipe.rb
CHANGED
data/lib/chef/resource.rb
CHANGED
@@ -19,8 +19,6 @@
|
|
19
19
|
#
|
20
20
|
|
21
21
|
require_relative "exceptions"
|
22
|
-
require_relative "dsl/data_query"
|
23
|
-
require_relative "dsl/registry_helper"
|
24
22
|
require_relative "dsl/reboot_pending"
|
25
23
|
require_relative "dsl/resources"
|
26
24
|
require_relative "dsl/declare_resource"
|
@@ -53,8 +51,6 @@ class Chef
|
|
53
51
|
#
|
54
52
|
|
55
53
|
include Chef::DSL::DeclareResource
|
56
|
-
include Chef::DSL::DataQuery
|
57
|
-
include Chef::DSL::RegistryHelper
|
58
54
|
include Chef::DSL::RebootPending
|
59
55
|
extend Chef::Mixin::Provides
|
60
56
|
|
@@ -460,7 +456,7 @@ class Chef
|
|
460
456
|
property :umask, String,
|
461
457
|
desired_state: false,
|
462
458
|
introduced: "16.2",
|
463
|
-
description: "Set a umask to be used for the duration of converging the resource. Defaults to `nil`, which means to use the system umask."
|
459
|
+
description: "Set a umask to be used for the duration of converging the resource. Defaults to `nil`, which means to use the system umask. Unsupported on Windows because Windows lacks a direct equivalent to UNIX's umask."
|
464
460
|
|
465
461
|
# The time it took (in seconds) to run the most recently-run action. Not
|
466
462
|
# cumulative across actions. This is set to 0 as soon as a new action starts
|
@@ -638,6 +634,7 @@ class Chef
|
|
638
634
|
# Do NOT use this. It may be removed. It is for internal purposes only.
|
639
635
|
# @api private
|
640
636
|
attr_reader :resource_initializing
|
637
|
+
|
641
638
|
def resource_initializing=(value)
|
642
639
|
if value
|
643
640
|
@resource_initializing = true
|
@@ -662,17 +659,17 @@ class Chef
|
|
662
659
|
|
663
660
|
all_props = {}
|
664
661
|
self.class.state_properties.map do |p|
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
662
|
+
|
663
|
+
all_props[p.name.to_s] = p.sensitive? ? '"*sensitive value suppressed*"' : value_to_text(p.get(self))
|
664
|
+
rescue Chef::Exceptions::ValidationFailed
|
665
|
+
# This space left intentionally blank, the property was probably required or had an invalid default.
|
666
|
+
|
670
667
|
end
|
671
668
|
|
672
669
|
ivars = instance_variables.map(&:to_sym) - HIDDEN_IVARS
|
673
670
|
ivars.each do |ivar|
|
674
671
|
iv = ivar.to_s.sub(/^@/, "")
|
675
|
-
if all_props.
|
672
|
+
if all_props.key?(iv)
|
676
673
|
text << " #{iv} #{all_props[iv]}\n"
|
677
674
|
elsif (value = instance_variable_get(ivar)) && !(value.respond_to?(:empty?) && value.empty?)
|
678
675
|
text << " #{iv} #{value_to_text(value)}\n"
|
@@ -888,6 +885,7 @@ class Chef
|
|
888
885
|
# have.
|
889
886
|
#
|
890
887
|
attr_writer :allowed_actions
|
888
|
+
|
891
889
|
def allowed_actions(value = NOT_PASSED)
|
892
890
|
if value != NOT_PASSED
|
893
891
|
self.allowed_actions = value
|
@@ -89,7 +89,7 @@ class Chef
|
|
89
89
|
description: "The path to the alternatives link."
|
90
90
|
|
91
91
|
property :path, String,
|
92
|
-
description: "The
|
92
|
+
description: "The absolute path to the original application binary such as `/usr/bin/ruby27`."
|
93
93
|
|
94
94
|
property :priority, [String, Integer],
|
95
95
|
coerce: proc { |n| n.to_i },
|
@@ -192,16 +192,7 @@ class Chef
|
|
192
192
|
#
|
193
193
|
# @return [Boolean] is the key valid or not
|
194
194
|
def key_is_valid?(key)
|
195
|
-
valid =
|
196
|
-
|
197
|
-
so = shell_out("apt-key", "list")
|
198
|
-
so.stdout.split(/\n/).map do |t|
|
199
|
-
if t =~ %r{^\/#{key}.*\[expired: .*\]$}
|
200
|
-
logger.debug "Found expired key: #{t}"
|
201
|
-
valid = false
|
202
|
-
break
|
203
|
-
end
|
204
|
-
end
|
195
|
+
valid = shell_out("apt-key", "list").stdout.each_line.none?(%r{^\/#{key}.*\[expired: .*\]$})
|
205
196
|
|
206
197
|
logger.debug "key #{key} #{valid ? "is valid" : "is not valid"}"
|
207
198
|
valid
|
@@ -146,8 +146,8 @@ class Chef
|
|
146
146
|
def install_xcode_cli_tools(label)
|
147
147
|
# This script was graciously borrowed and modified from Tim Sutton's
|
148
148
|
# osx-vm-templates at https://github.com/timsutton/osx-vm-templates/blob/b001475df54a9808d3d56d06e71b8fa3001fff42/scripts/xcode-cli-tools.sh
|
149
|
-
|
150
|
-
|
149
|
+
bash "install Xcode Command Line Tools" do
|
150
|
+
code <<-EOH
|
151
151
|
# create the placeholder file that's checked by CLI updates' .dist code
|
152
152
|
# in Apple's SUS catalog
|
153
153
|
touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
|
@@ -112,11 +112,11 @@ class Chef
|
|
112
112
|
|
113
113
|
action :remove do
|
114
114
|
systemd_unit "#{new_resource.job_name}.service" do
|
115
|
-
action :
|
115
|
+
action :delete
|
116
116
|
end
|
117
117
|
|
118
118
|
systemd_unit "#{new_resource.job_name}.timer" do
|
119
|
-
action :
|
119
|
+
action :delete
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
@@ -22,26 +22,59 @@ require_relative "../dist"
|
|
22
22
|
|
23
23
|
class Chef
|
24
24
|
class Resource
|
25
|
-
# Use the chef_gem resource to install a gem only for the instance of Ruby that is dedicated to the chef-client.
|
26
|
-
# When a gem is installed from a local file, it must be added to the node using the remote_file or cookbook_file
|
27
|
-
# resources.
|
28
|
-
#
|
29
|
-
# The chef_gem resource works with all of the same properties and options as the gem_package resource, but does not
|
30
|
-
# accept the gem_binary property because it always uses the CurrentGemEnvironment under which the chef-client is
|
31
|
-
# running. In addition to performing actions similar to the gem_package resource, the chef_gem resource does the
|
32
|
-
# following:
|
33
|
-
# - Runs its actions immediately, before convergence, allowing a gem to be used in a recipe immediately after it is
|
34
|
-
# installed
|
35
|
-
# - Runs Gem.clear_paths after the action, ensuring that gem is aware of changes so that it can be required
|
36
|
-
# immediately after it is installed
|
37
|
-
|
38
|
-
require_relative "gem_package"
|
39
|
-
require_relative "../dist"
|
40
|
-
|
41
25
|
class ChefGem < Chef::Resource::Package::GemPackage
|
42
26
|
unified_mode true
|
43
27
|
provides :chef_gem
|
44
28
|
|
29
|
+
description <<~DESC
|
30
|
+
Use the **chef_gem** resource to install a gem only for the instance of Ruby that is dedicated to the #{Chef::Dist::CLIENT}.
|
31
|
+
When a gem is installed from a local file, it must be added to the node using the **remote_file** or **cookbook_file** resources.
|
32
|
+
|
33
|
+
The **chef_gem** resource works with all of the same properties and options as the **gem_package** resource, but does not
|
34
|
+
accept the `gem_binary` property because it always uses the `CurrentGemEnvironment` under which the `#{Chef::Dist::CLIENT}` is
|
35
|
+
running. In addition to performing actions similar to the **gem_package** resource, the **chef_gem** resource does the
|
36
|
+
following:
|
37
|
+
- Runs its actions immediately, before convergence, allowing a gem to be used in a recipe immediately after it is installed.
|
38
|
+
- Runs `Gem.clear_paths` after the action, ensuring that gem is aware of changes so that it can be required immediately after it is installed.
|
39
|
+
|
40
|
+
Warning: The **chef_gem** and **gem_package** resources are both used to install Ruby gems. For any machine on which #{Chef::Dist::PRODUCT} is
|
41
|
+
installed, there are two instances of Ruby. One is the standard, system-wide instance of Ruby and the other is a dedicated instance that is
|
42
|
+
available only to #{Chef::Dist::PRODUCT}.
|
43
|
+
Use the **chef_gem** resource to install gems into the instance of Ruby that is dedicated to #{Chef::Dist::PRODUCT}.
|
44
|
+
Use the **gem_package** resource to install all other gems (i.e. install gems system-wide).
|
45
|
+
DESC
|
46
|
+
|
47
|
+
examples <<~EXAMPLES
|
48
|
+
**Compile time vs. converge time installation of gems**
|
49
|
+
|
50
|
+
To install a gem while #{Chef::Dist::PRODUCT} is configuring the node (the converge phase), set the `compile_time` property to `false`:
|
51
|
+
```ruby
|
52
|
+
chef_gem 'right_aws' do
|
53
|
+
compile_time false
|
54
|
+
action :install
|
55
|
+
end
|
56
|
+
```
|
57
|
+
|
58
|
+
To install a gem while the resource collection is being built (the compile phase), set the `compile_time` property to `true`:
|
59
|
+
```ruby
|
60
|
+
chef_gem 'right_aws' do
|
61
|
+
compile_time true
|
62
|
+
action :install
|
63
|
+
end
|
64
|
+
```
|
65
|
+
|
66
|
+
Install MySQL for Chef
|
67
|
+
```ruby
|
68
|
+
apt_update
|
69
|
+
|
70
|
+
build_essential 'install compilation tools' do
|
71
|
+
compile_time true
|
72
|
+
end
|
73
|
+
|
74
|
+
chef_gem 'mysql'
|
75
|
+
```
|
76
|
+
EXAMPLES
|
77
|
+
|
45
78
|
property :package_name, String,
|
46
79
|
description: "An optional property to set the package name if it differs from the resource block's name.",
|
47
80
|
identity: true
|
@@ -49,11 +82,14 @@ class Chef
|
|
49
82
|
property :version, String,
|
50
83
|
description: "The version of a package to be installed or upgraded."
|
51
84
|
|
52
|
-
property :gem_binary,
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
85
|
+
property :gem_binary, String,
|
86
|
+
default: "#{RbConfig::CONFIG["bindir"]}/gem",
|
87
|
+
default_description: "The `gem` binary included with #{Chef::Dist::PRODUCT}.",
|
88
|
+
description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by #{Chef::Dist::PRODUCT} will be used.",
|
89
|
+
callbacks: {
|
90
|
+
"The `chef_gem` resource is restricted to the current gem environment, use `gem_package` to install to other environments." =>
|
91
|
+
proc { |v| v == "#{RbConfig::CONFIG["bindir"]}/gem" },
|
92
|
+
}
|
57
93
|
end
|
58
94
|
end
|
59
95
|
end
|