chef 16.0.257-universal-mingw32 → 16.2.44-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 +3 -1
- data/README.md +3 -3
- data/Rakefile +44 -16
- data/chef.gemspec +4 -4
- 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 -2
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
- 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 +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
- 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 +7 -7
- 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 +5 -1
- data/lib/chef/digester.rb +4 -4
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/dsl/platform_introspection.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/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 +18 -3
- 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 +13 -16
- 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/cookbook_delete.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 +18 -3
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/environment_compare.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/list.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_install.rb +1 -1
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/knife/{user_invite_recind.rb → user_invite_rescind.rb} +6 -6
- data/lib/chef/knife/yaml_convert.rb +2 -2
- 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/create_path.rb +8 -8
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/properties.rb +4 -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/node/mixin/deep_merge_cache.rb +7 -7
- 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 +3 -2
- 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 +28 -32
- 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/freebsd/base.rb +2 -1
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/macports.rb +0 -2
- 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 +27 -52
- 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 +13 -2
- data/lib/chef/provider/service/openbsd.rb +4 -4
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/simple.rb +3 -3
- 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 +7 -7
- 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 +5 -3
- data/lib/chef/provider/zypper_repository.rb +30 -10
- data/lib/chef/resource.rb +25 -14
- data/lib/chef/resource/alternatives.rb +65 -4
- data/lib/chef/resource/apt_package.rb +31 -2
- data/lib/chef/resource/apt_preference.rb +34 -5
- data/lib/chef/resource/apt_repository.rb +22 -15
- data/lib/chef/resource/apt_update.rb +6 -4
- data/lib/chef/resource/archive_file.rb +33 -12
- data/lib/chef/resource/bash.rb +1 -2
- data/lib/chef/resource/batch.rb +5 -3
- data/lib/chef/resource/bff_package.rb +1 -1
- data/lib/chef/resource/breakpoint.rb +1 -1
- data/lib/chef/resource/build_essential.rb +8 -4
- data/lib/chef/resource/cab_package.rb +1 -1
- data/lib/chef/resource/chef_client_cron.rb +12 -9
- data/lib/chef/resource/chef_client_scheduled_task.rb +22 -7
- data/lib/chef/resource/chef_client_systemd_timer.rb +10 -7
- data/lib/chef/resource/chef_gem.rb +6 -2
- data/lib/chef/resource/chef_handler.rb +3 -3
- data/lib/chef/resource/chef_sleep.rb +7 -4
- data/lib/chef/resource/chef_vault_secret.rb +4 -4
- data/lib/chef/resource/chocolatey_config.rb +5 -3
- data/lib/chef/resource/chocolatey_feature.rb +5 -3
- data/lib/chef/resource/chocolatey_package.rb +5 -3
- data/lib/chef/resource/chocolatey_source.rb +5 -3
- data/lib/chef/resource/cookbook_file.rb +3 -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} +28 -94
- data/lib/chef/resource/cron_access.rb +17 -6
- data/lib/chef/resource/csh.rb +1 -2
- data/lib/chef/resource/directory.rb +1 -1
- data/lib/chef/resource/dmg_package.rb +18 -15
- data/lib/chef/resource/dnf_package.rb +1 -1
- data/lib/chef/resource/dpkg_package.rb +1 -1
- data/lib/chef/resource/execute.rb +479 -9
- data/lib/chef/resource/file.rb +11 -8
- data/lib/chef/resource/freebsd_package.rb +2 -2
- data/lib/chef/resource/gem_package.rb +6 -6
- data/lib/chef/resource/group.rb +1 -1
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_cask.rb +1 -1
- data/lib/chef/resource/homebrew_package.rb +30 -1
- data/lib/chef/resource/homebrew_tap.rb +1 -1
- data/lib/chef/resource/homebrew_update.rb +107 -0
- data/lib/chef/resource/hostname.rb +11 -24
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +7 -7
- data/lib/chef/resource/ips_package.rb +1 -1
- data/lib/chef/resource/kernel_module.rb +15 -2
- data/lib/chef/resource/ksh.rb +1 -1
- data/lib/chef/resource/launchd.rb +5 -5
- data/lib/chef/resource/link.rb +4 -4
- data/lib/chef/resource/locale.rb +4 -4
- data/lib/chef/resource/log.rb +1 -1
- data/lib/chef/resource/macos_userdefaults.rb +15 -10
- data/lib/chef/resource/macosx_service.rb +1 -1
- data/lib/chef/resource/macports_package.rb +1 -1
- data/lib/chef/resource/mdadm.rb +1 -1
- data/lib/chef/resource/mount.rb +2 -2
- data/lib/chef/resource/msu_package.rb +2 -2
- data/lib/chef/resource/ohai.rb +1 -1
- data/lib/chef/resource/ohai_hint.rb +1 -1
- data/lib/chef/resource/openbsd_package.rb +1 -1
- data/lib/chef/resource/openssl_dhparam.rb +1 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +1 -1
- data/lib/chef/resource/openssl_x509_crl.rb +1 -1
- data/lib/chef/resource/openssl_x509_request.rb +1 -1
- data/lib/chef/resource/osx_profile.rb +1 -1
- data/lib/chef/resource/package.rb +1 -1
- data/lib/chef/resource/pacman_package.rb +1 -1
- data/lib/chef/resource/paludis_package.rb +1 -1
- data/lib/chef/resource/perl.rb +1 -2
- data/lib/chef/resource/plist.rb +24 -5
- data/lib/chef/resource/portage_package.rb +1 -1
- data/lib/chef/resource/powershell_package.rb +1 -1
- data/lib/chef/resource/powershell_package_source.rb +1 -1
- data/lib/chef/resource/powershell_script.rb +5 -3
- data/lib/chef/resource/python.rb +1 -2
- data/lib/chef/resource/reboot.rb +1 -1
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/remote_directory.rb +1 -1
- data/lib/chef/resource/remote_file.rb +26 -11
- data/lib/chef/resource/rhsm_errata.rb +1 -3
- data/lib/chef/resource/rhsm_errata_level.rb +1 -1
- data/lib/chef/resource/rhsm_register.rb +1 -2
- data/lib/chef/resource/rhsm_repo.rb +1 -2
- data/lib/chef/resource/rhsm_subscription.rb +1 -3
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/rpm_package.rb +5 -2
- data/lib/chef/resource/ruby.rb +1 -2
- data/lib/chef/resource/ruby_block.rb +1 -4
- data/lib/chef/resource/scm/_scm.rb +4 -3
- data/lib/chef/resource/scm/git.rb +2 -2
- data/lib/chef/resource/scm/subversion.rb +2 -2
- data/lib/chef/resource/script.rb +1 -1
- data/lib/chef/resource/service.rb +1 -1
- data/lib/chef/resource/smartos_package.rb +1 -1
- data/lib/chef/resource/snap_package.rb +1 -1
- data/lib/chef/resource/solaris_package.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
- data/lib/chef/resource/sudo.rb +4 -4
- data/lib/chef/resource/swap_file.rb +2 -2
- data/lib/chef/resource/sysctl.rb +61 -2
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +1 -1
- data/lib/chef/resource/user.rb +2 -2
- data/lib/chef/resource/user_ulimit.rb +24 -22
- data/lib/chef/resource/windows_ad_join.rb +31 -2
- data/lib/chef/resource/windows_audit_policy.rb +227 -0
- data/lib/chef/resource/windows_auto_run.rb +13 -2
- data/lib/chef/resource/windows_certificate.rb +28 -2
- data/lib/chef/resource/windows_dfs_folder.rb +1 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
- data/lib/chef/resource/windows_dfs_server.rb +2 -2
- data/lib/chef/resource/windows_env.rb +10 -1
- data/lib/chef/resource/windows_feature.rb +57 -2
- data/lib/chef/resource/windows_feature_dism.rb +15 -2
- data/lib/chef/resource/windows_feature_powershell.rb +29 -2
- data/lib/chef/resource/windows_firewall_rule.rb +11 -7
- data/lib/chef/resource/windows_font.rb +13 -4
- data/lib/chef/resource/windows_package.rb +66 -6
- data/lib/chef/resource/windows_pagefile.rb +32 -4
- data/lib/chef/resource/windows_path.rb +18 -1
- data/lib/chef/resource/windows_printer.rb +26 -6
- data/lib/chef/resource/windows_printer_port.rb +29 -1
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +47 -16
- data/lib/chef/resource/windows_service.rb +1 -1
- data/lib/chef/resource/windows_share.rb +23 -3
- data/lib/chef/resource/windows_shortcut.rb +13 -3
- data/lib/chef/resource/windows_task.rb +143 -29
- data/lib/chef/resource/windows_uac.rb +20 -1
- data/lib/chef/resource/windows_user_privilege.rb +45 -3
- data/lib/chef/resource/windows_workgroup.rb +19 -3
- data/lib/chef/resource/yum_package.rb +88 -6
- data/lib/chef/resource/yum_repository.rb +36 -19
- data/lib/chef/resource/zypper_package.rb +29 -3
- data/lib/chef/resource/zypper_repository.rb +17 -5
- data/lib/chef/resource_inspector.rb +5 -4
- data/lib/chef/resources.rb +4 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/scan_access_control.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/dsc/lcm_output_parser.rb +3 -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 +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 +18 -18
- 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/process.rb +2 -2
- 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/resource/cron_spec.rb +10 -0
- data/spec/functional/resource/dnf_package_spec.rb +2 -2
- data/spec/functional/resource/git_spec.rb +6 -6
- data/spec/functional/resource/launchd_spec.rb +232 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/remote_file_spec.rb +3 -3
- data/spec/functional/resource/user/dscl_spec.rb +1 -1
- data/spec/functional/resource/user/mac_user_spec.rb +1 -1
- data/spec/functional/resource/windows_task_spec.rb +12 -12
- data/spec/integration/knife/raw_spec.rb +4 -4
- data/spec/integration/knife/redirection_spec.rb +2 -2
- data/spec/support/chef_helpers.rb +1 -1
- data/spec/support/platform_helpers.rb +1 -14
- 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 +1 -1
- data/spec/support/shared/functional/http.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +1 -1
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/support/shared/unit/mock_shellout.rb +1 -1
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- data/spec/unit/application_spec.rb +7 -0
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/http/ssl_policies_spec.rb +20 -0
- data/spec/unit/knife/bootstrap_spec.rb +2 -2
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
- data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/shell_out_spec.rb +25 -31
- 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/apt_repository_spec.rb +27 -27
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron_spec.rb +9 -49
- 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 +8 -50
- data/spec/unit/provider/osx_profile_spec.rb +2 -2
- data/spec/unit/provider/package/msu_spec.rb +3 -3
- 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/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
- data/spec/unit/provider/zypper_repository_spec.rb +75 -25
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/cron_spec.rb +2 -2
- 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_package_spec.rb +10 -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_spec.rb +67 -1
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- data/spec/unit/win32/registry_spec.rb +1 -1
- metadata +28 -27
- data/lib/chef/resource/cron.rb +0 -157
@@ -19,6 +19,7 @@
|
|
19
19
|
#
|
20
20
|
|
21
21
|
require_relative "../resource"
|
22
|
+
require "fileutils" unless defined?(FileUtils)
|
22
23
|
|
23
24
|
class Chef
|
24
25
|
class Resource
|
@@ -29,15 +30,28 @@ class Chef
|
|
29
30
|
provides :libarchive_file # legacy cookbook name
|
30
31
|
|
31
32
|
introduced "15.0"
|
32
|
-
description "Use the archive_file resource to extract archive files to disk. This resource uses the libarchive library to extract multiple archive formats including tar, gzip, bzip, and zip formats."
|
33
|
+
description "Use the **archive_file** resource to extract archive files to disk. This resource uses the libarchive library to extract multiple archive formats including tar, gzip, bzip, and zip formats."
|
33
34
|
examples <<~DOC
|
34
|
-
Extract a zip file to a specified directory
|
35
|
+
**Extract a zip file to a specified directory**:
|
36
|
+
|
35
37
|
```ruby
|
36
38
|
archive_file 'Precompiled.zip' do
|
37
39
|
path '/tmp/Precompiled.zip'
|
38
40
|
destination '/srv/files'
|
39
41
|
end
|
40
42
|
```
|
43
|
+
|
44
|
+
**Set specific permissions on the extracted files**:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
archive_file 'Precompiled.zip' do
|
48
|
+
owner 'tsmith'
|
49
|
+
group 'staff'
|
50
|
+
mode '700'
|
51
|
+
path '/tmp/Precompiled.zip'
|
52
|
+
destination '/srv/files'
|
53
|
+
end
|
54
|
+
```
|
41
55
|
DOC
|
42
56
|
|
43
57
|
property :path, String,
|
@@ -52,7 +66,7 @@ class Chef
|
|
52
66
|
description: "The group of the extracted files."
|
53
67
|
|
54
68
|
property :mode, [String, Integer],
|
55
|
-
description: "The mode of the extracted files.",
|
69
|
+
description: "The mode of the extracted files. Integer values are deprecated as octal values (ex. 0755) would not be interpreted correctly.",
|
56
70
|
default: "755"
|
57
71
|
|
58
72
|
property :destination, String,
|
@@ -60,22 +74,22 @@ class Chef
|
|
60
74
|
required: true
|
61
75
|
|
62
76
|
property :options, [Array, Symbol],
|
63
|
-
description: "An array of symbols representing extraction flags. Example:
|
77
|
+
description: "An array of symbols representing extraction flags. Example: `:no_overwrite` to prevent overwriting files on disk. By default, this properly sets `:time` which preserves the modification timestamps of files in the archive when writing them to disk.",
|
64
78
|
default: lazy { [:time] }
|
65
79
|
|
66
80
|
property :overwrite, [TrueClass, FalseClass, :auto],
|
67
|
-
description: "Should the resource overwrite the destination file contents if they already exist? If set to
|
81
|
+
description: "Should the resource overwrite the destination file contents if they already exist? If set to `:auto` the date stamp of files within the archive will be compared to those on disk and disk contents will be overwritten if they differ. This may cause unintended consequences if disk date stamps are changed between runs, which will result in the files being overwritten during each client run. Make sure to properly test any change to this property.",
|
68
82
|
default: false
|
69
83
|
|
70
84
|
# backwards compatibility for the legacy cookbook names
|
71
85
|
alias_method :extract_options, :options
|
72
86
|
alias_method :extract_to, :destination
|
73
87
|
|
74
|
-
require "fileutils" unless defined?(FileUtils)
|
75
|
-
|
76
88
|
action :extract do
|
77
89
|
description "Extract and archive file."
|
78
90
|
|
91
|
+
require_libarchive
|
92
|
+
|
79
93
|
unless ::File.exist?(new_resource.path)
|
80
94
|
raise Errno::ENOENT, "No archive found at #{new_resource.path}! Cannot continue."
|
81
95
|
end
|
@@ -84,7 +98,8 @@ class Chef
|
|
84
98
|
Chef::Log.trace("File or directory does not exist at destination path: #{new_resource.destination}")
|
85
99
|
|
86
100
|
converge_by("create directory #{new_resource.destination}") do
|
87
|
-
|
101
|
+
# @todo when we remove the ability for mode to be an int we can remove the .to_s below
|
102
|
+
FileUtils.mkdir_p(new_resource.destination, mode: new_resource.mode.to_s.to_i(8))
|
88
103
|
end
|
89
104
|
|
90
105
|
extract(new_resource.path, new_resource.destination, Array(new_resource.options))
|
@@ -112,6 +127,16 @@ class Chef
|
|
112
127
|
end
|
113
128
|
|
114
129
|
action_class do
|
130
|
+
def require_libarchive
|
131
|
+
require "ffi-libarchive"
|
132
|
+
end
|
133
|
+
|
134
|
+
def define_resource_requirements
|
135
|
+
if new_resource.mode.is_a?(Integer)
|
136
|
+
Chef.deprecated(:archive_file_integer_file_mode, "The mode property should be passed to archive_file resources as a String and not an Integer to ensure the value is properly interpreted.")
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
115
140
|
# This can't be a constant since we might not have required 'ffi-libarchive' yet.
|
116
141
|
def extract_option_map
|
117
142
|
{
|
@@ -135,8 +160,6 @@ class Chef
|
|
135
160
|
#
|
136
161
|
# @return [Boolean]
|
137
162
|
def archive_differs_from_disk?(src, dest)
|
138
|
-
require "ffi-libarchive"
|
139
|
-
|
140
163
|
modified = false
|
141
164
|
Dir.chdir(dest) do
|
142
165
|
archive = Archive::Reader.open_filename(src)
|
@@ -163,8 +186,6 @@ class Chef
|
|
163
186
|
#
|
164
187
|
# @return [void]
|
165
188
|
def extract(src, dest, options = [])
|
166
|
-
require "ffi-libarchive"
|
167
|
-
|
168
189
|
converge_by("extract #{src} to #{dest}") do
|
169
190
|
flags = [options].flatten.map { |option| extract_option_map[option] }.compact.reduce(:|)
|
170
191
|
|
data/lib/chef/resource/bash.rb
CHANGED
@@ -17,7 +17,6 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require_relative "script"
|
20
|
-
require_relative "../provider/script"
|
21
20
|
|
22
21
|
class Chef
|
23
22
|
class Resource
|
@@ -26,7 +25,7 @@ class Chef
|
|
26
25
|
|
27
26
|
provides :bash
|
28
27
|
|
29
|
-
description "Use the bash resource to execute scripts using the Bash interpreter. This resource may also use any of the actions and properties that are available to the execute resource. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
28
|
+
description "Use the **bash** resource to execute scripts using the Bash interpreter. This resource may also use any of the actions and properties that are available to the execute resource. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
30
29
|
|
31
30
|
def initialize(name, run_context = nil)
|
32
31
|
super
|
data/lib/chef/resource/batch.rb
CHANGED
@@ -25,10 +25,12 @@ class Chef
|
|
25
25
|
|
26
26
|
provides :batch
|
27
27
|
|
28
|
-
description "Use the batch resource to execute a batch script using the cmd.exe interpreter on Windows. The batch resource creates and executes a temporary file (similar to how the script resource behaves), rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
28
|
+
description "Use the **batch** resource to execute a batch script using the cmd.exe interpreter on Windows. The batch resource creates and executes a temporary file (similar to how the script resource behaves), rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
29
29
|
|
30
|
-
def initialize(
|
31
|
-
super
|
30
|
+
def initialize(*args)
|
31
|
+
super
|
32
|
+
@interpreter = "cmd.exe"
|
33
|
+
@default_guard_interpreter = resource_name
|
32
34
|
end
|
33
35
|
|
34
36
|
end
|
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
|
26
26
|
provides :bff_package
|
27
27
|
|
28
|
-
description "Use the bff_package resource to manage packages for the AIX platform using the installp utility. When a package is installed from a local file, it must be added to the node using the remote_file or cookbook_file resources."
|
28
|
+
description "Use the **bff_package** resource to manage packages for the AIX platform using the installp utility. When a package is installed from a local file, it must be added to the node using the **remote_file** or **cookbook_file** resources."
|
29
29
|
introduced "12.0"
|
30
30
|
|
31
31
|
property :package_name, String,
|
@@ -26,7 +26,7 @@ class Chef
|
|
26
26
|
|
27
27
|
provides :breakpoint, target_mode: true
|
28
28
|
|
29
|
-
description "Use the breakpoint resource to add breakpoints to recipes. Run the #{Chef::Dist::SHELL} in #{Chef::Dist::PRODUCT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
|
29
|
+
description "Use the **breakpoint** resource to add breakpoints to recipes. Run the #{Chef::Dist::SHELL} in #{Chef::Dist::PRODUCT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
|
30
30
|
introduced "12.0"
|
31
31
|
|
32
32
|
default_action :break
|
@@ -24,22 +24,25 @@ class Chef
|
|
24
24
|
|
25
25
|
provides(:build_essential) { true }
|
26
26
|
|
27
|
-
description "Use the build_essential resource to install the packages required for compiling C software from source."
|
27
|
+
description "Use the **build_essential** resource to install the packages required for compiling C software from source."
|
28
28
|
introduced "14.0"
|
29
29
|
examples <<~DOC
|
30
|
-
Install compilation packages
|
30
|
+
**Install compilation packages**:
|
31
|
+
|
31
32
|
```ruby
|
32
33
|
build_essential
|
33
34
|
```
|
34
35
|
|
35
|
-
Install compilation packages during the compilation phase
|
36
|
+
**Install compilation packages during the compilation phase**:
|
37
|
+
|
36
38
|
```ruby
|
37
39
|
build_essential 'Install compilation tools' do
|
38
40
|
compile_time true
|
39
41
|
end
|
40
42
|
```
|
41
43
|
|
42
|
-
Upgrade compilation packages on macOS systems
|
44
|
+
**Upgrade compilation packages on macOS systems**:
|
45
|
+
|
43
46
|
```ruby
|
44
47
|
build_essential 'Install compilation tools' do
|
45
48
|
action :upgrade
|
@@ -52,6 +55,7 @@ class Chef
|
|
52
55
|
|
53
56
|
property :raise_if_unsupported, [TrueClass, FalseClass],
|
54
57
|
description: "Raise a hard error on platforms where this resource is unsupported.",
|
58
|
+
introduced: "15.5",
|
55
59
|
default: false, desired_state: false # FIXME: make this default to true
|
56
60
|
|
57
61
|
action :install do
|
@@ -27,7 +27,7 @@ class Chef
|
|
27
27
|
|
28
28
|
provides :cab_package
|
29
29
|
|
30
|
-
description "Use the cab_package resource to install or remove Microsoft Windows cabinet (.cab) packages."
|
30
|
+
description "Use the **cab_package** resource to install or remove Microsoft Windows cabinet (.cab) packages."
|
31
31
|
introduced "12.15"
|
32
32
|
|
33
33
|
allowed_actions :install, :remove
|
@@ -26,23 +26,26 @@ class Chef
|
|
26
26
|
|
27
27
|
provides :chef_client_cron
|
28
28
|
|
29
|
-
description "Use the chef_client_cron resource to setup the #{Chef::Dist::PRODUCT} to run as a cron job. This resource will also create the specified log directory if it doesn't already exist."
|
29
|
+
description "Use the **chef_client_cron** resource to setup the #{Chef::Dist::PRODUCT} to run as a cron job. This resource will also create the specified log directory if it doesn't already exist."
|
30
30
|
introduced "16.0"
|
31
31
|
examples <<~DOC
|
32
|
-
Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
|
32
|
+
**Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
|
33
|
+
|
33
34
|
```ruby
|
34
|
-
chef_client_cron "Run
|
35
|
+
chef_client_cron "Run #{Chef::Dist::PRODUCT} as a cron job"
|
35
36
|
```
|
36
37
|
|
37
|
-
Run #{Chef::Dist::PRODUCT} twice a day
|
38
|
+
**Run #{Chef::Dist::PRODUCT} twice a day**:
|
39
|
+
|
38
40
|
```ruby
|
39
|
-
chef_client_cron "Run
|
41
|
+
chef_client_cron "Run #{Chef::Dist::PRODUCT} every 12 hours" do
|
40
42
|
minute 0
|
41
43
|
hour "0,12"
|
42
44
|
end
|
43
45
|
```
|
44
46
|
|
45
|
-
Run #{Chef::Dist::PRODUCT} with extra options passed to the client
|
47
|
+
**Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
|
48
|
+
|
46
49
|
```ruby
|
47
50
|
chef_client_cron "Run an override recipe" do
|
48
51
|
daemon_options ["--override-runlist mycorp_base::default"]
|
@@ -133,14 +136,14 @@ class Chef
|
|
133
136
|
|
134
137
|
property :environment, Hash,
|
135
138
|
default: lazy { {} },
|
136
|
-
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of
|
139
|
+
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`."
|
137
140
|
|
138
141
|
action :add do
|
139
142
|
# TODO: Replace this with a :create_if_missing action on directory when that exists
|
140
143
|
unless ::Dir.exist?(new_resource.log_directory)
|
141
144
|
directory new_resource.log_directory do
|
142
145
|
owner new_resource.user
|
143
|
-
mode "
|
146
|
+
mode "0750"
|
144
147
|
recursive true
|
145
148
|
end
|
146
149
|
end
|
@@ -160,7 +163,7 @@ class Chef
|
|
160
163
|
end
|
161
164
|
|
162
165
|
action :remove do
|
163
|
-
|
166
|
+
declare_resource(cron_resource_type, new_resource.job_name) do
|
164
167
|
action :delete
|
165
168
|
end
|
166
169
|
end
|
@@ -24,27 +24,40 @@ class Chef
|
|
24
24
|
|
25
25
|
provides :chef_client_scheduled_task
|
26
26
|
|
27
|
-
description "Use the
|
27
|
+
description "Use the **chef_client_scheduled_task** resource to setup the #{Chef::Dist::PRODUCT} to run as a Windows scheduled task. This resource will also create the specified log directory if it doesn't already exist."
|
28
28
|
introduced "16.0"
|
29
29
|
examples <<~DOC
|
30
|
-
Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
|
30
|
+
**Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
|
31
|
+
|
31
32
|
```ruby
|
32
|
-
chef_client_scheduled_task "Run
|
33
|
+
chef_client_scheduled_task "Run #{Chef::Dist::PRODUCT} as a scheduled task"
|
33
34
|
```
|
34
35
|
|
35
|
-
Run #{Chef::Dist::PRODUCT} on system start
|
36
|
+
**Run #{Chef::Dist::PRODUCT} on system start**:
|
37
|
+
|
36
38
|
```ruby
|
37
|
-
chef_client_scheduled_task 'Chef
|
39
|
+
chef_client_scheduled_task '#{Chef::Dist::PRODUCT} on start' do
|
38
40
|
frequency 'onstart'
|
39
41
|
end
|
40
42
|
```
|
41
43
|
|
42
|
-
Run #{Chef::Dist::PRODUCT} with extra options passed to the client
|
44
|
+
**Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
|
45
|
+
|
43
46
|
```ruby
|
44
47
|
chef_client_scheduled_task "Run an override recipe" do
|
45
48
|
daemon_options ["--override-runlist mycorp_base::default"]
|
46
49
|
end
|
47
50
|
```
|
51
|
+
|
52
|
+
**Run #{Chef::Dist::PRODUCT} daily at 01:00 am, specifying a named run-list**:
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
chef_client_scheduled_task "Run chef-client named run-list daily" do
|
56
|
+
frequency 'daily'
|
57
|
+
start_time '01:00'
|
58
|
+
daemon_options ['-n audit_only']
|
59
|
+
end
|
60
|
+
```
|
48
61
|
DOC
|
49
62
|
|
50
63
|
resource_name :chef_client_scheduled_task
|
@@ -69,7 +82,8 @@ class Chef
|
|
69
82
|
coerce: proc { |x| Integer(x) },
|
70
83
|
callbacks: { "should be a positive number" => proc { |v| v > 0 } },
|
71
84
|
description: "Numeric value to go with the scheduled task frequency",
|
72
|
-
default: 30
|
85
|
+
default: lazy { frequency == "minute" ? 30 : 1 },
|
86
|
+
default_description: "30 if frequency is 'minute', 1 otherwise"
|
73
87
|
|
74
88
|
property :accept_chef_license, [true, false],
|
75
89
|
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement/>",
|
@@ -126,6 +140,7 @@ class Chef
|
|
126
140
|
|
127
141
|
# According to https://docs.microsoft.com/en-us/windows/desktop/taskschd/schtasks,
|
128
142
|
# the :once, :onstart, :onlogon, and :onidle schedules don't accept schedule modifiers
|
143
|
+
|
129
144
|
windows_task new_resource.task_name do
|
130
145
|
run_level :highest
|
131
146
|
command full_command
|
@@ -24,22 +24,25 @@ class Chef
|
|
24
24
|
|
25
25
|
provides :chef_client_systemd_timer
|
26
26
|
|
27
|
-
description "Use the chef_client_systemd_timer resource to setup the #{Chef::Dist::PRODUCT} to run as a systemd timer."
|
27
|
+
description "Use the **chef_client_systemd_timer** resource to setup the #{Chef::Dist::PRODUCT} to run as a systemd timer."
|
28
28
|
introduced "16.0"
|
29
29
|
examples <<~DOC
|
30
|
-
Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
|
30
|
+
**Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
|
31
|
+
|
31
32
|
```ruby
|
32
|
-
chef_client_systemd_timer "Run
|
33
|
+
chef_client_systemd_timer "Run #{Chef::Dist::PRODUCT} as a systemd timer"
|
33
34
|
```
|
34
35
|
|
35
|
-
Run #{Chef::Dist::PRODUCT} every 1 hour
|
36
|
+
**Run #{Chef::Dist::PRODUCT} every 1 hour**:
|
37
|
+
|
36
38
|
```ruby
|
37
|
-
chef_client_systemd_timer "Run
|
39
|
+
chef_client_systemd_timer "Run #{Chef::Dist::PRODUCT} every 1 hour" do
|
38
40
|
interval "1hr"
|
39
41
|
end
|
40
42
|
```
|
41
43
|
|
42
|
-
Run #{Chef::Dist::PRODUCT} with extra options passed to the client
|
44
|
+
**Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
|
45
|
+
|
43
46
|
```ruby
|
44
47
|
chef_client_systemd_timer "Run an override recipe" do
|
45
48
|
daemon_options ["--override-runlist mycorp_base::default"]
|
@@ -92,7 +95,7 @@ class Chef
|
|
92
95
|
default: lazy { [] }
|
93
96
|
|
94
97
|
property :environment, Hash,
|
95
|
-
description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of
|
98
|
+
description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`.",
|
96
99
|
default: lazy { {} }
|
97
100
|
|
98
101
|
action :add do
|
@@ -34,6 +34,10 @@ class Chef
|
|
34
34
|
# installed
|
35
35
|
# - Runs Gem.clear_paths after the action, ensuring that gem is aware of changes so that it can be required
|
36
36
|
# immediately after it is installed
|
37
|
+
|
38
|
+
require_relative "gem_package"
|
39
|
+
require_relative "../dist"
|
40
|
+
|
37
41
|
class ChefGem < Chef::Resource::Package::GemPackage
|
38
42
|
unified_mode true
|
39
43
|
provides :chef_gem
|
@@ -45,8 +49,8 @@ class Chef
|
|
45
49
|
property :version, String,
|
46
50
|
description: "The version of a package to be installed or upgraded."
|
47
51
|
|
48
|
-
property :gem_binary, default: "#{RbConfig::CONFIG["bindir"]}/gem", default_description: "
|
49
|
-
description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by
|
52
|
+
property :gem_binary, default: "#{RbConfig::CONFIG["bindir"]}/gem", default_description: "The `gem` binary included with #{Chef::Dist::PRODUCT}.",
|
53
|
+
description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by #{Chef::Dist::PRODUCT} will be installed.",
|
50
54
|
callbacks: {
|
51
55
|
"The chef_gem resource is restricted to the current gem environment, use gem_package to install to other environments." => proc { |v| v == "#{RbConfig::CONFIG["bindir"]}/gem" },
|
52
56
|
}
|
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
|
26
26
|
provides(:chef_handler) { true }
|
27
27
|
|
28
|
-
description "Use the chef_handler resource to install or uninstall reporting/exception handlers."
|
28
|
+
description "Use the **chef_handler** resource to install or uninstall reporting/exception handlers."
|
29
29
|
introduced "14.0"
|
30
30
|
|
31
31
|
property :class_name, String,
|
@@ -107,7 +107,7 @@ class Chef
|
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
|
-
# Walks down the namespace
|
110
|
+
# Walks down the namespace hierarchy to return the class object for the given class name.
|
111
111
|
# If the class is not available, NameError is thrown.
|
112
112
|
#
|
113
113
|
# @param class_full_name [String] full class name such as 'Chef::Handler::Foo' or 'MyHandler'.
|
@@ -118,7 +118,7 @@ class Chef
|
|
118
118
|
class_name = ancestors.pop
|
119
119
|
|
120
120
|
# We need to search the ancestors only for the first/uppermost namespace of the class, so we
|
121
|
-
# need to enable the #const_get inherit
|
121
|
+
# need to enable the #const_get inherit parameter only when we are searching in Kernel scope
|
122
122
|
# (see COOK-4117).
|
123
123
|
parent = ancestors.inject(Kernel) { |scope, const_name| scope.const_get(const_name, scope === Kernel) }
|
124
124
|
child = parent.const_get(class_name, parent === Kernel)
|
@@ -24,22 +24,25 @@ class Chef
|
|
24
24
|
|
25
25
|
unified_mode true
|
26
26
|
|
27
|
-
description "Use the chef_sleep resource to
|
27
|
+
description "Use the **chef_sleep** resource to pause (sleep) for a number of seconds during a #{Chef::Dist::PRODUCT} run. Only use this resource when a command or service exits successfully but is not ready for the next step in a recipe."
|
28
28
|
introduced "15.5"
|
29
29
|
examples <<~DOC
|
30
|
-
Sleep for 10 seconds
|
30
|
+
**Sleep for 10 seconds**:
|
31
|
+
|
31
32
|
```ruby
|
32
33
|
chef_sleep '10'
|
33
34
|
```
|
34
35
|
|
35
|
-
Sleep for 10 seconds with a descriptive resource name for logging
|
36
|
+
**Sleep for 10 seconds with a descriptive resource name for logging**:
|
37
|
+
|
36
38
|
```ruby
|
37
39
|
chef_sleep 'wait for the service to start' do
|
38
40
|
seconds 10
|
39
41
|
end
|
40
42
|
````
|
41
43
|
|
42
|
-
Use a notification from another resource to sleep only when necessary
|
44
|
+
**Use a notification from another resource to sleep only when necessary**:
|
45
|
+
|
43
46
|
```ruby
|
44
47
|
service 'Service that is slow to start and reports as started' do
|
45
48
|
service_name 'my_database'
|