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
@@ -26,9 +26,9 @@ class Chef
|
|
26
26
|
provides :chef_vault_secret
|
27
27
|
|
28
28
|
introduced "16.0"
|
29
|
-
description "Use the chef_vault_secret resource to store secrets in Chef Vault items. Where possible and relevant, this resource attempts to map behavior and functionality to the knife vault sub-commands."
|
29
|
+
description "Use the **chef_vault_secret** resource to store secrets in Chef Vault items. Where possible and relevant, this resource attempts to map behavior and functionality to the knife vault sub-commands."
|
30
30
|
examples <<~DOC
|
31
|
-
To create a 'foo' item in an existing 'bar' data bag
|
31
|
+
**To create a 'foo' item in an existing 'bar' data bag**:
|
32
32
|
|
33
33
|
```ruby
|
34
34
|
chef_vault_secret 'foo' do
|
@@ -39,13 +39,13 @@ class Chef
|
|
39
39
|
end
|
40
40
|
```
|
41
41
|
|
42
|
-
To allow multiple admins access to an item
|
42
|
+
**To allow multiple admins access to an item**:
|
43
43
|
|
44
44
|
```ruby
|
45
45
|
chef_vault_secret 'root-password' do
|
46
46
|
admins 'jtimberman,paulmooring'
|
47
47
|
data_bag 'secrets'
|
48
|
-
raw_data({'auth' => '
|
48
|
+
raw_data({'auth' => 'DoNotUseThisPasswordForRoot'})
|
49
49
|
search '*:*'
|
50
50
|
end
|
51
51
|
```
|
@@ -21,10 +21,11 @@ class Chef
|
|
21
21
|
|
22
22
|
provides :chocolatey_config
|
23
23
|
|
24
|
-
description "Use the chocolatey_config resource to add or remove Chocolatey configuration keys."
|
24
|
+
description "Use the **chocolatey_config** resource to add or remove Chocolatey configuration keys."
|
25
25
|
introduced "14.3"
|
26
26
|
examples <<~DOC
|
27
|
-
Set the Chocolatey cacheLocation config
|
27
|
+
**Set the Chocolatey cacheLocation config**:
|
28
|
+
|
28
29
|
```ruby
|
29
30
|
chocolatey_config 'Set cacheLocation config' do
|
30
31
|
config_key 'cacheLocation'
|
@@ -32,7 +33,8 @@ class Chef
|
|
32
33
|
end
|
33
34
|
```
|
34
35
|
|
35
|
-
Unset a Chocolatey config
|
36
|
+
**Unset a Chocolatey config**:
|
37
|
+
|
36
38
|
```ruby
|
37
39
|
chocolatey_config 'BogusConfig' do
|
38
40
|
action :unset
|
@@ -20,17 +20,19 @@ class Chef
|
|
20
20
|
unified_mode true
|
21
21
|
provides :chocolatey_feature
|
22
22
|
|
23
|
-
description "Use the chocolatey_feature resource to enable and disable Chocolatey features."
|
23
|
+
description "Use the **chocolatey_feature** resource to enable and disable Chocolatey features."
|
24
24
|
introduced "15.1"
|
25
25
|
examples <<~DOC
|
26
|
-
Enable the checksumFiles Chocolatey feature
|
26
|
+
**Enable the checksumFiles Chocolatey feature**
|
27
|
+
|
27
28
|
```ruby
|
28
29
|
chocolatey_feature 'checksumFiles' do
|
29
30
|
action :enable
|
30
31
|
end
|
31
32
|
```
|
32
33
|
|
33
|
-
Disable the checksumFiles Chocolatey feature
|
34
|
+
**Disable the checksumFiles Chocolatey feature**
|
35
|
+
|
34
36
|
```ruby
|
35
37
|
chocolatey_feature 'checksumFiles' do
|
36
38
|
action :disable
|
@@ -25,17 +25,19 @@ class Chef
|
|
25
25
|
|
26
26
|
provides :chocolatey_package
|
27
27
|
|
28
|
-
description "Use the chocolatey_package resource to manage packages using Chocolatey on the Microsoft Windows platform."
|
28
|
+
description "Use the **chocolatey_package** resource to manage packages using Chocolatey on the Microsoft Windows platform. Note: The Chocolatey package manager is not installed on Windows by default. You will need to install it prior to using this resource by adding the [Chocolatey cookbook](https://supermarket.chef.io/cookbooks/chocolatey/) to your node's run list."
|
29
29
|
introduced "12.7"
|
30
30
|
examples <<~DOC
|
31
|
-
Install a Chocolatey package
|
31
|
+
**Install a Chocolatey package**:
|
32
|
+
|
32
33
|
```ruby
|
33
34
|
chocolatey_package 'name of package' do
|
34
35
|
action :install
|
35
36
|
end
|
36
37
|
```
|
37
38
|
|
38
|
-
Install a package with options with Chocolatey's
|
39
|
+
**Install a package with options with Chocolatey's `--checksum` option**:
|
40
|
+
|
39
41
|
```ruby
|
40
42
|
chocolatey_package 'name of package' do
|
41
43
|
options '--checksum 1234567890'
|
@@ -20,10 +20,11 @@ class Chef
|
|
20
20
|
unified_mode true
|
21
21
|
provides :chocolatey_source
|
22
22
|
|
23
|
-
description "Use the chocolatey_source resource to add, remove, enable, or disable Chocolatey sources."
|
23
|
+
description "Use the **chocolatey_source** resource to add, remove, enable, or disable Chocolatey sources."
|
24
24
|
introduced "14.3"
|
25
25
|
examples <<~DOC
|
26
|
-
Add a Chocolatey source
|
26
|
+
**Add a Chocolatey source**
|
27
|
+
|
27
28
|
```ruby
|
28
29
|
chocolatey_source 'MySource' do
|
29
30
|
source 'http://example.com/something'
|
@@ -31,7 +32,8 @@ class Chef
|
|
31
32
|
end
|
32
33
|
```
|
33
34
|
|
34
|
-
Remove a Chocolatey source
|
35
|
+
**Remove a Chocolatey source**
|
36
|
+
|
35
37
|
```ruby
|
36
38
|
chocolatey_source 'MySource' do
|
37
39
|
action :remove
|
@@ -31,7 +31,7 @@ class Chef
|
|
31
31
|
|
32
32
|
provides :cookbook_file
|
33
33
|
|
34
|
-
description "Use the cookbook_file resource to transfer files from a sub-directory of COOKBOOK_NAME/files/ to a specified path located on a host that is running the #{Chef::Dist::PRODUCT}. The file is selected according to file specificity, which allows different source files to be used based on the hostname, host platform (operating system, distro, or as appropriate), or platform version. Files that are located in the COOKBOOK_NAME/files/default sub-directory may be used on any platform.\n\nDuring a #{Chef::Dist::PRODUCT} run, the checksum for each local file is calculated and then compared against the checksum for the same file as it currently exists in the cookbook on the #{Chef::Dist::SERVER_PRODUCT}. A file is not transferred when the checksums match. Only files that require an update are transferred from the #{Chef::Dist::SERVER_PRODUCT} to a node."
|
34
|
+
description "Use the **cookbook_file** resource to transfer files from a sub-directory of COOKBOOK_NAME/files/ to a specified path located on a host that is running the #{Chef::Dist::PRODUCT}. The file is selected according to file specificity, which allows different source files to be used based on the hostname, host platform (operating system, distro, or as appropriate), or platform version. Files that are located in the COOKBOOK_NAME/files/default sub-directory may be used on any platform.\n\nDuring a #{Chef::Dist::PRODUCT} run, the checksum for each local file is calculated and then compared against the checksum for the same file as it currently exists in the cookbook on the #{Chef::Dist::SERVER_PRODUCT}. A file is not transferred when the checksums match. Only files that require an update are transferred from the #{Chef::Dist::SERVER_PRODUCT} to a node."
|
35
35
|
|
36
36
|
property :source, [ String, Array ],
|
37
37
|
description: "The name of the file in COOKBOOK_NAME/files/default or the path to a file located in COOKBOOK_NAME/files. The path must include the file name and its extension. This can be used to distribute specific files depending upon the platform used.",
|
@@ -39,7 +39,8 @@ class Chef
|
|
39
39
|
|
40
40
|
property :cookbook, String,
|
41
41
|
description: "The cookbook in which a file is located (if it is not located in the current cookbook).",
|
42
|
-
desired_state: false
|
42
|
+
desired_state: false,
|
43
|
+
default_description: "The current cookbook name"
|
43
44
|
|
44
45
|
default_action :create
|
45
46
|
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
unified_mode true
|
2
|
+
|
3
|
+
TIMEOUT_OPTS = %w{duration preserve-status foreground kill-after signal}.freeze
|
4
|
+
TIMEOUT_REGEX = /\A\S+/.freeze
|
5
|
+
WEEKDAYS = {
|
6
|
+
sunday: "0", monday: "1", tuesday: "2", wednesday: "3", thursday: "4", friday: "5", saturday: "6",
|
7
|
+
sun: "0", mon: "1", tue: "2", wed: "3", thu: "4", fri: "5", sat: "6"
|
8
|
+
}.freeze
|
9
|
+
|
10
|
+
property :minute, [Integer, String],
|
11
|
+
description: "The minute at which the cron entry should run (`0 - 59`).",
|
12
|
+
default: "*", callbacks: {
|
13
|
+
"should be a valid minute spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 0, 59) },
|
14
|
+
}
|
15
|
+
|
16
|
+
property :hour, [Integer, String],
|
17
|
+
description: "The hour at which the cron entry is to run (`0 - 23`).",
|
18
|
+
default: "*", callbacks: {
|
19
|
+
"should be a valid hour spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 0, 23) },
|
20
|
+
}
|
21
|
+
|
22
|
+
property :day, [Integer, String],
|
23
|
+
description: "The day of month at which the cron entry should run (`1 - 31`).",
|
24
|
+
default: "*", callbacks: {
|
25
|
+
"should be a valid day spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 1, 31) },
|
26
|
+
}
|
27
|
+
|
28
|
+
property :month, [Integer, String],
|
29
|
+
description: "The month in the year on which a cron entry is to run (`1 - 12`, `jan-dec`, or `*`).",
|
30
|
+
default: "*", callbacks: {
|
31
|
+
"should be a valid month spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_month(spec) },
|
32
|
+
}
|
33
|
+
|
34
|
+
property :weekday, [Integer, String, Symbol],
|
35
|
+
description: "The day of the week on which this entry is to run (`0-7`, `mon-sun`, `monday-sunday`, or `*`), where Sunday is both `0` and `7`.",
|
36
|
+
default: "*", coerce: proc { |day| weekday_in_crontab(day) },
|
37
|
+
callbacks: {
|
38
|
+
"should be a valid weekday spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_dow(spec) },
|
39
|
+
}
|
40
|
+
|
41
|
+
property :shell, String,
|
42
|
+
description: "Set the `SHELL` environment variable."
|
43
|
+
|
44
|
+
property :path, String,
|
45
|
+
description: "Set the `PATH` environment variable."
|
46
|
+
|
47
|
+
property :home, String,
|
48
|
+
description: "Set the `HOME` environment variable."
|
49
|
+
|
50
|
+
property :mailto, String,
|
51
|
+
description: "Set the `MAILTO` environment variable."
|
52
|
+
|
53
|
+
property :command, String,
|
54
|
+
description: "The command to be run, or the path to a file that contains the command to be run.",
|
55
|
+
identity: true,
|
56
|
+
required: [:create]
|
57
|
+
|
58
|
+
property :user, String,
|
59
|
+
description: "The name of the user that runs the command.",
|
60
|
+
default: "root"
|
61
|
+
|
62
|
+
property :environment, Hash,
|
63
|
+
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`. **Note**: These variables must exist for a command to be run successfully.",
|
64
|
+
default: lazy { {} }
|
65
|
+
|
66
|
+
property :time_out, Hash,
|
67
|
+
description: "A Hash of timeouts in the form of `({'OPTION' => 'VALUE'})`. Accepted valid options are:
|
68
|
+
- `preserve-status` (BOOL, default: 'false'),
|
69
|
+
- `foreground` (BOOL, default: 'false'),
|
70
|
+
- `kill-after` (in seconds),
|
71
|
+
- `signal` (a name like 'HUP' or a number)",
|
72
|
+
default: lazy { {} },
|
73
|
+
introduced: "15.7",
|
74
|
+
coerce: proc { |h|
|
75
|
+
if h.is_a?(Hash)
|
76
|
+
invalid_keys = h.keys - TIMEOUT_OPTS
|
77
|
+
unless invalid_keys.empty?
|
78
|
+
error_msg = "Key of option time_out must be equal to one of: \"#{TIMEOUT_OPTS.join('", "')}\"! You passed \"#{invalid_keys.join(", ")}\"."
|
79
|
+
raise Chef::Exceptions::ValidationFailed, error_msg
|
80
|
+
end
|
81
|
+
unless h.values.all? { |x| x =~ TIMEOUT_REGEX }
|
82
|
+
error_msg = "Values of option time_out should be non-empty strings without any leading whitespace."
|
83
|
+
raise Chef::Exceptions::ValidationFailed, error_msg
|
84
|
+
end
|
85
|
+
h
|
86
|
+
elsif h.is_a?(Integer) || h.is_a?(String)
|
87
|
+
{ "duration" => h }
|
88
|
+
end
|
89
|
+
}
|
90
|
+
|
91
|
+
private
|
92
|
+
# Convert weekday input value into crontab format that
|
93
|
+
# could be written in the crontab
|
94
|
+
# @return [Integer, String] A weekday formed as per the user inputs.
|
95
|
+
def weekday_in_crontab(day)
|
96
|
+
weekday = day.to_s.downcase.to_sym
|
97
|
+
WEEKDAYS[weekday] || day
|
98
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Bryan McLellan (btm@loftninjas.org)
|
3
|
+
# Author:: Tyler Cloke (<tyler@chef.io>)
|
4
|
+
# Copyright:: Copyright 2009-2016, Bryan McLellan
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
require_relative "../../resource"
|
21
|
+
require_relative "../helpers/cron_validations"
|
22
|
+
require_relative "../../provider/cron" # do not remove. we actually need this below
|
23
|
+
|
24
|
+
class Chef
|
25
|
+
class Resource
|
26
|
+
class Cron < Chef::Resource
|
27
|
+
unified_mode true
|
28
|
+
|
29
|
+
use "cron_shared"
|
30
|
+
|
31
|
+
provides :cron
|
32
|
+
|
33
|
+
description "Use the **cron** resource to manage cron entries for time-based job scheduling. Properties for a schedule will default to * if not provided. The cron resource requires access to a crontab program, typically cron."
|
34
|
+
|
35
|
+
state_attrs :minute, :hour, :day, :month, :weekday, :user
|
36
|
+
|
37
|
+
default_action :create
|
38
|
+
allowed_actions :create, :delete
|
39
|
+
|
40
|
+
property :time, Symbol,
|
41
|
+
description: "A time interval.",
|
42
|
+
equal_to: Chef::Provider::Cron::SPECIAL_TIME_VALUES
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -15,21 +15,25 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
#
|
17
17
|
|
18
|
-
require_relative "
|
19
|
-
require_relative "helpers/cron_validations"
|
18
|
+
require_relative "../../resource"
|
19
|
+
require_relative "../helpers/cron_validations"
|
20
20
|
require "shellwords" unless defined?(Shellwords)
|
21
|
-
require_relative "
|
21
|
+
require_relative "../../dist"
|
22
22
|
|
23
23
|
class Chef
|
24
24
|
class Resource
|
25
25
|
class CronD < Chef::Resource
|
26
26
|
unified_mode true
|
27
|
+
|
28
|
+
use "cron_shared"
|
29
|
+
|
27
30
|
provides :cron_d
|
28
31
|
|
29
32
|
introduced "14.4"
|
30
|
-
description "Use the cron_d resource to manage cron
|
33
|
+
description "Use the **cron_d** resource to manage cron job files in the /etc/cron.d directory. This is similar to the 'cron' resource, but it does not use the monolithic /etc/crontab file."
|
31
34
|
examples <<~DOC
|
32
|
-
|
35
|
+
**Run a program on the fifth hour of the day**
|
36
|
+
|
33
37
|
```ruby
|
34
38
|
cron_d 'noop' do
|
35
39
|
hour '5'
|
@@ -38,7 +42,8 @@ class Chef
|
|
38
42
|
end
|
39
43
|
```
|
40
44
|
|
41
|
-
|
45
|
+
**Run an entry if a folder exists**
|
46
|
+
|
42
47
|
```ruby
|
43
48
|
cron_d 'ganglia_tomcat_thread_max' do
|
44
49
|
command "/usr/bin/gmetric
|
@@ -50,18 +55,21 @@ class Chef
|
|
50
55
|
end
|
51
56
|
```
|
52
57
|
|
53
|
-
|
58
|
+
**Run an entry every Saturday, 8:00 AM**
|
59
|
+
|
54
60
|
```ruby
|
55
61
|
cron_d 'name_of_cron_entry' do
|
56
62
|
minute '0'
|
57
63
|
hour '8'
|
58
64
|
weekday '6'
|
59
65
|
mailto 'admin@example.com'
|
66
|
+
command "/bin/true"
|
60
67
|
action :create
|
61
68
|
end
|
62
69
|
```
|
63
70
|
|
64
|
-
|
71
|
+
**Run an entry at 8:00 PM, every weekday (Monday through Friday), but only in November**
|
72
|
+
|
65
73
|
```ruby
|
66
74
|
cron_d 'name_of_cron_entry' do
|
67
75
|
minute '0'
|
@@ -69,113 +77,39 @@ class Chef
|
|
69
77
|
day '*'
|
70
78
|
month '11'
|
71
79
|
weekday '1-5'
|
80
|
+
command "/bin/true"
|
72
81
|
action :create
|
73
82
|
end
|
74
83
|
```
|
84
|
+
|
85
|
+
**Remove a cron job by name**:
|
86
|
+
|
87
|
+
```ruby
|
88
|
+
cron_d 'job_to_remove' do
|
89
|
+
action :delete
|
90
|
+
end
|
91
|
+
```
|
75
92
|
DOC
|
76
93
|
|
77
94
|
property :cron_name, String,
|
78
95
|
description: "An optional property to set the cron name if it differs from the resource block's name.",
|
79
96
|
name_property: true
|
80
97
|
|
81
|
-
property :cookbook, String, desired_state: false
|
98
|
+
property :cookbook, String, desired_state: false, skip_docs: true
|
82
99
|
|
83
100
|
property :predefined_value, String,
|
84
101
|
description: "Schedule your cron job with one of the special predefined value instead of ** * pattern.",
|
85
102
|
equal_to: %w{ @reboot @yearly @annually @monthly @weekly @daily @midnight @hourly }
|
86
103
|
|
87
|
-
property :minute, [Integer, String],
|
88
|
-
description: "The minute at which the cron entry should run (0 - 59).",
|
89
|
-
default: "*", callbacks: {
|
90
|
-
"should be a valid minute spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 0, 59) },
|
91
|
-
}
|
92
|
-
|
93
|
-
property :hour, [Integer, String],
|
94
|
-
description: "The hour at which the cron entry is to run (0 - 23).",
|
95
|
-
default: "*", callbacks: {
|
96
|
-
"should be a valid hour spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 0, 23) },
|
97
|
-
}
|
98
|
-
|
99
|
-
property :day, [Integer, String],
|
100
|
-
description: "The day of month at which the cron entry should run (1 - 31).",
|
101
|
-
default: "*", callbacks: {
|
102
|
-
"should be a valid day spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 1, 31) },
|
103
|
-
}
|
104
|
-
|
105
|
-
property :month, [Integer, String],
|
106
|
-
description: "The month in the year on which a cron entry is to run (1 - 12, jan-dec, or *).",
|
107
|
-
default: "*", callbacks: {
|
108
|
-
"should be a valid month spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_month(spec) },
|
109
|
-
}
|
110
|
-
|
111
|
-
property :weekday, [Integer, String],
|
112
|
-
description: "The day of the week on which this entry is to run (0-7, mon-sun, or *), where Sunday is both 0 and 7.",
|
113
|
-
default: "*", callbacks: {
|
114
|
-
"should be a valid weekday spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_dow(spec) },
|
115
|
-
}
|
116
|
-
|
117
|
-
property :command, String,
|
118
|
-
description: "The command to run.",
|
119
|
-
required: true
|
120
|
-
|
121
|
-
property :user, String,
|
122
|
-
description: "The name of the user that runs the command.",
|
123
|
-
default: "root"
|
124
|
-
|
125
|
-
property :mailto, String,
|
126
|
-
description: "Set the MAILTO environment variable in the cron.d file."
|
127
|
-
|
128
|
-
property :path, String,
|
129
|
-
description: "Set the PATH environment variable in the cron.d file."
|
130
|
-
|
131
|
-
property :home, String,
|
132
|
-
description: "Set the HOME environment variable in the cron.d file."
|
133
|
-
|
134
|
-
property :shell, String,
|
135
|
-
description: "Set the SHELL environment variable in the cron.d file."
|
136
|
-
|
137
104
|
property :comment, String,
|
138
105
|
description: "A comment to place in the cron.d file."
|
139
106
|
|
140
|
-
property :environment, Hash,
|
141
|
-
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of ``({'ENV_VARIABLE' => 'VALUE'})``.",
|
142
|
-
default: lazy { {} }
|
143
|
-
|
144
|
-
TIMEOUT_OPTS = %w{duration preserve-status foreground kill-after signal}.freeze
|
145
|
-
TIMEOUT_REGEX = /\A\S+/.freeze
|
146
|
-
|
147
|
-
property :time_out, Hash,
|
148
|
-
description: "A Hash of timeouts in the form of ({'OPTION' => 'VALUE'}).
|
149
|
-
Accepted valid options are:
|
150
|
-
preserve-status (BOOL, default: 'false'),
|
151
|
-
foreground (BOOL, default: 'false'),
|
152
|
-
kill-after (in seconds),
|
153
|
-
signal (a name like 'HUP' or a number)",
|
154
|
-
default: lazy { {} },
|
155
|
-
introduced: "15.7",
|
156
|
-
coerce: proc { |h|
|
157
|
-
if h.is_a?(Hash)
|
158
|
-
invalid_keys = h.keys - TIMEOUT_OPTS
|
159
|
-
unless invalid_keys.empty?
|
160
|
-
error_msg = "Key of option time_out must be equal to one of: \"#{TIMEOUT_OPTS.join('", "')}\"! You passed \"#{invalid_keys.join(", ")}\"."
|
161
|
-
raise Chef::Exceptions::ValidationFailed, error_msg
|
162
|
-
end
|
163
|
-
unless h.values.all? { |x| x =~ TIMEOUT_REGEX }
|
164
|
-
error_msg = "Values of option time_out should be non-empty string without any leading whitespaces."
|
165
|
-
raise Chef::Exceptions::ValidationFailed, error_msg
|
166
|
-
end
|
167
|
-
h
|
168
|
-
elsif h.is_a?(Integer) || h.is_a?(String)
|
169
|
-
{ "duration" => h }
|
170
|
-
end
|
171
|
-
}
|
172
|
-
|
173
107
|
property :mode, [String, Integer],
|
174
108
|
description: "The octal mode of the generated crontab file.",
|
175
109
|
default: "0600"
|
176
110
|
|
177
111
|
property :random_delay, Integer,
|
178
|
-
description: "Set the RANDOM_DELAY environment variable in the cron.d file."
|
112
|
+
description: "Set the `RANDOM_DELAY` environment variable in the cron.d file."
|
179
113
|
|
180
114
|
# warn if someone passes the deprecated cookbook property
|
181
115
|
def after_created
|
@@ -224,7 +158,7 @@ class Chef
|
|
224
158
|
|
225
159
|
# @todo this is Chef 12 era cleanup. Someday we should remove it all
|
226
160
|
template "/etc/cron.d/#{sanitized_name}" do
|
227
|
-
source ::File.expand_path("
|
161
|
+
source ::File.expand_path("../../support/cron.d.erb", __FILE__)
|
228
162
|
local true
|
229
163
|
mode new_resource.mode
|
230
164
|
variables(
|