chef 16.2.44-universal-mingw32 → 16.4.35-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -25,19 +25,31 @@ class Chef
|
|
25
25
|
provides :powershell_script, os: "windows"
|
26
26
|
|
27
27
|
property :flags, String,
|
28
|
-
description: "A string that is passed to the Windows PowerShell command"
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
28
|
+
description: "A string that is passed to the Windows PowerShell command"
|
29
|
+
|
30
|
+
property :convert_boolean_return, [true, false],
|
31
|
+
default: false,
|
32
|
+
description: <<~DESC
|
33
|
+
Return `0` if the last line of a command is evaluated to be true or to return `1` if the last line is evaluated to be false.
|
34
|
+
|
35
|
+
When the `guard_interpreter` common attribute is set to `:powershell_script`, a string command will be evaluated as if this value were set to `true`. This is because the behavior of this attribute is similar to the value of the `"$?"` expression common in UNIX interpreters. For example, this:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
powershell_script 'make_safe_backup' do
|
39
|
+
guard_interpreter :powershell_script
|
40
|
+
code 'cp ~/data/nodes.json ~/data/nodes.bak'
|
41
|
+
not_if 'test-path ~/data/nodes.bak'
|
42
|
+
end
|
43
|
+
```
|
44
|
+
|
45
|
+
is similar to:
|
46
|
+
```ruby
|
47
|
+
bash 'make_safe_backup' do
|
48
|
+
code 'cp ~/data/nodes.json ~/data/nodes.bak'
|
49
|
+
not_if 'test -e ~/data/nodes.bak'
|
39
50
|
end
|
40
|
-
|
51
|
+
```
|
52
|
+
DESC
|
41
53
|
|
42
54
|
description "Use the **powershell_script** resource to execute a script using the Windows PowerShell"\
|
43
55
|
" interpreter, much like how the script and script-based resources—bash, csh, perl, python,"\
|
@@ -52,15 +64,6 @@ class Chef
|
|
52
64
|
super
|
53
65
|
@interpreter = "powershell.exe"
|
54
66
|
@default_guard_interpreter = resource_name
|
55
|
-
@convert_boolean_return = false
|
56
|
-
end
|
57
|
-
|
58
|
-
def convert_boolean_return(arg = nil)
|
59
|
-
set_or_return(
|
60
|
-
:convert_boolean_return,
|
61
|
-
arg,
|
62
|
-
kind_of: [ FalseClass, TrueClass ]
|
63
|
-
)
|
64
67
|
end
|
65
68
|
|
66
69
|
# Allow callers evaluating guards to request default
|
@@ -73,15 +76,6 @@ class Chef
|
|
73
76
|
def self.get_default_attributes(opts)
|
74
77
|
{ convert_boolean_return: true }
|
75
78
|
end
|
76
|
-
|
77
|
-
# Options that will be passed to Windows PowerShell command
|
78
|
-
#
|
79
|
-
# @returns [String]
|
80
|
-
def default_flags
|
81
|
-
# Set InputFormat to None as PowerShell will hang if STDIN is redirected
|
82
|
-
# http://connect.microsoft.com/PowerShell/feedback/details/572313/powershell-exe-can-hang-if-stdin-is-redirected
|
83
|
-
"-NoLogo -NonInteractive -NoProfile -ExecutionPolicy Bypass -InputFormat None"
|
84
|
-
end
|
85
79
|
end
|
86
80
|
end
|
87
81
|
end
|
@@ -25,8 +25,8 @@ require_relative "../dist"
|
|
25
25
|
class Chef
|
26
26
|
class Resource
|
27
27
|
class Service < Chef::Resource
|
28
|
-
include
|
29
|
-
extend
|
28
|
+
include Chef::Platform::ServiceHelpers
|
29
|
+
extend Chef::Platform::ServiceHelpers
|
30
30
|
unified_mode true
|
31
31
|
|
32
32
|
provides :service, target_mode: true
|
@@ -29,6 +29,21 @@ class Chef
|
|
29
29
|
|
30
30
|
description "Use the **ssh_known_hosts_entry** resource to add an entry for the specified host in /etc/ssh/ssh_known_hosts or a user's known hosts file if specified."
|
31
31
|
introduced "14.3"
|
32
|
+
examples <<~DOC
|
33
|
+
**Add a single entry for github.com with the key auto detected**
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
ssh_known_hosts_entry 'github.com'
|
37
|
+
```
|
38
|
+
|
39
|
+
**Add a single entry with your own provided key**
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
ssh_known_hosts_entry 'github.com' do
|
43
|
+
key 'node.example.com ssh-rsa ...'
|
44
|
+
end
|
45
|
+
```
|
46
|
+
DOC
|
32
47
|
|
33
48
|
property :host, String,
|
34
49
|
description: "The host to add to the known hosts file.",
|
@@ -91,7 +106,7 @@ class Chef
|
|
91
106
|
|
92
107
|
r = with_run_context :root do
|
93
108
|
find_resource(:template, "update ssh known hosts file #{new_resource.file_location}") do
|
94
|
-
source ::File.expand_path("
|
109
|
+
source ::File.expand_path("support/ssh_known_hosts.erb", __dir__)
|
95
110
|
local true
|
96
111
|
path new_resource.file_location
|
97
112
|
owner new_resource.owner
|
data/lib/chef/resource/sudo.rb
CHANGED
@@ -34,6 +34,33 @@ class Chef
|
|
34
34
|
" installation of the required sudo version. Chef-supported releases of Ubuntu, SuSE, Debian,"\
|
35
35
|
" and RHEL (6+) all support this feature."
|
36
36
|
introduced "14.0"
|
37
|
+
examples <<~DOC
|
38
|
+
**Grant a user sudo privileges for any command**
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
sudo 'admin' do
|
42
|
+
user 'admin'
|
43
|
+
end
|
44
|
+
```
|
45
|
+
|
46
|
+
**Grant a user and groups sudo privileges for any command**
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
sudo 'admins' do
|
50
|
+
users 'bob'
|
51
|
+
groups 'sysadmins, superusers'
|
52
|
+
end
|
53
|
+
```
|
54
|
+
|
55
|
+
**Grant passwordless sudo privileges for specific commands**
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
sudo 'passwordless-access' do
|
59
|
+
commands ['/bin/systemctl restart httpd', '/bin/systemctl restart mysql']
|
60
|
+
nopasswd true
|
61
|
+
end
|
62
|
+
```
|
63
|
+
DOC
|
37
64
|
|
38
65
|
# According to the sudo man pages sudo will ignore files in an include dir that have a `.` or `~`
|
39
66
|
# We convert either to `__`
|
@@ -53,7 +80,7 @@ class Chef
|
|
53
80
|
coerce: proc { |x| coerce_groups(x) }
|
54
81
|
|
55
82
|
property :commands, Array,
|
56
|
-
description: "An array of commands this sudoer can execute.",
|
83
|
+
description: "An array of full paths to commands this sudoer can execute.",
|
57
84
|
default: ["ALL"]
|
58
85
|
|
59
86
|
property :host, String,
|
@@ -112,7 +139,7 @@ class Chef
|
|
112
139
|
|
113
140
|
# handle legacy cookbook property
|
114
141
|
def after_created
|
115
|
-
raise "The 'visudo_path' property from the sudo cookbook has been replaced with the 'visudo_binary' property. The path is now more intelligently determined and for most users specifying the path should no longer be necessary. If this resource still cannot determine the path to visudo then provide the
|
142
|
+
raise "The 'visudo_path' property from the sudo cookbook has been replaced with the 'visudo_binary' property. The path is now more intelligently determined and for most users specifying the path should no longer be necessary. If this resource still cannot determine the path to visudo then provide the absolute path to the binary with the 'visudo_binary' property." if visudo_path
|
116
143
|
end
|
117
144
|
|
118
145
|
# VERY old legacy properties
|
@@ -172,7 +199,7 @@ class Chef
|
|
172
199
|
end
|
173
200
|
else
|
174
201
|
template file_path do
|
175
|
-
source ::File.expand_path("
|
202
|
+
source ::File.expand_path("support/sudoer.erb", __dir__)
|
176
203
|
local true
|
177
204
|
mode "0440"
|
178
205
|
variables sudoer: (new_resource.groups + new_resource.users).join(","),
|
@@ -228,7 +255,7 @@ class Chef
|
|
228
255
|
end
|
229
256
|
|
230
257
|
def visudo_content(path)
|
231
|
-
if ::File.
|
258
|
+
if ::File.exist?(path)
|
232
259
|
"cat #{new_resource.config_prefix}/sudoers | #{new_resource.visudo_binary} -cf - && #{new_resource.visudo_binary} -cf %{path}"
|
233
260
|
else
|
234
261
|
"cat #{new_resource.config_prefix}/sudoers %{path} | #{new_resource.visudo_binary} -cf -"
|
@@ -26,6 +26,23 @@ class Chef
|
|
26
26
|
|
27
27
|
description "Use the **swap_file** resource to create or delete swap files on Linux systems, and optionally to manage the swappiness configuration for a host."
|
28
28
|
introduced "14.0"
|
29
|
+
examples <<~DOC
|
30
|
+
**Create a swap file**
|
31
|
+
|
32
|
+
```ruby
|
33
|
+
swap_file '/dev/sda1' do
|
34
|
+
size 1024
|
35
|
+
end
|
36
|
+
```
|
37
|
+
|
38
|
+
**Remove a swap file**
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
swap_file '/dev/sda1' do
|
42
|
+
action :remove
|
43
|
+
end
|
44
|
+
```
|
45
|
+
DOC
|
29
46
|
|
30
47
|
property :path, String,
|
31
48
|
description: "The path where the swap file will be created on the system if it differs from the resource block's name.",
|
data/lib/chef/resource/sysctl.rb
CHANGED
@@ -128,11 +128,11 @@ class Chef
|
|
128
128
|
end
|
129
129
|
|
130
130
|
load_current_value do
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
131
|
+
|
132
|
+
value get_sysctl_value(key)
|
133
|
+
rescue
|
134
|
+
current_value_does_not_exist!
|
135
|
+
|
136
136
|
end
|
137
137
|
|
138
138
|
action :apply do
|
@@ -28,6 +28,21 @@ class Chef
|
|
28
28
|
|
29
29
|
description "Use the **timezone** resource to change the system timezone on Windows, Linux, and macOS hosts. Timezones are specified in tz database format, with a complete list of available TZ values for Linux and macOS here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones and for Windows here: https://ss64.com/nt/timezones.html."
|
30
30
|
introduced "14.6"
|
31
|
+
examples <<~DOC
|
32
|
+
**Set the timezone to UTC**
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
timezone 'UTC'
|
36
|
+
```
|
37
|
+
|
38
|
+
**Set the timezone to UTC with a friendly resource name**
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
timezone 'Set the host's timezone to UTC' do
|
42
|
+
timezone 'UTC'
|
43
|
+
end
|
44
|
+
```
|
45
|
+
DOC
|
31
46
|
|
32
47
|
property :timezone, String,
|
33
48
|
description: "An optional property to set the timezone value if it differs from the resource block's name.",
|
@@ -80,7 +80,7 @@ class Chef
|
|
80
80
|
|
81
81
|
action :create do
|
82
82
|
template "/etc/security/limits.d/#{new_resource.filename}" do
|
83
|
-
source ::File.expand_path("
|
83
|
+
source ::File.expand_path("support/ulimit.erb", __dir__)
|
84
84
|
local true
|
85
85
|
mode "0644"
|
86
86
|
variables(
|
@@ -82,6 +82,9 @@ class Chef
|
|
82
82
|
"User / Device Claims",
|
83
83
|
"User Account Management",
|
84
84
|
].freeze
|
85
|
+
|
86
|
+
unified_mode true
|
87
|
+
|
85
88
|
provides :windows_audit_policy
|
86
89
|
|
87
90
|
description "Use the **windows_audit_policy** resource to configure system level and per-user Windows advanced audit policy settings."
|
@@ -21,6 +21,8 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class WindowsAutorun < Chef::Resource
|
24
|
+
unified_mode true
|
25
|
+
|
24
26
|
provides(:windows_auto_run) { true }
|
25
27
|
|
26
28
|
description "Use the **windows_auto_run** resource to set applications to run at login."
|
@@ -26,6 +26,8 @@ require_relative "../dist"
|
|
26
26
|
class Chef
|
27
27
|
class Resource
|
28
28
|
class WindowsCertificate < Chef::Resource
|
29
|
+
unified_mode true
|
30
|
+
|
29
31
|
provides :windows_certificate
|
30
32
|
|
31
33
|
description "Use the **windows_certificate** resource to install a certificate into the Windows certificate store from a file. The resource grants read-only access to the private key for designated accounts. Due to current limitations in WinRM, installing certificates remotely may not work if the operation requires a user profile. Operations on the local machine store should still work."
|
@@ -21,6 +21,8 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class WindowsDfsFolder < Chef::Resource
|
24
|
+
unified_mode true
|
25
|
+
|
24
26
|
provides :windows_dfs_folder
|
25
27
|
|
26
28
|
description "Use the **windows_dfs_folder** resource to creates a folder within DFS as many levels deep as required."
|
@@ -21,6 +21,8 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class WindowsDfsNamespace < Chef::Resource
|
24
|
+
unified_mode true
|
25
|
+
|
24
26
|
provides :windows_dfs_namespace
|
25
27
|
|
26
28
|
description "Use the **windows_dfs_namespace** resource to creates a share and DFS namespace on a Windows server."
|
@@ -21,6 +21,8 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class WindowsDnsRecord < Chef::Resource
|
24
|
+
unified_mode true
|
25
|
+
|
24
26
|
provides :windows_dns_record
|
25
27
|
|
26
28
|
description "The windows_dns_record resource creates a DNS record for the given domain."
|
@@ -42,23 +44,40 @@ class Chef
|
|
42
44
|
description: "The type of record to create, can be either ARecord, CNAME or PTR.",
|
43
45
|
default: "ARecord", equal_to: %w{ARecord CNAME PTR}
|
44
46
|
|
47
|
+
property :dns_server, String,
|
48
|
+
description: "The name of the DNS server on which to create the record.",
|
49
|
+
default: "localhost",
|
50
|
+
introduced: "16.3"
|
51
|
+
|
45
52
|
action :create do
|
46
53
|
description "Creates and updates the DNS entry."
|
47
54
|
|
48
|
-
|
55
|
+
windows_feature "RSAT-DNS-Server" do
|
56
|
+
not_if new_resource.dns_server.casecmp?("localhost")
|
49
57
|
end
|
50
|
-
|
58
|
+
|
59
|
+
powershell_package "xDnsServer"
|
60
|
+
|
61
|
+
run_dsc_resource "Present"
|
51
62
|
end
|
52
63
|
|
53
64
|
action :delete do
|
54
65
|
description "Deletes a DNS entry."
|
55
|
-
|
66
|
+
|
67
|
+
windows_feature "RSAT-DNS-Server" do
|
68
|
+
not_if new_resource.dns_server.casecmp?("localhost")
|
56
69
|
end
|
57
|
-
|
70
|
+
|
71
|
+
powershell_package "xDnsServer"
|
72
|
+
|
73
|
+
run_dsc_resource "Absent"
|
58
74
|
end
|
59
75
|
|
60
76
|
action_class do
|
61
|
-
|
77
|
+
private
|
78
|
+
|
79
|
+
# @api private
|
80
|
+
def run_dsc_resource(ensure_prop)
|
62
81
|
dsc_resource "xDnsRecord #{new_resource.record_name}.#{new_resource.zone} #{ensure_prop}" do
|
63
82
|
module_name "xDnsServer"
|
64
83
|
resource :xDnsRecord
|
@@ -67,6 +86,7 @@ class Chef
|
|
67
86
|
property :Zone, new_resource.zone
|
68
87
|
property :Type, new_resource.record_type
|
69
88
|
property :Target, new_resource.target
|
89
|
+
property :DnsServer, new_resource.dns_server
|
70
90
|
end
|
71
91
|
end
|
72
92
|
end
|
@@ -21,6 +21,8 @@ require_relative "../resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class WindowsDnsZone < Chef::Resource
|
24
|
+
unified_mode true
|
25
|
+
|
24
26
|
provides :windows_dns_zone
|
25
27
|
|
26
28
|
description "The windows_dns_zone resource creates an Active Directory Integrated DNS Zone on the local server."
|
@@ -41,21 +43,24 @@ class Chef
|
|
41
43
|
action :create do
|
42
44
|
description "Creates and updates a DNS Zone."
|
43
45
|
|
44
|
-
powershell_package "xDnsServer"
|
45
|
-
|
46
|
-
|
46
|
+
powershell_package "xDnsServer"
|
47
|
+
|
48
|
+
run_dsc_resource "Present"
|
47
49
|
end
|
48
50
|
|
49
51
|
action :delete do
|
50
52
|
description "Deletes a DNS Zone."
|
51
53
|
|
52
|
-
powershell_package "xDnsServer"
|
53
|
-
|
54
|
-
|
54
|
+
powershell_package "xDnsServer"
|
55
|
+
|
56
|
+
run_dsc_resource "Absent"
|
55
57
|
end
|
56
58
|
|
57
59
|
action_class do
|
58
|
-
|
60
|
+
private
|
61
|
+
|
62
|
+
# @api private
|
63
|
+
def run_dsc_resource(ensure_prop)
|
59
64
|
if new_resource.server_type == "Domain"
|
60
65
|
dsc_resource "xDnsServerADZone #{new_resource.zone_name} #{ensure_prop}" do
|
61
66
|
module_name "xDnsServer"
|