chef 16.1.0-universal-mingw32 → 16.3.38-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 +6 -7
- data/README.md +3 -3
- data/Rakefile +4 -3
- data/chef-universal-mingw32.gemspec +2 -2
- data/chef.gemspec +7 -6
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/application.rb +12 -0
- data/lib/chef/application/apply.rb +2 -1
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
- data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +2 -2
- data/lib/chef/chef_fs/path_utils.rb +4 -4
- data/lib/chef/client.rb +3 -3
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +2 -2
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -3
- data/lib/chef/cookbook/syntax_check.rb +1 -2
- data/lib/chef/cookbook_loader.rb +16 -30
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +4 -4
- data/lib/chef/data_bag.rb +5 -6
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +12 -0
- data/lib/chef/digester.rb +5 -4
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/dsl/platform_introspection.rb +2 -0
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/environment.rb +1 -2
- data/lib/chef/exceptions.rb +3 -0
- data/lib/chef/file_access_control.rb +1 -1
- data/lib/chef/file_access_control/windows.rb +2 -2
- data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/http.rb +19 -4
- data/lib/chef/http/authenticator.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +1 -1
- data/lib/chef/http/json_output.rb +1 -1
- data/lib/chef/http/ssl_policies.rb +18 -0
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +6 -6
- data/lib/chef/knife/bootstrap.rb +24 -24
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
- data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
- data/lib/chef/knife/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/config_get.rb +2 -1
- data/lib/chef/knife/config_list_profiles.rb +4 -1
- data/lib/chef/knife/config_use_profile.rb +15 -5
- data/lib/chef/knife/configure.rb +1 -1
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +6 -14
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -1
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +21 -2
- data/lib/chef/knife/core/ui.rb +8 -2
- data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -4
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/node_bulk_delete.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +1 -1
- data/lib/chef/knife/rehash.rb +3 -21
- data/lib/chef/knife/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/ssh.rb +7 -3
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/log.rb +8 -3
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
- data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
- data/lib/chef/mixin/openssl_helper.rb +31 -9
- data/lib/chef/mixin/path_sanity.rb +5 -4
- data/lib/chef/mixin/properties.rb +2 -2
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/mixin/shell_out.rb +4 -188
- data/lib/chef/mixin/template.rb +1 -0
- data/lib/chef/mixin/which.rb +6 -3
- data/lib/chef/mixins.rb +1 -0
- data/lib/chef/node.rb +36 -12
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node_map.rb +21 -18
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/property.rb +2 -2
- data/lib/chef/provider.rb +3 -3
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron.rb +2 -14
- data/lib/chef/provider/directory.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +1 -1
- data/lib/chef/provider/git.rb +12 -4
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/solaris.rb +0 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +1 -1
- data/lib/chef/provider/package/dpkg.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +3 -2
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rubygems.rb +3 -3
- data/lib/chef/provider/package/snap.rb +97 -29
- data/lib/chef/provider/package/windows.rb +11 -6
- data/lib/chef/provider/package/windows/msi.rb +3 -3
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
- data/lib/chef/provider/package/yum.rb +1 -1
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +10 -14
- data/lib/chef/provider/remote_directory.rb +2 -2
- data/lib/chef/provider/remote_file/http.rb +4 -1
- data/lib/chef/provider/script.rb +4 -75
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +4 -4
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +1 -1
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +15 -11
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/windows_task.rb +4 -2
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +31 -11
- data/lib/chef/resource.rb +27 -14
- data/lib/chef/resource/alternatives.rb +1 -1
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/archive_file.rb +28 -8
- data/lib/chef/resource/bash.rb +0 -1
- data/lib/chef/resource/batch.rb +4 -2
- data/lib/chef/resource/build_essential.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +14 -2
- data/lib/chef/resource/chef_gem.rb +57 -21
- data/lib/chef/resource/chef_handler.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +1 -1
- data/lib/chef/resource/chocolatey_feature.rb +1 -2
- data/lib/chef/resource/cron/_cron_shared.rb +98 -0
- data/lib/chef/resource/cron/cron.rb +46 -0
- data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
- data/lib/chef/resource/cron_access.rb +13 -5
- data/lib/chef/resource/csh.rb +0 -1
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/execute.rb +480 -10
- data/lib/chef/resource/file.rb +10 -8
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +35 -2
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_package.rb +30 -1
- data/lib/chef/resource/homebrew_update.rb +107 -0
- data/lib/chef/resource/hostname.rb +7 -20
- data/lib/chef/resource/kernel_module.rb +14 -1
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/locale.rb +3 -3
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +176 -56
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +11 -14
- data/lib/chef/resource/openssl_x509_crl.rb +1 -2
- data/lib/chef/resource/perl.rb +0 -1
- data/lib/chef/resource/plist.rb +23 -4
- data/lib/chef/resource/powershell_script.rb +4 -2
- data/lib/chef/resource/python.rb +0 -1
- data/lib/chef/resource/remote_file.rb +26 -10
- data/lib/chef/resource/ruby.rb +0 -1
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/service.rb +2 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +16 -1
- data/lib/chef/resource/sudo.rb +30 -3
- data/lib/chef/resource/swap_file.rb +17 -0
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +15 -0
- data/lib/chef/resource/user_ulimit.rb +1 -1
- data/lib/chef/resource/windows_ad_join.rb +30 -1
- data/lib/chef/resource/windows_audit_policy.rb +227 -0
- data/lib/chef/resource/windows_auto_run.rb +11 -0
- data/lib/chef/resource/windows_certificate.rb +27 -1
- data/lib/chef/resource/windows_dfs_server.rb +1 -1
- data/lib/chef/resource/windows_dns_record.rb +17 -0
- data/lib/chef/resource/windows_firewall_profile.rb +197 -0
- data/lib/chef/resource/windows_font.rb +3 -3
- data/lib/chef/resource/windows_package.rb +1 -1
- data/lib/chef/resource/windows_pagefile.rb +2 -2
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +67 -36
- data/lib/chef/resource/windows_shortcut.rb +1 -2
- data/lib/chef/resource/windows_task.rb +10 -10
- data/lib/chef/resource/windows_user_privilege.rb +33 -10
- data/lib/chef/resource/yum_repository.rb +9 -9
- data/lib/chef/resource_inspector.rb +11 -4
- data/lib/chef/resources.rb +5 -2
- data/lib/chef/role.rb +1 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/search/query.rb +1 -1
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/shell/shell_session.rb +2 -0
- data/lib/chef/util/diff.rb +2 -3
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/error.rb +3 -1
- data/lib/chef/win32/api/file.rb +1 -1
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/file.rb +1 -1
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/registry.rb +3 -4
- data/lib/chef/win32/security.rb +1 -1
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/functional/knife/configure_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +5 -16
- data/spec/functional/resource/aix_service_spec.rb +9 -2
- data/spec/functional/resource/aixinit_service_spec.rb +1 -2
- data/spec/functional/resource/apt_package_spec.rb +0 -1
- data/spec/functional/resource/bash_spec.rb +3 -2
- data/spec/functional/resource/bff_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
- data/spec/functional/resource/cron_spec.rb +20 -2
- data/spec/functional/resource/dnf_package_spec.rb +6 -3
- data/spec/functional/resource/execute_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +29 -7
- data/spec/functional/resource/group_spec.rb +15 -3
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +3 -3
- data/spec/functional/resource/link_spec.rb +2 -5
- data/spec/functional/resource/mount_spec.rb +9 -1
- data/spec/functional/resource/msu_package_spec.rb +9 -3
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- data/spec/functional/resource/remote_file_spec.rb +9 -15
- data/spec/functional/resource/rpm_spec.rb +1 -1
- data/spec/functional/resource/timezone_spec.rb +2 -0
- data/spec/functional/resource/windows_package_spec.rb +0 -1
- data/spec/functional/resource/windows_path_spec.rb +4 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -1
- data/spec/functional/resource/windows_service_spec.rb +4 -0
- data/spec/functional/resource/windows_task_spec.rb +16 -15
- data/spec/functional/resource/windows_user_privilege_spec.rb +1 -2
- data/spec/functional/resource/yum_package_spec.rb +4 -1
- data/spec/functional/resource/zypper_package_spec.rb +4 -1
- data/spec/functional/run_lock_spec.rb +2 -1
- data/spec/functional/shell_spec.rb +5 -6
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/crypto_spec.rb +1 -1
- data/spec/integration/knife/config_list_profiles_spec.rb +30 -2
- data/spec/integration/knife/config_use_profile_spec.rb +55 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +28 -1
- data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
- data/spec/integration/knife/environment_from_file_spec.rb +1 -1
- data/spec/integration/knife/node_from_file_spec.rb +1 -1
- data/spec/integration/knife/role_from_file_spec.rb +1 -1
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +1 -1
- data/spec/integration/recipes/notifying_block_spec.rb +1 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +5 -1
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
- data/spec/integration/recipes/resource_load_spec.rb +4 -2
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +1 -1
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +10 -4
- data/spec/support/chef_helpers.rb +2 -21
- data/spec/support/platform_helpers.rb +1 -3
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +0 -1
- data/spec/support/shared/functional/securable_resource.rb +1 -2
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/integration/knife_support.rb +2 -9
- data/spec/support/shared/unit/application_dot_d.rb +0 -1
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/support/shared/unit/provider/file.rb +12 -8
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- data/spec/unit/application/solo_spec.rb +4 -2
- data/spec/unit/application_spec.rb +11 -2
- data/spec/unit/chef_fs/config_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +8 -8
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
- data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +1 -1
- data/spec/unit/client_spec.rb +4 -1
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
- data/spec/unit/data_bag_spec.rb +6 -3
- data/spec/unit/data_collector_spec.rb +1 -1
- data/spec/unit/decorator_spec.rb +23 -23
- data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
- data/spec/unit/environment_spec.rb +5 -1
- data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
- data/spec/unit/guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +1 -1
- data/spec/unit/http/ssl_policies_spec.rb +20 -0
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +5 -8
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_show_spec.rb +6 -7
- data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/log/syslog_spec.rb +6 -10
- data/spec/unit/log/winevt_spec.rb +21 -13
- data/spec/unit/lwrp_spec.rb +9 -6
- data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/powershell_out_spec.rb +2 -4
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +0 -1
- data/spec/unit/mixin/shell_out_spec.rb +25 -26
- data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
- data/spec/unit/mixin/unformatter_spec.rb +2 -2
- data/spec/unit/mixin/uris_spec.rb +1 -1
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/mixin/which.rb +8 -0
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/node_spec.rb +98 -11
- data/spec/unit/property_spec.rb +6 -6
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron/unix_spec.rb +1 -1
- data/spec/unit/provider/cron_spec.rb +9 -49
- data/spec/unit/provider/dsc_resource_spec.rb +22 -38
- data/spec/unit/provider/dsc_script_spec.rb +10 -10
- data/spec/unit/provider/execute_spec.rb +1 -8
- data/spec/unit/provider/git_spec.rb +3 -3
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/ifconfig_spec.rb +0 -1
- data/spec/unit/provider/mdadm_spec.rb +1 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/openbsd_spec.rb +1 -1
- data/spec/unit/provider/package/pacman_spec.rb +17 -20
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +96 -87
- data/spec/unit/provider/package/rubygems_spec.rb +5 -10
- data/spec/unit/provider/package/smartos_spec.rb +1 -1
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
- data/spec/unit/provider/package/windows_spec.rb +30 -53
- data/spec/unit/provider/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/windows_spec.rb +2 -6
- data/spec/unit/provider/systemd_unit_spec.rb +28 -24
- data/spec/unit/provider/user/dscl_spec.rb +2 -2
- data/spec/unit/provider/windows_env_spec.rb +5 -4
- data/spec/unit/provider/zypper_repository_spec.rb +60 -10
- data/spec/unit/provider_spec.rb +1 -0
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
- data/spec/unit/resource/cron_spec.rb +2 -2
- data/spec/unit/resource/execute_spec.rb +10 -0
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
- data/spec/unit/resource/homebrew_update_spec.rb +30 -0
- data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
- data/spec/unit/resource/powershell_script_spec.rb +10 -15
- data/spec/unit/resource/timezone_spec.rb +1 -1
- data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_firewall_profile_spec.rb +77 -0
- data/spec/unit/resource/windows_package_spec.rb +1 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_reporter_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +84 -1
- data/spec/unit/role_spec.rb +23 -21
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/diff_spec.rb +1 -15
- data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
- data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +2 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- data/spec/unit/win32/registry_spec.rb +1 -1
- data/spec/unit/win32/security_spec.rb +4 -3
- metadata +68 -40
- data/lib/chef/resource/cron.rb +0 -157
@@ -34,7 +34,6 @@ class Chef
|
|
34
34
|
description 'Make a shortcut to C:\\original_dir'
|
35
35
|
end
|
36
36
|
```
|
37
|
-
|
38
37
|
DOC
|
39
38
|
|
40
39
|
property :shortcut_name, String,
|
@@ -57,7 +56,7 @@ class Chef
|
|
57
56
|
description: "Icon to use for the shortcut. Accepts the format of `path, index`, where index is the icon file to use. See Microsoft's [documentation](https://msdn.microsoft.com/en-us/library/3s9bx7at.aspx) for details"
|
58
57
|
|
59
58
|
load_current_value do |desired|
|
60
|
-
require "win32ole" if RUBY_PLATFORM
|
59
|
+
require "win32ole" if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
61
60
|
|
62
61
|
link = WIN32OLE.new("WScript.Shell").CreateShortcut(desired.shortcut_name)
|
63
62
|
name desired.shortcut_name
|
@@ -189,11 +189,11 @@ class Chef
|
|
189
189
|
description: "The frequency with which to run the task."
|
190
190
|
|
191
191
|
property :start_day, String,
|
192
|
-
description: "Specifies the first date on which the task runs in MM/DD/YYYY format.",
|
192
|
+
description: "Specifies the first date on which the task runs in **MM/DD/YYYY** format.",
|
193
193
|
default_description: "The current date."
|
194
194
|
|
195
195
|
property :start_time, String,
|
196
|
-
description: "Specifies the start time to run the task, in HH:mm format."
|
196
|
+
description: "Specifies the start time to run the task, in **HH:mm** format."
|
197
197
|
|
198
198
|
property :day, [String, Integer],
|
199
199
|
description: "The day(s) on which the task runs."
|
@@ -274,7 +274,7 @@ class Chef
|
|
274
274
|
|
275
275
|
## Resource is not idempotent when day, start_day is not provided with frequency :weekly
|
276
276
|
## we set start_day when not given by user as current date based on which we set the day property for current current date day is monday ..
|
277
|
-
## we set the monday as the day so at next run when new_resource.day is nil and current_resource day is monday due to which
|
277
|
+
## we set the monday as the day so at next run when new_resource.day is nil and current_resource day is monday due to which update gets called
|
278
278
|
def idempotency_warning_for_frequency_weekly(day, start_day)
|
279
279
|
if start_day.nil? && day.nil?
|
280
280
|
logger.warn "To maintain idempotency for frequency :weekly provide start_day, start_time and day."
|
@@ -295,19 +295,19 @@ class Chef
|
|
295
295
|
end
|
296
296
|
|
297
297
|
def validate_frequency_monthly(frequency_modifier, months, day)
|
298
|
-
# validates the frequency :monthly and raises error if frequency_modifier is first, second,
|
298
|
+
# validates the frequency :monthly and raises error if frequency_modifier is first, second, third etc and day is not provided
|
299
299
|
if (frequency_modifier != 1) && (frequency_modifier_includes_days_of_weeks?(frequency_modifier)) && !(day)
|
300
|
-
raise ArgumentError, "Please select day on which you want to run the task e.g. 'Mon, Tue'. Multiple values must be
|
300
|
+
raise ArgumentError, "Please select day on which you want to run the task e.g. 'Mon, Tue'. Multiple values must be separated by comma."
|
301
301
|
end
|
302
302
|
|
303
|
-
#
|
304
|
-
# Not checking value 1 here for
|
303
|
+
# frequency_modifier 2-12 is used to set every (n) months, so using :months property with frequency_modifier is not valid since they both used to set months.
|
304
|
+
# Not checking value 1 here for frequency_modifier since we are setting that as default value it won't break anything since preference is given to months property
|
305
305
|
if (frequency_modifier.to_i.between?(2, 12)) && !(months.nil?)
|
306
306
|
raise ArgumentError, "For frequency :monthly either use property months or frequency_modifier to set months."
|
307
307
|
end
|
308
308
|
end
|
309
309
|
|
310
|
-
# returns true if
|
310
|
+
# returns true if frequency_modifier has values First, second, third, fourth, last, lastday
|
311
311
|
def frequency_modifier_includes_days_of_weeks?(frequency_modifier)
|
312
312
|
frequency_modifier = frequency_modifier.to_s.split(",")
|
313
313
|
frequency_modifier.map! { |value| value.strip.upcase }
|
@@ -330,7 +330,7 @@ class Chef
|
|
330
330
|
|
331
331
|
# make sure the start_day is in MM/DD/YYYY format: http://rubular.com/r/cgjHemtWl5
|
332
332
|
if start_day
|
333
|
-
raise ArgumentError, "`start_day` property must be in the MM/DD/YYYY format." unless %r{^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$}
|
333
|
+
raise ArgumentError, "`start_day` property must be in the MM/DD/YYYY format." unless %r{^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$}.match?(start_day)
|
334
334
|
end
|
335
335
|
end
|
336
336
|
|
@@ -338,7 +338,7 @@ class Chef
|
|
338
338
|
def validate_start_time(start_time, frequency)
|
339
339
|
if start_time
|
340
340
|
raise ArgumentError, "`start_time` property is not supported with `frequency :none`" if frequency == :none
|
341
|
-
raise ArgumentError, "`start_time` property must be in the HH:mm format (e.g. 6:20pm -> 18:20)." unless /^[0-2][0-9]:[0-5][0-9]
|
341
|
+
raise ArgumentError, "`start_time` property must be in the HH:mm format (e.g. 6:20pm -> 18:20)." unless /^[0-2][0-9]:[0-5][0-9]$/.match?(start_time)
|
342
342
|
else
|
343
343
|
raise ArgumentError, "`start_time` needs to be provided with `frequency :once`" if frequency == :once
|
344
344
|
end
|
@@ -68,7 +68,7 @@ class Chef
|
|
68
68
|
}
|
69
69
|
|
70
70
|
provides :windows_user_privilege
|
71
|
-
description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege
|
71
|
+
description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege.\n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
|
72
72
|
|
73
73
|
introduced "16.0"
|
74
74
|
|
@@ -76,9 +76,9 @@ class Chef
|
|
76
76
|
**Set the SeNetworkLogonRight Privilege for the Builtin Administrators Group and Authenticated Users**:
|
77
77
|
|
78
78
|
```ruby
|
79
|
-
windows_user_privilege '
|
79
|
+
windows_user_privilege 'Network Logon Rights' do
|
80
80
|
privilege 'SeNetworkLogonRight'
|
81
|
-
users ['BUILTIN
|
81
|
+
users ['BUILTIN\\Administrators', 'NT AUTHORITY\\Authenticated Users']
|
82
82
|
action :set
|
83
83
|
end
|
84
84
|
```
|
@@ -88,7 +88,7 @@ class Chef
|
|
88
88
|
```ruby
|
89
89
|
windows_user_privilege 'Remote interactive logon' do
|
90
90
|
privilege 'SeDenyRemoteInteractiveLogonRight'
|
91
|
-
users ['Builtin
|
91
|
+
users ['Builtin\\Guests', 'NT AUTHORITY\\Local Account']
|
92
92
|
action :add
|
93
93
|
end
|
94
94
|
```
|
@@ -98,7 +98,7 @@ class Chef
|
|
98
98
|
```ruby
|
99
99
|
windows_user_privilege 'Create Pagefile' do
|
100
100
|
privilege 'SeCreatePagefilePrivilege'
|
101
|
-
users ['BUILTIN
|
101
|
+
users ['BUILTIN\\Guests', 'BUILTIN\\Administrators']
|
102
102
|
action :set
|
103
103
|
end
|
104
104
|
```
|
@@ -108,10 +108,19 @@ class Chef
|
|
108
108
|
```ruby
|
109
109
|
windows_user_privilege 'Create Pagefile' do
|
110
110
|
privilege 'SeCreatePagefilePrivilege'
|
111
|
-
users ['BUILTIN
|
111
|
+
users ['BUILTIN\\Guests']
|
112
112
|
action :remove
|
113
113
|
end
|
114
114
|
```
|
115
|
+
|
116
|
+
**Clear all users from the SeDenyNetworkLogonRight Privilege**:
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
windows_user_privilege 'Allow any user the Network Logon right' do
|
120
|
+
privilege 'SeDenyNetworkLogonRight'
|
121
|
+
action :clear
|
122
|
+
end
|
123
|
+
```
|
115
124
|
DOC
|
116
125
|
|
117
126
|
property :principal, String,
|
@@ -126,14 +135,14 @@ class Chef
|
|
126
135
|
required: true,
|
127
136
|
coerce: proc { |v| v.is_a?(String) ? Array[v] : v },
|
128
137
|
callbacks: {
|
129
|
-
"Option privilege must include any of the: #{privilege_opts}" => lambda {
|
130
|
-
|
138
|
+
"Option privilege must include any of the: #{privilege_opts}" => lambda { |v|
|
139
|
+
(privilege_opts & v).size == v.size
|
131
140
|
},
|
132
141
|
}
|
133
142
|
|
134
143
|
load_current_value do |new_resource|
|
135
|
-
|
136
|
-
privilege Chef::ReservedNames::Win32::Security.get_account_right(new_resource.principal)
|
144
|
+
if new_resource.principal && (new_resource.action.include?(:add) || new_resource.action.include?(:remove))
|
145
|
+
privilege Chef::ReservedNames::Win32::Security.get_account_right(new_resource.principal)
|
137
146
|
end
|
138
147
|
end
|
139
148
|
|
@@ -180,6 +189,20 @@ class Chef
|
|
180
189
|
end
|
181
190
|
end
|
182
191
|
|
192
|
+
action :clear do
|
193
|
+
new_resource.privilege.each do |privilege|
|
194
|
+
accounts = Chef::ReservedNames::Win32::Security.get_account_with_user_rights(privilege)
|
195
|
+
|
196
|
+
# comparing the existing accounts for privilege with users
|
197
|
+
# Removing only accounts which is not matching with users in new_resource
|
198
|
+
accounts.each do |account|
|
199
|
+
converge_by("removing user '#{account}' from privilege #{privilege}") do
|
200
|
+
Chef::ReservedNames::Win32::Security.remove_account_right(account, privilege)
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
183
206
|
action :remove do
|
184
207
|
curr_res_privilege = current_resource.privilege
|
185
208
|
missing_res_privileges = (new_resource.privilege - curr_res_privilege)
|
@@ -95,7 +95,7 @@ class Chef
|
|
95
95
|
description: "URL pointing to the ASCII-armored GPG key file for the repository. This is used if Yum needs a public key to verify a package and the required key hasn't been imported into the RPM database. If this option is set, Yum will automatically import the key from the specified URL. Multiple URLs may be specified in the same manner as the baseurl option. If a GPG key is required to install a package from a repository, all keys specified for that repository will be installed.\nMultiple URLs may be specified in the same manner as the baseurl option. If a GPG key is required to install a package from a repository, all keys specified for that repository will be installed."
|
96
96
|
|
97
97
|
property :http_caching, String, equal_to: %w{packages all none},
|
98
|
-
description: "Determines how upstream HTTP caches are instructed to handle any HTTP downloads that Yum does. This option can take the following values
|
98
|
+
description: "Determines how upstream HTTP caches are instructed to handle any HTTP downloads that Yum does. This option can take the following values:\n - `all` means all HTTP downloads should be cached\n - `packages` means only RPM package downloads should be cached, but not repository metadata downloads\n - `none` means no HTTP downloads should be cached.\n\nThe default value of `all` is recommended unless you are experiencing caching related issues."
|
99
99
|
|
100
100
|
property :include_config, String,
|
101
101
|
description: "An external configuration file using the format `url://to/some/location`."
|
@@ -114,25 +114,25 @@ class Chef
|
|
114
114
|
description: "Number of times any attempt to retrieve a file should retry before returning an error. Setting this to `0` makes Yum try forever."
|
115
115
|
|
116
116
|
property :metadata_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/, /never/],
|
117
|
-
description: "Time (in seconds) after which the metadata will expire. If the current metadata downloaded is less than the value specified, then Yum will not update the metadata against the repository. If you find that Yum is not downloading information on updates as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a
|
118
|
-
validation_message: "The metadata_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with
|
117
|
+
description: "Time (in seconds) after which the metadata will expire. If the current metadata downloaded is less than the value specified, then Yum will not update the metadata against the repository. If you find that Yum is not downloading information on updates as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively. The default is six hours to compliment yum-updates running once per hour. It is also possible to use the word `never`, meaning that the metadata will never expire. Note: When using a metalink file, the metalink must always be newer than the metadata for the repository due to the validation, so this timeout also applies to the metalink file.",
|
118
|
+
validation_message: "The metadata_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
|
119
119
|
|
120
120
|
property :metalink, String,
|
121
121
|
description: "Specifies a URL to a metalink file for the repomd.xml, a list of mirrors for the entire repository are generated by converting the mirrors for the repomd.xml file to a baseurl."
|
122
122
|
|
123
123
|
property :mirror_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/],
|
124
|
-
description: "Time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than this many seconds old then Yum will not download another copy of the mirrorlist, it has the same extra format as metadata_expire. If you find that Yum is not downloading the mirrorlists as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a
|
125
|
-
validation_message: "The mirror_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with
|
124
|
+
description: "Time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than this many seconds old then Yum will not download another copy of the mirrorlist, it has the same extra format as metadata_expire. If you find that Yum is not downloading the mirrorlists as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively.",
|
125
|
+
validation_message: "The mirror_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
|
126
126
|
|
127
127
|
property :mirrorlist_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/],
|
128
|
-
description: "Specifies the time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than the value specified, then Yum will not download another copy of the mirrorlist. You can also change from the default of using seconds to using days, hours or minutes by appending a
|
129
|
-
validation_message: "The mirrorlist_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with
|
128
|
+
description: "Specifies the time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than the value specified, then Yum will not download another copy of the mirrorlist. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively.",
|
129
|
+
validation_message: "The mirrorlist_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
|
130
130
|
|
131
131
|
property :mirrorlist, String,
|
132
132
|
description: "URL to a file containing a list of baseurls. This can be used instead of or with the baseurl option. Substitution variables, described below, can be used with this option."
|
133
133
|
|
134
134
|
property :mode, [String, Integer],
|
135
|
-
description: "Permissions mode of .repo file on disk. This is useful for scenarios where secrets are in the repo file. If this value is set to
|
135
|
+
description: "Permissions mode of .repo file on disk. This is useful for scenarios where secrets are in the repo file. If this value is set to `600`, normal users will not be able to use Yum search, Yum info, etc.",
|
136
136
|
default: "0644"
|
137
137
|
|
138
138
|
property :options, Hash,
|
@@ -142,7 +142,7 @@ class Chef
|
|
142
142
|
description: "Password to use with the username for basic authentication."
|
143
143
|
|
144
144
|
property :priority, String, regex: /^(\d?[1-9]|[0-9][0-9])$/,
|
145
|
-
description: "Assigns a priority to a repository where the priority value is between
|
145
|
+
description: "Assigns a priority to a repository where the priority value is between `1` and `99` inclusive. Priorities are used to enforce ordered protection of repositories. Packages from repositories with a lower priority (higher numerical value) will never be used to upgrade packages that were installed from a repository with a higher priority (lower numerical value). The repositories with the lowest numerical priority number have the highest priority.",
|
146
146
|
validation_message: "The priority property must be a numeric value from 1-99!"
|
147
147
|
|
148
148
|
property :proxy_password, String,
|
@@ -59,18 +59,24 @@ module ResourceInspector
|
|
59
59
|
required: opts[:required] || false,
|
60
60
|
default: opts[:default_description] || get_default(opts[:default]),
|
61
61
|
name_property: opts[:name_property] || false,
|
62
|
-
equal_to:
|
62
|
+
equal_to: sort_equal_to(opts[:equal_to]) }
|
63
63
|
end
|
64
64
|
data
|
65
65
|
end
|
66
66
|
|
67
|
+
def self.sort_equal_to(equal_to)
|
68
|
+
Array(equal_to).sort.map(&:inspect)
|
69
|
+
rescue ArgumentError
|
70
|
+
Array(equal_to).map(&:inspect)
|
71
|
+
end
|
72
|
+
|
67
73
|
def self.extract_cookbook(path, complete)
|
68
74
|
path = File.expand_path(path)
|
69
75
|
dir, name = File.split(path)
|
70
76
|
Chef::Cookbook::FileVendor.fetch_from_disk(path)
|
71
77
|
loader = Chef::CookbookLoader.new(dir)
|
72
|
-
|
73
|
-
resources =
|
78
|
+
cookbook = loader.load_cookbook(name)
|
79
|
+
resources = cookbook.files_for(:resources)
|
74
80
|
|
75
81
|
resources.each_with_object({}) do |r, res|
|
76
82
|
pth = r["full_path"]
|
@@ -83,13 +89,14 @@ module ResourceInspector
|
|
83
89
|
# otherwise, if we have a path then extract all the resources from the cookbook
|
84
90
|
# or else do a list of built in resources
|
85
91
|
#
|
92
|
+
# @param arguments [Array, String] One of more paths to a cookbook or a resource file to inspect
|
86
93
|
# @param complete [TrueClass, FalseClass] Whether to show properties defined in the base Resource class
|
87
94
|
# @return [String] JSON formatting of all resources
|
88
95
|
def self.inspect(arguments = [], complete: false)
|
89
96
|
output = if arguments.empty?
|
90
97
|
ObjectSpace.each_object(Class).select { |k| k < Chef::Resource }.each_with_object({}) { |klass, acc| acc[klass.resource_name] = extract_resource(klass) }
|
91
98
|
else
|
92
|
-
arguments.each_with_object({}) do |arg, acc|
|
99
|
+
Array(arguments).each_with_object({}) do |arg, acc|
|
93
100
|
if File.directory?(arg)
|
94
101
|
extract_cookbook(arg, complete).each { |k, v| acc[k] = v }
|
95
102
|
else
|
data/lib/chef/resources.rb
CHANGED
@@ -38,9 +38,9 @@ require_relative "resource/chocolatey_config"
|
|
38
38
|
require_relative "resource/chocolatey_feature"
|
39
39
|
require_relative "resource/chocolatey_package"
|
40
40
|
require_relative "resource/chocolatey_source"
|
41
|
-
require_relative "resource/cron"
|
41
|
+
require_relative "resource/cron/cron"
|
42
42
|
require_relative "resource/cron_access"
|
43
|
-
require_relative "resource/cron_d"
|
43
|
+
require_relative "resource/cron/cron_d"
|
44
44
|
require_relative "resource/csh"
|
45
45
|
require_relative "resource/directory"
|
46
46
|
require_relative "resource/dmg_package"
|
@@ -60,6 +60,7 @@ require_relative "resource/hostname"
|
|
60
60
|
require_relative "resource/homebrew_cask"
|
61
61
|
require_relative "resource/homebrew_package"
|
62
62
|
require_relative "resource/homebrew_tap"
|
63
|
+
require_relative "resource/homebrew_update"
|
63
64
|
require_relative "resource/ifconfig"
|
64
65
|
require_relative "resource/kernel_module"
|
65
66
|
require_relative "resource/ksh"
|
@@ -141,6 +142,7 @@ require_relative "resource/cab_package"
|
|
141
142
|
require_relative "resource/powershell_package"
|
142
143
|
require_relative "resource/msu_package"
|
143
144
|
require_relative "resource/windows_ad_join"
|
145
|
+
require_relative "resource/windows_audit_policy"
|
144
146
|
require_relative "resource/windows_auto_run"
|
145
147
|
require_relative "resource/windows_certificate"
|
146
148
|
require_relative "resource/windows_dfs_folder"
|
@@ -151,6 +153,7 @@ require_relative "resource/windows_dns_zone"
|
|
151
153
|
require_relative "resource/windows_feature"
|
152
154
|
require_relative "resource/windows_feature_dism"
|
153
155
|
require_relative "resource/windows_feature_powershell"
|
156
|
+
require_relative "resource/windows_firewall_profile"
|
154
157
|
require_relative "resource/windows_firewall_rule"
|
155
158
|
require_relative "resource/windows_font"
|
156
159
|
require_relative "resource/windows_pagefile"
|
data/lib/chef/role.rb
CHANGED
@@ -133,7 +133,7 @@ class Chef
|
|
133
133
|
def to_h
|
134
134
|
env_run_lists_without_default = @env_run_lists.dup
|
135
135
|
env_run_lists_without_default.delete("_default")
|
136
|
-
|
136
|
+
{
|
137
137
|
"name" => @name,
|
138
138
|
"description" => @description,
|
139
139
|
"json_class" => self.class.name,
|
@@ -149,7 +149,6 @@ class Chef
|
|
149
149
|
accumulator
|
150
150
|
end,
|
151
151
|
}
|
152
|
-
result
|
153
152
|
end
|
154
153
|
|
155
154
|
alias_method :to_hash, :to_h
|
@@ -101,7 +101,7 @@ class Chef
|
|
101
101
|
@events.library_load_start(count_files_by_segment(:libraries))
|
102
102
|
cookbook_order.each do |cookbook|
|
103
103
|
eager_load_libraries = cookbook_collection[cookbook].metadata.eager_load_libraries
|
104
|
-
if eager_load_libraries == true #
|
104
|
+
if eager_load_libraries == true # actually true, not truthy
|
105
105
|
load_libraries_from_cookbook(cookbook)
|
106
106
|
else
|
107
107
|
$LOAD_PATH.unshift File.expand_path("libraries", cookbook_collection[cookbook].root_dir)
|
data/lib/chef/search/query.rb
CHANGED
@@ -105,7 +105,7 @@ class Chef
|
|
105
105
|
private
|
106
106
|
|
107
107
|
def fuzzify_node_query(query)
|
108
|
-
if query
|
108
|
+
if !/:/.match?(query)
|
109
109
|
"tags:*#{query}* OR roles:*#{query}* OR fqdn:*#{query}* OR addresses:*#{query}* OR policy_name:*#{query}* OR policy_group:*#{query}*"
|
110
110
|
else
|
111
111
|
query
|
data/lib/chef/shell/ext.rb
CHANGED
@@ -37,7 +37,7 @@ module Shell
|
|
37
37
|
module ObjectCoreExtensions
|
38
38
|
|
39
39
|
def ensure_session_select_defined
|
40
|
-
# irb breaks if you prematurely define IRB::
|
40
|
+
# irb breaks if you prematurely define IRB::JobManager
|
41
41
|
# so these methods need to be defined at the latest possible time.
|
42
42
|
unless jobs.respond_to?(:select_session_by_context)
|
43
43
|
def jobs.select_session_by_context(&block) # rubocop:disable Lint/NestedMethodDefinition
|
@@ -41,6 +41,7 @@ module Shell
|
|
41
41
|
|
42
42
|
attr_accessor :node, :compile, :recipe, :json_configuration
|
43
43
|
attr_reader :node_attributes, :client
|
44
|
+
|
44
45
|
def initialize
|
45
46
|
@node_built = false
|
46
47
|
formatter = Chef::Formatters.new(Chef::Config.formatter, STDOUT, STDERR)
|
@@ -75,6 +76,7 @@ module Shell
|
|
75
76
|
end
|
76
77
|
|
77
78
|
attr_writer :run_context
|
79
|
+
|
78
80
|
def run_context
|
79
81
|
@run_context ||= rebuild_context
|
80
82
|
end
|
data/lib/chef/util/diff.rb
CHANGED
@@ -48,7 +48,6 @@ class Chef
|
|
48
48
|
class Diff
|
49
49
|
# @todo: to_a, to_s, to_json, inspect defs, accessors for @diff and @error
|
50
50
|
# @todo: move coercion to UTF-8 into to_json
|
51
|
-
# @todo: replace shellout to diff -u with diff-lcs gem
|
52
51
|
|
53
52
|
def for_output
|
54
53
|
# formatted output to a terminal uses arrays of strings and returns error strings
|
@@ -136,7 +135,7 @@ class Chef
|
|
136
135
|
return "(file sizes exceed #{diff_filesize_threshold} bytes, diff output suppressed)"
|
137
136
|
end
|
138
137
|
|
139
|
-
#
|
138
|
+
# macOS(BSD?) diff will *sometimes* happily spit out nasty binary diffs
|
140
139
|
return "(current file is binary, diff output suppressed)" if is_binary?(old_file)
|
141
140
|
return "(new content is binary, diff output suppressed)" if is_binary?(new_file)
|
142
141
|
|
@@ -171,7 +170,7 @@ class Chef
|
|
171
170
|
begin
|
172
171
|
return buff !~ /\A[\s[:print:]]*\z/m
|
173
172
|
rescue ArgumentError => e
|
174
|
-
return true if
|
173
|
+
return true if /invalid byte sequence/.match?(e.message)
|
175
174
|
|
176
175
|
raise
|
177
176
|
end
|
@@ -100,7 +100,7 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
|
|
100
100
|
rescue Chef::Exceptions::Win32APIError => e
|
101
101
|
Chef::Log.trace(e)
|
102
102
|
# we're only interested in the incorrect password failures
|
103
|
-
if
|
103
|
+
if /System Error Code: 1326/.match?(e.to_s)
|
104
104
|
return false
|
105
105
|
end
|
106
106
|
|
@@ -25,7 +25,7 @@ class Chef::Util::Windows::Volume < Chef::Util::Windows
|
|
25
25
|
attr_reader :mount_point
|
26
26
|
|
27
27
|
def initialize(name)
|
28
|
-
name += "\\" unless name
|
28
|
+
name += "\\" unless /\\$/.match?(name) # trailing slash required
|
29
29
|
@mount_point = name
|
30
30
|
end
|
31
31
|
|
data/lib/chef/version.rb
CHANGED
@@ -22,8 +22,8 @@
|
|
22
22
|
require_relative "version_string"
|
23
23
|
|
24
24
|
class Chef
|
25
|
-
CHEF_ROOT = File.expand_path("
|
26
|
-
VERSION = Chef::VersionString.new("16.
|
25
|
+
CHEF_ROOT = File.expand_path("..", __dir__)
|
26
|
+
VERSION = Chef::VersionString.new("16.3.38")
|
27
27
|
end
|
28
28
|
|
29
29
|
#
|
data/lib/chef/win32/api.rb
CHANGED
@@ -94,7 +94,7 @@ class Chef
|
|
94
94
|
host.typedef :ulong, :HMENU # (L) Handle to a menu. http://msdn.microsoft.com/en-us/library/ms646977%28VS.85%29.aspx
|
95
95
|
host.typedef :ulong, :HMETAFILE # (L) Handle to a metafile. http://msdn.microsoft.com/en-us/library/dd145051%28VS.85%29.aspx
|
96
96
|
host.typedef :ulong, :HMODULE # (L) Handle to an instance. Same as HINSTANCE today, but was different in 16-bit Windows.
|
97
|
-
host.typedef :ulong, :HMONITOR # (L)
|
97
|
+
host.typedef :ulong, :HMONITOR # (L) Handle to a display monitor. WinDef.h: if(WINVER >= 0x0500) host.typedef HANDLE HMONITOR;
|
98
98
|
host.typedef :ulong, :HPALETTE # (L) Handle to a palette.
|
99
99
|
host.typedef :ulong, :HPEN # (L) Handle to a pen. http://msdn.microsoft.com/en-us/library/dd162786%28VS.85%29.aspx
|
100
100
|
host.typedef :long, :HRESULT # Return code used by COM interfaces. For more info, Structure of the COM Error Codes.
|
@@ -115,7 +115,7 @@ class Chef
|
|
115
115
|
host.typedef :uint32, :LCID # Locale identifier. For more information, see Locales.
|
116
116
|
host.typedef :uint32, :LCTYPE # Locale information type. For a list, see Locale Information Constants.
|
117
117
|
host.typedef :uint32, :LGRPID # Language group identifier. For a list, see EnumLanguageGroupLocales.
|
118
|
-
host.typedef :pointer, :LMSTR # Pointer to null
|
118
|
+
host.typedef :pointer, :LMSTR # Pointer to null terminated string of unicode characters
|
119
119
|
host.typedef :long, :LONG # 32-bit signed integer. The range is -2,147,483,648 through +...647 decimal.
|
120
120
|
host.typedef :int32, :LONG32 # 32-bit signed integer. The range is -2,147,483,648 through +...647 decimal.
|
121
121
|
host.typedef :int64, :LONG64 # 64-bit signed integer. The range is –9,223,372,036,854,775,808 through +...807
|
data/lib/chef/win32/api/error.rb
CHANGED
@@ -64,7 +64,7 @@ class Chef
|
|
64
64
|
ERROR_SHARING_VIOLATION = 32
|
65
65
|
ERROR_LOCK_VIOLATION = 33
|
66
66
|
ERROR_WRONG_DISK = 34
|
67
|
-
ERROR_FCB_UNAVAILABLE = 35
|
67
|
+
ERROR_FCB_UNAVAILABLE = 35 # gets returned for some unsuccessful DeviceIoControl calls
|
68
68
|
ERROR_SHARING_BUFFER_EXCEEDED = 36
|
69
69
|
ERROR_HANDLE_EOF = 38
|
70
70
|
ERROR_HANDLE_DISK_FULL = 39
|
@@ -90,6 +90,7 @@ class Chef
|
|
90
90
|
ERROR_TOO_MANY_NAMES = 68
|
91
91
|
ERROR_TOO_MANY_SESS = 69
|
92
92
|
ERROR_SHARING_PAUSED = 70
|
93
|
+
# cspell:disable-next-line
|
93
94
|
ERROR_REQ_NOT_ACCEP = 71
|
94
95
|
ERROR_REDIR_PAUSED = 72
|
95
96
|
|
@@ -876,6 +877,7 @@ class Chef
|
|
876
877
|
|
877
878
|
# Flags for LoadLibraryEx
|
878
879
|
|
880
|
+
# cspell:disable-next-line
|
879
881
|
DONT_RESOLVE_DLL_REFERENCES = 0x00000001
|
880
882
|
LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010
|
881
883
|
LOAD_LIBRARY_AS_DATAFILE = 0x00000002
|