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
data/lib/chef/win32/api/file.rb
CHANGED
@@ -540,7 +540,7 @@ BOOL WINAPI VerQueryValue(
|
|
540
540
|
def file_search_handle(path)
|
541
541
|
# Workaround for CHEF-4419:
|
542
542
|
# Make sure paths starting with "/" has a drive letter
|
543
|
-
# assigned from the current working
|
543
|
+
# assigned from the current working directory.
|
544
544
|
# Note: With CHEF-4427 this issue will be fixed with a
|
545
545
|
# broader fix to map all the paths starting with "/" to
|
546
546
|
# SYSTEM_DRIVE on windows.
|
data/lib/chef/win32/api/net.rb
CHANGED
data/lib/chef/win32/file.rb
CHANGED
@@ -123,7 +123,7 @@ class Chef
|
|
123
123
|
|
124
124
|
# Return the link destination (strip off \??\ at the beginning, which is a local filesystem thing)
|
125
125
|
link_dest = reparse_buffer.reparse_buffer.substitute_name
|
126
|
-
if link_dest
|
126
|
+
if /^\\\?\?\\/.match?(link_dest)
|
127
127
|
link_dest = link_dest[4..-1]
|
128
128
|
end
|
129
129
|
link_dest
|
data/lib/chef/win32/mutex.rb
CHANGED
@@ -95,7 +95,7 @@ if other threads attempt to acquire the mutex.")
|
|
95
95
|
@handle = OpenMutexW(SYNCHRONIZE, true, name.to_wstring)
|
96
96
|
|
97
97
|
if @handle == 0
|
98
|
-
#
|
98
|
+
# Mutex doesn't exist so create one.
|
99
99
|
# In the initial creation of the mutex initial_owner is set to
|
100
100
|
# false so that mutex will not be acquired until someone calls
|
101
101
|
# acquire.
|
data/lib/chef/win32/net.rb
CHANGED
data/lib/chef/win32/registry.rb
CHANGED
@@ -20,7 +20,7 @@ require_relative "../reserved_names"
|
|
20
20
|
require_relative "api"
|
21
21
|
require_relative "../mixin/wide_string"
|
22
22
|
|
23
|
-
if RUBY_PLATFORM
|
23
|
+
if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
24
24
|
require_relative "../monkey_patches/win32/registry"
|
25
25
|
require_relative "api/registry"
|
26
26
|
require "win32/registry" unless defined?(Win32::Registry)
|
@@ -31,7 +31,7 @@ class Chef
|
|
31
31
|
class Win32
|
32
32
|
class Registry
|
33
33
|
|
34
|
-
if RUBY_PLATFORM
|
34
|
+
if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
35
35
|
include Chef::ReservedNames::Win32::API::Registry
|
36
36
|
extend Chef::ReservedNames::Win32::API::Registry
|
37
37
|
end
|
@@ -341,7 +341,7 @@ class Chef
|
|
341
341
|
end
|
342
342
|
|
343
343
|
def get_type_from_num(val_type)
|
344
|
-
|
344
|
+
{
|
345
345
|
3 => ::Win32::Registry::REG_BINARY,
|
346
346
|
1 => ::Win32::Registry::REG_SZ,
|
347
347
|
7 => ::Win32::Registry::REG_MULTI_SZ,
|
@@ -350,7 +350,6 @@ class Chef
|
|
350
350
|
5 => ::Win32::Registry::REG_DWORD_BIG_ENDIAN,
|
351
351
|
11 => ::Win32::Registry::REG_QWORD,
|
352
352
|
}[val_type]
|
353
|
-
value
|
354
353
|
end
|
355
354
|
|
356
355
|
def create_missing(key_path)
|
data/lib/chef/win32/security.rb
CHANGED
@@ -694,7 +694,7 @@ class Chef
|
|
694
694
|
begin
|
695
695
|
process_token = open_current_process_token(TOKEN_READ)
|
696
696
|
rescue Exception => run_error
|
697
|
-
return false if
|
697
|
+
return false if /Access is denied/.match?(run_error.message)
|
698
698
|
|
699
699
|
Chef::ReservedNames::Win32::Error.raise!
|
700
700
|
end
|
@@ -261,7 +261,7 @@ class Chef
|
|
261
261
|
|
262
262
|
SYSTEM_USER = SERVICE_ACCOUNT_USERS + BUILT_IN_GROUPS
|
263
263
|
|
264
|
-
#
|
264
|
+
# Check if the user belongs to service accounts category
|
265
265
|
#
|
266
266
|
# @return [Boolean] True or False
|
267
267
|
#
|
@@ -269,7 +269,7 @@ class Chef
|
|
269
269
|
SERVICE_ACCOUNT_USERS.include?(user.to_s.upcase)
|
270
270
|
end
|
271
271
|
|
272
|
-
#
|
272
|
+
# Check if the user is in builtin system group
|
273
273
|
#
|
274
274
|
# @return [Boolean] True or False
|
275
275
|
#
|
@@ -277,7 +277,7 @@ class Chef
|
|
277
277
|
BUILT_IN_GROUPS.include?(user.to_s.upcase)
|
278
278
|
end
|
279
279
|
|
280
|
-
#
|
280
|
+
# Check if the user belongs to system users category
|
281
281
|
#
|
282
282
|
# @return [Boolean] True or False
|
283
283
|
#
|
@@ -325,7 +325,7 @@ class Chef
|
|
325
325
|
Array.new(entriesread.read_long) do |i|
|
326
326
|
user_info = USER_INFO_3.new(bufptr.read_pointer + i * USER_INFO_3.size)
|
327
327
|
# Check if the account is the Administrator account
|
328
|
-
# RID for the Administrator account is always 500 and it's
|
328
|
+
# RID for the Administrator account is always 500 and it's privilege is set to USER_PRIV_ADMIN
|
329
329
|
if user_info[:usri3_user_id] == 500 && user_info[:usri3_priv] == 2 # USER_PRIV_ADMIN (2) - Administrator
|
330
330
|
admin_account_name = user_info[:usri3_name].read_wstring
|
331
331
|
break
|
@@ -4,7 +4,7 @@ def without_deprecation_warnings(&block)
|
|
4
4
|
old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
|
5
5
|
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
6
6
|
begin
|
7
|
-
|
7
|
+
yield
|
8
8
|
ensure
|
9
9
|
Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
|
10
10
|
end
|
@@ -2,7 +2,7 @@ def without_deprecation_warnings(&block)
|
|
2
2
|
old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
|
3
3
|
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
4
4
|
begin
|
5
|
-
|
5
|
+
yield
|
6
6
|
ensure
|
7
7
|
Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
|
8
8
|
end
|
@@ -7,7 +7,7 @@ def without_deprecation_warnings(&block)
|
|
7
7
|
old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
|
8
8
|
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
9
9
|
begin
|
10
|
-
|
10
|
+
yield
|
11
11
|
ensure
|
12
12
|
Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
|
13
13
|
end
|
@@ -36,17 +36,6 @@ describe Chef::Knife::Ssh do
|
|
36
36
|
allow(Net::SSH).to receive(:configuration_for).and_return(ssh_config)
|
37
37
|
end
|
38
38
|
|
39
|
-
# Force log level to info.
|
40
|
-
around do |ex|
|
41
|
-
old_level = Chef::Log.level
|
42
|
-
begin
|
43
|
-
Chef::Log.level = :info
|
44
|
-
ex.run
|
45
|
-
ensure
|
46
|
-
Chef::Log.level = old_level
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
39
|
describe "identity file" do
|
51
40
|
context "when knife[:ssh_identity_file] is set" do
|
52
41
|
before do
|
@@ -278,7 +267,7 @@ describe Chef::Knife::Ssh do
|
|
278
267
|
end
|
279
268
|
|
280
269
|
it "uses the ssh_gateway" do
|
281
|
-
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {})
|
270
|
+
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { append_all_supported_algorithms: true })
|
282
271
|
@knife.run
|
283
272
|
expect(@knife.config[:ssh_gateway]).to eq("user@ec2.public_hostname")
|
284
273
|
end
|
@@ -291,7 +280,7 @@ describe Chef::Knife::Ssh do
|
|
291
280
|
end
|
292
281
|
|
293
282
|
it "uses the ssh_gateway" do
|
294
|
-
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {})
|
283
|
+
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { append_all_supported_algorithms: true })
|
295
284
|
@knife.run
|
296
285
|
expect(@knife.config[:ssh_gateway]).to eq("user@ec2.public_hostname")
|
297
286
|
end
|
@@ -305,7 +294,7 @@ describe Chef::Knife::Ssh do
|
|
305
294
|
end
|
306
295
|
|
307
296
|
it "uses the ssh_gateway_identity file" do
|
308
|
-
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
|
297
|
+
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { append_all_supported_algorithms: true, keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
|
309
298
|
@knife.run
|
310
299
|
expect(@knife.config[:ssh_gateway_identity]).to eq("~/.ssh/aws-gateway.rsa")
|
311
300
|
end
|
@@ -319,7 +308,7 @@ describe Chef::Knife::Ssh do
|
|
319
308
|
end
|
320
309
|
|
321
310
|
it "uses the ssh_gateway_identity file" do
|
322
|
-
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
|
311
|
+
expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { append_all_supported_algorithms: true, keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
|
323
312
|
@knife.run
|
324
313
|
expect(@knife.config[:ssh_gateway_identity]).to eq("~/.ssh/aws-gateway.rsa")
|
325
314
|
end
|
@@ -335,7 +324,7 @@ describe Chef::Knife::Ssh do
|
|
335
324
|
end
|
336
325
|
|
337
326
|
it "should prompt the user for a password" do
|
338
|
-
expect(@knife.ui).to receive(:ask).with("Enter the password for user@ec2.public_hostname: ").and_return("password")
|
327
|
+
expect(@knife.ui).to receive(:ask).with("Enter the password for user@ec2.public_hostname: ", echo: false).and_return("password")
|
339
328
|
@knife.run
|
340
329
|
end
|
341
330
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
#
|
3
2
|
# Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
|
4
3
|
# Copyright:: Copyright (c) Chef Software Inc.
|
@@ -18,7 +17,6 @@
|
|
18
17
|
#
|
19
18
|
|
20
19
|
require "spec_helper"
|
21
|
-
require "functional/resource/base"
|
22
20
|
require "chef/mixin/shell_out"
|
23
21
|
|
24
22
|
shared_examples "src service" do
|
@@ -80,6 +78,15 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
80
78
|
shell_out("id -u #{ENV["USER"]}").stdout.chomp
|
81
79
|
end
|
82
80
|
|
81
|
+
let(:run_context) do
|
82
|
+
node = Chef::Node.new
|
83
|
+
node.default[:platform] = ohai[:platform]
|
84
|
+
node.default[:platform_version] = ohai[:platform_version]
|
85
|
+
node.default[:os] = ohai[:os]
|
86
|
+
events = Chef::EventDispatch::Dispatcher.new
|
87
|
+
Chef::RunContext.new(node, {}, events)
|
88
|
+
end
|
89
|
+
|
83
90
|
describe "When service is a subsystem" do
|
84
91
|
before(:all) do
|
85
92
|
script_dir = File.join(File.dirname(__FILE__), "/../assets/")
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
#
|
3
2
|
# Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
|
4
3
|
# Copyright:: Copyright (c) Chef Software Inc.
|
@@ -18,7 +17,6 @@
|
|
18
17
|
#
|
19
18
|
|
20
19
|
require "spec_helper"
|
21
|
-
require "functional/resource/base"
|
22
20
|
require "chef/mixin/shell_out"
|
23
21
|
require "fileutils"
|
24
22
|
|
@@ -57,6 +55,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
57
55
|
|
58
56
|
# Actual tests
|
59
57
|
let(:new_resource) do
|
58
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
60
59
|
new_resource = Chef::Resource::Service.new("chefinittest", run_context)
|
61
60
|
new_resource.provider Chef::Provider::Service::AixInit
|
62
61
|
new_resource.supports({ status: true, restart: true, reload: true })
|
@@ -17,18 +17,19 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
|
-
require "functional/resource/base"
|
21
20
|
|
22
21
|
describe Chef::Resource::Bash, :unix_only do
|
23
22
|
let(:code) { "echo hello" }
|
24
23
|
let(:resource) do
|
24
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
25
|
+
|
25
26
|
resource = Chef::Resource::Bash.new("foo_resource", run_context)
|
26
27
|
resource.code(code) unless code.nil?
|
27
28
|
resource
|
28
29
|
end
|
29
30
|
|
30
31
|
describe "when setting the command property" do
|
31
|
-
let
|
32
|
+
let(:command) { "wizard racket" }
|
32
33
|
|
33
34
|
it "should raise an exception when trying to set the command" do
|
34
35
|
expect { resource.command command }.to raise_error(Chef::Exceptions::Script)
|
@@ -16,7 +16,6 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require "functional/resource/base"
|
20
19
|
require "chef/mixin/shell_out"
|
21
20
|
|
22
21
|
# Run the test only for AIX platform.
|
@@ -24,6 +23,7 @@ describe Chef::Resource::BffPackage, :requires_root, external: ohai[:platform] !
|
|
24
23
|
include Chef::Mixin::ShellOut
|
25
24
|
|
26
25
|
let(:new_resource) do
|
26
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
27
27
|
new_resource = Chef::Resource::BffPackage.new(@pkg_name, run_context)
|
28
28
|
new_resource.source @pkg_path
|
29
29
|
new_resource
|
@@ -25,6 +25,10 @@ describe Chef::Resource::ChocolateyPackage, :windows_only, :choco_installed do
|
|
25
25
|
let(:package_list) { proc { powershell_out!("choco list -lo -r #{Array(package_name).join(" ")}").stdout.chomp } }
|
26
26
|
let(:package_source) { File.join(CHEF_SPEC_ASSETS, "chocolatey_feed") }
|
27
27
|
|
28
|
+
let(:run_context) do
|
29
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
30
|
+
end
|
31
|
+
|
28
32
|
subject do
|
29
33
|
new_resource = Chef::Resource::ChocolateyPackage.new("test choco package", run_context)
|
30
34
|
new_resource.package_name package_name
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
#
|
3
2
|
# Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
|
4
3
|
# Copyright:: Copyright (c) Chef Software Inc.
|
@@ -18,7 +17,6 @@
|
|
18
17
|
#
|
19
18
|
|
20
19
|
require "spec_helper"
|
21
|
-
require "functional/resource/base"
|
22
20
|
require "chef/mixin/shell_out"
|
23
21
|
|
24
22
|
describe Chef::Resource::Cron, :requires_root, :unix_only do
|
@@ -53,6 +51,16 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
|
|
53
51
|
end
|
54
52
|
|
55
53
|
# Actual tests
|
54
|
+
|
55
|
+
let(:run_context) do
|
56
|
+
node = Chef::Node.new
|
57
|
+
node.default[:platform] = ohai[:platform]
|
58
|
+
node.default[:platform_version] = ohai[:platform_version]
|
59
|
+
node.default[:os] = ohai[:os]
|
60
|
+
events = Chef::EventDispatch::Dispatcher.new
|
61
|
+
Chef::RunContext.new(node, {}, events)
|
62
|
+
end
|
63
|
+
|
56
64
|
let(:new_resource) do
|
57
65
|
new_resource = Chef::Resource::Cron.new("Chef functional test cron", run_context)
|
58
66
|
new_resource.user "root"
|
@@ -80,6 +88,16 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
|
|
80
88
|
5.times { new_resource.run_action(:create) }
|
81
89
|
cron_should_exists(new_resource.name, new_resource.command)
|
82
90
|
end
|
91
|
+
|
92
|
+
# Test cron for day of week
|
93
|
+
weekdays = { Mon: 1, tuesday: 2, '3': 3, 'thursday': 4, 'Fri': 5, 6 => 6 }
|
94
|
+
weekdays.each do |key, value|
|
95
|
+
it "should create crontab entry and set #{value} for #{key} as weekday" do
|
96
|
+
new_resource.weekday key
|
97
|
+
expect { new_resource.run_action(:create) }.not_to raise_error
|
98
|
+
cron_should_exists(new_resource.name, new_resource.command)
|
99
|
+
end
|
100
|
+
end
|
83
101
|
end
|
84
102
|
|
85
103
|
describe "delete action" do
|
@@ -16,7 +16,6 @@
|
|
16
16
|
#
|
17
17
|
|
18
18
|
require "spec_helper"
|
19
|
-
require "functional/resource/base"
|
20
19
|
require "chef/mixin/shell_out"
|
21
20
|
|
22
21
|
# run this test only for following platforms.
|
@@ -66,6 +65,10 @@ describe Chef::Resource::DnfPackage, :requires_root, external: exclude_test do
|
|
66
65
|
FileUtils.rm_f "/etc/yum.repos.d/chef-dnf-localtesting.repo"
|
67
66
|
end
|
68
67
|
|
68
|
+
let(:run_context) do
|
69
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
70
|
+
end
|
71
|
+
|
69
72
|
let(:package_name) { "chef_rpm" }
|
70
73
|
let(:dnf_package) { Chef::Resource::DnfPackage.new(package_name, run_context) }
|
71
74
|
|
@@ -726,7 +729,7 @@ describe Chef::Resource::DnfPackage, :requires_root, external: exclude_test do
|
|
726
729
|
|
727
730
|
it "with a prco equality pin in the name it upgrades a prior package" do
|
728
731
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
729
|
-
dnf_package.package_name("chef_rpm
|
732
|
+
dnf_package.package_name("chef_rpm = 1.10")
|
730
733
|
dnf_package.run_action(:upgrade)
|
731
734
|
expect(dnf_package.updated_by_last_action?).to be true
|
732
735
|
expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
|
@@ -742,7 +745,7 @@ describe Chef::Resource::DnfPackage, :requires_root, external: exclude_test do
|
|
742
745
|
|
743
746
|
it "with a prco equality pin in the name it downgrades a later package" do
|
744
747
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
745
|
-
dnf_package.package_name("chef_rpm
|
748
|
+
dnf_package.package_name("chef_rpm = 1.2")
|
746
749
|
dnf_package.run_action(:upgrade)
|
747
750
|
expect(dnf_package.updated_by_last_action?).to be true
|
748
751
|
expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
|
@@ -17,11 +17,11 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
|
-
require "functional/resource/base"
|
21
20
|
require "timeout"
|
22
21
|
|
23
22
|
describe Chef::Resource::Execute do
|
24
23
|
let(:resource) do
|
24
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
25
25
|
resource = Chef::Resource::Execute.new("foo_resource", run_context)
|
26
26
|
resource.command("echo hello")
|
27
27
|
resource
|
@@ -20,7 +20,7 @@ require "spec_helper"
|
|
20
20
|
require "tmpdir"
|
21
21
|
|
22
22
|
# Deploy relies heavily on symlinks, so it doesn't work on windows.
|
23
|
-
describe Chef::Resource::Git
|
23
|
+
describe Chef::Resource::Git do
|
24
24
|
include RecipeDSLHelper
|
25
25
|
|
26
26
|
# Some versions of git complains when the deploy directory is
|
@@ -103,7 +103,7 @@ describe Chef::Resource::Git, requires_git: true do
|
|
103
103
|
revision "v1.0.0"
|
104
104
|
end.should_be_updated
|
105
105
|
expect_revision_to_be("HEAD", v1_commit)
|
106
|
-
expect_branch_to_be("tags/v1.0.0^0") #
|
106
|
+
expect_branch_to_be("tags/v1.0.0^0") # detached
|
107
107
|
# also verify the tag commit itself is what we expect as an extra sanity check
|
108
108
|
expect_revision_to_be("v1.0.0", v1_tag)
|
109
109
|
end
|
@@ -116,7 +116,7 @@ describe Chef::Resource::Git, requires_git: true do
|
|
116
116
|
git deploy_directory do
|
117
117
|
repository origin_repo
|
118
118
|
revision "v1.0.0"
|
119
|
-
expect_branch_to_be("tags/v1.0.0^0") #
|
119
|
+
expect_branch_to_be("tags/v1.0.0^0") # detached
|
120
120
|
end.should_not_be_updated
|
121
121
|
end
|
122
122
|
end
|
@@ -128,7 +128,7 @@ describe Chef::Resource::Git, requires_git: true do
|
|
128
128
|
revision rev_foo
|
129
129
|
end.should_be_updated
|
130
130
|
expect_revision_to_be("HEAD", rev_foo)
|
131
|
-
expect_branch_to_be("master~1") #
|
131
|
+
expect_branch_to_be("master~1") # detached
|
132
132
|
end
|
133
133
|
|
134
134
|
it "checks out the expected revision ed18 to a local branch" do
|
@@ -138,7 +138,7 @@ describe Chef::Resource::Git, requires_git: true do
|
|
138
138
|
checkout_branch "deploy"
|
139
139
|
end.should_be_updated
|
140
140
|
expect_revision_to_be("HEAD", rev_foo)
|
141
|
-
expect_branch_to_be("deploy") #
|
141
|
+
expect_branch_to_be("deploy") # detached
|
142
142
|
end
|
143
143
|
|
144
144
|
it "doesn't update if up-to-date" do
|
@@ -152,7 +152,7 @@ describe Chef::Resource::Git, requires_git: true do
|
|
152
152
|
repository origin_repo
|
153
153
|
revision rev_foo
|
154
154
|
end.should_not_be_updated
|
155
|
-
expect_branch_to_be("master~1") #
|
155
|
+
expect_branch_to_be("master~1") # detached
|
156
156
|
end
|
157
157
|
|
158
158
|
it "checks out the expected revision 972d" do
|
@@ -161,7 +161,7 @@ describe Chef::Resource::Git, requires_git: true do
|
|
161
161
|
revision rev_testing
|
162
162
|
end.should_be_updated
|
163
163
|
expect_revision_to_be("HEAD", rev_testing)
|
164
|
-
expect_branch_to_be("master~2") #
|
164
|
+
expect_branch_to_be("master~2") # detached
|
165
165
|
end
|
166
166
|
|
167
167
|
it "checks out the expected revision 972d to a local branch" do
|
@@ -239,6 +239,28 @@ describe Chef::Resource::Git, requires_git: true do
|
|
239
239
|
end
|
240
240
|
end
|
241
241
|
|
242
|
+
context "when updating a branch that's already checked out out" do
|
243
|
+
it "checks out master, commits to the repo, and checks out the latest changes" do
|
244
|
+
git deploy_directory do
|
245
|
+
repository origin_repo
|
246
|
+
revision "master"
|
247
|
+
action :sync
|
248
|
+
end.should_be_updated
|
249
|
+
|
250
|
+
# We don't have a way to test a commit in the git bundle
|
251
|
+
# Revert to a previous commit in the same branch and make sure we can still sync.
|
252
|
+
shell_out!("git", "reset", "--hard", rev_foo, cwd: deploy_directory)
|
253
|
+
|
254
|
+
git deploy_directory do
|
255
|
+
repository origin_repo
|
256
|
+
revision "master"
|
257
|
+
action :sync
|
258
|
+
end.should_be_updated
|
259
|
+
expect_revision_to_be("HEAD", rev_head)
|
260
|
+
expect_branch_to_be("master")
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
242
264
|
context "when dealing with a repo with a degenerate tag named 'HEAD'" do
|
243
265
|
before do
|
244
266
|
shell_out!("git", "tag", "-m\"degenerate tag\"", "HEAD", "ed181b3419b6f489bedab282348162a110d6d3a1", cwd: origin_repo)
|