chef 16.0.257-universal-mingw32 → 16.2.44-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 +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
@@ -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
|
@@ -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/property_spec.rb
CHANGED
@@ -121,7 +121,7 @@ describe "Chef::Resource.property" do
|
|
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
|
@@ -18,33 +18,33 @@
|
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
20
|
|
21
|
-
# Now we are using the option --with-colons that works across old os versions
|
22
|
-
# as well as the latest (16.10). This for both `apt-key` and `gpg` commands
|
23
|
-
#
|
24
|
-
# Output of the command:
|
25
|
-
# => apt-key adv --list-public-keys --with-fingerprint --with-colons
|
26
|
-
APT_KEY_FINGER = <<~EOF.freeze
|
27
|
-
tru:t:1:1488924856:0:3:1:5
|
28
|
-
pub:-:1024:17:40976EAF437D05B5:2004-09-12:::-:Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>::scESC:
|
29
|
-
fpr:::::::::630239CC130E1A7FD81A27B140976EAF437D05B5:
|
30
|
-
sub:-:2048:16:251BEFF479164387:2004-09-12::::::e:
|
31
|
-
pub:-:1024:17:46181433FBB75451:2004-12-30:::-:Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>::scSC:
|
32
|
-
fpr:::::::::C5986B4F1257FFA86632CBA746181433FBB75451:
|
33
|
-
pub:-:4096:1:3B4FE6ACC0B21F32:2012-05-11:::-:Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>::scSC:
|
34
|
-
fpr:::::::::790BC7277767219C42C86F933B4FE6ACC0B21F32:
|
35
|
-
pub:-:4096:1:D94AA3F0EFE21092:2012-05-11:::-:Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>::scSC:
|
36
|
-
fpr:::::::::843938DF228D22F7B3742BC0D94AA3F0EFE21092:
|
37
|
-
EOF
|
38
|
-
|
39
|
-
# Output of the command:
|
40
|
-
# => gpg --with-fingerprint --with-colons [FILE]
|
41
|
-
GPG_FINGER = <<~EOF.freeze
|
42
|
-
pub:-:1024:17:327574EE02A818DD:2009-04-22:::-:Cloudera Apt Repository:
|
43
|
-
fpr:::::::::F36A89E33CC1BD0F71079007327574EE02A818DD:
|
44
|
-
sub:-:2048:16:84080586D1CA74A1:2009-04-22::::
|
45
|
-
EOF
|
46
|
-
|
47
21
|
describe "Chef::Provider::AptRepository" do
|
22
|
+
# Now we are using the option --with-colons that works across old os versions
|
23
|
+
# as well as the latest (16.10). This for both `apt-key` and `gpg` commands
|
24
|
+
#
|
25
|
+
# Output of the command:
|
26
|
+
# => apt-key adv --list-public-keys --with-fingerprint --with-colons
|
27
|
+
APT_KEY_FINGER = <<~EOF.freeze
|
28
|
+
tru:t:1:1488924856:0:3:1:5
|
29
|
+
pub:-:1024:17:40976EAF437D05B5:2004-09-12:::-:Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>::scESC:
|
30
|
+
fpr:::::::::630239CC130E1A7FD81A27B140976EAF437D05B5:
|
31
|
+
sub:-:2048:16:251BEFF479164387:2004-09-12::::::e:
|
32
|
+
pub:-:1024:17:46181433FBB75451:2004-12-30:::-:Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>::scSC:
|
33
|
+
fpr:::::::::C5986B4F1257FFA86632CBA746181433FBB75451:
|
34
|
+
pub:-:4096:1:3B4FE6ACC0B21F32:2012-05-11:::-:Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>::scSC:
|
35
|
+
fpr:::::::::790BC7277767219C42C86F933B4FE6ACC0B21F32:
|
36
|
+
pub:-:4096:1:D94AA3F0EFE21092:2012-05-11:::-:Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>::scSC:
|
37
|
+
fpr:::::::::843938DF228D22F7B3742BC0D94AA3F0EFE21092:
|
38
|
+
EOF
|
39
|
+
|
40
|
+
# Output of the command:
|
41
|
+
# => gpg --with-fingerprint --with-colons [FILE]
|
42
|
+
APG_GPG_FINGER = <<~EOF.freeze
|
43
|
+
pub:-:1024:17:327574EE02A818DD:2009-04-22:::-:Cloudera Apt Repository:
|
44
|
+
fpr:::::::::F36A89E33CC1BD0F71079007327574EE02A818DD:
|
45
|
+
sub:-:2048:16:84080586D1CA74A1:2009-04-22::::
|
46
|
+
EOF
|
47
|
+
|
48
48
|
let(:node) { Chef::Node.new }
|
49
49
|
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
50
50
|
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
@@ -61,7 +61,7 @@ describe "Chef::Provider::AptRepository" do
|
|
61
61
|
end
|
62
62
|
|
63
63
|
let(:gpg_finger) do
|
64
|
-
double("shell_out", stdout:
|
64
|
+
double("shell_out", stdout: APG_GPG_FINGER, exitstatus: 0, error?: false)
|
65
65
|
end
|
66
66
|
|
67
67
|
let(:gpg_shell_out_success) 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
|
@@ -678,7 +678,7 @@ describe Chef::Provider::Git do
|
|
678
678
|
expect(@provider).to receive(:enable_submodules)
|
679
679
|
expect(@provider).to receive(:add_remotes)
|
680
680
|
@provider.run_action(:checkout)
|
681
|
-
|
681
|
+
# @resource.should be_updated
|
682
682
|
end
|
683
683
|
|
684
684
|
it "should not checkout if the destination exists or is a non empty directory" do
|
@@ -716,7 +716,7 @@ describe Chef::Provider::Git do
|
|
716
716
|
expect(@provider).to receive(:enable_submodules)
|
717
717
|
expect(@provider).to receive(:add_remotes)
|
718
718
|
@provider.run_action(:sync)
|
719
|
-
|
719
|
+
# @resource.should be_updated
|
720
720
|
end
|
721
721
|
|
722
722
|
it "does not fetch any updates if the remote revision matches the current revision" do
|
@@ -736,7 +736,7 @@ describe Chef::Provider::Git do
|
|
736
736
|
expect(@provider).to receive(:action_checkout)
|
737
737
|
expect(@provider).not_to receive(:shell_out!)
|
738
738
|
@provider.run_action(:sync)
|
739
|
-
|
739
|
+
# @resource.should be_updated
|
740
740
|
end
|
741
741
|
|
742
742
|
it "clones the repo instead of fetching updates if the deploy directory is empty" do
|
@@ -57,7 +57,7 @@ describe Chef::Provider::Group::Groupadd do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
it "should set the option for #{property} if the new resources #{property} is not null" do
|
60
|
-
allow(new_resource).to receive(property).and_return("
|
60
|
+
allow(new_resource).to receive(property).and_return("cactus")
|
61
61
|
expect(provider.set_options).to eql([ option, new_resource.send(property), new_resource.group_name])
|
62
62
|
end
|
63
63
|
end
|
@@ -131,8 +131,8 @@ describe Chef::Provider::Launchd do
|
|
131
131
|
new_resource.program "/Library/scripts/call_mom.sh"
|
132
132
|
new_resource.time_out 300
|
133
133
|
new_resource.start_calendar_interval "Hour" => 10, "Weekday" => 7
|
134
|
-
expect(provider.
|
135
|
-
expect(provider.
|
134
|
+
expect(provider.file_content?).to be_truthy
|
135
|
+
expect(provider.file_content).to eql(test_plist)
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
@@ -147,8 +147,8 @@ describe Chef::Provider::Launchd do
|
|
147
147
|
new_resource.program "/Library/scripts/call_mom.sh"
|
148
148
|
new_resource.time_out 300
|
149
149
|
new_resource.start_calendar_interval allowed
|
150
|
-
expect(provider.
|
151
|
-
expect(provider.
|
150
|
+
expect(provider.file_content?).to be_truthy
|
151
|
+
expect(provider.file_content).to eql(test_plist_multiple_intervals)
|
152
152
|
end
|
153
153
|
|
154
154
|
it "should allow all StartCalendarInterval keys" do
|
@@ -162,9 +162,9 @@ describe Chef::Provider::Launchd do
|
|
162
162
|
new_resource.program "/Library/scripts/call_mom.sh"
|
163
163
|
new_resource.time_out 300
|
164
164
|
new_resource.start_calendar_interval allowed
|
165
|
-
expect(provider.
|
165
|
+
expect(provider.file_content?).to be_truthy
|
166
166
|
%w{Minute Hour Day Weekday Month}.each do |key|
|
167
|
-
expect(provider.
|
167
|
+
expect(provider.file_content).to include("<key>#{key}</key>")
|
168
168
|
end
|
169
169
|
end
|
170
170
|
|
@@ -188,50 +188,8 @@ describe Chef::Provider::Launchd do
|
|
188
188
|
describe "hash is passed" do
|
189
189
|
it "should produce the test_plist content from the plist_hash property" do
|
190
190
|
new_resource.plist_hash test_hash
|
191
|
-
expect(provider.
|
192
|
-
expect(provider.
|
193
|
-
end
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
describe "with an :enable action" do
|
198
|
-
describe "and the file has been updated" do
|
199
|
-
before(:each) do
|
200
|
-
allow(provider).to receive(
|
201
|
-
:manage_plist
|
202
|
-
).with(:create).and_return(true)
|
203
|
-
allow(provider).to receive(
|
204
|
-
:manage_service
|
205
|
-
).with(:restart).and_return(true)
|
206
|
-
end
|
207
|
-
|
208
|
-
it "should call manage_service with a :restart action" do
|
209
|
-
expect(provider.manage_service(:restart)).to be_truthy
|
210
|
-
end
|
211
|
-
|
212
|
-
it "works with action enable" do
|
213
|
-
expect(run_resource_setup_for_action(:enable)).to be_truthy
|
214
|
-
provider.action_enable
|
215
|
-
end
|
216
|
-
end
|
217
|
-
|
218
|
-
describe "and the file has not been updated" do
|
219
|
-
before(:each) do
|
220
|
-
allow(provider).to receive(
|
221
|
-
:manage_plist
|
222
|
-
).with(:create).and_return(nil)
|
223
|
-
allow(provider).to receive(
|
224
|
-
:manage_service
|
225
|
-
).with(:enable).and_return(true)
|
226
|
-
end
|
227
|
-
|
228
|
-
it "should call manage_service with a :enable action" do
|
229
|
-
expect(provider.manage_service(:enable)).to be_truthy
|
230
|
-
end
|
231
|
-
|
232
|
-
it "works with action enable" do
|
233
|
-
expect(run_resource_setup_for_action(:enable)).to be_truthy
|
234
|
-
provider.action_enable
|
191
|
+
expect(provider.file_content?).to be_truthy
|
192
|
+
expect(provider.file_content).to eql(test_plist)
|
235
193
|
end
|
236
194
|
end
|
237
195
|
end
|