chef 16.2.44-universal-mingw32 → 16.4.35-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/config_use_profile.rb +15 -5
- 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/alternatives.rb +1 -1
- 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_gem.rb +57 -21
- 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 +2 -2
- data/lib/chef/resource/execute.rb +4 -5
- data/lib/chef/resource/gem_package.rb +35 -2
- 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 +16 -1
- data/lib/chef/resource/sudo.rb +31 -4
- data/lib/chef/resource/swap_file.rb +17 -0
- data/lib/chef/resource/sysctl.rb +5 -5
- 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 +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 +52 -21
- 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 +115 -61
- 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 +23 -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
@@ -21,6 +21,8 @@ describe Chef::Resource::Timezone, :windows_only do
|
|
21
21
|
let(:timezone) { "GMT Standard Time" }
|
22
22
|
|
23
23
|
def timezone_resource
|
24
|
+
run_context = Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
25
|
+
|
24
26
|
Chef::Resource::Timezone.new(timezone, run_context)
|
25
27
|
end
|
26
28
|
|
@@ -390,7 +390,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
|
|
390
390
|
end
|
391
391
|
|
392
392
|
after do
|
393
|
-
if File.
|
393
|
+
if File.exist?(out_path)
|
394
394
|
File.delete(out_path)
|
395
395
|
end
|
396
396
|
end
|
@@ -405,7 +405,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
|
|
405
405
|
expect(no_of_certificates).to eq(1)
|
406
406
|
end
|
407
407
|
it "Stores Certificate content at given path" do
|
408
|
-
expect(File.
|
408
|
+
expect(File.exist?(out_path)).to be_truthy
|
409
409
|
end
|
410
410
|
it "Does not converge while fetching" do
|
411
411
|
expect(win_certificate).not_to be_updated_by_last_action
|
@@ -425,7 +425,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
|
|
425
425
|
expect(stdout.string.strip).to be_empty
|
426
426
|
end
|
427
427
|
it "Does not store certificate content at given path" do
|
428
|
-
expect(File.
|
428
|
+
expect(File.exist?(out_path)).to be_falsy
|
429
429
|
end
|
430
430
|
it "Does not converge while fetching" do
|
431
431
|
expect(win_certificate).not_to be_updated_by_last_action
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Dheeraj Singh Dubey (<ddubey@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
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::Resource::WindowsFont, :windows_only do
|
22
|
+
let(:resource_name) { "Playmaker.ttf" }
|
23
|
+
let(:resource_source) { "https://www.wfonts.com/download/data/2020/05/06/playmaker/Playmaker.ttf" }
|
24
|
+
|
25
|
+
let(:run_context) do
|
26
|
+
node = Chef::Node.new
|
27
|
+
node.default[:platform] = ohai[:platform]
|
28
|
+
node.default[:platform_version] = ohai[:platform_version]
|
29
|
+
node.default[:os] = ohai[:os]
|
30
|
+
events = Chef::EventDispatch::Dispatcher.new
|
31
|
+
Chef::RunContext.new(node, {}, events)
|
32
|
+
end
|
33
|
+
|
34
|
+
subject do
|
35
|
+
resource = Chef::Resource::WindowsFont.new(resource_name, run_context)
|
36
|
+
resource.source resource_source
|
37
|
+
resource
|
38
|
+
end
|
39
|
+
|
40
|
+
it "installs font on first install" do
|
41
|
+
subject.run_action(:install)
|
42
|
+
expect(subject).to be_updated_by_last_action
|
43
|
+
end
|
44
|
+
|
45
|
+
it "does not install font when already installed" do
|
46
|
+
subject.run_action(:install)
|
47
|
+
expect(subject).not_to be_updated_by_last_action
|
48
|
+
end
|
49
|
+
end
|
@@ -21,6 +21,10 @@ require "spec_helper"
|
|
21
21
|
describe Chef::Resource::WindowsPath, :windows_only do
|
22
22
|
let(:path) { "test_path" }
|
23
23
|
|
24
|
+
let(:run_context) do
|
25
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
26
|
+
end
|
27
|
+
|
24
28
|
before(:all) do
|
25
29
|
@old_path = ENV["PATH"].dup
|
26
30
|
end
|
@@ -17,12 +17,8 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
|
-
require "functional/resource/base"
|
21
|
-
require "chef/mixin/powershell_out"
|
22
20
|
|
23
21
|
describe Chef::Resource::WindowsSecurityPolicy, :windows_only do
|
24
|
-
include Chef::Mixin::PowershellExec
|
25
|
-
|
26
22
|
let(:secoption) { "MaximumPasswordAge" }
|
27
23
|
let(:secvalue) { "30" }
|
28
24
|
let(:windows_test_run_context) do
|
@@ -62,6 +62,10 @@ describe Chef::Resource::WindowsService, :windows_only, :system_windows_service_
|
|
62
62
|
r
|
63
63
|
end
|
64
64
|
|
65
|
+
let(:run_context) do
|
66
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
67
|
+
end
|
68
|
+
|
65
69
|
before do
|
66
70
|
user_resource.run_action(:create)
|
67
71
|
|
@@ -25,12 +25,13 @@ describe Chef::Resource::WindowsTask, :windows_only do
|
|
25
25
|
let(:task_name) { "chef-client-functional-test" }
|
26
26
|
let(:new_resource) { Chef::Resource::WindowsTask.new(task_name) }
|
27
27
|
let(:windows_task_provider) do
|
28
|
-
node = Chef::Node.new
|
29
|
-
events = Chef::EventDispatch::Dispatcher.new
|
30
|
-
run_context = Chef::RunContext.new(node, {}, events)
|
31
28
|
Chef::Provider::WindowsTask.new(new_resource, run_context)
|
32
29
|
end
|
33
30
|
|
31
|
+
let(:run_context) do
|
32
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
33
|
+
end
|
34
|
+
|
34
35
|
describe "action :create" do
|
35
36
|
after { delete_task }
|
36
37
|
context "when command is with arguments" do
|
@@ -15,8 +15,7 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
#
|
17
17
|
|
18
|
-
|
19
|
-
require_relative "../../functional/resource/base"
|
18
|
+
require "spec_helper"
|
20
19
|
|
21
20
|
describe Chef::Resource::WindowsUserPrivilege, :windows_only do
|
22
21
|
let(:principal) { nil }
|
@@ -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.
|
@@ -64,6 +63,10 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
64
63
|
FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
|
65
64
|
end
|
66
65
|
|
66
|
+
let(:run_context) do
|
67
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
68
|
+
end
|
69
|
+
|
67
70
|
let(:package_name) { "chef_rpm" }
|
68
71
|
let(:yum_package) do
|
69
72
|
r = Chef::Resource::YumPackage.new(package_name, run_context)
|
@@ -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
|
describe Chef::Resource::ZypperPackage, :requires_root, :suse_only do
|
@@ -52,6 +51,10 @@ describe Chef::Resource::ZypperPackage, :requires_root, :suse_only do
|
|
52
51
|
FileUtils.rm_f "/etc/zypp/repos.d/chef-zypp-localtesting.repo"
|
53
52
|
end
|
54
53
|
|
54
|
+
let(:run_context) do
|
55
|
+
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
56
|
+
end
|
57
|
+
|
55
58
|
let(:package_name) { "chef_rpm" }
|
56
59
|
let(:zypper_package) do
|
57
60
|
r = Chef::Resource::ZypperPackage.new(package_name, run_context)
|
@@ -15,7 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
|
18
|
+
require "spec_helper"
|
19
19
|
require "chef/client"
|
20
20
|
|
21
21
|
describe Chef::RunLock do
|
@@ -61,17 +61,17 @@ describe Chef::RunLock do
|
|
61
61
|
let!(:p1) { ClientProcess.new(self, "p1") }
|
62
62
|
let!(:p2) { ClientProcess.new(self, "p2") }
|
63
63
|
after(:each) do |example|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
end
|
64
|
+
|
65
|
+
p1.stop
|
66
|
+
p2.stop
|
67
|
+
rescue
|
68
|
+
example.exception = $!
|
69
|
+
raise
|
70
|
+
ensure
|
71
|
+
if example.exception
|
72
|
+
print_events
|
74
73
|
end
|
74
|
+
|
75
75
|
end
|
76
76
|
|
77
77
|
def print_events
|
@@ -435,6 +435,7 @@ describe Chef::RunLock do
|
|
435
435
|
|
436
436
|
class TestRunLock < Chef::RunLock
|
437
437
|
attr_accessor :client_process
|
438
|
+
|
438
439
|
def create_lock
|
439
440
|
super
|
440
441
|
client_process.fire_event("created lock")
|
@@ -444,21 +445,21 @@ describe Chef::RunLock do
|
|
444
445
|
def start
|
445
446
|
example.log_event("#{name}.start")
|
446
447
|
@pid = fork do
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
end
|
458
|
-
rescue
|
459
|
-
fire_event($!.message.lines.join(" // "))
|
460
|
-
raise
|
448
|
+
|
449
|
+
Timeout.timeout(CLIENT_PROCESS_TIMEOUT) do
|
450
|
+
run_lock = TestRunLock.new(example.lockfile)
|
451
|
+
run_lock.client_process = self
|
452
|
+
fire_event("started")
|
453
|
+
run_lock.acquire
|
454
|
+
fire_event("acquired lock")
|
455
|
+
run_lock.save_pid
|
456
|
+
fire_event("saved pid")
|
457
|
+
exit!(0)
|
461
458
|
end
|
459
|
+
rescue
|
460
|
+
fire_event($!.message.lines.join(" // "))
|
461
|
+
raise
|
462
|
+
|
462
463
|
end
|
463
464
|
example.log_event("#{name}.start forked (pid #{pid})")
|
464
465
|
end
|
@@ -17,7 +17,6 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
|
-
require "functional/resource/base"
|
21
20
|
require "chef/version"
|
22
21
|
require "chef/shell"
|
23
22
|
|
@@ -98,13 +97,13 @@ describe Shell do
|
|
98
97
|
[output, e.status]
|
99
98
|
end
|
100
99
|
|
101
|
-
it "boots correctly with -lauto" do
|
100
|
+
it "boots correctly with -lauto", :executables do
|
102
101
|
output, exitstatus = run_chef_shell_with("-lauto")
|
103
102
|
expect(output).to include("done")
|
104
103
|
expect(exitstatus).to eq(0)
|
105
104
|
end
|
106
105
|
|
107
|
-
it "sets the log_level from the command line" do
|
106
|
+
it "sets the log_level from the command line", :executables do
|
108
107
|
output, exitstatus = run_chef_shell_with("-lfatal") do |out, keyboard|
|
109
108
|
show_log_level_code = %q[puts "===#{Chef::Log.level}==="]
|
110
109
|
keyboard.puts(show_log_level_code)
|
@@ -115,13 +114,13 @@ describe Shell do
|
|
115
114
|
end
|
116
115
|
|
117
116
|
context "on solo mode" do
|
118
|
-
it "starts correctly" do
|
117
|
+
it "starts correctly", :executables do
|
119
118
|
output, exitstatus = run_chef_shell_with("--solo")
|
120
119
|
expect(output).to include("done")
|
121
120
|
expect(exitstatus).to eq(0)
|
122
121
|
end
|
123
122
|
|
124
|
-
it "should be able to use the API" do
|
123
|
+
it "should be able to use the API", :executables do
|
125
124
|
output, exitstatus = run_chef_shell_with("-s") do |out, keyboard|
|
126
125
|
simple_api_get = "api.get('data')"
|
127
126
|
keyboard.puts(simple_api_get)
|
@@ -132,7 +131,7 @@ describe Shell do
|
|
132
131
|
end
|
133
132
|
end
|
134
133
|
|
135
|
-
it "sets the override_runlist from the command line" do
|
134
|
+
it "sets the override_runlist from the command line", :executables do
|
136
135
|
output, exitstatus = run_chef_shell_with("-o 'override::foo,override::bar'") do |out, keyboard|
|
137
136
|
show_recipes_code = %q[puts "#{node["recipes"].inspect}"]
|
138
137
|
keyboard.puts(show_recipes_code)
|
@@ -32,7 +32,7 @@ describe "Chef::ReservedNames::Win32::Crypto", :windows_only do
|
|
32
32
|
@run_context = Chef::RunContext.new(new_node, {}, events)
|
33
33
|
end
|
34
34
|
|
35
|
-
let
|
35
|
+
let(:plaintext) { "p@assword" }
|
36
36
|
|
37
37
|
it "can be decrypted by powershell" do
|
38
38
|
encrypted = Chef::ReservedNames::Win32::Crypto.encrypt(plaintext)
|
@@ -267,10 +267,10 @@ describe "Chef::Win32::Registry", :windows_only do
|
|
267
267
|
describe "create_key" do
|
268
268
|
before(:all) do
|
269
269
|
::Win32::Registry::HKEY_CURRENT_USER.open("Software\\Root") do |reg|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
270
|
+
|
271
|
+
reg.delete_key("Trunk", true)
|
272
|
+
rescue
|
273
|
+
|
274
274
|
end
|
275
275
|
end
|
276
276
|
|
@@ -362,10 +362,10 @@ describe "Chef::Win32::Registry", :windows_only do
|
|
362
362
|
before(:all) do
|
363
363
|
::Win32::Registry::HKEY_CURRENT_USER.create "Software\\Root\\Trunk"
|
364
364
|
::Win32::Registry::HKEY_CURRENT_USER.open("Software\\Root\\Trunk") do |reg|
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
365
|
+
|
366
|
+
reg.delete_key("Red", true)
|
367
|
+
rescue
|
368
|
+
|
369
369
|
end
|
370
370
|
end
|
371
371
|
|
@@ -125,7 +125,7 @@ describe "Chef::Application::WindowsServiceManager", :windows_only, :system_wind
|
|
125
125
|
it "start should start the service", :volatile do
|
126
126
|
service_manager.run(["-a", "start"])
|
127
127
|
expect(test_service_state).to eq("running")
|
128
|
-
expect(File.
|
128
|
+
expect(File.exist?(test_service_file)).to be_truthy
|
129
129
|
end
|
130
130
|
|
131
131
|
it "stop should not affect the service" do
|
@@ -125,12 +125,12 @@ describe "knife common options", :workstation do
|
|
125
125
|
|
126
126
|
context "when the default port (8889) is already bound" do
|
127
127
|
before :each do
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
128
|
+
|
129
|
+
@server = ChefZero::Server.new(host: "localhost", port: 8889)
|
130
|
+
@server.start_background
|
131
|
+
rescue Errno::EADDRINUSE
|
132
|
+
# OK. Don't care who has it in use, as long as *someone* does.
|
133
|
+
|
134
134
|
end
|
135
135
|
after :each do
|
136
136
|
@server.stop if @server
|
@@ -144,12 +144,12 @@ describe "knife common options", :workstation do
|
|
144
144
|
|
145
145
|
context "when port 9999 is already bound" do
|
146
146
|
before :each do
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
147
|
+
|
148
|
+
@server = ChefZero::Server.new(host: "localhost", port: 9999)
|
149
|
+
@server.start_background
|
150
|
+
rescue Errno::EADDRINUSE
|
151
|
+
# OK. Don't care who has it in use, as long as *someone* does.
|
152
|
+
|
153
153
|
end
|
154
154
|
after :each do
|
155
155
|
@server.stop if @server
|
@@ -22,92 +22,93 @@ describe "knife config get-profile", :workstation do
|
|
22
22
|
include KnifeSupport
|
23
23
|
|
24
24
|
include_context "default config options"
|
25
|
-
include_context "with a chef repo"
|
26
25
|
|
27
26
|
let(:cmd_args) { [] }
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
around do |ex|
|
38
|
-
# Store and reset the value of some env vars.
|
39
|
-
old_chef_home = ENV["CHEF_HOME"]
|
40
|
-
old_knife_home = ENV["KNIFE_HOME"]
|
41
|
-
old_home = ENV["HOME"]
|
42
|
-
old_wd = Dir.pwd
|
43
|
-
ChefConfig::PathHelper.per_tool_home_environment = "KNIFE_HOME"
|
44
|
-
# Clear these out because they are cached permanently.
|
45
|
-
ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
|
46
|
-
Chef::Knife::ConfigGetProfile.reset_config_loader!
|
47
|
-
begin
|
48
|
-
ex.run
|
49
|
-
ensure
|
50
|
-
ENV["CHEF_HOME"] = old_chef_home
|
51
|
-
ENV["KNIFE_HOME"] = old_knife_home
|
52
|
-
ENV["HOME"] = old_home
|
53
|
-
Dir.chdir(old_wd)
|
54
|
-
ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
|
55
|
-
ChefConfig::PathHelper.per_tool_home_environment = nil
|
28
|
+
when_the_repository("has a custom env") do
|
29
|
+
subject do
|
30
|
+
cmd = knife("config", "get-profile", *cmd_args, instance_filter: lambda { |instance|
|
31
|
+
# Fake the failsafe check because this command doesn't actually process knife.rb.
|
32
|
+
$__KNIFE_INTEGRATION_FAILSAFE_CHECK << " ole"
|
33
|
+
})
|
34
|
+
cmd.stdout
|
56
35
|
end
|
57
|
-
end
|
58
|
-
|
59
|
-
before do
|
60
|
-
# Always run from the temp folder. This can't be in the `around` block above
|
61
|
-
# because it has to run after the before set in the "with a chef repo" shared context.
|
62
|
-
directory("repo")
|
63
|
-
Dir.chdir(path_to("repo"))
|
64
|
-
ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
|
65
|
-
ENV["HOME"] = path_to(".")
|
66
|
-
end
|
67
|
-
|
68
|
-
context "with no configuration" do
|
69
|
-
it { is_expected.to eq "default\n" }
|
70
|
-
end
|
71
36
|
|
72
|
-
context "with --profile" do
|
73
|
-
let(:cmd_args) { %w{--profile production} }
|
74
|
-
it { is_expected.to eq "production\n" }
|
75
|
-
end
|
76
|
-
|
77
|
-
context "with an environment variable" do
|
78
37
|
around do |ex|
|
79
|
-
|
38
|
+
# Store and reset the value of some env vars.
|
39
|
+
old_chef_home = ENV["CHEF_HOME"]
|
40
|
+
old_knife_home = ENV["KNIFE_HOME"]
|
41
|
+
old_home = ENV["HOME"]
|
42
|
+
old_wd = Dir.pwd
|
43
|
+
ChefConfig::PathHelper.per_tool_home_environment = "KNIFE_HOME"
|
44
|
+
# Clear these out because they are cached permanently.
|
45
|
+
ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
|
46
|
+
Chef::Knife::ConfigGetProfile.reset_config_loader!
|
80
47
|
begin
|
81
|
-
ENV["CHEF_PROFILE"] = "staging"
|
82
48
|
ex.run
|
83
49
|
ensure
|
84
|
-
ENV["
|
50
|
+
ENV["CHEF_HOME"] = old_chef_home
|
51
|
+
ENV["KNIFE_HOME"] = old_knife_home
|
52
|
+
ENV["HOME"] = old_home
|
53
|
+
Dir.chdir(old_wd)
|
54
|
+
ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
|
55
|
+
ChefConfig::PathHelper.per_tool_home_environment = nil
|
85
56
|
end
|
86
57
|
end
|
87
58
|
|
88
|
-
|
89
|
-
|
59
|
+
before do
|
60
|
+
# Always run from the temp folder. This can't be in the `around` block above
|
61
|
+
# because it has to run after the before set in the "with a chef repo" shared context.
|
62
|
+
directory("repo")
|
63
|
+
Dir.chdir(path_to("repo"))
|
64
|
+
ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
|
65
|
+
ENV["HOME"] = path_to(".")
|
66
|
+
end
|
90
67
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
end
|
68
|
+
context "with no configuration" do
|
69
|
+
it { is_expected.to eq "default\n" }
|
70
|
+
end
|
95
71
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
ENV["CHEF_HOME"] = path_to("chefhome")
|
72
|
+
context "with --profile" do
|
73
|
+
let(:cmd_args) { %w{--profile production} }
|
74
|
+
it { is_expected.to eq "production\n" }
|
100
75
|
end
|
101
76
|
|
102
|
-
|
103
|
-
|
77
|
+
context "with an environment variable" do
|
78
|
+
around do |ex|
|
79
|
+
old_chef_profile = ENV["CHEF_PROFILE"]
|
80
|
+
begin
|
81
|
+
ENV["CHEF_PROFILE"] = "staging"
|
82
|
+
ex.run
|
83
|
+
ensure
|
84
|
+
ENV["CHEF_PROFILE"] = old_chef_profile
|
85
|
+
end
|
86
|
+
end
|
104
87
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
88
|
+
it { is_expected.to eq "staging\n" }
|
89
|
+
end
|
90
|
+
|
91
|
+
context "with a context file" do
|
92
|
+
before { file(".chef/context", "development\n") }
|
93
|
+
it { is_expected.to eq "development\n" }
|
109
94
|
end
|
110
95
|
|
111
|
-
|
96
|
+
context "with a context file under $CHEF_HOME" do
|
97
|
+
before do
|
98
|
+
file("chefhome/.chef/context", "other\n")
|
99
|
+
ENV["CHEF_HOME"] = path_to("chefhome")
|
100
|
+
end
|
101
|
+
|
102
|
+
it { is_expected.to eq "other\n" }
|
103
|
+
end
|
104
|
+
|
105
|
+
context "with a context file under $KNIFE_HOME" do
|
106
|
+
before do
|
107
|
+
file("knifehome/.chef/context", "other\n")
|
108
|
+
ENV["KNIFE_HOME"] = path_to("knifehome")
|
109
|
+
end
|
110
|
+
|
111
|
+
it { is_expected.to eq "other\n" }
|
112
|
+
end
|
112
113
|
end
|
113
114
|
end
|