chef 16.2.50-universal-mingw32 → 16.4.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 +4 -4
- data/Rakefile +3 -16
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +4 -3
- data/lib/chef/action_collection.rb +4 -0
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +13 -1
- data/lib/chef/application/apply.rb +6 -5
- data/lib/chef/application/windows_service.rb +27 -27
- data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
- data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
- data/lib/chef/chef_class.rb +0 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +54 -54
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
- 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/chef_server/organization_invites_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +18 -18
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/client.rb +14 -14
- 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/data_bag.rb +1 -2
- data/lib/chef/data_collector/run_end_message.rb +11 -1
- data/lib/chef/deprecated.rb +8 -0
- data/lib/chef/digester.rb +3 -2
- data/lib/chef/dsl/platform_introspection.rb +9 -7
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/environment.rb +3 -4
- data/lib/chef/exceptions.rb +4 -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/file_content_management/tempfile.rb +9 -9
- data/lib/chef/handler.rb +2 -0
- data/lib/chef/http.rb +12 -12
- data/lib/chef/http/authenticator.rb +3 -1
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/bootstrap.rb +18 -15
- data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
- data/lib/chef/knife/config_get.rb +1 -0
- data/lib/chef/knife/config_list_profiles.rb +4 -1
- data/lib/chef/knife/configure.rb +1 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +29 -37
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +3 -2
- 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 +33 -26
- data/lib/chef/knife/delete.rb +15 -15
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/rehash.rb +3 -21
- data/lib/chef/knife/ssh.rb +11 -7
- data/lib/chef/knife/xargs.rb +19 -19
- data/lib/chef/knife/yaml_convert.rb +1 -1
- data/lib/chef/log.rb +7 -2
- data/lib/chef/mixin/checksum.rb +0 -1
- data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
- data/lib/chef/mixin/deep_merge.rb +35 -6
- data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
- data/lib/chef/mixin/openssl_helper.rb +30 -6
- data/lib/chef/mixin/path_sanity.rb +5 -4
- 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/monkey_patches/webrick-utils.rb +10 -10
- data/lib/chef/node.rb +36 -12
- data/lib/chef/node/attribute.rb +2 -4
- data/lib/chef/node_map.rb +21 -18
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/property.rb +1 -1
- data/lib/chef/provider/cron/unix.rb +0 -2
- data/lib/chef/provider/git.rb +17 -9
- data/lib/chef/provider/group.rb +0 -2
- data/lib/chef/provider/group/suse.rb +5 -5
- data/lib/chef/provider/ifconfig.rb +1 -4
- data/lib/chef/provider/mount.rb +0 -2
- data/lib/chef/provider/mount/solaris.rb +0 -1
- data/lib/chef/provider/package.rb +0 -2
- data/lib/chef/provider/package/rubygems.rb +1 -1
- data/lib/chef/provider/package/snap.rb +3 -4
- data/lib/chef/provider/package/windows.rb +9 -4
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -9
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +21 -5
- data/lib/chef/provider/route.rb +1 -1
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +1 -4
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +10 -10
- data/lib/chef/provider/systemd_unit.rb +0 -2
- data/lib/chef/provider/template/content.rb +1 -0
- data/lib/chef/provider/user/dscl.rb +2 -2
- data/lib/chef/provider/user/mac.rb +9 -9
- data/lib/chef/provider/windows_task.rb +0 -3
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +1 -2
- data/lib/chef/providers.rb +0 -1
- data/lib/chef/recipe.rb +1 -1
- data/lib/chef/resource.rb +9 -11
- data/lib/chef/resource/apt_repository.rb +1 -10
- data/lib/chef/resource/build_essential.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
- data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +13 -13
- data/lib/chef/resource/chocolatey_feature.rb +1 -2
- data/lib/chef/resource/cron/cron_d.rb +1 -1
- data/lib/chef/resource/cron_access.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +1 -1
- data/lib/chef/resource/execute.rb +4 -5
- data/lib/chef/resource/homebrew_update.rb +2 -2
- data/lib/chef/resource/hostname.rb +18 -18
- 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/openssl_dhparam.rb +2 -0
- data/lib/chef/resource/openssl_ec_private_key.rb +2 -0
- data/lib/chef/resource/openssl_ec_public_key.rb +2 -0
- data/lib/chef/resource/openssl_rsa_private_key.rb +2 -0
- data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
- data/lib/chef/resource/openssl_x509_certificate.rb +35 -35
- data/lib/chef/resource/openssl_x509_crl.rb +3 -2
- data/lib/chef/resource/openssl_x509_request.rb +23 -20
- data/lib/chef/resource/osx_profile.rb +227 -5
- data/lib/chef/resource/powershell_package_source.rb +1 -1
- data/lib/chef/resource/powershell_script.rb +24 -30
- data/lib/chef/resource/service.rb +2 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
- data/lib/chef/resource/sudo.rb +2 -2
- data/lib/chef/resource/sysctl.rb +5 -5
- data/lib/chef/resource/user_ulimit.rb +1 -1
- data/lib/chef/resource/windows_ad_join.rb +2 -0
- data/lib/chef/resource/windows_audit_policy.rb +3 -0
- data/lib/chef/resource/windows_auto_run.rb +2 -0
- data/lib/chef/resource/windows_certificate.rb +2 -0
- data/lib/chef/resource/windows_dfs_folder.rb +2 -0
- data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
- data/lib/chef/resource/windows_dfs_server.rb +2 -0
- data/lib/chef/resource/windows_dns_record.rb +25 -5
- data/lib/chef/resource/windows_dns_zone.rb +12 -7
- data/lib/chef/resource/windows_feature.rb +2 -0
- data/lib/chef/resource/windows_feature_dism.rb +10 -0
- data/lib/chef/resource/windows_feature_powershell.rb +14 -2
- data/lib/chef/resource/windows_firewall_profile.rb +199 -0
- data/lib/chef/resource/windows_firewall_rule.rb +5 -3
- data/lib/chef/resource/windows_font.rb +3 -1
- data/lib/chef/resource/windows_pagefile.rb +4 -0
- data/lib/chef/resource/windows_printer.rb +17 -18
- data/lib/chef/resource/windows_printer_port.rb +14 -13
- data/lib/chef/resource/windows_security_policy.rb +51 -20
- data/lib/chef/resource/windows_share.rb +5 -3
- data/lib/chef/resource/windows_shortcut.rb +2 -0
- data/lib/chef/resource/windows_uac.rb +2 -0
- data/lib/chef/resource/windows_user_privilege.rb +27 -2
- data/lib/chef/resource/windows_workgroup.rb +2 -3
- data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
- data/lib/chef/resource_inspector.rb +7 -1
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/role.rb +3 -4
- data/lib/chef/run_context/cookbook_compiler.rb +20 -20
- data/lib/chef/run_status.rb +2 -6
- data/lib/chef/server_api_versions.rb +4 -0
- data/lib/chef/shell.rb +1 -1
- data/lib/chef/shell/shell_session.rb +2 -0
- data/lib/chef/util/backup.rb +1 -1
- data/lib/chef/util/diff.rb +11 -12
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/win32/file.rb +2 -2
- data/lib/chef/win32/file/version_info.rb +5 -5
- data/lib/chef/win32/registry.rb +1 -2
- data/spec/data/ssl/chef-rspec.cert +15 -15
- 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 +8 -9
- 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 +3 -3
- data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +10 -2
- data/spec/functional/resource/dnf_package_spec.rb +4 -1
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/dsc_script_spec.rb +0 -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 +21 -9
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +7 -7
- data/spec/functional/resource/link_spec.rb +22 -25
- 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 +8 -8
- data/spec/functional/resource/remote_file_spec.rb +7 -13
- data/spec/functional/resource/rpm_spec.rb +3 -3
- data/spec/functional/resource/timezone_spec.rb +2 -0
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_font_spec.rb +49 -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 -4
- data/spec/functional/resource/windows_service_spec.rb +4 -0
- data/spec/functional/resource/windows_task_spec.rb +4 -3
- 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 +26 -25
- 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/functional/win32/registry_spec.rb +8 -8
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/knife/common_options_spec.rb +12 -12
- data/spec/integration/knife/config_get_profile_spec.rb +69 -68
- data/spec/integration/knife/config_get_spec.rb +126 -125
- data/spec/integration/knife/config_list_profiles_spec.rb +181 -152
- data/spec/integration/knife/config_use_profile_spec.rb +110 -109
- 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/diff_spec.rb +3 -1
- data/spec/integration/knife/download_spec.rb +3 -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/knife/serve_spec.rb +5 -5
- data/spec/integration/knife/upload_spec.rb +3 -1
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +2 -2
- 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 +16 -10
- data/spec/support/chef_helpers.rb +1 -20
- data/spec/support/platform_helpers.rb +9 -11
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +20 -21
- 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/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +5 -5
- data/spec/support/shared/integration/integration_helper.rb +22 -52
- 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/provider/file.rb +12 -8
- data/spec/support/shared/unit/script_resource.rb +6 -20
- data/spec/support/shared/unit/windows_script_resource.rb +15 -28
- data/spec/unit/application/solo_spec.rb +4 -2
- data/spec/unit/application_spec.rb +4 -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 +29 -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 +12 -8
- 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/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +17 -20
- data/spec/unit/knife/cookbook_download_spec.rb +6 -6
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- 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/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_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/template_spec.rb +30 -30
- data/spec/unit/mixin/unformatter_spec.rb +2 -2
- data/spec/unit/mixin/uris_spec.rb +1 -1
- data/spec/unit/mixin/which.rb +8 -0
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
- data/spec/unit/node/immutable_collections_spec.rb +6 -2
- data/spec/unit/node_spec.rb +103 -16
- data/spec/unit/property_spec.rb +5 -5
- data/spec/unit/provider/batch_spec.rb +1 -1
- data/spec/unit/provider/cron/unix_spec.rb +1 -1
- 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/rubygems_spec.rb +5 -10
- data/spec/unit/provider/package/smartos_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 +11 -4
- data/spec/unit/provider/remote_directory_spec.rb +9 -9
- data/spec/unit/provider/service/arch_service_spec.rb +3 -2
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
- data/spec/unit/provider/service/macosx_spec.rb +3 -3
- data/spec/unit/provider/service/redhat_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- 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_resolver_spec.rb +6 -6
- data/spec/unit/provider_spec.rb +1 -0
- data/spec/unit/resource/batch_spec.rb +6 -6
- data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
- data/spec/unit/resource/execute_spec.rb +123 -118
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
- data/spec/unit/resource/osx_profile_spec.rb +233 -0
- data/spec/unit/resource/powershell_script_spec.rb +11 -29
- data/spec/unit/resource/script_spec.rb +6 -1
- data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
- 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_reporter_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +25 -8
- data/spec/unit/role_spec.rb +30 -28
- 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/powershell/ps_credential_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +2 -1
- data/spec/unit/win32/security_spec.rb +4 -3
- data/tasks/rspec.rb +1 -1
- metadata +53 -40
- data/lib/chef/provider/osx_profile.rb +0 -255
- data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -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
|
|
@@ -29,11 +27,11 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
29
27
|
# Platform specific validation routines.
|
30
28
|
def service_should_be_started(file_name)
|
31
29
|
# The existence of this file indicates that the service was started.
|
32
|
-
expect(File.
|
30
|
+
expect(File.exist?("#{Dir.tmpdir}/#{file_name}")).to be_truthy
|
33
31
|
end
|
34
32
|
|
35
33
|
def service_should_be_stopped(file_name)
|
36
|
-
expect(File.
|
34
|
+
expect(File.exist?("#{Dir.tmpdir}/#{file_name}")).to be_falsey
|
37
35
|
end
|
38
36
|
|
39
37
|
def valide_symlinks(expected_output, run_level = nil, status = nil, priority = nil)
|
@@ -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 })
|
@@ -69,12 +68,12 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
69
68
|
end
|
70
69
|
|
71
70
|
before(:all) do
|
72
|
-
File.delete("/etc/rc.d/init.d/chefinittest") if File.
|
71
|
+
File.delete("/etc/rc.d/init.d/chefinittest") if File.exist?("/etc/rc.d/init.d/chefinittest")
|
73
72
|
FileUtils.cp((File.join(File.dirname(__FILE__), "/../assets/chefinittest")).to_s, "/etc/rc.d/init.d/chefinittest")
|
74
73
|
end
|
75
74
|
|
76
75
|
after(:all) do
|
77
|
-
File.delete("/etc/rc.d/init.d/chefinittest") if File.
|
76
|
+
File.delete("/etc/rc.d/init.d/chefinittest") if File.exist?("/etc/rc.d/init.d/chefinittest")
|
78
77
|
end
|
79
78
|
|
80
79
|
before(:each) do
|
@@ -166,7 +165,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
166
165
|
end
|
167
166
|
|
168
167
|
after do
|
169
|
-
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.
|
168
|
+
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.exist?("/etc/rc.d/rc2.d/chefinittest")
|
170
169
|
end
|
171
170
|
|
172
171
|
it "creates symlink with status K" do
|
@@ -182,7 +181,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
182
181
|
end
|
183
182
|
|
184
183
|
after do
|
185
|
-
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.
|
184
|
+
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.exist?("/etc/rc.d/rc2.d/chefinittest")
|
186
185
|
end
|
187
186
|
|
188
187
|
it "creates a symlink with status K and a priority" do
|
@@ -199,7 +198,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
|
|
199
198
|
end
|
200
199
|
|
201
200
|
after do
|
202
|
-
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.
|
201
|
+
File.delete("/etc/rc.d/rc2.d/Schefinittest") if File.exist?("/etc/rc.d/rc2.d/chefinittest")
|
203
202
|
end
|
204
203
|
|
205
204
|
it "create symlink with status stop (K) and a priority " do
|
@@ -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
|
@@ -31,12 +31,12 @@ describe Chef::Resource::BffPackage, :requires_root, external: ohai[:platform] !
|
|
31
31
|
|
32
32
|
def bff_pkg_should_be_installed(resource)
|
33
33
|
expect(shell_out("lslpp -L #{resource.name}").exitstatus).to eq(0)
|
34
|
-
::File.
|
34
|
+
::File.exist?("/usr/PkgA/bin/acommand")
|
35
35
|
end
|
36
36
|
|
37
37
|
def bff_pkg_should_be_removed(resource)
|
38
38
|
expect(shell_out("lslpp -L #{resource.name}").exitstatus).to eq(1)
|
39
|
-
!::File.
|
39
|
+
!::File.exist?("/usr/PkgA/bin/acommand")
|
40
40
|
end
|
41
41
|
|
42
42
|
before(:all) do
|
@@ -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
|
@@ -72,7 +72,7 @@ describe Chef::Resource::CookbookFile do
|
|
72
72
|
end
|
73
73
|
|
74
74
|
after do
|
75
|
-
FileUtils.rm_r(windows_non_temp_dir) if ChefUtils.windows? && File.
|
75
|
+
FileUtils.rm_r(windows_non_temp_dir) if ChefUtils.windows? && File.exist?(windows_non_temp_dir)
|
76
76
|
end
|
77
77
|
|
78
78
|
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
|
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"
|
@@ -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
|
|
@@ -62,7 +62,7 @@ describe Chef::Resource::DscResource, :windows_powershell_dsc_only do
|
|
62
62
|
end
|
63
63
|
|
64
64
|
after do
|
65
|
-
File.delete(tmp_file_name) if File.
|
65
|
+
File.delete(tmp_file_name) if File.exist? tmp_file_name
|
66
66
|
end
|
67
67
|
|
68
68
|
it "converges the resource if it is not converged" do
|
@@ -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
|
@@ -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)
|
@@ -18,7 +18,6 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require "spec_helper"
|
21
|
-
require "functional/resource/base"
|
22
21
|
require "chef/mixin/shell_out"
|
23
22
|
|
24
23
|
describe Chef::Resource::Group, :requires_root_or_running_windows do
|
@@ -113,6 +112,15 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
|
|
113
112
|
# TODO: User shouldn't exist
|
114
113
|
end
|
115
114
|
|
115
|
+
let(:run_context) do
|
116
|
+
node = Chef::Node.new
|
117
|
+
node.default[:platform] = ohai[:platform]
|
118
|
+
node.default[:platform_version] = ohai[:platform_version]
|
119
|
+
node.default[:os] = ohai[:os]
|
120
|
+
events = Chef::EventDispatch::Dispatcher.new
|
121
|
+
Chef::RunContext.new(node, {}, events)
|
122
|
+
end
|
123
|
+
|
116
124
|
shared_examples_for "correct group management" do
|
117
125
|
def add_members_to_group(members)
|
118
126
|
temp_resource = group_resource.dup
|
@@ -151,8 +159,10 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
|
|
151
159
|
# excluded_members can only be used when append is set. It is ignored otherwise.
|
152
160
|
let(:excluded_members) { [] }
|
153
161
|
|
162
|
+
let(:expected_error_class) { windows? ? ArgumentError : Mixlib::ShellOut::ShellCommandFailed }
|
163
|
+
|
154
164
|
it "should raise an error" do
|
155
|
-
expect { group_resource.run_action(tested_action) }.to raise_error
|
165
|
+
expect { group_resource.run_action(tested_action) }.to raise_error(expected_error_class)
|
156
166
|
end
|
157
167
|
end
|
158
168
|
|
@@ -161,8 +171,10 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
|
|
161
171
|
group_resource.append(true)
|
162
172
|
end
|
163
173
|
|
174
|
+
let(:expected_error_class) { windows? ? Chef::Exceptions::Win32APIError : Mixlib::ShellOut::ShellCommandFailed }
|
175
|
+
|
164
176
|
it "should raise an error" do
|
165
|
-
expect { group_resource.run_action(tested_action) }.to raise_error
|
177
|
+
expect { group_resource.run_action(tested_action) }.to raise_error(expected_error_class)
|
166
178
|
end
|
167
179
|
end
|
168
180
|
end
|
@@ -295,12 +307,12 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
|
|
295
307
|
let(:number) do
|
296
308
|
# Loop until we pick a gid that is not in use.
|
297
309
|
loop do
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
310
|
+
|
311
|
+
gid = rand(2000..9999) # avoid low group numbers
|
312
|
+
return nil if Etc.getgrgid(gid).nil? # returns nil on windows
|
313
|
+
rescue ArgumentError # group does not exist
|
314
|
+
return gid
|
315
|
+
|
304
316
|
end
|
305
317
|
end
|
306
318
|
|
@@ -17,7 +17,6 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
|
-
require "functional/resource/base"
|
21
20
|
require "chef/mixin/shell_out"
|
22
21
|
|
23
22
|
# run this test only for following platforms.
|
@@ -26,6 +25,15 @@ include_flag = !(%w{amazon debian aix}.include?(ohai[:platform_family]) || (ohai
|
|
26
25
|
describe Chef::Resource::Ifconfig, :requires_root, :requires_ifconfig, external: include_flag do
|
27
26
|
include Chef::Mixin::ShellOut
|
28
27
|
|
28
|
+
let(:run_context) do
|
29
|
+
node = Chef::Node.new
|
30
|
+
node.default[:platform] = ohai[:platform]
|
31
|
+
node.default[:platform_version] = ohai[:platform_version]
|
32
|
+
node.default[:os] = ohai[:os]
|
33
|
+
events = Chef::EventDispatch::Dispatcher.new
|
34
|
+
Chef::RunContext.new(node, {}, events)
|
35
|
+
end
|
36
|
+
|
29
37
|
let(:new_resource) do
|
30
38
|
new_resource = Chef::Resource::Ifconfig.new("10.10.0.1", run_context)
|
31
39
|
new_resource
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
#
|
3
2
|
# Author:: Dheeraj Dubey (<dheeraj.dubey@msystechnologies.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
|
|
@@ -40,11 +38,11 @@ describe Chef::Resource::Service, :requires_root, :opensuse do
|
|
40
38
|
# Platform specific validation routines.
|
41
39
|
def service_should_be_started(file_name)
|
42
40
|
# The existence of this file indicates that the service was started.
|
43
|
-
expect(File.
|
41
|
+
expect(File.exist?("#{Dir.tmpdir}/#{file_name}")).to be_truthy
|
44
42
|
end
|
45
43
|
|
46
44
|
def service_should_be_stopped(file_name)
|
47
|
-
expect(File.
|
45
|
+
expect(File.exist?("#{Dir.tmpdir}/#{file_name}")).to be_falsey
|
48
46
|
end
|
49
47
|
|
50
48
|
def delete_test_files
|
@@ -54,6 +52,8 @@ describe Chef::Resource::Service, :requires_root, :opensuse do
|
|
54
52
|
|
55
53
|
# Actual tests
|
56
54
|
let(:new_resource) do
|
55
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
56
|
+
|
57
57
|
new_resource = Chef::Resource::Service.new("inittest", run_context)
|
58
58
|
new_resource.provider Chef::Provider::Service::Insserv
|
59
59
|
new_resource.supports({ status: true, restart: true, reload: true })
|
@@ -65,7 +65,7 @@ describe Chef::Resource::Service, :requires_root, :opensuse do
|
|
65
65
|
provider
|
66
66
|
end
|
67
67
|
|
68
|
-
let
|
68
|
+
let(:service_name) { "Chef::Util::PathHelper.escape_glob_dir(current_resource.service_name)" }
|
69
69
|
|
70
70
|
let(:current_resource) do
|
71
71
|
provider.load_current_resource
|
@@ -73,13 +73,13 @@ describe Chef::Resource::Service, :requires_root, :opensuse do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
before(:all) do
|
76
|
-
File.delete("/etc/init.d/inittest") if File.
|
76
|
+
File.delete("/etc/init.d/inittest") if File.exist?("/etc/init.d/inittest")
|
77
77
|
FileUtils.cp((File.join(File.dirname(__FILE__), "/../assets/inittest")).to_s, "/etc/init.d/inittest")
|
78
78
|
FileUtils.chmod(0755, "/etc/init.d/inittest")
|
79
79
|
end
|
80
80
|
|
81
81
|
after(:all) do
|
82
|
-
File.delete("/etc/init.d/inittest") if File.
|
82
|
+
File.delete("/etc/init.d/inittest") if File.exist?("/etc/init.d/inittest")
|
83
83
|
end
|
84
84
|
|
85
85
|
before(:each) do
|
@@ -55,22 +55,19 @@ describe Chef::Resource::Link do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
after(:each) do
|
58
|
-
begin
|
59
|
-
cleanup_link(to) if File.exists?(to)
|
60
|
-
cleanup_link(target_file) if File.exists?(target_file)
|
61
|
-
cleanup_link(CHEF_SPEC_BACKUP_PATH) if File.exists?(CHEF_SPEC_BACKUP_PATH)
|
62
|
-
rescue
|
63
|
-
puts "Could not remove a file: #{$!}"
|
64
|
-
end
|
65
|
-
end
|
66
58
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
59
|
+
cleanup_link(to) if File.exist?(to)
|
60
|
+
cleanup_link(target_file) if File.exist?(target_file)
|
61
|
+
cleanup_link(CHEF_SPEC_BACKUP_PATH) if File.exist?(CHEF_SPEC_BACKUP_PATH)
|
62
|
+
rescue
|
63
|
+
puts "Could not remove a file: #{$!}"
|
64
|
+
|
71
65
|
end
|
72
66
|
|
73
67
|
def user(user)
|
68
|
+
node = Chef::Node.new
|
69
|
+
node.consume_external_attrs(ohai.data, {})
|
70
|
+
run_context = Chef::RunContext.new(node, {}, Chef::EventDispatch::Dispatcher.new)
|
74
71
|
usr = Chef::Resource.resource_for_node(:user, node).new(user, run_context)
|
75
72
|
usr.password("ComplexPass11!") if windows?
|
76
73
|
usr
|
@@ -276,7 +273,7 @@ describe Chef::Resource::Link do
|
|
276
273
|
resource.run_action(:create)
|
277
274
|
end
|
278
275
|
it "preserves the hard link" do
|
279
|
-
expect(File.
|
276
|
+
expect(File.exist?(target_file)).to be_truthy
|
280
277
|
expect(symlink?(target_file)).to be_falsey
|
281
278
|
# Writing to one hardlinked file should cause both
|
282
279
|
# to have the new value.
|
@@ -301,7 +298,7 @@ describe Chef::Resource::Link do
|
|
301
298
|
resource.run_action(:create)
|
302
299
|
end
|
303
300
|
it "links to the target file" do
|
304
|
-
expect(File.
|
301
|
+
expect(File.exist?(target_file)).to be_truthy
|
305
302
|
expect(symlink?(target_file)).to be_falsey
|
306
303
|
# Writing to one hardlinked file should cause both
|
307
304
|
# to have the new value.
|
@@ -341,7 +338,7 @@ describe Chef::Resource::Link do
|
|
341
338
|
include_context "delete succeeds"
|
342
339
|
it "the :delete action does not delete the target file" do
|
343
340
|
resource.run_action(:delete)
|
344
|
-
expect(File.
|
341
|
+
expect(File.exist?(to)).to be_truthy
|
345
342
|
end
|
346
343
|
end
|
347
344
|
context "pointing somewhere else", :requires_root_or_running_windows do
|
@@ -369,7 +366,7 @@ describe Chef::Resource::Link do
|
|
369
366
|
include_context "delete succeeds"
|
370
367
|
it "the :delete action does not delete the target file" do
|
371
368
|
resource.run_action(:delete)
|
372
|
-
expect(File.
|
369
|
+
expect(File.exist?(to)).to be_truthy
|
373
370
|
end
|
374
371
|
end
|
375
372
|
context "pointing nowhere" do
|
@@ -386,7 +383,7 @@ describe Chef::Resource::Link do
|
|
386
383
|
context "and the link already exists and is a hard link to the file" do
|
387
384
|
before(:each) do
|
388
385
|
link(to, target_file)
|
389
|
-
expect(File.
|
386
|
+
expect(File.exist?(target_file)).to be_truthy
|
390
387
|
expect(symlink?(target_file)).to be_falsey
|
391
388
|
end
|
392
389
|
include_context "create symbolic link succeeds"
|
@@ -406,7 +403,7 @@ describe Chef::Resource::Link do
|
|
406
403
|
it "create errors out" do
|
407
404
|
if windows?
|
408
405
|
expect { resource.run_action(:create) }.to raise_error(Errno::EACCES)
|
409
|
-
elsif
|
406
|
+
elsif macos? || solaris? || freebsd? || aix?
|
410
407
|
expect { resource.run_action(:create) }.to raise_error(Errno::EPERM)
|
411
408
|
else
|
412
409
|
expect { resource.run_action(:create) }.to raise_error(Errno::EISDIR)
|
@@ -585,14 +582,14 @@ describe Chef::Resource::Link do
|
|
585
582
|
context "and the link already exists and is a hard link to the file" do
|
586
583
|
before(:each) do
|
587
584
|
link(to, target_file)
|
588
|
-
expect(File.
|
585
|
+
expect(File.exist?(target_file)).to be_truthy
|
589
586
|
expect(symlink?(target_file)).to be_falsey
|
590
587
|
end
|
591
588
|
include_context "create hard link is noop"
|
592
589
|
include_context "delete succeeds"
|
593
590
|
it "the :delete action does not delete the target file" do
|
594
591
|
resource.run_action(:delete)
|
595
|
-
expect(File.
|
592
|
+
expect(File.exist?(to)).to be_truthy
|
596
593
|
end
|
597
594
|
end
|
598
595
|
context "and the link already exists and is a file" do
|
@@ -609,7 +606,7 @@ describe Chef::Resource::Link do
|
|
609
606
|
it "errors out" do
|
610
607
|
if windows?
|
611
608
|
expect { resource.run_action(:create) }.to raise_error(Errno::EACCES)
|
612
|
-
elsif
|
609
|
+
elsif macos? || solaris? || freebsd? || aix?
|
613
610
|
expect { resource.run_action(:create) }.to raise_error(Errno::EPERM)
|
614
611
|
else
|
615
612
|
expect { resource.run_action(:create) }.to raise_error(Errno::EISDIR)
|
@@ -656,9 +653,9 @@ describe Chef::Resource::Link do
|
|
656
653
|
end
|
657
654
|
context "and the link does not yet exist" do
|
658
655
|
it "links to the target file" do
|
659
|
-
skip("macOS/FreeBSD/AIX/Solaris symlink? and readlink working on hard links to symlinks") if
|
656
|
+
skip("macOS/FreeBSD/AIX/Solaris symlink? and readlink working on hard links to symlinks") if macos? || freebsd? || aix? || solaris?
|
660
657
|
resource.run_action(:create)
|
661
|
-
expect(File.
|
658
|
+
expect(File.exist?(target_file)).to be_truthy
|
662
659
|
# macOS gets angry about this sort of link. Bug in macOS, IMO.
|
663
660
|
expect(symlink?(target_file)).to be_truthy
|
664
661
|
expect(readlink(target_file)).to eq(canonicalize(@other_target))
|
@@ -675,9 +672,9 @@ describe Chef::Resource::Link do
|
|
675
672
|
end
|
676
673
|
context "and the link does not yet exist" do
|
677
674
|
it "links to the target file" do
|
678
|
-
skip("macOS/FreeBSD/AIX/Solaris fails to create hardlinks to broken symlinks") if
|
675
|
+
skip("macOS/FreeBSD/AIX/Solaris fails to create hardlinks to broken symlinks") if macos? || freebsd? || aix? || solaris?
|
679
676
|
resource.run_action(:create)
|
680
|
-
expect(File.
|
677
|
+
expect(File.exist?(target_file) || File.symlink?(target_file)).to be_truthy
|
681
678
|
expect(symlink?(target_file)).to be_truthy
|
682
679
|
expect(readlink(target_file)).to eq(canonicalize(@other_target))
|
683
680
|
end
|