chef 16.1.16-universal-mingw32 → 16.3.45-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 +3 -16
- data/chef-universal-mingw32.gemspec +2 -2
- data/chef.gemspec +7 -6
- 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/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/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +1 -1
- data/lib/chef/client.rb +3 -3
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +1 -1
- 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 +15 -29
- data/lib/chef/cookbook_version.rb +2 -2
- data/lib/chef/data_bag.rb +5 -6
- data/lib/chef/deprecated.rb +12 -0
- data/lib/chef/digester.rb +3 -2
- data/lib/chef/dsl/platform_introspection.rb +2 -0
- 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/error_inspectors/compile_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/handler.rb +2 -0
- data/lib/chef/http.rb +27 -13
- data/lib/chef/http/authenticator.rb +3 -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/knife.rb +5 -5
- data/lib/chef/knife/bootstrap.rb +19 -19
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
- 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 +1 -0
- data/lib/chef/knife/core/subcommand_loader.rb +20 -1
- data/lib/chef/knife/core/ui.rb +8 -2
- data/lib/chef/knife/core/windows_bootstrap_context.rb +2 -3
- data/lib/chef/knife/data_bag_create.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 +6 -2
- 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/{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 +27 -5
- data/lib/chef/mixin/path_sanity.rb +5 -4
- 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_map.rb +21 -18
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron.rb +2 -14
- data/lib/chef/provider/execute.rb +2 -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/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rubygems.rb +2 -2
- data/lib/chef/provider/package/snap.rb +97 -29
- data/lib/chef/provider/package/windows.rb +9 -4
- 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/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +10 -14
- 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 +1 -1
- 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/windows.rb +1 -1
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/user/dscl.rb +4 -4
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +5 -5
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +31 -11
- data/lib/chef/resource.rb +24 -11
- 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/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 +479 -9
- data/lib/chef/resource/file.rb +1 -1
- 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 +23 -36
- data/lib/chef/resource/kernel_module.rb +14 -1
- data/lib/chef/resource/launchd.rb +1 -1
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +176 -61
- 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/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 +26 -0
- 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 +1 -1
- 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 +4 -4
- data/lib/chef/resource/windows_user_privilege.rb +30 -7
- data/lib/chef/resource/yum_repository.rb +9 -9
- data/lib/chef/resource_inspector.rb +7 -1
- data/lib/chef/resources.rb +5 -2
- data/lib/chef/role.rb +1 -2
- data/lib/chef/search/query.rb +1 -1
- data/lib/chef/server_api_versions.rb +4 -0
- 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/file.rb +1 -1
- data/lib/chef/win32/registry.rb +3 -4
- data/lib/chef/win32/security.rb +1 -1
- 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 +4 -1
- data/spec/functional/resource/execute_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +23 -1
- 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 +12 -11
- 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 +1 -20
- 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 +2 -2
- 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/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 +20 -2
- 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/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/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_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/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/powershell_spec.rb +95 -86
- 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/server_api_spec.rb +43 -16
- 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/security_spec.rb +4 -3
- metadata +68 -40
- data/lib/chef/resource/cron.rb +0 -157
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
|
@@ -20,15 +20,21 @@ require "chef"
|
|
20
20
|
require "spec_helper"
|
21
21
|
|
22
22
|
describe Chef::Provider::DscResource do
|
23
|
-
let
|
24
|
-
let
|
25
|
-
let
|
26
|
-
let
|
23
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
24
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
25
|
+
let(:resource) { Chef::Resource::DscResource.new("dscresource", run_context) }
|
26
|
+
let(:provider) do
|
27
27
|
Chef::Provider::DscResource.new(resource, run_context)
|
28
28
|
end
|
29
29
|
|
30
|
+
let(:node) do
|
31
|
+
node = Chef::Node.new
|
32
|
+
node.automatic[:languages][:powershell][:version] = "5.0.10586.0"
|
33
|
+
node
|
34
|
+
end
|
35
|
+
|
30
36
|
context "when PowerShell does not support Invoke-DscResource" do
|
31
|
-
let
|
37
|
+
let(:node) do
|
32
38
|
node = Chef::Node.new
|
33
39
|
node.automatic[:languages][:powershell][:version] = "4.0"
|
34
40
|
node
|
@@ -45,7 +51,7 @@ describe Chef::Provider::DscResource do
|
|
45
51
|
|
46
52
|
context "when RefreshMode is not set to Disabled" do
|
47
53
|
context "and the WMF 5 is a preview release" do
|
48
|
-
let
|
54
|
+
let(:node) do
|
49
55
|
node = Chef::Node.new
|
50
56
|
node.automatic[:languages][:powershell][:version] = "5.0.10018.0"
|
51
57
|
node
|
@@ -58,7 +64,7 @@ describe Chef::Provider::DscResource do
|
|
58
64
|
end
|
59
65
|
end
|
60
66
|
context "and the WMF is 5 RTM or newer" do
|
61
|
-
let
|
67
|
+
let(:node) do
|
62
68
|
node = Chef::Node.new
|
63
69
|
node.automatic[:languages][:powershell][:version] = "5.0.10586.0"
|
64
70
|
node
|
@@ -74,15 +80,15 @@ describe Chef::Provider::DscResource do
|
|
74
80
|
end
|
75
81
|
|
76
82
|
context "when the LCM supports Invoke-DscResource" do
|
77
|
-
let
|
83
|
+
let(:node) do
|
78
84
|
node = Chef::Node.new
|
79
85
|
node.automatic[:languages][:powershell][:version] = "5.0.10018.0"
|
80
86
|
node
|
81
87
|
end
|
82
|
-
let
|
83
|
-
let
|
84
|
-
let
|
85
|
-
let
|
88
|
+
let(:resource_result) { double("CmdletResult", return_value: { "InDesiredState" => true }, stream: "description") }
|
89
|
+
let(:invoke_dsc_resource) { double("cmdlet", run!: resource_result) }
|
90
|
+
let(:store) { double("ResourceStore", find: resource_records) }
|
91
|
+
let(:resource_records) { [] }
|
86
92
|
|
87
93
|
before do
|
88
94
|
allow(Chef::Util::DSC::ResourceStore).to receive(:instance).and_return(store)
|
@@ -124,7 +130,7 @@ describe Chef::Provider::DscResource do
|
|
124
130
|
end
|
125
131
|
|
126
132
|
context "resource name cannot be found" do
|
127
|
-
let
|
133
|
+
let(:resource_records) { [] }
|
128
134
|
|
129
135
|
it "raises ResourceNotFound" do
|
130
136
|
expect { provider.run_action(:run) }.to raise_error(Chef::Exceptions::ResourceNotFound)
|
@@ -133,7 +139,7 @@ describe Chef::Provider::DscResource do
|
|
133
139
|
|
134
140
|
context "resource name is found" do
|
135
141
|
context "no module name for resource found" do
|
136
|
-
let
|
142
|
+
let(:resource_records) { [{}] }
|
137
143
|
|
138
144
|
it "returns the default dsc resource module" do
|
139
145
|
expect(Chef::Util::Powershell::Cmdlet).to receive(:new) do |node, cmdlet, format|
|
@@ -144,7 +150,7 @@ describe Chef::Provider::DscResource do
|
|
144
150
|
end
|
145
151
|
|
146
152
|
context "a module name for resource is found" do
|
147
|
-
let
|
153
|
+
let(:resource_records) { [{ "Module" => { "Name" => "ModuleName" } }] }
|
148
154
|
|
149
155
|
it "returns the default dsc resource module" do
|
150
156
|
expect(Chef::Util::Powershell::Cmdlet).to receive(:new) do |node, cmdlet, format|
|
@@ -155,7 +161,7 @@ describe Chef::Provider::DscResource do
|
|
155
161
|
end
|
156
162
|
|
157
163
|
context "multiple resource are found" do
|
158
|
-
let
|
164
|
+
let(:resource_records) do
|
159
165
|
[
|
160
166
|
{ "Module" => { "Name" => "ModuleName1", "Version" => "1.0.0.0" } },
|
161
167
|
{ "Module" => { "Name" => "ModuleName1", "Version" => "2.0.0.0" } },
|
@@ -170,10 +176,6 @@ describe Chef::Provider::DscResource do
|
|
170
176
|
end
|
171
177
|
|
172
178
|
describe "define_resource_requirements" do
|
173
|
-
let (:node) do
|
174
|
-
set_node_object
|
175
|
-
end
|
176
|
-
|
177
179
|
context "module usage is valid" do
|
178
180
|
before do
|
179
181
|
allow(provider).to receive(:module_usage_valid?).and_return(true)
|
@@ -208,10 +210,6 @@ describe Chef::Provider::DscResource do
|
|
208
210
|
end
|
209
211
|
|
210
212
|
describe "module_usage_valid?" do
|
211
|
-
let (:node) do
|
212
|
-
set_node_object
|
213
|
-
end
|
214
|
-
|
215
213
|
context "module_name and module_version both are not provided" do
|
216
214
|
before do
|
217
215
|
provider.instance_variable_set(:@module_name, nil)
|
@@ -262,10 +260,6 @@ describe Chef::Provider::DscResource do
|
|
262
260
|
end
|
263
261
|
|
264
262
|
describe "module_info_object" do
|
265
|
-
let (:node) do
|
266
|
-
set_node_object
|
267
|
-
end
|
268
|
-
|
269
263
|
context "module_version is not given" do
|
270
264
|
before do
|
271
265
|
provider.instance_variable_set(:@module_version, nil)
|
@@ -292,10 +286,6 @@ describe Chef::Provider::DscResource do
|
|
292
286
|
end
|
293
287
|
|
294
288
|
describe "invoke_resource" do
|
295
|
-
let (:node) do
|
296
|
-
set_node_object
|
297
|
-
end
|
298
|
-
|
299
289
|
let(:cmdlet) { double(run!: nil) }
|
300
290
|
|
301
291
|
before(:each) do
|
@@ -338,9 +328,3 @@ describe Chef::Provider::DscResource do
|
|
338
328
|
end
|
339
329
|
end
|
340
330
|
end
|
341
|
-
|
342
|
-
def set_node_object
|
343
|
-
node = Chef::Node.new
|
344
|
-
node.automatic[:languages][:powershell][:version] = "5.0.10586.0"
|
345
|
-
node
|
346
|
-
end
|
@@ -23,15 +23,15 @@ require "spec_helper"
|
|
23
23
|
|
24
24
|
describe Chef::Provider::DscScript do
|
25
25
|
context "when DSC is available" do
|
26
|
-
let
|
26
|
+
let(:node) do
|
27
27
|
node = Chef::Node.new
|
28
28
|
node.automatic[:languages][:powershell][:version] = "4.0"
|
29
29
|
node
|
30
30
|
end
|
31
|
-
let
|
32
|
-
let
|
33
|
-
let
|
34
|
-
let
|
31
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
32
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
33
|
+
let(:resource) { Chef::Resource::DscScript.new("script", run_context) }
|
34
|
+
let(:provider) do
|
35
35
|
Chef::Provider::DscScript.new(resource, run_context)
|
36
36
|
end
|
37
37
|
|
@@ -145,11 +145,11 @@ describe Chef::Provider::DscScript do
|
|
145
145
|
end
|
146
146
|
|
147
147
|
context "when Dsc is not available" do
|
148
|
-
let
|
149
|
-
let
|
150
|
-
let
|
151
|
-
let
|
152
|
-
let
|
148
|
+
let(:node) { Chef::Node.new }
|
149
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
150
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
151
|
+
let(:resource) { Chef::Resource::DscScript.new("script", run_context) }
|
152
|
+
let(:provider) { Chef::Provider::DscScript.new(resource, run_context) }
|
153
153
|
|
154
154
|
describe "action_run" do
|
155
155
|
["1.0", "2.0", "3.0"].each do |version|
|