chef 16.0.287-universal-mingw32 → 16.2.73-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 +2 -3
- data/README.md +3 -3
- data/Rakefile +3 -2
- data/chef.gemspec +5 -5
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- 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/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- 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/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +4 -4
- 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_loader.rb +1 -1
- 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 +4 -4
- 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 +4 -0
- data/lib/chef/digester.rb +5 -4
- data/lib/chef/dsl/declare_resource.rb +1 -1
- 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/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/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/http.rb +19 -4
- 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 +2 -2
- data/lib/chef/knife/bootstrap.rb +20 -14
- 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/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/config_get.rb +1 -1
- data/lib/chef/knife/config_use_profile.rb +15 -5
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +1 -4
- 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/hashed_command_loader.rb +1 -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 +1 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +19 -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/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/ssh.rb +2 -2
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/properties.rb +2 -2
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- 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/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/launchd.rb +11 -9
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/cab.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 +96 -27
- data/lib/chef/provider/package/windows.rb +2 -2
- 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/powershell_script.rb +11 -15
- 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/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +9 -0
- 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/zypper_repository.rb +30 -10
- data/lib/chef/resource.rb +25 -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/chef_client_scheduled_task.rb +13 -1
- 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/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 +11 -3
- data/lib/chef/resource/csh.rb +0 -1
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/execute.rb +478 -8
- 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/macos_userdefaults.rb +11 -6
- data/lib/chef/resource/mount.rb +1 -1
- 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/ssh_known_hosts_entry.rb +15 -0
- data/lib/chef/resource/sudo.rb +29 -2
- 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/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_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 +47 -16
- 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 +70 -5
- data/lib/chef/resource/yum_repository.rb +9 -9
- data/lib/chef/resource_inspector.rb +4 -3
- data/lib/chef/resources.rb +4 -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/util/diff.rb +2 -2
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.rb +1 -1
- data/lib/chef/version.rb +1 -1
- 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 +2 -2
- 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/resource/aix_service_spec.rb +10 -1
- data/spec/functional/resource/aixinit_service_spec.rb +1 -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 -1
- 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 +6 -6
- data/spec/functional/resource/group_spec.rb +9 -1
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +3 -2
- data/spec/functional/resource/launchd_spec.rb +232 -0
- 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 +8 -8
- 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 +0 -1
- data/spec/functional/resource/yum_package_spec.rb +4 -1
- data/spec/functional/resource/zypper_package_spec.rb +4 -1
- data/spec/functional/shell_spec.rb +0 -1
- data/spec/functional/win32/crypto_spec.rb +1 -1
- data/spec/integration/knife/config_use_profile_spec.rb +55 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +1 -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/recipe_dsl_spec.rb +4 -0
- data/spec/integration/recipes/resource_load_spec.rb +2 -2
- data/spec/support/chef_helpers.rb +1 -1
- data/spec/support/platform_helpers.rb +1 -1
- 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/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/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 +7 -0
- data/spec/unit/chef_fs/config_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +8 -8
- data/spec/unit/client_spec.rb +4 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
- data/spec/unit/data_bag_spec.rb +6 -3
- data/spec/unit/decorator_spec.rb +23 -23
- data/spec/unit/environment_spec.rb +5 -1
- 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/knife/bootstrap_spec.rb +3 -2
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_show_spec.rb +6 -7
- 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/lwrp_spec.rb +5 -2
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- 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/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/node/attribute_spec.rb +1 -1
- data/spec/unit/property_spec.rb +1 -1
- 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 -1
- data/spec/unit/provider/git_spec.rb +3 -3
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/launchd_spec.rb +0 -42
- data/spec/unit/provider/mdadm_spec.rb +1 -3
- 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/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
- data/spec/unit/provider/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- 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/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/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/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_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_spec.rb +84 -1
- data/spec/unit/role_spec.rb +23 -21
- data/spec/unit/util/backup_spec.rb +1 -1
- 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
- metadata +37 -31
- data/lib/chef/resource/cron.rb +0 -157
- data/spec/functional/resource/base.rb +0 -28
@@ -69,8 +69,8 @@ module ResourceInspector
|
|
69
69
|
dir, name = File.split(path)
|
70
70
|
Chef::Cookbook::FileVendor.fetch_from_disk(path)
|
71
71
|
loader = Chef::CookbookLoader.new(dir)
|
72
|
-
|
73
|
-
resources =
|
72
|
+
cookbook = loader.load_cookbook(name)
|
73
|
+
resources = cookbook.files_for(:resources)
|
74
74
|
|
75
75
|
resources.each_with_object({}) do |r, res|
|
76
76
|
pth = r["full_path"]
|
@@ -83,13 +83,14 @@ module ResourceInspector
|
|
83
83
|
# otherwise, if we have a path then extract all the resources from the cookbook
|
84
84
|
# or else do a list of built in resources
|
85
85
|
#
|
86
|
+
# @param arguments [Array, String] One of more paths to a cookbook or a resource file to inspect
|
86
87
|
# @param complete [TrueClass, FalseClass] Whether to show properties defined in the base Resource class
|
87
88
|
# @return [String] JSON formatting of all resources
|
88
89
|
def self.inspect(arguments = [], complete: false)
|
89
90
|
output = if arguments.empty?
|
90
91
|
ObjectSpace.each_object(Class).select { |k| k < Chef::Resource }.each_with_object({}) { |klass, acc| acc[klass.resource_name] = extract_resource(klass) }
|
91
92
|
else
|
92
|
-
arguments.each_with_object({}) do |arg, acc|
|
93
|
+
Array(arguments).each_with_object({}) do |arg, acc|
|
93
94
|
if File.directory?(arg)
|
94
95
|
extract_cookbook(arg, complete).each { |k, v| acc[k] = v }
|
95
96
|
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"
|
@@ -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
|
data/lib/chef/util/diff.rb
CHANGED
@@ -136,7 +136,7 @@ class Chef
|
|
136
136
|
return "(file sizes exceed #{diff_filesize_threshold} bytes, diff output suppressed)"
|
137
137
|
end
|
138
138
|
|
139
|
-
#
|
139
|
+
# macOS(BSD?) diff will *sometimes* happily spit out nasty binary diffs
|
140
140
|
return "(current file is binary, diff output suppressed)" if is_binary?(old_file)
|
141
141
|
return "(new content is binary, diff output suppressed)" if is_binary?(new_file)
|
142
142
|
|
@@ -171,7 +171,7 @@ class Chef
|
|
171
171
|
begin
|
172
172
|
return buff !~ /\A[\s[:print:]]*\z/m
|
173
173
|
rescue ArgumentError => e
|
174
|
-
return true if
|
174
|
+
return true if /invalid byte sequence/.match?(e.message)
|
175
175
|
|
176
176
|
raise
|
177
177
|
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
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
|
data/lib/chef/win32/api/file.rb
CHANGED
@@ -540,7 +540,7 @@ BOOL WINAPI VerQueryValue(
|
|
540
540
|
def file_search_handle(path)
|
541
541
|
# Workaround for CHEF-4419:
|
542
542
|
# Make sure paths starting with "/" has a drive letter
|
543
|
-
# assigned from the current working
|
543
|
+
# assigned from the current working directory.
|
544
544
|
# Note: With CHEF-4427 this issue will be fixed with a
|
545
545
|
# broader fix to map all the paths starting with "/" to
|
546
546
|
# SYSTEM_DRIVE on windows.
|
data/lib/chef/win32/api/net.rb
CHANGED
data/lib/chef/win32/file.rb
CHANGED
@@ -123,7 +123,7 @@ class Chef
|
|
123
123
|
|
124
124
|
# Return the link destination (strip off \??\ at the beginning, which is a local filesystem thing)
|
125
125
|
link_dest = reparse_buffer.reparse_buffer.substitute_name
|
126
|
-
if link_dest
|
126
|
+
if /^\\\?\?\\/.match?(link_dest)
|
127
127
|
link_dest = link_dest[4..-1]
|
128
128
|
end
|
129
129
|
link_dest
|
data/lib/chef/win32/mutex.rb
CHANGED
@@ -95,7 +95,7 @@ if other threads attempt to acquire the mutex.")
|
|
95
95
|
@handle = OpenMutexW(SYNCHRONIZE, true, name.to_wstring)
|
96
96
|
|
97
97
|
if @handle == 0
|
98
|
-
#
|
98
|
+
# Mutex doesn't exist so create one.
|
99
99
|
# In the initial creation of the mutex initial_owner is set to
|
100
100
|
# false so that mutex will not be acquired until someone calls
|
101
101
|
# acquire.
|
data/lib/chef/win32/net.rb
CHANGED
data/lib/chef/win32/registry.rb
CHANGED
@@ -20,7 +20,7 @@ require_relative "../reserved_names"
|
|
20
20
|
require_relative "api"
|
21
21
|
require_relative "../mixin/wide_string"
|
22
22
|
|
23
|
-
if RUBY_PLATFORM
|
23
|
+
if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
24
24
|
require_relative "../monkey_patches/win32/registry"
|
25
25
|
require_relative "api/registry"
|
26
26
|
require "win32/registry" unless defined?(Win32::Registry)
|
@@ -31,7 +31,7 @@ class Chef
|
|
31
31
|
class Win32
|
32
32
|
class Registry
|
33
33
|
|
34
|
-
if RUBY_PLATFORM
|
34
|
+
if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
35
35
|
include Chef::ReservedNames::Win32::API::Registry
|
36
36
|
extend Chef::ReservedNames::Win32::API::Registry
|
37
37
|
end
|
data/lib/chef/win32/security.rb
CHANGED
@@ -694,7 +694,7 @@ class Chef
|
|
694
694
|
begin
|
695
695
|
process_token = open_current_process_token(TOKEN_READ)
|
696
696
|
rescue Exception => run_error
|
697
|
-
return false if
|
697
|
+
return false if /Access is denied/.match?(run_error.message)
|
698
698
|
|
699
699
|
Chef::ReservedNames::Win32::Error.raise!
|
700
700
|
end
|
@@ -261,7 +261,7 @@ class Chef
|
|
261
261
|
|
262
262
|
SYSTEM_USER = SERVICE_ACCOUNT_USERS + BUILT_IN_GROUPS
|
263
263
|
|
264
|
-
#
|
264
|
+
# Check if the user belongs to service accounts category
|
265
265
|
#
|
266
266
|
# @return [Boolean] True or False
|
267
267
|
#
|
@@ -269,7 +269,7 @@ class Chef
|
|
269
269
|
SERVICE_ACCOUNT_USERS.include?(user.to_s.upcase)
|
270
270
|
end
|
271
271
|
|
272
|
-
#
|
272
|
+
# Check if the user is in builtin system group
|
273
273
|
#
|
274
274
|
# @return [Boolean] True or False
|
275
275
|
#
|
@@ -277,7 +277,7 @@ class Chef
|
|
277
277
|
BUILT_IN_GROUPS.include?(user.to_s.upcase)
|
278
278
|
end
|
279
279
|
|
280
|
-
#
|
280
|
+
# Check if the user belongs to system users category
|
281
281
|
#
|
282
282
|
# @return [Boolean] True or False
|
283
283
|
#
|
@@ -325,7 +325,7 @@ class Chef
|
|
325
325
|
Array.new(entriesread.read_long) do |i|
|
326
326
|
user_info = USER_INFO_3.new(bufptr.read_pointer + i * USER_INFO_3.size)
|
327
327
|
# Check if the account is the Administrator account
|
328
|
-
# RID for the Administrator account is always 500 and it's
|
328
|
+
# RID for the Administrator account is always 500 and it's privilege is set to USER_PRIV_ADMIN
|
329
329
|
if user_info[:usri3_user_id] == 500 && user_info[:usri3_priv] == 2 # USER_PRIV_ADMIN (2) - Administrator
|
330
330
|
admin_account_name = user_info[:usri3_name].read_wstring
|
331
331
|
break
|
@@ -4,7 +4,7 @@ def without_deprecation_warnings(&block)
|
|
4
4
|
old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
|
5
5
|
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
6
6
|
begin
|
7
|
-
|
7
|
+
yield
|
8
8
|
ensure
|
9
9
|
Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
|
10
10
|
end
|
@@ -2,7 +2,7 @@ def without_deprecation_warnings(&block)
|
|
2
2
|
old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
|
3
3
|
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
4
4
|
begin
|
5
|
-
|
5
|
+
yield
|
6
6
|
ensure
|
7
7
|
Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
|
8
8
|
end
|
@@ -7,7 +7,7 @@ def without_deprecation_warnings(&block)
|
|
7
7
|
old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
|
8
8
|
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
9
9
|
begin
|
10
|
-
|
10
|
+
yield
|
11
11
|
ensure
|
12
12
|
Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
|
13
13
|
end
|
@@ -18,7 +18,6 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require "spec_helper"
|
21
|
-
require "functional/resource/base"
|
22
21
|
require "chef/mixin/shell_out"
|
23
22
|
|
24
23
|
shared_examples "src service" do
|
@@ -80,6 +79,16 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
80
79
|
shell_out("id -u #{ENV["USER"]}").stdout.chomp
|
81
80
|
end
|
82
81
|
|
82
|
+
let(:run_context) do
|
83
|
+
node = Chef::Node.new
|
84
|
+
node.default[:platform] = ohai[:platform]
|
85
|
+
node.default[:platform_version] = ohai[:platform_version]
|
86
|
+
node.default[:os] = ohai[:os]
|
87
|
+
events = Chef::EventDispatch::Dispatcher.new
|
88
|
+
Chef::RunContext.new(node, {}, events)
|
89
|
+
end
|
90
|
+
|
91
|
+
|
83
92
|
describe "When service is a subsystem" do
|
84
93
|
before(:all) do
|
85
94
|
script_dir = File.join(File.dirname(__FILE__), "/../assets/")
|
@@ -18,7 +18,6 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require "spec_helper"
|
21
|
-
require "functional/resource/base"
|
22
21
|
require "chef/mixin/shell_out"
|
23
22
|
require "fileutils"
|
24
23
|
|
@@ -57,6 +56,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
57
56
|
|
58
57
|
# Actual tests
|
59
58
|
let(:new_resource) do
|
59
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
60
60
|
new_resource = Chef::Resource::Service.new("chefinittest", run_context)
|
61
61
|
new_resource.provider Chef::Provider::Service::AixInit
|
62
62
|
new_resource.supports({ status: true, restart: true, reload: true })
|
@@ -17,18 +17,19 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
|
-
require "functional/resource/base"
|
21
20
|
|
22
21
|
describe Chef::Resource::Bash, :unix_only do
|
23
22
|
let(:code) { "echo hello" }
|
24
23
|
let(:resource) do
|
24
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
25
|
+
|
25
26
|
resource = Chef::Resource::Bash.new("foo_resource", run_context)
|
26
27
|
resource.code(code) unless code.nil?
|
27
28
|
resource
|
28
29
|
end
|
29
30
|
|
30
31
|
describe "when setting the command property" do
|
31
|
-
let
|
32
|
+
let(:command) { "wizard racket" }
|
32
33
|
|
33
34
|
it "should raise an exception when trying to set the command" do
|
34
35
|
expect { resource.command command }.to raise_error(Chef::Exceptions::Script)
|
@@ -16,7 +16,6 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require "functional/resource/base"
|
20
19
|
require "chef/mixin/shell_out"
|
21
20
|
|
22
21
|
# Run the test only for AIX platform.
|
@@ -24,6 +23,7 @@ describe Chef::Resource::BffPackage, :requires_root, external: ohai[:platform] !
|
|
24
23
|
include Chef::Mixin::ShellOut
|
25
24
|
|
26
25
|
let(:new_resource) do
|
26
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
27
27
|
new_resource = Chef::Resource::BffPackage.new(@pkg_name, run_context)
|
28
28
|
new_resource.source @pkg_path
|
29
29
|
new_resource
|
@@ -25,6 +25,10 @@ describe Chef::Resource::ChocolateyPackage, :windows_only, :choco_installed do
|
|
25
25
|
let(:package_list) { proc { powershell_out!("choco list -lo -r #{Array(package_name).join(" ")}").stdout.chomp } }
|
26
26
|
let(:package_source) { File.join(CHEF_SPEC_ASSETS, "chocolatey_feed") }
|
27
27
|
|
28
|
+
let(:run_context) do
|
29
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
30
|
+
end
|
31
|
+
|
28
32
|
subject do
|
29
33
|
new_resource = Chef::Resource::ChocolateyPackage.new("test choco package", run_context)
|
30
34
|
new_resource.package_name package_name
|
@@ -18,7 +18,6 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require "spec_helper"
|
21
|
-
require "functional/resource/base"
|
22
21
|
require "chef/mixin/shell_out"
|
23
22
|
|
24
23
|
describe Chef::Resource::Cron, :requires_root, :unix_only do
|
@@ -53,6 +52,16 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
|
|
53
52
|
end
|
54
53
|
|
55
54
|
# Actual tests
|
55
|
+
|
56
|
+
let(:run_context) do
|
57
|
+
node = Chef::Node.new
|
58
|
+
node.default[:platform] = ohai[:platform]
|
59
|
+
node.default[:platform_version] = ohai[:platform_version]
|
60
|
+
node.default[:os] = ohai[:os]
|
61
|
+
events = Chef::EventDispatch::Dispatcher.new
|
62
|
+
Chef::RunContext.new(node, {}, events)
|
63
|
+
end
|
64
|
+
|
56
65
|
let(:new_resource) do
|
57
66
|
new_resource = Chef::Resource::Cron.new("Chef functional test cron", run_context)
|
58
67
|
new_resource.user "root"
|
@@ -80,6 +89,16 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
|
|
80
89
|
5.times { new_resource.run_action(:create) }
|
81
90
|
cron_should_exists(new_resource.name, new_resource.command)
|
82
91
|
end
|
92
|
+
|
93
|
+
# Test cron for day of week
|
94
|
+
weekdays = { Mon: 1, tuesday: 2, '3': 3, 'thursday': 4, 'Fri': 5, 6 => 6 }
|
95
|
+
weekdays.each do |key, value|
|
96
|
+
it "should create crontab entry and set #{value} for #{key} as weekday" do
|
97
|
+
new_resource.weekday key
|
98
|
+
expect { new_resource.run_action(:create) }.not_to raise_error
|
99
|
+
cron_should_exists(new_resource.name, new_resource.command)
|
100
|
+
end
|
101
|
+
end
|
83
102
|
end
|
84
103
|
|
85
104
|
describe "delete action" do
|