chef 16.1.0-universal-mingw32 → 16.3.38-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +6 -7
- data/README.md +3 -3
- data/Rakefile +4 -3
- data/chef-universal-mingw32.gemspec +2 -2
- data/chef.gemspec +7 -6
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/application.rb +12 -0
- data/lib/chef/application/apply.rb +2 -1
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
- data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +2 -2
- data/lib/chef/chef_fs/path_utils.rb +4 -4
- data/lib/chef/client.rb +3 -3
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +2 -2
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -3
- data/lib/chef/cookbook/syntax_check.rb +1 -2
- data/lib/chef/cookbook_loader.rb +16 -30
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +4 -4
- data/lib/chef/data_bag.rb +5 -6
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +12 -0
- data/lib/chef/digester.rb +5 -4
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/dsl/platform_introspection.rb +2 -0
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/environment.rb +1 -2
- data/lib/chef/exceptions.rb +3 -0
- data/lib/chef/file_access_control.rb +1 -1
- data/lib/chef/file_access_control/windows.rb +2 -2
- data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/http.rb +19 -4
- data/lib/chef/http/authenticator.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +1 -1
- data/lib/chef/http/json_output.rb +1 -1
- data/lib/chef/http/ssl_policies.rb +18 -0
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +6 -6
- data/lib/chef/knife/bootstrap.rb +24 -24
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
- data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
- data/lib/chef/knife/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/config_get.rb +2 -1
- data/lib/chef/knife/config_list_profiles.rb +4 -1
- data/lib/chef/knife/config_use_profile.rb +15 -5
- data/lib/chef/knife/configure.rb +1 -1
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +6 -14
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -1
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +21 -2
- data/lib/chef/knife/core/ui.rb +8 -2
- data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -4
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/node_bulk_delete.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +1 -1
- data/lib/chef/knife/rehash.rb +3 -21
- data/lib/chef/knife/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/ssh.rb +7 -3
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/log.rb +8 -3
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
- data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
- data/lib/chef/mixin/openssl_helper.rb +31 -9
- data/lib/chef/mixin/path_sanity.rb +5 -4
- data/lib/chef/mixin/properties.rb +2 -2
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/mixin/shell_out.rb +4 -188
- data/lib/chef/mixin/template.rb +1 -0
- data/lib/chef/mixin/which.rb +6 -3
- data/lib/chef/mixins.rb +1 -0
- data/lib/chef/node.rb +36 -12
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node_map.rb +21 -18
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/property.rb +2 -2
- data/lib/chef/provider.rb +3 -3
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron.rb +2 -14
- data/lib/chef/provider/directory.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +1 -1
- data/lib/chef/provider/git.rb +12 -4
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/solaris.rb +0 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +1 -1
- data/lib/chef/provider/package/dpkg.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +3 -2
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rubygems.rb +3 -3
- data/lib/chef/provider/package/snap.rb +97 -29
- data/lib/chef/provider/package/windows.rb +11 -6
- data/lib/chef/provider/package/windows/msi.rb +3 -3
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
- data/lib/chef/provider/package/yum.rb +1 -1
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +10 -14
- data/lib/chef/provider/remote_directory.rb +2 -2
- data/lib/chef/provider/remote_file/http.rb +4 -1
- data/lib/chef/provider/script.rb +4 -75
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +4 -4
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +1 -1
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +15 -11
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/windows_task.rb +4 -2
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +31 -11
- data/lib/chef/resource.rb +27 -14
- data/lib/chef/resource/alternatives.rb +1 -1
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/archive_file.rb +28 -8
- data/lib/chef/resource/bash.rb +0 -1
- data/lib/chef/resource/batch.rb +4 -2
- data/lib/chef/resource/build_essential.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +14 -2
- data/lib/chef/resource/chef_gem.rb +57 -21
- data/lib/chef/resource/chef_handler.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +1 -1
- data/lib/chef/resource/chocolatey_feature.rb +1 -2
- data/lib/chef/resource/cron/_cron_shared.rb +98 -0
- data/lib/chef/resource/cron/cron.rb +46 -0
- data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
- data/lib/chef/resource/cron_access.rb +13 -5
- data/lib/chef/resource/csh.rb +0 -1
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/execute.rb +480 -10
- data/lib/chef/resource/file.rb +10 -8
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +35 -2
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_package.rb +30 -1
- data/lib/chef/resource/homebrew_update.rb +107 -0
- data/lib/chef/resource/hostname.rb +7 -20
- data/lib/chef/resource/kernel_module.rb +14 -1
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/locale.rb +3 -3
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +176 -56
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +11 -14
- data/lib/chef/resource/openssl_x509_crl.rb +1 -2
- data/lib/chef/resource/perl.rb +0 -1
- data/lib/chef/resource/plist.rb +23 -4
- data/lib/chef/resource/powershell_script.rb +4 -2
- data/lib/chef/resource/python.rb +0 -1
- data/lib/chef/resource/remote_file.rb +26 -10
- data/lib/chef/resource/ruby.rb +0 -1
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/service.rb +2 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +16 -1
- data/lib/chef/resource/sudo.rb +30 -3
- data/lib/chef/resource/swap_file.rb +17 -0
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +15 -0
- data/lib/chef/resource/user_ulimit.rb +1 -1
- data/lib/chef/resource/windows_ad_join.rb +30 -1
- data/lib/chef/resource/windows_audit_policy.rb +227 -0
- data/lib/chef/resource/windows_auto_run.rb +11 -0
- data/lib/chef/resource/windows_certificate.rb +27 -1
- data/lib/chef/resource/windows_dfs_server.rb +1 -1
- data/lib/chef/resource/windows_dns_record.rb +17 -0
- data/lib/chef/resource/windows_firewall_profile.rb +197 -0
- data/lib/chef/resource/windows_font.rb +3 -3
- data/lib/chef/resource/windows_package.rb +1 -1
- data/lib/chef/resource/windows_pagefile.rb +2 -2
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +67 -36
- data/lib/chef/resource/windows_shortcut.rb +1 -2
- data/lib/chef/resource/windows_task.rb +10 -10
- data/lib/chef/resource/windows_user_privilege.rb +33 -10
- data/lib/chef/resource/yum_repository.rb +9 -9
- data/lib/chef/resource_inspector.rb +11 -4
- data/lib/chef/resources.rb +5 -2
- data/lib/chef/role.rb +1 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/search/query.rb +1 -1
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/shell/shell_session.rb +2 -0
- data/lib/chef/util/diff.rb +2 -3
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/error.rb +3 -1
- data/lib/chef/win32/api/file.rb +1 -1
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/file.rb +1 -1
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/registry.rb +3 -4
- data/lib/chef/win32/security.rb +1 -1
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/functional/knife/configure_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +5 -16
- data/spec/functional/resource/aix_service_spec.rb +9 -2
- data/spec/functional/resource/aixinit_service_spec.rb +1 -2
- data/spec/functional/resource/apt_package_spec.rb +0 -1
- data/spec/functional/resource/bash_spec.rb +3 -2
- data/spec/functional/resource/bff_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
- data/spec/functional/resource/cron_spec.rb +20 -2
- data/spec/functional/resource/dnf_package_spec.rb +6 -3
- data/spec/functional/resource/execute_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +29 -7
- data/spec/functional/resource/group_spec.rb +15 -3
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +3 -3
- data/spec/functional/resource/link_spec.rb +2 -5
- data/spec/functional/resource/mount_spec.rb +9 -1
- data/spec/functional/resource/msu_package_spec.rb +9 -3
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- data/spec/functional/resource/remote_file_spec.rb +9 -15
- data/spec/functional/resource/rpm_spec.rb +1 -1
- data/spec/functional/resource/timezone_spec.rb +2 -0
- data/spec/functional/resource/windows_package_spec.rb +0 -1
- data/spec/functional/resource/windows_path_spec.rb +4 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -1
- data/spec/functional/resource/windows_service_spec.rb +4 -0
- data/spec/functional/resource/windows_task_spec.rb +16 -15
- data/spec/functional/resource/windows_user_privilege_spec.rb +1 -2
- data/spec/functional/resource/yum_package_spec.rb +4 -1
- data/spec/functional/resource/zypper_package_spec.rb +4 -1
- data/spec/functional/run_lock_spec.rb +2 -1
- data/spec/functional/shell_spec.rb +5 -6
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/crypto_spec.rb +1 -1
- data/spec/integration/knife/config_list_profiles_spec.rb +30 -2
- data/spec/integration/knife/config_use_profile_spec.rb +55 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +28 -1
- data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
- data/spec/integration/knife/environment_from_file_spec.rb +1 -1
- data/spec/integration/knife/node_from_file_spec.rb +1 -1
- data/spec/integration/knife/role_from_file_spec.rb +1 -1
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +1 -1
- data/spec/integration/recipes/notifying_block_spec.rb +1 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +5 -1
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
- data/spec/integration/recipes/resource_load_spec.rb +4 -2
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +1 -1
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +10 -4
- data/spec/support/chef_helpers.rb +2 -21
- data/spec/support/platform_helpers.rb +1 -3
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +0 -1
- data/spec/support/shared/functional/securable_resource.rb +1 -2
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/integration/knife_support.rb +2 -9
- data/spec/support/shared/unit/application_dot_d.rb +0 -1
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/support/shared/unit/provider/file.rb +12 -8
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- data/spec/unit/application/solo_spec.rb +4 -2
- data/spec/unit/application_spec.rb +11 -2
- data/spec/unit/chef_fs/config_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +8 -8
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
- data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +1 -1
- data/spec/unit/client_spec.rb +4 -1
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
- data/spec/unit/data_bag_spec.rb +6 -3
- data/spec/unit/data_collector_spec.rb +1 -1
- data/spec/unit/decorator_spec.rb +23 -23
- data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
- data/spec/unit/environment_spec.rb +5 -1
- data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
- data/spec/unit/guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +1 -1
- data/spec/unit/http/ssl_policies_spec.rb +20 -0
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +5 -8
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_show_spec.rb +6 -7
- data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/log/syslog_spec.rb +6 -10
- data/spec/unit/log/winevt_spec.rb +21 -13
- data/spec/unit/lwrp_spec.rb +9 -6
- data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/powershell_out_spec.rb +2 -4
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +0 -1
- data/spec/unit/mixin/shell_out_spec.rb +25 -26
- data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
- data/spec/unit/mixin/unformatter_spec.rb +2 -2
- data/spec/unit/mixin/uris_spec.rb +1 -1
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/mixin/which.rb +8 -0
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/node_spec.rb +98 -11
- data/spec/unit/property_spec.rb +6 -6
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron/unix_spec.rb +1 -1
- data/spec/unit/provider/cron_spec.rb +9 -49
- data/spec/unit/provider/dsc_resource_spec.rb +22 -38
- data/spec/unit/provider/dsc_script_spec.rb +10 -10
- data/spec/unit/provider/execute_spec.rb +1 -8
- data/spec/unit/provider/git_spec.rb +3 -3
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/ifconfig_spec.rb +0 -1
- data/spec/unit/provider/mdadm_spec.rb +1 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/openbsd_spec.rb +1 -1
- data/spec/unit/provider/package/pacman_spec.rb +17 -20
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +96 -87
- data/spec/unit/provider/package/rubygems_spec.rb +5 -10
- data/spec/unit/provider/package/smartos_spec.rb +1 -1
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
- data/spec/unit/provider/package/windows_spec.rb +30 -53
- data/spec/unit/provider/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/windows_spec.rb +2 -6
- data/spec/unit/provider/systemd_unit_spec.rb +28 -24
- data/spec/unit/provider/user/dscl_spec.rb +2 -2
- data/spec/unit/provider/windows_env_spec.rb +5 -4
- data/spec/unit/provider/zypper_repository_spec.rb +60 -10
- data/spec/unit/provider_spec.rb +1 -0
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
- data/spec/unit/resource/cron_spec.rb +2 -2
- data/spec/unit/resource/execute_spec.rb +10 -0
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
- data/spec/unit/resource/homebrew_update_spec.rb +30 -0
- data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
- data/spec/unit/resource/powershell_script_spec.rb +10 -15
- data/spec/unit/resource/timezone_spec.rb +1 -1
- data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_firewall_profile_spec.rb +77 -0
- data/spec/unit/resource/windows_package_spec.rb +1 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_reporter_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +84 -1
- data/spec/unit/role_spec.rb +23 -21
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/diff_spec.rb +1 -15
- data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
- data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +2 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- data/spec/unit/win32/registry_spec.rb +1 -1
- data/spec/unit/win32/security_spec.rb +4 -3
- metadata +68 -40
- data/lib/chef/resource/cron.rb +0 -157
@@ -31,9 +31,9 @@ class ChildWithoutDirective < SubclassDirectiveParent
|
|
31
31
|
end
|
32
32
|
|
33
33
|
describe Chef::Mixin::Uris do
|
34
|
-
let
|
34
|
+
let(:child) { SubclassDirectiveChild.new }
|
35
35
|
|
36
|
-
let
|
36
|
+
let(:other_child) { ChildWithoutDirective.new }
|
37
37
|
|
38
38
|
it "the child instance has the directive set" do
|
39
39
|
expect(child.behave_differently?).to be true
|
@@ -27,8 +27,8 @@ class Chef::UnformatterTest
|
|
27
27
|
end
|
28
28
|
|
29
29
|
describe Chef::Mixin::Unformatter do
|
30
|
-
let
|
31
|
-
let
|
30
|
+
let(:unformatter) { Chef::UnformatterTest.new }
|
31
|
+
let(:message) { "Test Message" }
|
32
32
|
|
33
33
|
describe "#write" do
|
34
34
|
context "with a timestamp" do
|
@@ -77,17 +77,9 @@ describe "a class that mixes in user_context" do
|
|
77
77
|
end
|
78
78
|
|
79
79
|
context "when the block raises an exception" do
|
80
|
-
class UserContextTestException < RuntimeError
|
81
|
-
end
|
82
|
-
let(:block_parameter) { Proc.new { raise UserContextTextException } }
|
83
|
-
|
84
|
-
it "raises the exception raised by the block" do
|
85
|
-
expect { instance_with_user_context.with_context("kamilah", nil, "chef4life", &block_parameter) }.not_to raise_error(UserContextTestException)
|
86
|
-
end
|
87
|
-
|
88
80
|
it "closes the logon session so resources are not leaked" do
|
89
81
|
expect(logon_session).to receive(:close)
|
90
|
-
expect { instance_with_user_context.with_context("kamilah", nil, "chef4life"
|
82
|
+
expect { instance_with_user_context.with_context("kamilah", nil, "chef4life") { 1 / 0 } }.to raise_error(ZeroDivisionError)
|
91
83
|
end
|
92
84
|
end
|
93
85
|
end
|
data/spec/unit/mixin/which.rb
CHANGED
@@ -159,4 +159,12 @@ describe Chef::Mixin::Which do
|
|
159
159
|
end
|
160
160
|
end
|
161
161
|
end
|
162
|
+
|
163
|
+
describe "useful non-stubbed tests" do
|
164
|
+
it "works even when the PATH is nuked via adding default_paths", unix_only: true do
|
165
|
+
old_path = ENV["PATH"]
|
166
|
+
expect(test.which("ls")).to be_truthy
|
167
|
+
ENV["PATH"] = old_path
|
168
|
+
end
|
169
|
+
end
|
162
170
|
end
|
@@ -382,7 +382,7 @@ describe Chef::Node::Attribute do
|
|
382
382
|
expect(@attributes["command"]["ps"]).to eq("ps -ef")
|
383
383
|
end
|
384
384
|
|
385
|
-
it "should return default data if it is not
|
385
|
+
it "should return default data if it is not overridden or in attribute data" do
|
386
386
|
expect(@attributes["music"]["mastodon"]).to eq("rocks")
|
387
387
|
end
|
388
388
|
|
data/spec/unit/node_spec.rb
CHANGED
@@ -1483,9 +1483,9 @@ describe Chef::Node do
|
|
1483
1483
|
end
|
1484
1484
|
end
|
1485
1485
|
|
1486
|
-
context "with
|
1487
|
-
it "should only save
|
1488
|
-
Chef::Config[:
|
1486
|
+
context "with allowed attributes configured" do
|
1487
|
+
it "should only save allowed attributes (and subattributes)" do
|
1488
|
+
Chef::Config[:allowed_default_attributes] = [
|
1489
1489
|
["filesystem", "/dev/disk0s2"],
|
1490
1490
|
"network/interfaces/eth0",
|
1491
1491
|
]
|
@@ -1525,8 +1525,8 @@ describe Chef::Node do
|
|
1525
1525
|
node.save
|
1526
1526
|
end
|
1527
1527
|
|
1528
|
-
it "should save false-y
|
1529
|
-
Chef::Config[:
|
1528
|
+
it "should save false-y allowed attributes" do
|
1529
|
+
Chef::Config[:allowed_default_attributes] = [
|
1530
1530
|
"foo/bar/baz",
|
1531
1531
|
]
|
1532
1532
|
|
@@ -1560,8 +1560,8 @@ describe Chef::Node do
|
|
1560
1560
|
node.save
|
1561
1561
|
end
|
1562
1562
|
|
1563
|
-
it "should not save any attributes if the
|
1564
|
-
Chef::Config[:
|
1563
|
+
it "should not save any attributes if the allowed is empty" do
|
1564
|
+
Chef::Config[:allowed_default_attributes] = []
|
1565
1565
|
|
1566
1566
|
node.default = {
|
1567
1567
|
"filesystem" => {
|
@@ -1583,8 +1583,52 @@ describe Chef::Node do
|
|
1583
1583
|
end
|
1584
1584
|
end
|
1585
1585
|
|
1586
|
-
context "with
|
1587
|
-
it "should only save
|
1586
|
+
context "with deprecated whitelist attributes configured" do
|
1587
|
+
it "should only save allowed attributes (and subattributes)" do
|
1588
|
+
Chef::Config[:default_attribute_whitelist] = [
|
1589
|
+
["filesystem", "/dev/disk0s2"],
|
1590
|
+
"network/interfaces/eth0",
|
1591
|
+
]
|
1592
|
+
|
1593
|
+
node.default = {
|
1594
|
+
"filesystem" => {
|
1595
|
+
"/dev/disk0s2" => { "size" => "10mb" },
|
1596
|
+
"map - autohome" => { "size" => "10mb" },
|
1597
|
+
},
|
1598
|
+
"network" => {
|
1599
|
+
"interfaces" => {
|
1600
|
+
"eth0" => {},
|
1601
|
+
"eth1" => {},
|
1602
|
+
},
|
1603
|
+
},
|
1604
|
+
}
|
1605
|
+
node.automatic = {}
|
1606
|
+
node.normal = {}
|
1607
|
+
node.override = {}
|
1608
|
+
|
1609
|
+
selected_data = {
|
1610
|
+
"default" => {
|
1611
|
+
"filesystem" => {
|
1612
|
+
"/dev/disk0s2" => { "size" => "10mb" },
|
1613
|
+
},
|
1614
|
+
"network" => {
|
1615
|
+
"interfaces" => {
|
1616
|
+
"eth0" => {},
|
1617
|
+
},
|
1618
|
+
},
|
1619
|
+
},
|
1620
|
+
"automatic" => {}, "normal" => {}, "override" => {}
|
1621
|
+
}
|
1622
|
+
|
1623
|
+
node.name("picky-monkey")
|
1624
|
+
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
1625
|
+
expect(@rest).to receive(:put).with("nodes/picky-monkey", hash_including(selected_data)).and_return("foo")
|
1626
|
+
node.save
|
1627
|
+
end
|
1628
|
+
end
|
1629
|
+
|
1630
|
+
context "with deprecated blacklist attributes configured" do
|
1631
|
+
it "should only save non-blocklisted attributes (and subattributes)" do
|
1588
1632
|
Chef::Config[:default_attribute_blacklist] = [
|
1589
1633
|
["filesystem", "/dev/disk0s2"],
|
1590
1634
|
"network/interfaces/eth0",
|
@@ -1606,6 +1650,49 @@ describe Chef::Node do
|
|
1606
1650
|
node.normal = {}
|
1607
1651
|
node.override = {}
|
1608
1652
|
|
1653
|
+
selected_data = {
|
1654
|
+
"default" => {
|
1655
|
+
"filesystem" => {
|
1656
|
+
"map - autohome" => { "size" => "10mb" },
|
1657
|
+
},
|
1658
|
+
"network" => {
|
1659
|
+
"interfaces" => {
|
1660
|
+
"eth1" => {},
|
1661
|
+
},
|
1662
|
+
},
|
1663
|
+
},
|
1664
|
+
"automatic" => {}, "normal" => {}, "override" => {}
|
1665
|
+
}
|
1666
|
+
node.name("picky-monkey")
|
1667
|
+
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
1668
|
+
expect(@rest).to receive(:put).with("nodes/picky-monkey", hash_including(selected_data)).and_return("foo")
|
1669
|
+
node.save
|
1670
|
+
end
|
1671
|
+
end
|
1672
|
+
|
1673
|
+
context "with blocklisted attributes configured" do
|
1674
|
+
it "should only save non-blocklisted attributes (and subattributes)" do
|
1675
|
+
Chef::Config[:blocked_default_attributes] = [
|
1676
|
+
["filesystem", "/dev/disk0s2"],
|
1677
|
+
"network/interfaces/eth0",
|
1678
|
+
]
|
1679
|
+
|
1680
|
+
node.default = {
|
1681
|
+
"filesystem" => {
|
1682
|
+
"/dev/disk0s2" => { "size" => "10mb" },
|
1683
|
+
"map - autohome" => { "size" => "10mb" },
|
1684
|
+
},
|
1685
|
+
"network" => {
|
1686
|
+
"interfaces" => {
|
1687
|
+
"eth0" => {},
|
1688
|
+
"eth1" => {},
|
1689
|
+
},
|
1690
|
+
},
|
1691
|
+
}
|
1692
|
+
node.automatic = {}
|
1693
|
+
node.normal = {}
|
1694
|
+
node.override = {}
|
1695
|
+
|
1609
1696
|
selected_data = {
|
1610
1697
|
"default" => {
|
1611
1698
|
"filesystem" => {
|
@@ -1624,8 +1711,8 @@ describe Chef::Node do
|
|
1624
1711
|
node.save
|
1625
1712
|
end
|
1626
1713
|
|
1627
|
-
it "should save all attributes if the
|
1628
|
-
Chef::Config[:
|
1714
|
+
it "should save all attributes if the blocklist is empty" do
|
1715
|
+
Chef::Config[:blocked_default_attributes] = []
|
1629
1716
|
|
1630
1717
|
node.default = {
|
1631
1718
|
"filesystem" => {
|
data/spec/unit/property_spec.rb
CHANGED
@@ -111,17 +111,17 @@ describe "Chef::Resource.property" do
|
|
111
111
|
|
112
112
|
with_property ":Straße" do
|
113
113
|
it "properties with UTF-8 in their name work" do
|
114
|
-
expect(resource.Straße).to eql(nil)
|
115
|
-
expect(resource.Straße "foo").to eql("foo")
|
116
|
-
expect(resource.Straße).to eql("foo")
|
117
|
-
expect(resource.Straße = "bar").to eql("bar")
|
118
|
-
expect(resource.Straße).to eql("bar")
|
114
|
+
expect(resource.Straße).to eql(nil) # rubocop: disable Naming/AsciiIdentifiers
|
115
|
+
expect(resource.Straße "foo").to eql("foo") # rubocop: disable Naming/AsciiIdentifiers
|
116
|
+
expect(resource.Straße).to eql("foo") # rubocop: disable Naming/AsciiIdentifiers
|
117
|
+
expect(resource.Straße = "bar").to eql("bar") # rubocop: disable Naming/AsciiIdentifiers
|
118
|
+
expect(resource.Straße).to eql("bar") # rubocop: disable Naming/AsciiIdentifiers
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
122
122
|
context "deprecated properties" do
|
123
123
|
it "does not create a deprecation warning on definition" do
|
124
|
-
expect { resource_class.class_eval { property :x, String, deprecated: 10 } }.not_to raise_error
|
124
|
+
expect { resource_class.class_eval { property :x, String, deprecated: 10 } }.not_to raise_error
|
125
125
|
end
|
126
126
|
|
127
127
|
with_property ":x, deprecated: 'a deprecated property'" do
|
@@ -0,0 +1,130 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (adam@chef.io)
|
3
|
+
# Copyright:: Copyright 2009-2016, Opscode
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require "spec_helper"
|
20
|
+
|
21
|
+
describe Chef::Provider::Batch do
|
22
|
+
let(:node) do
|
23
|
+
node = Chef::Node.new
|
24
|
+
node.default["kernel"] = {}
|
25
|
+
node.default["kernel"][:machine] = :x86_64.to_s
|
26
|
+
node
|
27
|
+
end
|
28
|
+
|
29
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
30
|
+
|
31
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
32
|
+
|
33
|
+
let(:new_resource) do
|
34
|
+
new_resource = Chef::Resource::Batch.new("cmd.exe and conquer")
|
35
|
+
new_resource.code %q{echo "hello"}
|
36
|
+
new_resource
|
37
|
+
end
|
38
|
+
|
39
|
+
let(:provider) { Chef::Provider::Batch.new(new_resource, run_context) }
|
40
|
+
|
41
|
+
context "#grant_alternate_user_read_access" do
|
42
|
+
before do
|
43
|
+
allow(ChefUtils).to receive(:windows?).and_return(true)
|
44
|
+
stub_const("Chef::ReservedNames::Win32::API::Security::GENERIC_READ", 1)
|
45
|
+
stub_const("Chef::ReservedNames::Win32::API::Security::GENERIC_EXECUTE", 4)
|
46
|
+
stub_const("Chef::ReservedNames::Win32::Security", Class.new)
|
47
|
+
stub_const("Chef::ReservedNames::Win32::Security::SecurableObject", Class.new)
|
48
|
+
stub_const("Chef::ReservedNames::Win32::Security::SID", Class.new)
|
49
|
+
stub_const("Chef::ReservedNames::Win32::Security::ACE", Class.new)
|
50
|
+
stub_const("Chef::ReservedNames::Win32::Security::ACL", Class.new)
|
51
|
+
|
52
|
+
provider.singleton_class.send(:public, :grant_alternate_user_read_access)
|
53
|
+
end
|
54
|
+
|
55
|
+
context "when an alternate user is not specified" do
|
56
|
+
it "does not attempt to set the script file's security descriptor" do
|
57
|
+
expect(provider).to receive(:grant_alternate_user_read_access)
|
58
|
+
expect(Chef::ReservedNames::Win32::Security::SecurableObject).not_to receive(:new)
|
59
|
+
provider.grant_alternate_user_read_access("a fake path")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
context "when an alternate user is specified" do
|
64
|
+
let(:security_descriptor) { instance_double("Chef::ReservedNames::Win32::Security::SecurityDescriptor", dacl: []) }
|
65
|
+
let(:securable_object) { instance_double("Chef::ReservedNames::Win32::Security::SecurableObject", :security_descriptor => security_descriptor, :dacl= => nil) }
|
66
|
+
|
67
|
+
it "sets the script file's security descriptor" do
|
68
|
+
new_resource.user("toor")
|
69
|
+
expect(Chef::ReservedNames::Win32::Security::SecurableObject).to receive(:new).and_return(securable_object)
|
70
|
+
expect(Chef::ReservedNames::Win32::Security::SID).to receive(:from_account).and_return(nil)
|
71
|
+
expect(Chef::ReservedNames::Win32::Security::ACE).to receive(:access_allowed).and_return(nil)
|
72
|
+
expect(Chef::ReservedNames::Win32::Security::ACL).to receive(:create).and_return(nil)
|
73
|
+
expect(securable_object).to receive(:dacl=)
|
74
|
+
provider.grant_alternate_user_read_access("a fake path")
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "#with_temp_script_file" do
|
80
|
+
before do
|
81
|
+
provider.singleton_class.send(:public, :with_temp_script_file)
|
82
|
+
provider.singleton_class.send(:public, :script_file_path)
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should put the contents of the script in the temp file" do
|
86
|
+
temp_file_contents = nil
|
87
|
+
|
88
|
+
provider.with_temp_script_file do
|
89
|
+
temp_file_contents = File.read(provider.script_file_path)
|
90
|
+
end
|
91
|
+
|
92
|
+
expect(temp_file_contents.strip).to eq(%q{echo "hello"})
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "#command" do
|
97
|
+
let(:basepath) { "C:\\Windows\\system32\\" }
|
98
|
+
let(:interpreter) { File.join(basepath, "cmd.exe") }
|
99
|
+
|
100
|
+
before do
|
101
|
+
allow(provider).to receive(:basepath).and_return(basepath)
|
102
|
+
provider.singleton_class.send(:public, :with_temp_script_file)
|
103
|
+
provider.singleton_class.send(:public, :script_file_path)
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'should set the command to "interpreter" "tempfile"' do
|
107
|
+
command = nil
|
108
|
+
script_file_path = nil
|
109
|
+
provider.with_temp_script_file do
|
110
|
+
command = provider.command
|
111
|
+
script_file_path = provider.script_file_path
|
112
|
+
end
|
113
|
+
|
114
|
+
expect(command).to eq(%Q{"#{interpreter}" /c "#{script_file_path}"})
|
115
|
+
end
|
116
|
+
|
117
|
+
it "should set the command to 'interpreter flags tempfile'" do
|
118
|
+
new_resource.flags "/f"
|
119
|
+
|
120
|
+
command = nil
|
121
|
+
script_file_path = nil
|
122
|
+
provider.with_temp_script_file do
|
123
|
+
command = provider.command
|
124
|
+
script_file_path = provider.script_file_path
|
125
|
+
end
|
126
|
+
|
127
|
+
expect(command).to eq(%Q{"#{interpreter}" /f /c "#{script_file_path}"})
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
|
-
|
19
18
|
require "spec_helper"
|
20
19
|
|
21
20
|
describe Chef::Provider::Cron do
|
@@ -322,7 +321,7 @@ describe Chef::Provider::Cron do
|
|
322
321
|
expect(cron.hour).to eq("5")
|
323
322
|
expect(cron.day).to eq("*")
|
324
323
|
expect(cron.month).to eq("Jan")
|
325
|
-
expect(cron.weekday).to eq("
|
324
|
+
expect(cron.weekday).to eq("1")
|
326
325
|
expect(cron.command).to eq("/bin/true param1 param2")
|
327
326
|
end
|
328
327
|
|
@@ -338,6 +337,7 @@ describe Chef::Provider::Cron do
|
|
338
337
|
0 2 * * * /some/other/command
|
339
338
|
|
340
339
|
# Chef Name: cronhole some stuff
|
340
|
+
* * * * * /bin/true
|
341
341
|
CRONTAB
|
342
342
|
cron = @provider.load_current_resource
|
343
343
|
expect(@provider.cron_exists).to eq(true)
|
@@ -347,7 +347,7 @@ describe Chef::Provider::Cron do
|
|
347
347
|
expect(cron.month).to eq("*")
|
348
348
|
expect(cron.weekday).to eq("*")
|
349
349
|
expect(cron.time).to eq(nil)
|
350
|
-
expect(cron.command).to eq(
|
350
|
+
expect(cron.command).to eq("/bin/true")
|
351
351
|
end
|
352
352
|
|
353
353
|
it "should not pick up a commented out crontab line" do
|
@@ -355,6 +355,7 @@ describe Chef::Provider::Cron do
|
|
355
355
|
0 2 * * * /some/other/command
|
356
356
|
|
357
357
|
# Chef Name: cronhole some stuff
|
358
|
+
* * * * * /bin/true
|
358
359
|
#* 5 * 1 * /bin/true param1 param2
|
359
360
|
CRONTAB
|
360
361
|
cron = @provider.load_current_resource
|
@@ -365,7 +366,7 @@ describe Chef::Provider::Cron do
|
|
365
366
|
expect(cron.month).to eq("*")
|
366
367
|
expect(cron.weekday).to eq("*")
|
367
368
|
expect(cron.time).to eq(nil)
|
368
|
-
expect(cron.command).to eq(
|
369
|
+
expect(cron.command).to eq("/bin/true")
|
369
370
|
end
|
370
371
|
|
371
372
|
it "should not pick up a later crontab entry" do
|
@@ -373,6 +374,7 @@ describe Chef::Provider::Cron do
|
|
373
374
|
0 2 * * * /some/other/command
|
374
375
|
|
375
376
|
# Chef Name: cronhole some stuff
|
377
|
+
* * * * * /bin/true
|
376
378
|
#* 5 * 1 * /bin/true param1 param2
|
377
379
|
# Chef Name: something else
|
378
380
|
2 * 1 * * /bin/false
|
@@ -387,7 +389,7 @@ describe Chef::Provider::Cron do
|
|
387
389
|
expect(cron.month).to eq("*")
|
388
390
|
expect(cron.weekday).to eq("*")
|
389
391
|
expect(cron.time).to eq(nil)
|
390
|
-
expect(cron.command).to eq(
|
392
|
+
expect(cron.command).to eq("/bin/true")
|
391
393
|
end
|
392
394
|
end
|
393
395
|
end
|
@@ -1040,48 +1042,6 @@ describe Chef::Provider::Cron do
|
|
1040
1042
|
end
|
1041
1043
|
end
|
1042
1044
|
|
1043
|
-
describe "weekday_in_crontab" do
|
1044
|
-
context "when weekday is symbol" do
|
1045
|
-
it "should return weekday in crontab format" do
|
1046
|
-
@new_resource.weekday :wednesday
|
1047
|
-
expect(@provider.send(:weekday_in_crontab)).to eq("3")
|
1048
|
-
end
|
1049
|
-
|
1050
|
-
it "should raise an error with an unknown weekday" do
|
1051
|
-
expect { @new_resource.weekday :caturday }.to raise_error(RangeError)
|
1052
|
-
end
|
1053
|
-
end
|
1054
|
-
|
1055
|
-
context "when weekday is a number in a string" do
|
1056
|
-
it "should return the string" do
|
1057
|
-
@new_resource.weekday "3"
|
1058
|
-
expect(@provider.send(:weekday_in_crontab)).to eq("3")
|
1059
|
-
end
|
1060
|
-
|
1061
|
-
it "should raise an error with an out of range number" do
|
1062
|
-
expect { @new_resource.weekday "-1" }.to raise_error(RangeError)
|
1063
|
-
end
|
1064
|
-
end
|
1065
|
-
|
1066
|
-
context "when weekday is string with the name of the week" do
|
1067
|
-
it "should return the string" do
|
1068
|
-
@new_resource.weekday "mon"
|
1069
|
-
expect(@provider.send(:weekday_in_crontab)).to eq("mon")
|
1070
|
-
end
|
1071
|
-
end
|
1072
|
-
|
1073
|
-
context "when weekday is an integer" do
|
1074
|
-
it "should return the integer" do
|
1075
|
-
@new_resource.weekday 1
|
1076
|
-
expect(@provider.send(:weekday_in_crontab)).to eq("1")
|
1077
|
-
end
|
1078
|
-
|
1079
|
-
it "should raise an error with an out of range integer" do
|
1080
|
-
expect { @new_resource.weekday 45 }.to raise_error(RangeError)
|
1081
|
-
end
|
1082
|
-
end
|
1083
|
-
end
|
1084
|
-
|
1085
1045
|
describe "#env_var_str" do
|
1086
1046
|
context "when no env vars are set" do
|
1087
1047
|
it "returns an empty string" do
|
@@ -1196,8 +1156,8 @@ describe Chef::Provider::Cron do
|
|
1196
1156
|
context "Without command, passed" do
|
1197
1157
|
context "as nil" do
|
1198
1158
|
it "returns an empty string with a next line" do
|
1199
|
-
@new_resource.command
|
1200
|
-
expect(@provider.send(:cmd_str)).to eq(" \n")
|
1159
|
+
@new_resource.command "bin/true"
|
1160
|
+
expect(@provider.send(:cmd_str)).to eq(" bin/true\n")
|
1201
1161
|
end
|
1202
1162
|
end
|
1203
1163
|
context "as an empty string" do
|