chef 16.18.30 → 17.10.163
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 +24 -33
- data/README.md +1 -1
- data/Rakefile +4 -4
- data/chef-universal-mingw32.gemspec +3 -3
- data/chef.gemspec +25 -30
- data/lib/chef/action_collection.rb +6 -26
- data/lib/chef/api_client.rb +1 -1
- data/lib/chef/application/base.rb +28 -3
- data/lib/chef/application/exit_code.rb +7 -21
- data/lib/chef/application.rb +3 -1
- data/lib/chef/applications.rb +0 -1
- data/lib/chef/chef_fs/command_line.rb +5 -2
- data/lib/chef/chef_fs/file_pattern.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system.rb +9 -10
- data/lib/chef/chef_fs/path_utils.rb +1 -1
- data/lib/chef/client.rb +10 -20
- data/lib/chef/compliance/default_attributes.rb +20 -7
- data/lib/chef/compliance/fetcher/automate.rb +0 -7
- data/lib/chef/compliance/input.rb +115 -0
- data/lib/chef/compliance/input_collection.rb +139 -0
- data/lib/chef/compliance/profile.rb +122 -0
- data/lib/chef/compliance/profile_collection.rb +109 -0
- data/lib/chef/compliance/reporter/automate.rb +18 -8
- data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
- data/lib/chef/compliance/reporter/cli.rb +77 -0
- data/lib/chef/compliance/reporter/compliance_enforcer.rb +5 -1
- data/lib/chef/compliance/reporter/json_file.rb +8 -1
- data/lib/chef/compliance/runner.rb +177 -37
- data/lib/chef/compliance/waiver.rb +115 -0
- data/lib/chef/compliance/waiver_collection.rb +143 -0
- data/lib/chef/cookbook/cookbook_version_loader.rb +3 -3
- data/lib/chef/cookbook/synchronizer.rb +3 -5
- data/lib/chef/cookbook/syntax_check.rb +1 -1
- data/lib/chef/cookbook_loader.rb +2 -4
- data/lib/chef/cookbook_uploader.rb +1 -2
- data/lib/chef/cookbook_version.rb +1 -1
- data/lib/chef/data_bag_item.rb +11 -2
- data/lib/chef/data_collector.rb +0 -1
- data/lib/chef/delayed_evaluator.rb +4 -0
- data/lib/chef/deprecated.rb +6 -2
- data/lib/chef/dsl/chef_vault.rb +6 -6
- data/lib/chef/{knife/group_list.rb → dsl/compliance.rb} +11 -16
- data/lib/chef/dsl/declare_resource.rb +5 -10
- data/lib/chef/{knife/client_show.rb → dsl/reader_helpers.rb} +24 -21
- data/lib/chef/dsl/reboot_pending.rb +2 -3
- data/lib/chef/dsl/recipe.rb +4 -2
- data/lib/chef/{knife/data_bag_list.rb → dsl/render_helpers.rb} +19 -17
- data/lib/chef/dsl/secret.rb +170 -0
- data/lib/chef/dsl/toml.rb +116 -0
- data/lib/chef/dsl/universal.rb +7 -0
- data/lib/chef/dsl.rb +1 -0
- data/lib/chef/event_dispatch/base.rb +46 -3
- data/lib/chef/exceptions.rb +30 -0
- data/lib/chef/formatters/doc.rb +62 -14
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
- data/lib/chef/formatters/minimal.rb +6 -5
- data/lib/chef/group.rb +75 -0
- data/lib/chef/handler/slow_report.rb +66 -0
- data/lib/chef/handler.rb +46 -8
- data/lib/chef/http/basic_client.rb +15 -7
- data/lib/chef/http/ssl_policies.rb +3 -3
- data/lib/chef/http.rb +7 -3
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/mixin/get_source_from_package.rb +1 -1
- data/lib/chef/mixin/homebrew_user.rb +15 -5
- data/lib/chef/mixin/openssl_helper.rb +17 -13
- data/lib/chef/mixin/powershell_exec.rb +27 -7
- data/lib/chef/mixin/properties.rb +6 -0
- data/lib/chef/mixin/why_run.rb +8 -2
- data/lib/chef/node/attribute.rb +6 -4
- data/lib/chef/node/immutable_collections.rb +13 -0
- data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
- data/lib/chef/node.rb +1 -1
- data/lib/chef/org.rb +3 -2
- data/lib/chef/platform/query_helpers.rb +2 -2
- data/lib/chef/policy_builder/expand_node_object.rb +1 -2
- data/lib/chef/policy_builder/policyfile.rb +84 -46
- data/lib/chef/powershell.rb +8 -6
- data/lib/chef/property.rb +18 -0
- data/lib/chef/provider/cron.rb +7 -4
- data/lib/chef/provider/directory.rb +8 -8
- data/lib/chef/provider/execute.rb +3 -2
- data/lib/chef/provider/file.rb +5 -3
- data/lib/chef/provider/git.rb +6 -8
- data/lib/chef/provider/group/groupadd.rb +3 -3
- data/lib/chef/provider/group/groupmod.rb +3 -3
- data/lib/chef/provider/group/pw.rb +3 -3
- data/lib/chef/provider/ifconfig/debian.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/launchd.rb +6 -6
- data/lib/chef/provider/link.rb +5 -5
- data/lib/chef/provider/lwrp_base.rb +1 -1
- data/lib/chef/provider/mount/aix.rb +3 -3
- data/lib/chef/provider/mount/linux.rb +16 -2
- data/lib/chef/provider/mount/mount.rb +6 -6
- data/lib/chef/provider/mount/windows.rb +1 -1
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/package/apt.rb +27 -1
- data/lib/chef/provider/package/chocolatey.rb +14 -1
- data/lib/chef/provider/package/deb.rb +3 -3
- data/lib/chef/provider/package/dnf/dnf_helper.py +12 -11
- data/lib/chef/provider/package/dnf/python_helper.rb +9 -8
- data/lib/chef/provider/package/dnf.rb +1 -1
- data/lib/chef/provider/package/habitat.rb +168 -0
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +13 -10
- data/lib/chef/provider/package/rubygems.rb +15 -21
- data/lib/chef/provider/package/windows.rb +2 -4
- data/lib/chef/provider/package/yum/python_helper.rb +109 -35
- data/lib/chef/provider/package/yum/yum_helper.py +42 -60
- data/lib/chef/provider/package/yum.rb +40 -16
- data/lib/chef/provider/package/zypper.rb +7 -0
- data/lib/chef/provider/package.rb +80 -49
- data/lib/chef/provider/registry_key.rb +4 -3
- data/lib/chef/provider/remote_file/http.rb +1 -1
- data/lib/chef/provider/route.rb +2 -2
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/freebsd.rb +15 -21
- data/lib/chef/provider/service/macosx.rb +4 -4
- data/lib/chef/provider/service/systemd.rb +43 -14
- data/lib/chef/provider/service/upstart.rb +2 -13
- data/lib/chef/provider/service/windows.rb +16 -16
- data/lib/chef/provider/service.rb +6 -6
- data/lib/chef/provider/subversion.rb +18 -20
- data/lib/chef/provider/support/yum_repo.erb +1 -1
- data/lib/chef/provider/support/zypper_repo.erb +4 -2
- data/lib/chef/provider/systemd_unit.rb +53 -26
- data/lib/chef/provider/template/content.rb +2 -6
- data/lib/chef/provider/template.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +1 -1
- data/lib/chef/provider/user/mac.rb +23 -26
- data/lib/chef/provider/user/pw.rb +1 -1
- data/lib/chef/provider/user/windows.rb +3 -3
- data/lib/chef/provider/user.rb +7 -3
- data/lib/chef/provider/windows_script.rb +1 -1
- data/lib/chef/provider/yum_repository.rb +27 -43
- data/lib/chef/provider/zypper_repository.rb +31 -35
- data/lib/chef/provider.rb +32 -4
- data/lib/chef/provider_resolver.rb +8 -2
- data/lib/chef/providers.rb +1 -2
- data/lib/chef/pwsh.rb +3 -2
- data/lib/chef/resource/alternatives.rb +6 -6
- data/lib/chef/resource/apt_package.rb +3 -3
- data/lib/chef/resource/apt_preference.rb +2 -2
- data/lib/chef/resource/apt_repository.rb +6 -6
- data/lib/chef/resource/apt_update.rb +5 -4
- data/lib/chef/resource/archive_file.rb +19 -17
- data/lib/chef/resource/breakpoint.rb +1 -1
- data/lib/chef/resource/build_essential.rb +2 -6
- data/lib/chef/resource/chef_client_config.rb +38 -6
- data/lib/chef/resource/chef_client_cron.rb +5 -5
- data/lib/chef/resource/chef_client_launchd.rb +7 -7
- data/lib/chef/resource/chef_client_scheduled_task.rb +61 -18
- data/lib/chef/resource/chef_client_systemd_timer.rb +6 -6
- data/lib/chef/resource/chef_client_trusted_certificate.rb +2 -2
- data/lib/chef/resource/chef_handler.rb +3 -7
- data/lib/chef/resource/chef_sleep.rb +1 -1
- data/lib/chef/resource/chef_vault_secret.rb +5 -10
- data/lib/chef/resource/chocolatey_config.rb +16 -20
- data/lib/chef/resource/chocolatey_feature.rb +3 -7
- data/lib/chef/resource/chocolatey_package.rb +3 -3
- data/lib/chef/resource/chocolatey_source.rb +28 -12
- data/lib/chef/resource/cron/_cron_shared.rb +2 -2
- data/lib/chef/resource/cron/cron.rb +75 -1
- data/lib/chef/resource/cron/cron_d.rb +5 -6
- data/lib/chef/resource/cron_access.rb +2 -4
- data/lib/chef/resource/directory.rb +1 -1
- data/lib/chef/resource/dmg_package.rb +6 -10
- data/lib/chef/resource/dnf_package.rb +4 -6
- data/lib/chef/resource/dpkg_package.rb +6 -1
- data/lib/chef/resource/dsc_resource.rb +1 -1
- data/lib/chef/resource/execute.rb +14 -12
- data/lib/chef/resource/file/verification/json.rb +50 -0
- data/lib/chef/resource/{user/dscl_user.rb → file/verification/yaml.rb} +26 -9
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/gem_package.rb +2 -1
- data/lib/chef/resource/group.rb +6 -6
- data/lib/chef/{knife/recipe_list.rb → resource/habitat/_habitat_shared.rb} +13 -17
- data/lib/chef/resource/habitat/habitat_package.rb +129 -0
- data/lib/chef/resource/habitat/habitat_sup.rb +329 -0
- data/lib/chef/resource/habitat/habitat_sup_systemd.rb +67 -0
- data/lib/chef/resource/habitat/habitat_sup_windows.rb +90 -0
- data/lib/chef/resource/habitat_config.rb +107 -0
- data/lib/chef/resource/habitat_install.rb +247 -0
- data/lib/chef/resource/habitat_service.rb +451 -0
- data/lib/chef/resource/habitat_user_toml.rb +92 -0
- data/lib/chef/resource/homebrew_cask.rb +10 -10
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +9 -16
- data/lib/chef/resource/homebrew_update.rb +2 -2
- data/lib/chef/resource/hostname.rb +68 -22
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/inspec_input.rb +127 -0
- data/lib/chef/resource/inspec_waiver.rb +184 -0
- data/lib/chef/resource/inspec_waiver_file_entry.rb +156 -0
- data/lib/chef/resource/kernel_module.rb +32 -18
- data/lib/chef/resource/launchd.rb +5 -8
- data/lib/chef/resource/locale.rb +7 -5
- data/lib/chef/resource/lwrp_base.rb +20 -1
- data/lib/chef/resource/macos_userdefaults.rb +54 -144
- data/lib/chef/resource/mdadm.rb +53 -7
- data/lib/chef/resource/mount.rb +2 -1
- data/lib/chef/resource/ohai_hint.rb +2 -6
- data/lib/chef/resource/openbsd_package.rb +17 -0
- data/lib/chef/resource/openssl_dhparam.rb +1 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +3 -5
- data/lib/chef/resource/openssl_ec_public_key.rb +1 -3
- data/lib/chef/resource/openssl_rsa_private_key.rb +2 -4
- data/lib/chef/resource/openssl_rsa_public_key.rb +1 -3
- data/lib/chef/resource/openssl_x509_certificate.rb +4 -7
- data/lib/chef/resource/openssl_x509_crl.rb +1 -3
- data/lib/chef/resource/openssl_x509_request.rb +1 -3
- data/lib/chef/resource/osx_profile.rb +3 -3
- data/lib/chef/resource/plist.rb +8 -8
- data/lib/chef/resource/powershell_package_source.rb +235 -73
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/reboot.rb +38 -9
- data/lib/chef/resource/registry_key.rb +36 -48
- data/lib/chef/resource/remote_directory.rb +2 -2
- data/lib/chef/resource/remote_file.rb +103 -7
- data/lib/chef/resource/rhsm_errata.rb +16 -3
- data/lib/chef/resource/rhsm_errata_level.rb +11 -6
- data/lib/chef/resource/rhsm_register.rb +42 -3
- data/lib/chef/resource/rhsm_repo.rb +17 -6
- data/lib/chef/resource/rhsm_subscription.rb +2 -6
- data/lib/chef/resource/ruby_block.rb +100 -0
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/scm/subversion.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +4 -7
- data/lib/chef/resource/sudo.rb +8 -12
- data/lib/chef/resource/support/HabService.dll.config.erb +19 -0
- data/lib/chef/resource/support/client.erb +11 -1
- data/lib/chef/resource/support/sup.toml.erb +179 -0
- data/lib/chef/resource/swap_file.rb +2 -6
- data/lib/chef/resource/sysctl.rb +2 -6
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +3 -5
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user_ulimit.rb +2 -2
- data/lib/chef/resource/windows_ad_join.rb +2 -6
- data/lib/chef/resource/windows_audit_policy.rb +2 -2
- data/lib/chef/resource/windows_auto_run.rb +3 -6
- data/lib/chef/resource/windows_certificate.rb +235 -90
- data/lib/chef/resource/windows_defender.rb +163 -0
- data/lib/chef/resource/windows_defender_exclusion.rb +125 -0
- data/lib/chef/resource/windows_dfs_folder.rb +2 -6
- data/lib/chef/resource/windows_dfs_namespace.rb +4 -8
- data/lib/chef/resource/windows_dfs_server.rb +1 -3
- data/lib/chef/resource/windows_dns_record.rb +2 -6
- data/lib/chef/resource/windows_dns_zone.rb +2 -6
- data/lib/chef/resource/windows_env.rb +6 -5
- data/lib/chef/resource/windows_feature.rb +3 -9
- data/lib/chef/resource/windows_feature_dism.rb +3 -9
- data/lib/chef/resource/windows_feature_powershell.rb +11 -12
- data/lib/chef/resource/windows_firewall_profile.rb +4 -4
- data/lib/chef/resource/windows_firewall_rule.rb +20 -9
- data/lib/chef/resource/windows_font.rb +3 -5
- data/lib/chef/resource/windows_pagefile.rb +111 -69
- data/lib/chef/resource/windows_path.rb +4 -4
- data/lib/chef/resource/windows_printer.rb +80 -61
- data/lib/chef/resource/windows_printer_port.rb +49 -66
- data/lib/chef/resource/windows_security_policy.rb +10 -10
- data/lib/chef/resource/windows_share.rb +14 -21
- data/lib/chef/resource/windows_shortcut.rb +4 -6
- data/lib/chef/resource/windows_task.rb +44 -17
- data/lib/chef/resource/windows_uac.rb +3 -5
- data/lib/chef/resource/windows_update_settings.rb +259 -0
- data/lib/chef/resource/windows_workgroup.rb +3 -4
- data/lib/chef/resource/yum_package.rb +11 -15
- data/lib/chef/resource/zypper_package.rb +4 -4
- data/lib/chef/resource/zypper_repository.rb +28 -8
- data/lib/chef/resource.rb +24 -27
- data/lib/chef/resource_builder.rb +8 -2
- data/lib/chef/resource_inspector.rb +6 -2
- data/lib/chef/resource_reporter.rb +1 -2
- data/lib/chef/resources.rb +15 -2
- data/lib/chef/run_context/cookbook_compiler.rb +112 -28
- data/lib/chef/run_context.rb +47 -1
- data/lib/chef/run_lock.rb +2 -2
- data/lib/chef/runner.rb +1 -1
- data/lib/chef/secret_fetcher/akeyless_vault.rb +57 -0
- data/lib/chef/secret_fetcher/aws_secrets_manager.rb +65 -0
- data/lib/chef/secret_fetcher/azure_key_vault.rb +134 -0
- data/lib/chef/secret_fetcher/base.rb +76 -0
- data/lib/chef/secret_fetcher/example.rb +46 -0
- data/lib/chef/secret_fetcher/hashi_vault.rb +134 -0
- data/lib/chef/secret_fetcher.rb +60 -0
- data/lib/chef/user.rb +0 -1
- data/lib/chef/user_v1.rb +3 -4
- data/lib/chef/util/dsc/configuration_generator.rb +2 -1
- data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +1 -1
- data/lib/chef/win32/registry.rb +4 -2
- data/spec/data/archive_file/test_archive.tar.gz +0 -0
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
- data/spec/data/lwrp/resources/bar.rb +2 -0
- data/spec/data/lwrp/resources/buck_passer.rb +1 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
- data/spec/data/lwrp/resources/foo.rb +2 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
- data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
- data/spec/data/lwrp_override/resources/foo.rb +1 -0
- data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
- data/spec/data/rubygems.org/sexp_processor-info +49 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/data/trusted_certs/example.crt +29 -20
- data/spec/data/trusted_certs/example_no_cn.crt +30 -34
- data/spec/data/trusted_certs/opscode.pem +33 -54
- data/spec/functional/assets/yumrepo/repodata/01a3b-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/401dc-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/5dc1e-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/6bf96-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/7c365-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/dabe2-primary.xml.gz +0 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +3 -3
- data/spec/functional/dsl/registry_helper_spec.rb +2 -2
- data/spec/functional/mixin/from_file_spec.rb +1 -1
- data/spec/functional/resource/aixinit_service_spec.rb +7 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -1
- data/spec/functional/resource/archive_file_spec.rb +88 -0
- data/spec/functional/resource/chocolatey_package_spec.rb +41 -20
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/dnf_package_spec.rb +997 -645
- data/spec/functional/resource/dpkg_package_spec.rb +16 -0
- data/spec/functional/resource/dsc_script_spec.rb +5 -5
- data/spec/functional/resource/group_spec.rb +39 -19
- data/spec/functional/resource/link_spec.rb +1 -1
- data/spec/functional/resource/macos_userdefaults_spec.rb +139 -0
- data/spec/functional/resource/powershell_package_source_spec.rb +5 -6
- data/spec/functional/resource/registry_spec.rb +89 -89
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/functional/resource/template_spec.rb +1 -1
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +122 -37
- data/spec/functional/resource/windows_env_spec.rb +2 -2
- data/spec/functional/resource/windows_font_spec.rb +1 -2
- data/spec/functional/resource/windows_hostname_spec.rb +91 -0
- data/spec/functional/resource/windows_pagefile_spec.rb +125 -0
- data/spec/functional/resource/yum_package_spec.rb +1197 -451
- data/spec/functional/resource/zypper_package_spec.rb +17 -0
- data/spec/functional/shell_spec.rb +1 -0
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +12 -9
- data/spec/integration/client/client_spec.rb +37 -23
- data/spec/integration/client/exit_code_spec.rb +1 -1
- data/spec/integration/client/fips_spec.rb +9 -1
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/client/open_ssl_spec.rb +20 -0
- data/spec/integration/compliance/compliance_spec.rb +62 -1
- data/spec/integration/ohai/ohai_spec.rb +7 -6
- data/spec/integration/recipes/accumulator_spec.rb +13 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
- data/spec/integration/recipes/lwrp_spec.rb +3 -1
- data/spec/integration/recipes/notifies_spec.rb +15 -1
- data/spec/integration/recipes/notifying_block_spec.rb +2 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +10 -10
- data/spec/integration/recipes/resource_action_spec.rb +6 -6
- data/spec/integration/recipes/unified_mode_spec.rb +71 -1
- data/spec/integration/recipes/use_partial_spec.rb +4 -1
- data/spec/spec_helper.rb +20 -18
- data/spec/support/chef_helpers.rb +1 -17
- data/spec/support/lib/chef/resource/with_state.rb +0 -1
- data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
- data/spec/support/lib/chef/resource/zen_master.rb +0 -1
- data/spec/support/matchers/leak.rb +7 -9
- data/spec/support/platform_helpers.rb +14 -13
- data/spec/support/ruby_installer.rb +51 -0
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +2 -2
- data/spec/support/shared/functional/http.rb +9 -9
- data/spec/support/shared/integration/integration_helper.rb +0 -1
- data/spec/support/shared/unit/provider/file.rb +3 -9
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +1 -1
- data/spec/support/shared/unit/script_resource.rb +2 -2
- data/spec/unit/application/base_spec.rb +40 -0
- data/spec/unit/application/solo_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +1 -1
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
- data/spec/unit/chef_fs/file_system_spec.rb +1 -1
- data/spec/unit/client_spec.rb +0 -16
- data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
- data/spec/unit/compliance/input_spec.rb +104 -0
- data/spec/unit/compliance/profile_spec.rb +120 -0
- data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
- data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +21 -1
- data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +4 -3
- data/spec/unit/compliance/runner_spec.rb +137 -6
- data/spec/unit/compliance/waiver_spec.rb +104 -0
- data/spec/unit/data_bag_item_spec.rb +1 -6
- data/spec/unit/dsl/reboot_pending_spec.rb +3 -3
- data/spec/unit/dsl/registry_helper_spec.rb +7 -7
- data/spec/unit/dsl/render_helpers_spec.rb +102 -0
- data/spec/unit/dsl/secret_spec.rb +175 -0
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/formatters/doc_spec.rb +1 -1
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
- data/spec/unit/handler_spec.rb +8 -2
- data/spec/unit/http/basic_client_spec.rb +30 -0
- data/spec/unit/http_spec.rb +8 -2
- data/spec/unit/lwrp_spec.rb +3 -3
- data/spec/unit/mixin/default_paths_spec.rb +1 -1
- data/spec/unit/mixin/homebrew_user_spec.rb +30 -7
- data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -3
- data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
- data/spec/unit/mixin/powershell_out_spec.rb +2 -2
- data/spec/unit/mixin/securable_spec.rb +3 -3
- data/spec/unit/mixin/why_run_spec.rb +53 -0
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/node_spec.rb +78 -0
- data/spec/unit/org_group_spec.rb +45 -0
- data/spec/unit/platform/query_helpers_spec.rb +5 -5
- data/spec/unit/policy_builder/dynamic_spec.rb +0 -5
- data/spec/unit/policy_builder/policyfile_spec.rb +133 -55
- data/spec/unit/property_spec.rb +23 -22
- data/spec/unit/provider/apt_update_spec.rb +3 -1
- data/spec/unit/provider/cron_spec.rb +46 -1
- data/spec/unit/provider/dsc_script_spec.rb +8 -8
- data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
- data/spec/unit/provider/group/groupadd_spec.rb +1 -0
- data/spec/unit/provider/group/groupmod_spec.rb +2 -2
- data/spec/unit/provider/group/pw_spec.rb +2 -2
- data/spec/unit/provider/group/usermod_spec.rb +4 -4
- data/spec/unit/provider/group_spec.rb +1 -1
- data/spec/unit/provider/ifconfig/aix_spec.rb +14 -14
- data/spec/unit/provider/ifconfig/debian_spec.rb +1 -1
- data/spec/unit/provider/ifconfig/redhat_spec.rb +1 -1
- data/spec/unit/provider/ifconfig_spec.rb +5 -3
- data/spec/unit/provider/link_spec.rb +14 -8
- data/spec/unit/provider/mount/aix_spec.rb +1 -1
- data/spec/unit/provider/mount/linux_spec.rb +16 -3
- data/spec/unit/provider/package/apt_spec.rb +84 -18
- data/spec/unit/provider/package/bff_spec.rb +1 -0
- data/spec/unit/provider/package/chocolatey_spec.rb +20 -3
- data/spec/unit/provider/package/deb_spec.rb +3 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -0
- data/spec/unit/provider/package/powershell_spec.rb +114 -114
- data/spec/unit/provider/package/rubygems_spec.rb +27 -36
- data/spec/unit/provider/package/solaris_spec.rb +1 -0
- data/spec/unit/provider/package/windows_spec.rb +1 -1
- data/spec/unit/provider/package/yum/python_helper_spec.rb +1 -0
- data/spec/unit/provider/registry_key_spec.rb +4 -4
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +3 -3
- data/spec/unit/provider/remote_file/http_spec.rb +10 -0
- data/spec/unit/provider/service/arch_service_spec.rb +3 -2
- data/spec/unit/provider/service/debian_service_spec.rb +2 -0
- data/spec/unit/provider/service/gentoo_service_spec.rb +3 -2
- data/spec/unit/provider/service/macosx_spec.rb +3 -2
- data/spec/unit/provider/service/redhat_spec.rb +4 -1
- data/spec/unit/provider/service/simple_service_spec.rb +6 -4
- data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -32
- data/spec/unit/provider/service/windows_spec.rb +7 -7
- data/spec/unit/provider/subversion_spec.rb +6 -6
- data/spec/unit/provider/systemd_unit_spec.rb +79 -60
- data/spec/unit/provider/template_spec.rb +2 -2
- data/spec/unit/provider/user/linux_spec.rb +55 -0
- data/spec/unit/provider/user/solaris_spec.rb +1 -1
- data/spec/unit/provider/user_spec.rb +2 -0
- data/spec/unit/provider/windows_env_spec.rb +1 -1
- data/spec/unit/provider/zypper_repository_spec.rb +6 -13
- data/spec/unit/provider_spec.rb +23 -8
- data/spec/unit/resource/archive_file_spec.rb +400 -2
- data/spec/unit/resource/chef_client_config_spec.rb +8 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +69 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +1 -1
- data/spec/unit/resource/chocolatey_config_spec.rb +1 -1
- data/spec/unit/resource/chocolatey_feature_spec.rb +1 -1
- data/spec/unit/resource/chocolatey_source_spec.rb +1 -1
- data/spec/unit/resource/conditional_spec.rb +4 -4
- data/spec/unit/resource/dpkg_package_spec.rb +12 -0
- data/spec/unit/resource/file/verification/json_spec.rb +72 -0
- data/spec/unit/resource/file/verification/yaml_spec.rb +67 -0
- data/spec/unit/resource/inspec_input_spec.rb +300 -0
- data/spec/unit/resource/inspec_waiver_file_entry_spec.rb +80 -0
- data/spec/unit/resource/inspec_waiver_spec.rb +312 -0
- data/spec/unit/resource/kernel_module_spec.rb +2 -1
- data/spec/unit/resource/macos_user_defaults_spec.rb +36 -96
- data/spec/unit/resource/powershell_package_source_spec.rb +63 -62
- data/spec/unit/resource/powershell_script_spec.rb +2 -2
- data/spec/unit/resource/registry_key_spec.rb +10 -10
- data/spec/unit/resource/rhsm_register_spec.rb +42 -0
- data/spec/unit/resource/windows_auto_run_spec.rb +1 -1
- data/spec/unit/resource/windows_defender_exclusion_spec.rb +62 -0
- data/spec/unit/resource/windows_defender_spec.rb +71 -0
- data/spec/unit/resource/windows_feature_powershell_spec.rb +1 -1
- data/spec/unit/resource/windows_firewall_rule_spec.rb +14 -9
- data/spec/unit/resource/windows_pagefile_spec.rb +4 -9
- data/spec/unit/resource/windows_task_spec.rb +4 -4
- data/spec/unit/resource/windows_update_settings_spec.rb +64 -0
- data/spec/unit/resource/zypper_repository_spec.rb +1 -1
- data/spec/unit/resource_reporter_spec.rb +2 -2
- data/spec/unit/resource_spec.rb +56 -23
- data/spec/unit/run_context_spec.rb +16 -0
- data/spec/unit/secret_fetcher/akeyless_vault_spec.rb +37 -0
- data/spec/unit/secret_fetcher/aws_secrets_manager_spec.rb +70 -0
- data/spec/unit/secret_fetcher/azure_key_vault_spec.rb +149 -0
- data/spec/unit/secret_fetcher/hashi_vault_spec.rb +126 -0
- data/spec/unit/secret_fetcher_spec.rb +82 -0
- data/spec/unit/user_spec.rb +1 -1
- data/spec/unit/user_v1_spec.rb +6 -4
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
- data/spec/unit/win32/registry_spec.rb +3 -3
- data/tasks/rspec.rb +10 -6
- metadata +181 -532
- data/bin/knife +0 -24
- data/lib/chef/application/knife.rb +0 -234
- data/lib/chef/application/windows_service.rb +0 -338
- data/lib/chef/application/windows_service_manager.rb +0 -205
- data/lib/chef/chef_fs/knife.rb +0 -160
- data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
- data/lib/chef/chef_fs/parallelizer.rb +0 -102
- data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
- data/lib/chef/knife/acl_add.rb +0 -57
- data/lib/chef/knife/acl_base.rb +0 -183
- data/lib/chef/knife/acl_bulk_add.rb +0 -78
- data/lib/chef/knife/acl_bulk_remove.rb +0 -83
- data/lib/chef/knife/acl_remove.rb +0 -62
- data/lib/chef/knife/acl_show.rb +0 -56
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
- data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
- data/lib/chef/knife/bootstrap/templates/README.md +0 -11
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
- data/lib/chef/knife/bootstrap.rb +0 -1192
- data/lib/chef/knife/client_bulk_delete.rb +0 -104
- data/lib/chef/knife/client_create.rb +0 -101
- data/lib/chef/knife/client_delete.rb +0 -62
- data/lib/chef/knife/client_edit.rb +0 -52
- data/lib/chef/knife/client_key_create.rb +0 -73
- data/lib/chef/knife/client_key_delete.rb +0 -80
- data/lib/chef/knife/client_key_edit.rb +0 -83
- data/lib/chef/knife/client_key_list.rb +0 -73
- data/lib/chef/knife/client_key_show.rb +0 -80
- data/lib/chef/knife/client_list.rb +0 -41
- data/lib/chef/knife/client_reregister.rb +0 -58
- data/lib/chef/knife/config_get.rb +0 -39
- data/lib/chef/knife/config_get_profile.rb +0 -37
- data/lib/chef/knife/config_list.rb +0 -139
- data/lib/chef/knife/config_list_profiles.rb +0 -37
- data/lib/chef/knife/config_show.rb +0 -127
- data/lib/chef/knife/config_use.rb +0 -61
- data/lib/chef/knife/config_use_profile.rb +0 -47
- data/lib/chef/knife/configure.rb +0 -150
- data/lib/chef/knife/configure_client.rb +0 -48
- data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
- data/lib/chef/knife/cookbook_delete.rb +0 -151
- data/lib/chef/knife/cookbook_download.rb +0 -142
- data/lib/chef/knife/cookbook_list.rb +0 -47
- data/lib/chef/knife/cookbook_metadata.rb +0 -106
- data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
- data/lib/chef/knife/cookbook_show.rb +0 -98
- data/lib/chef/knife/cookbook_upload.rb +0 -292
- data/lib/chef/knife/core/bootstrap_context.rb +0 -264
- data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
- data/lib/chef/knife/core/formatting_options.rb +0 -49
- data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
- data/lib/chef/knife/core/generic_presenter.rb +0 -232
- data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
- data/lib/chef/knife/core/node_editor.rb +0 -130
- data/lib/chef/knife/core/node_presenter.rb +0 -133
- data/lib/chef/knife/core/object_loader.rb +0 -115
- data/lib/chef/knife/core/status_presenter.rb +0 -147
- data/lib/chef/knife/core/subcommand_loader.rb +0 -203
- data/lib/chef/knife/core/text_formatter.rb +0 -85
- data/lib/chef/knife/core/ui.rb +0 -338
- data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
- data/lib/chef/knife/data_bag_create.rb +0 -81
- data/lib/chef/knife/data_bag_delete.rb +0 -49
- data/lib/chef/knife/data_bag_edit.rb +0 -74
- data/lib/chef/knife/data_bag_from_file.rb +0 -113
- data/lib/chef/knife/data_bag_secret_options.rb +0 -122
- data/lib/chef/knife/data_bag_show.rb +0 -69
- data/lib/chef/knife/delete.rb +0 -125
- data/lib/chef/knife/deps.rb +0 -156
- data/lib/chef/knife/diff.rb +0 -83
- data/lib/chef/knife/download.rb +0 -84
- data/lib/chef/knife/edit.rb +0 -88
- data/lib/chef/knife/environment_compare.rb +0 -128
- data/lib/chef/knife/environment_create.rb +0 -52
- data/lib/chef/knife/environment_delete.rb +0 -44
- data/lib/chef/knife/environment_edit.rb +0 -44
- data/lib/chef/knife/environment_from_file.rb +0 -84
- data/lib/chef/knife/environment_list.rb +0 -41
- data/lib/chef/knife/environment_show.rb +0 -47
- data/lib/chef/knife/exec.rb +0 -99
- data/lib/chef/knife/group_add.rb +0 -55
- data/lib/chef/knife/group_create.rb +0 -49
- data/lib/chef/knife/group_destroy.rb +0 -53
- data/lib/chef/knife/group_remove.rb +0 -56
- data/lib/chef/knife/group_show.rb +0 -49
- data/lib/chef/knife/key_create.rb +0 -112
- data/lib/chef/knife/key_create_base.rb +0 -50
- data/lib/chef/knife/key_delete.rb +0 -55
- data/lib/chef/knife/key_edit.rb +0 -118
- data/lib/chef/knife/key_edit_base.rb +0 -55
- data/lib/chef/knife/key_list.rb +0 -90
- data/lib/chef/knife/key_list_base.rb +0 -45
- data/lib/chef/knife/key_show.rb +0 -53
- data/lib/chef/knife/list.rb +0 -177
- data/lib/chef/knife/node_bulk_delete.rb +0 -75
- data/lib/chef/knife/node_create.rb +0 -47
- data/lib/chef/knife/node_delete.rb +0 -46
- data/lib/chef/knife/node_edit.rb +0 -70
- data/lib/chef/knife/node_environment_set.rb +0 -53
- data/lib/chef/knife/node_from_file.rb +0 -51
- data/lib/chef/knife/node_list.rb +0 -44
- data/lib/chef/knife/node_policy_set.rb +0 -79
- data/lib/chef/knife/node_run_list_add.rb +0 -104
- data/lib/chef/knife/node_run_list_remove.rb +0 -67
- data/lib/chef/knife/node_run_list_set.rb +0 -66
- data/lib/chef/knife/node_show.rb +0 -63
- data/lib/chef/knife/null.rb +0 -12
- data/lib/chef/knife/raw.rb +0 -123
- data/lib/chef/knife/rehash.rb +0 -50
- data/lib/chef/knife/role_bulk_delete.rb +0 -66
- data/lib/chef/knife/role_create.rb +0 -53
- data/lib/chef/knife/role_delete.rb +0 -46
- data/lib/chef/knife/role_edit.rb +0 -45
- data/lib/chef/knife/role_env_run_list_add.rb +0 -87
- data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
- data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
- data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
- data/lib/chef/knife/role_env_run_list_set.rb +0 -70
- data/lib/chef/knife/role_from_file.rb +0 -51
- data/lib/chef/knife/role_list.rb +0 -42
- data/lib/chef/knife/role_run_list_add.rb +0 -87
- data/lib/chef/knife/role_run_list_clear.rb +0 -55
- data/lib/chef/knife/role_run_list_remove.rb +0 -56
- data/lib/chef/knife/role_run_list_replace.rb +0 -60
- data/lib/chef/knife/role_run_list_set.rb +0 -69
- data/lib/chef/knife/role_show.rb +0 -48
- data/lib/chef/knife/search.rb +0 -194
- data/lib/chef/knife/serve.rb +0 -65
- data/lib/chef/knife/show.rb +0 -72
- data/lib/chef/knife/ssh.rb +0 -645
- data/lib/chef/knife/ssl_check.rb +0 -284
- data/lib/chef/knife/ssl_fetch.rb +0 -161
- data/lib/chef/knife/status.rb +0 -95
- data/lib/chef/knife/supermarket_download.rb +0 -121
- data/lib/chef/knife/supermarket_install.rb +0 -192
- data/lib/chef/knife/supermarket_list.rb +0 -76
- data/lib/chef/knife/supermarket_search.rb +0 -53
- data/lib/chef/knife/supermarket_share.rb +0 -166
- data/lib/chef/knife/supermarket_show.rb +0 -66
- data/lib/chef/knife/supermarket_unshare.rb +0 -61
- data/lib/chef/knife/tag_create.rb +0 -52
- data/lib/chef/knife/tag_delete.rb +0 -60
- data/lib/chef/knife/tag_list.rb +0 -47
- data/lib/chef/knife/upload.rb +0 -86
- data/lib/chef/knife/user_create.rb +0 -107
- data/lib/chef/knife/user_delete.rb +0 -44
- data/lib/chef/knife/user_dissociate.rb +0 -42
- data/lib/chef/knife/user_edit.rb +0 -52
- data/lib/chef/knife/user_invite_add.rb +0 -43
- data/lib/chef/knife/user_invite_list.rb +0 -34
- data/lib/chef/knife/user_invite_rescind.rb +0 -63
- data/lib/chef/knife/user_key_create.rb +0 -73
- data/lib/chef/knife/user_key_delete.rb +0 -80
- data/lib/chef/knife/user_key_edit.rb +0 -83
- data/lib/chef/knife/user_key_list.rb +0 -73
- data/lib/chef/knife/user_key_show.rb +0 -80
- data/lib/chef/knife/user_list.rb +0 -42
- data/lib/chef/knife/user_reregister.rb +0 -59
- data/lib/chef/knife/user_show.rb +0 -48
- data/lib/chef/knife/xargs.rb +0 -282
- data/lib/chef/knife/yaml_convert.rb +0 -91
- data/lib/chef/knife.rb +0 -665
- data/lib/chef/provider/group/suse.rb +0 -82
- data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +0 -79
- data/lib/chef/provider/package/yum/simplejson/__init__.py +0 -318
- data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/decoder.py +0 -354
- data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/encoder.py +0 -440
- data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/scanner.py +0 -65
- data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/tool.py +0 -37
- data/spec/functional/knife/configure_spec.rb +0 -33
- data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
- data/spec/functional/knife/exec_spec.rb +0 -55
- data/spec/functional/knife/rehash_spec.rb +0 -39
- data/spec/functional/knife/smoke_test.rb +0 -42
- data/spec/functional/knife/ssh_spec.rb +0 -352
- data/spec/functional/resource/user/dscl_spec.rb +0 -188
- data/spec/functional/resource/windows_service_spec.rb +0 -105
- data/spec/functional/win32/service_manager_spec.rb +0 -220
- data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
- data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
- data/spec/integration/knife/chefignore_spec.rb +0 -301
- data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
- data/spec/integration/knife/client_create_spec.rb +0 -70
- data/spec/integration/knife/client_delete_spec.rb +0 -64
- data/spec/integration/knife/client_key_create_spec.rb +0 -66
- data/spec/integration/knife/client_key_delete_spec.rb +0 -43
- data/spec/integration/knife/client_key_list_spec.rb +0 -61
- data/spec/integration/knife/client_key_show_spec.rb +0 -45
- data/spec/integration/knife/client_list_spec.rb +0 -49
- data/spec/integration/knife/client_show_spec.rb +0 -37
- data/spec/integration/knife/common_options_spec.rb +0 -174
- data/spec/integration/knife/config_list_spec.rb +0 -220
- data/spec/integration/knife/config_show_spec.rb +0 -192
- data/spec/integration/knife/config_use_spec.rb +0 -198
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
- data/spec/integration/knife/cookbook_download_spec.rb +0 -72
- data/spec/integration/knife/cookbook_list_spec.rb +0 -55
- data/spec/integration/knife/cookbook_show_spec.rb +0 -149
- data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
- data/spec/integration/knife/data_bag_create_spec.rb +0 -125
- data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
- data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
- data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
- data/spec/integration/knife/data_bag_list_spec.rb +0 -44
- data/spec/integration/knife/data_bag_show_spec.rb +0 -95
- data/spec/integration/knife/delete_spec.rb +0 -1018
- data/spec/integration/knife/deps_spec.rb +0 -703
- data/spec/integration/knife/diff_spec.rb +0 -605
- data/spec/integration/knife/download_spec.rb +0 -1336
- data/spec/integration/knife/environment_compare_spec.rb +0 -75
- data/spec/integration/knife/environment_create_spec.rb +0 -41
- data/spec/integration/knife/environment_delete_spec.rb +0 -37
- data/spec/integration/knife/environment_from_file_spec.rb +0 -116
- data/spec/integration/knife/environment_list_spec.rb +0 -42
- data/spec/integration/knife/environment_show_spec.rb +0 -77
- data/spec/integration/knife/list_spec.rb +0 -1060
- data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
- data/spec/integration/knife/node_create_spec.rb +0 -47
- data/spec/integration/knife/node_delete_spec.rb +0 -48
- data/spec/integration/knife/node_environment_set_spec.rb +0 -46
- data/spec/integration/knife/node_from_file_spec.rb +0 -59
- data/spec/integration/knife/node_list_spec.rb +0 -45
- data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
- data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
- data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
- data/spec/integration/knife/node_show_spec.rb +0 -36
- data/spec/integration/knife/raw_spec.rb +0 -297
- data/spec/integration/knife/redirection_spec.rb +0 -64
- data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
- data/spec/integration/knife/role_create_spec.rb +0 -41
- data/spec/integration/knife/role_delete_spec.rb +0 -48
- data/spec/integration/knife/role_from_file_spec.rb +0 -96
- data/spec/integration/knife/role_list_spec.rb +0 -45
- data/spec/integration/knife/role_show_spec.rb +0 -51
- data/spec/integration/knife/search_node_spec.rb +0 -40
- data/spec/integration/knife/serve_spec.rb +0 -92
- data/spec/integration/knife/show_spec.rb +0 -197
- data/spec/integration/knife/upload_spec.rb +0 -1616
- data/spec/support/shared/functional/win32_service.rb +0 -57
- data/spec/unit/application/knife_spec.rb +0 -241
- data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
- data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
- data/spec/unit/knife/bootstrap_spec.rb +0 -2220
- data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
- data/spec/unit/knife/client_create_spec.rb +0 -169
- data/spec/unit/knife/client_delete_spec.rb +0 -99
- data/spec/unit/knife/client_edit_spec.rb +0 -53
- data/spec/unit/knife/client_list_spec.rb +0 -34
- data/spec/unit/knife/client_reregister_spec.rb +0 -62
- data/spec/unit/knife/client_show_spec.rb +0 -52
- data/spec/unit/knife/configure_client_spec.rb +0 -81
- data/spec/unit/knife/configure_spec.rb +0 -190
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
- data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
- data/spec/unit/knife/cookbook_download_spec.rb +0 -255
- data/spec/unit/knife/cookbook_list_spec.rb +0 -88
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
- data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
- data/spec/unit/knife/cookbook_show_spec.rb +0 -253
- data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
- data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
- data/spec/unit/knife/core/node_editor_spec.rb +0 -211
- data/spec/unit/knife/core/object_loader_spec.rb +0 -81
- data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
- data/spec/unit/knife/core/ui_spec.rb +0 -656
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
- data/spec/unit/knife/data_bag_create_spec.rb +0 -175
- data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
- data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
- data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
- data/spec/unit/knife/data_bag_show_spec.rb +0 -139
- data/spec/unit/knife/environment_compare_spec.rb +0 -112
- data/spec/unit/knife/environment_create_spec.rb +0 -91
- data/spec/unit/knife/environment_delete_spec.rb +0 -71
- data/spec/unit/knife/environment_edit_spec.rb +0 -79
- data/spec/unit/knife/environment_from_file_spec.rb +0 -90
- data/spec/unit/knife/environment_list_spec.rb +0 -54
- data/spec/unit/knife/environment_show_spec.rb +0 -52
- data/spec/unit/knife/key_create_spec.rb +0 -223
- data/spec/unit/knife/key_delete_spec.rb +0 -133
- data/spec/unit/knife/key_edit_spec.rb +0 -264
- data/spec/unit/knife/key_helper.rb +0 -74
- data/spec/unit/knife/key_list_spec.rb +0 -216
- data/spec/unit/knife/key_show_spec.rb +0 -126
- data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
- data/spec/unit/knife/node_delete_spec.rb +0 -77
- data/spec/unit/knife/node_edit_spec.rb +0 -116
- data/spec/unit/knife/node_environment_set_spec.rb +0 -61
- data/spec/unit/knife/node_from_file_spec.rb +0 -59
- data/spec/unit/knife/node_list_spec.rb +0 -62
- data/spec/unit/knife/node_policy_set_spec.rb +0 -122
- data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
- data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
- data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
- data/spec/unit/knife/node_show_spec.rb +0 -65
- data/spec/unit/knife/raw_spec.rb +0 -43
- data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
- data/spec/unit/knife/role_create_spec.rb +0 -80
- data/spec/unit/knife/role_delete_spec.rb +0 -67
- data/spec/unit/knife/role_edit_spec.rb +0 -77
- data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
- data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
- data/spec/unit/knife/role_from_file_spec.rb +0 -69
- data/spec/unit/knife/role_list_spec.rb +0 -54
- data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
- data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
- data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
- data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
- data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
- data/spec/unit/knife/role_show_spec.rb +0 -59
- data/spec/unit/knife/ssh_spec.rb +0 -403
- data/spec/unit/knife/ssl_check_spec.rb +0 -256
- data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
- data/spec/unit/knife/status_spec.rb +0 -112
- data/spec/unit/knife/supermarket_download_spec.rb +0 -152
- data/spec/unit/knife/supermarket_install_spec.rb +0 -202
- data/spec/unit/knife/supermarket_list_spec.rb +0 -70
- data/spec/unit/knife/supermarket_search_spec.rb +0 -85
- data/spec/unit/knife/supermarket_share_spec.rb +0 -208
- data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
- data/spec/unit/knife/tag_create_spec.rb +0 -23
- data/spec/unit/knife/tag_delete_spec.rb +0 -25
- data/spec/unit/knife/tag_list_spec.rb +0 -23
- data/spec/unit/knife/user_create_spec.rb +0 -184
- data/spec/unit/knife/user_delete_spec.rb +0 -46
- data/spec/unit/knife/user_edit_spec.rb +0 -48
- data/spec/unit/knife/user_list_spec.rb +0 -36
- data/spec/unit/knife/user_reregister_spec.rb +0 -56
- data/spec/unit/knife/user_show_spec.rb +0 -46
- data/spec/unit/knife_spec.rb +0 -634
- data/spec/unit/provider/group/suse_spec.rb +0 -90
- data/spec/unit/provider/user/dscl_spec.rb +0 -699
- data/spec/unit/windows_service_spec.rb +0 -118
- /data/spec/functional/assets/chocolatey_feed/{test-A.1.0.nupkg → test-A.1.0.0.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-A.1.5.nupkg → test-A.1.5.0.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-A.2.0.nupkg → test-A.2.0.0.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-B.1.0.nupkg → test-B.1.0.0.nupkg} +0 -0
|
@@ -9,7 +9,7 @@ class NoActionJackson < Chef::Resource
|
|
|
9
9
|
@foo
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
class <<self
|
|
12
|
+
class << self
|
|
13
13
|
attr_accessor :action_was
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -17,7 +17,7 @@ end
|
|
|
17
17
|
class WeirdActionJackson < Chef::Resource
|
|
18
18
|
provides :weird_action_jackson
|
|
19
19
|
|
|
20
|
-
class <<self
|
|
20
|
+
class << self
|
|
21
21
|
attr_accessor :action_was
|
|
22
22
|
end
|
|
23
23
|
|
|
@@ -176,7 +176,7 @@ module ResourceActionSpec
|
|
|
176
176
|
@blarghle
|
|
177
177
|
end
|
|
178
178
|
|
|
179
|
-
class <<self
|
|
179
|
+
class << self
|
|
180
180
|
attr_accessor :ran_action
|
|
181
181
|
attr_accessor :succeeded
|
|
182
182
|
attr_accessor :ruby_block_converged
|
|
@@ -284,7 +284,7 @@ module ResourceActionSpec
|
|
|
284
284
|
@bar = "#{value}alope" if value
|
|
285
285
|
@bar
|
|
286
286
|
end
|
|
287
|
-
class <<self
|
|
287
|
+
class << self
|
|
288
288
|
attr_accessor :load_current_resource_ran
|
|
289
289
|
attr_accessor :jackalope_ran
|
|
290
290
|
end
|
|
@@ -354,8 +354,8 @@ module ResourceActionSpec
|
|
|
354
354
|
end
|
|
355
355
|
|
|
356
356
|
it "allows overridden action to have a description separate from the action defined in the base resource" do
|
|
357
|
-
expect(ActionJackson.action_description(:test1)).to eql "Original description"
|
|
358
|
-
expect(ActionJackalope.action_description(:test1)).to eql "An old action with a new description"
|
|
357
|
+
expect(ActionJackson.new("ActionJackson", nil).action_description(:test1)).to eql "Original description"
|
|
358
|
+
expect(ActionJackalope.new("ActionJackalope", nil).action_description(:test1)).to eql "An old action with a new description"
|
|
359
359
|
end
|
|
360
360
|
|
|
361
361
|
it "non-overridden actions run and can access overridden and non-overridden variables (but not necessarily new ones)" do
|
|
@@ -6,7 +6,7 @@ describe "Unified Mode" do
|
|
|
6
6
|
include IntegrationSupport
|
|
7
7
|
include Chef::Mixin::ShellOut
|
|
8
8
|
|
|
9
|
-
let(:chef_dir) { File.expand_path("
|
|
9
|
+
let(:chef_dir) { File.expand_path("../../..", __dir__) }
|
|
10
10
|
|
|
11
11
|
let(:chef_client) { "bundle exec chef-client --minimal-ohai" }
|
|
12
12
|
|
|
@@ -874,4 +874,74 @@ describe "Unified Mode" do
|
|
|
874
874
|
result.error!
|
|
875
875
|
end
|
|
876
876
|
end
|
|
877
|
+
|
|
878
|
+
when_the_repository "has a resource that uses edit_resource to create a subresource" do
|
|
879
|
+
before do
|
|
880
|
+
directory "cookbooks/x" do
|
|
881
|
+
file "recipes/default.rb", <<~EOM
|
|
882
|
+
my_resource "doit"
|
|
883
|
+
EOM
|
|
884
|
+
|
|
885
|
+
file "resources/my_resource.rb", <<~EOM
|
|
886
|
+
unified_mode true
|
|
887
|
+
provides :my_resource
|
|
888
|
+
|
|
889
|
+
action :doit do
|
|
890
|
+
edit_resource(:log, "name") do
|
|
891
|
+
message "GOOD"
|
|
892
|
+
level :warn
|
|
893
|
+
end
|
|
894
|
+
end
|
|
895
|
+
EOM
|
|
896
|
+
end
|
|
897
|
+
end
|
|
898
|
+
|
|
899
|
+
it "recipes should still have a compile/converge mode" do
|
|
900
|
+
file "config/client.rb", <<~EOM
|
|
901
|
+
local_mode true
|
|
902
|
+
cookbook_path "#{path_to("cookbooks")}"
|
|
903
|
+
log_level :warn
|
|
904
|
+
EOM
|
|
905
|
+
|
|
906
|
+
result = shell_out("#{chef_client} -c \"#{path_to("config/client.rb")}\" --no-color -F doc -o 'x::default'", cwd: chef_dir)
|
|
907
|
+
# in recipe mode we should still run normally with a compile/converge mode
|
|
908
|
+
expect(result.stdout).to include("GOOD")
|
|
909
|
+
result.error!
|
|
910
|
+
end
|
|
911
|
+
end
|
|
912
|
+
|
|
913
|
+
when_the_repository "has a resource that uses find_resource to create a subresource" do
|
|
914
|
+
before do
|
|
915
|
+
directory "cookbooks/x" do
|
|
916
|
+
file "recipes/default.rb", <<~EOM
|
|
917
|
+
my_resource "doit"
|
|
918
|
+
EOM
|
|
919
|
+
|
|
920
|
+
file "resources/my_resource.rb", <<~EOM
|
|
921
|
+
unified_mode true
|
|
922
|
+
provides :my_resource
|
|
923
|
+
|
|
924
|
+
action :doit do
|
|
925
|
+
find_resource(:log, "name") do
|
|
926
|
+
message "GOOD"
|
|
927
|
+
level :warn
|
|
928
|
+
end
|
|
929
|
+
end
|
|
930
|
+
EOM
|
|
931
|
+
end
|
|
932
|
+
end
|
|
933
|
+
|
|
934
|
+
it "recipes should still have a compile/converge mode" do
|
|
935
|
+
file "config/client.rb", <<~EOM
|
|
936
|
+
local_mode true
|
|
937
|
+
cookbook_path "#{path_to("cookbooks")}"
|
|
938
|
+
log_level :warn
|
|
939
|
+
EOM
|
|
940
|
+
|
|
941
|
+
result = shell_out("#{chef_client} -c \"#{path_to("config/client.rb")}\" --no-color -F doc -o 'x::default'", cwd: chef_dir)
|
|
942
|
+
# in recipe mode we should still run normally with a compile/converge mode
|
|
943
|
+
expect(result.stdout).to include("GOOD")
|
|
944
|
+
result.error!
|
|
945
|
+
end
|
|
946
|
+
end
|
|
877
947
|
end
|
|
@@ -22,7 +22,7 @@ describe "notifying_block" do
|
|
|
22
22
|
include IntegrationSupport
|
|
23
23
|
include Chef::Mixin::ShellOut
|
|
24
24
|
|
|
25
|
-
let(:chef_dir) { File.expand_path("
|
|
25
|
+
let(:chef_dir) { File.expand_path("../../..", __dir__) }
|
|
26
26
|
let(:chef_client) { "bundle exec chef-client --minimal-ohai" }
|
|
27
27
|
|
|
28
28
|
when_the_repository "has a cookbook with partial resources" do
|
|
@@ -37,6 +37,7 @@ describe "notifying_block" do
|
|
|
37
37
|
end
|
|
38
38
|
EOM
|
|
39
39
|
file "resources/thing.rb", <<-EOM
|
|
40
|
+
unified_mode true
|
|
40
41
|
provides :thing
|
|
41
42
|
use "shared_properties"
|
|
42
43
|
action_class do
|
|
@@ -80,6 +81,8 @@ describe "notifying_block" do
|
|
|
80
81
|
EOM
|
|
81
82
|
# this tests relative pathing, including the underscore and including the trailing .rb all work
|
|
82
83
|
file "resources/thing.rb", <<-EOM
|
|
84
|
+
unified_mode true
|
|
85
|
+
|
|
83
86
|
provides :thing
|
|
84
87
|
use "../partials/_shared_properties.rb"
|
|
85
88
|
action_class do
|
data/spec/spec_helper.rb
CHANGED
|
@@ -24,6 +24,9 @@ module Shell
|
|
|
24
24
|
IRB = nil unless defined? IRB
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
# show the deprecation warnings
|
|
28
|
+
Warning[:deprecated] = true
|
|
29
|
+
|
|
27
30
|
$LOAD_PATH.unshift File.expand_path("..", __dir__)
|
|
28
31
|
|
|
29
32
|
$LOAD_PATH.unshift File.expand_path("../chef-config/lib", __dir__)
|
|
@@ -35,12 +38,6 @@ require "rexml/document"
|
|
|
35
38
|
require "webmock/rspec"
|
|
36
39
|
|
|
37
40
|
require "chef"
|
|
38
|
-
require "chef/knife"
|
|
39
|
-
|
|
40
|
-
Dir["lib/chef/knife/**/*.rb"]
|
|
41
|
-
.map { |f| f.gsub("lib/", "") }
|
|
42
|
-
.map { |f| f.gsub(/\.rb$/, "") }
|
|
43
|
-
.each { |f| require f }
|
|
44
41
|
|
|
45
42
|
require "chef/resource_resolver"
|
|
46
43
|
require "chef/provider_resolver"
|
|
@@ -71,6 +68,7 @@ end
|
|
|
71
68
|
require "spec/support/local_gems" if File.exist?(File.join(File.dirname(__FILE__), "support", "local_gems.rb"))
|
|
72
69
|
|
|
73
70
|
# Explicitly require spec helpers that need to load first
|
|
71
|
+
require "spec/support/ruby_installer"
|
|
74
72
|
require "spec/support/platform_helpers"
|
|
75
73
|
require "spec/support/shared/unit/mock_shellout"
|
|
76
74
|
|
|
@@ -80,8 +78,9 @@ require "spec/support/recipe_dsl_helper"
|
|
|
80
78
|
# Excludes support/platforms by default
|
|
81
79
|
# Do not change the gsub.
|
|
82
80
|
Dir["spec/support/**/*.rb"]
|
|
83
|
-
.
|
|
84
|
-
.
|
|
81
|
+
.grep_v(%r{^spec/support/platforms})
|
|
82
|
+
.grep_v(%r{^spec/support/pedant})
|
|
83
|
+
.grep_v(%r{^spec/support/shared/integration/knife_support})
|
|
85
84
|
.map { |f| f.gsub(/.rb$/, "") }
|
|
86
85
|
.map { |f| f.gsub(%r{spec/}, "") }
|
|
87
86
|
.each { |f| require f }
|
|
@@ -139,16 +138,13 @@ RSpec.configure do |config|
|
|
|
139
138
|
|
|
140
139
|
config.filter_run_excluding skip_buildkite: true if ENV["BUILDKITE"]
|
|
141
140
|
|
|
142
|
-
config.filter_run_excluding fips_mode: !fips_mode_build?
|
|
143
|
-
# RubyDistros OpenSUSE docker images have a broken fips
|
|
144
|
-
config.filter_run_excluding :fips_mode if opensuse?
|
|
141
|
+
config.filter_run_excluding fips_mode: !fips_mode_build?
|
|
145
142
|
|
|
143
|
+
config.filter_run_excluding not_supported_on_freebsd_gte_12_3: true if freebsd_gte_12_3?
|
|
146
144
|
config.filter_run_excluding windows_only: true unless windows?
|
|
147
145
|
config.filter_run_excluding not_supported_on_windows: true if windows?
|
|
148
146
|
config.filter_run_excluding not_supported_on_macos: true if macos?
|
|
149
147
|
config.filter_run_excluding macos_only: true unless macos?
|
|
150
|
-
config.filter_run_excluding macos_1013: true unless macos_1013?
|
|
151
|
-
config.filter_run_excluding macos_gte_1014: true unless macos_gte_1014?
|
|
152
148
|
config.filter_run_excluding not_macos_gte_11: true if macos_gte_11?
|
|
153
149
|
config.filter_run_excluding not_supported_on_aix: true if aix?
|
|
154
150
|
config.filter_run_excluding not_supported_on_solaris: true if solaris?
|
|
@@ -164,16 +160,14 @@ RSpec.configure do |config|
|
|
|
164
160
|
config.filter_run_excluding windows_powershell_no_dsc_only: true if windows_powershell_dsc?
|
|
165
161
|
config.filter_run_excluding windows_domain_joined_only: true unless windows_domain_joined?
|
|
166
162
|
config.filter_run_excluding windows_not_domain_joined_only: true if windows_domain_joined?
|
|
167
|
-
|
|
168
|
-
# testers. If we ever fix it we should restore it.
|
|
169
|
-
# config.filter_run_excluding :windows_service_requires_assign_token => true if !STDOUT.isatty && !windows_user_right?("SeAssignPrimaryTokenPrivilege")
|
|
170
|
-
config.filter_run_excluding windows_service_requires_assign_token: true
|
|
163
|
+
config.filter_run_excluding windows_service_requires_assign_token: true if !STDOUT.isatty && !windows_user_right?("SeAssignPrimaryTokenPrivilege")
|
|
171
164
|
config.filter_run_excluding solaris_only: true unless solaris?
|
|
172
|
-
config.filter_run_excluding system_windows_service_gem_only: true unless system_windows_service_gem?
|
|
173
165
|
config.filter_run_excluding unix_only: true unless unix?
|
|
174
166
|
config.filter_run_excluding linux_only: true unless linux?
|
|
175
167
|
config.filter_run_excluding aix_only: true unless aix?
|
|
176
168
|
config.filter_run_excluding suse_only: true unless suse?
|
|
169
|
+
# These aren't valid on verify pipeline because the docker container brings its own OpenSSL
|
|
170
|
+
config.filter_run_excluding openssl_version_check: true if ENV["BUILDKITE_PIPELINE_SLUG"] =~ /verify/
|
|
177
171
|
config.filter_run_excluding opensuse: true unless opensuse?
|
|
178
172
|
config.filter_run_excluding debian_family_only: true unless debian_family?
|
|
179
173
|
config.filter_run_excluding supports_cloexec: true unless supports_cloexec?
|
|
@@ -243,6 +237,14 @@ RSpec.configure do |config|
|
|
|
243
237
|
|
|
244
238
|
Chef.reset!
|
|
245
239
|
|
|
240
|
+
# Hack warning:
|
|
241
|
+
#
|
|
242
|
+
# Something across gem_installer_spec and mixlib_cli specs are polluting gem state so that the 'unmockening' test in rubygems_spec fails.
|
|
243
|
+
# This works around that until we can understand root cause.
|
|
244
|
+
#
|
|
245
|
+
# To explore the minimal test case around that and see more detailed notes, see branch `mp/broken-gems`
|
|
246
|
+
Gem.clear_paths
|
|
247
|
+
|
|
246
248
|
Chef::ChefFS::FileSystemCache.instance.reset!
|
|
247
249
|
|
|
248
250
|
Chef::Config.reset
|
|
@@ -40,26 +40,10 @@ def make_tmpname(prefix_suffix, n = nil)
|
|
|
40
40
|
path << suffix
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
# This is a helper to determine if the ruby in the PATH contains
|
|
44
|
-
# win32/service gem. windows_service_manager tests create a windows
|
|
45
|
-
# service that starts with the system ruby and requires this gem.
|
|
46
|
-
def system_windows_service_gem?
|
|
47
|
-
windows_service_gem_check_command = %{ruby -r "win32/daemon" -e ":noop" > #{File::NULL} 2>&1}
|
|
48
|
-
if defined?(Bundler)
|
|
49
|
-
Bundler.with_unbundled_env do
|
|
50
|
-
# This returns true if the gem can be loaded
|
|
51
|
-
system(windows_service_gem_check_command)
|
|
52
|
-
end
|
|
53
|
-
else
|
|
54
|
-
# This returns true if the gem can be loaded
|
|
55
|
-
system(windows_service_gem_check_command)
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
43
|
# This is a helper to canonicalize paths that we're using in the file
|
|
60
44
|
# tests.
|
|
61
45
|
def canonicalize_path(path)
|
|
62
|
-
windows? ? path.tr("/",
|
|
46
|
+
windows? ? path.tr("/", "\\") : path
|
|
63
47
|
end
|
|
64
48
|
|
|
65
49
|
# Makes a temp directory with a canonical path on any platform.
|
|
@@ -59,15 +59,13 @@ module Matchers
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def profiler
|
|
62
|
-
@profiler ||=
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
end
|
|
70
|
-
end
|
|
62
|
+
@profiler ||= if ChefUtils.windows?
|
|
63
|
+
require File.join(__dir__, "..", "platforms", "prof", "win32")
|
|
64
|
+
RSpec::Prof::Win32::Profiler.new
|
|
65
|
+
else
|
|
66
|
+
require File.join(__dir__, "..", "prof", "gc")
|
|
67
|
+
RSpec::Prof::GC::Profiler.new
|
|
68
|
+
end
|
|
71
69
|
end
|
|
72
70
|
|
|
73
71
|
end
|
|
@@ -2,6 +2,7 @@ require "fcntl"
|
|
|
2
2
|
require "chef/mixin/shell_out"
|
|
3
3
|
require "ohai/mixin/http_helper"
|
|
4
4
|
require "ohai/mixin/gce_metadata"
|
|
5
|
+
require "spec/support/chef_helpers"
|
|
5
6
|
|
|
6
7
|
class ShellHelpers
|
|
7
8
|
extend Chef::Mixin::ShellOut
|
|
@@ -92,14 +93,6 @@ def windows_user_right?(right)
|
|
|
92
93
|
Chef::ReservedNames::Win32::Security.get_account_right(ENV["USERNAME"]).include?(right)
|
|
93
94
|
end
|
|
94
95
|
|
|
95
|
-
def macos_1013?
|
|
96
|
-
macos? && Gem::Requirement.new("~> 10.13.0").satisfied_by?(Gem::Version.new(ohai[:platform_version]))
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def macos_gte_1014?
|
|
100
|
-
macos? && Gem::Requirement.new(">= 10.14").satisfied_by?(Gem::Version.new(ohai[:platform_version]))
|
|
101
|
-
end
|
|
102
|
-
|
|
103
96
|
# detects if the hardware is 64-bit (evaluates to true in "WOW64" mode in a 32-bit app on a 64-bit system)
|
|
104
97
|
def windows64?
|
|
105
98
|
windows? && ( ENV["PROCESSOR_ARCHITECTURE"] == "AMD64" || ENV["PROCESSOR_ARCHITEW6432"] == "AMD64" )
|
|
@@ -134,6 +127,10 @@ def freebsd?
|
|
|
134
127
|
RUBY_PLATFORM.include?("freebsd")
|
|
135
128
|
end
|
|
136
129
|
|
|
130
|
+
def freebsd_gte_12_3?
|
|
131
|
+
RUBY_PLATFORM.include?("freebsd") && !!(ohai[:platform_version].to_f >= 12.3)
|
|
132
|
+
end
|
|
133
|
+
|
|
137
134
|
def intel_64bit?
|
|
138
135
|
!!(ohai[:kernel][:machine] == "x86_64")
|
|
139
136
|
end
|
|
@@ -170,12 +167,16 @@ def aix?
|
|
|
170
167
|
RUBY_PLATFORM.include?("aix")
|
|
171
168
|
end
|
|
172
169
|
|
|
170
|
+
def amazon_linux?
|
|
171
|
+
ohai[:platform_family] == "amazon"
|
|
172
|
+
end
|
|
173
|
+
|
|
173
174
|
def wpar?
|
|
174
175
|
!((ohai[:virtualization] || {})[:wpar_no].nil?)
|
|
175
176
|
end
|
|
176
177
|
|
|
177
178
|
def supports_cloexec?
|
|
178
|
-
Fcntl.const_defined?(
|
|
179
|
+
Fcntl.const_defined?(:F_SETFD) && Fcntl.const_defined?(:FD_CLOEXEC)
|
|
179
180
|
end
|
|
180
181
|
|
|
181
182
|
def selinux_enabled?
|
|
@@ -222,14 +223,14 @@ def aes_256_gcm?
|
|
|
222
223
|
OpenSSL::Cipher.ciphers.include?("aes-256-gcm")
|
|
223
224
|
end
|
|
224
225
|
|
|
225
|
-
def fips?
|
|
226
|
-
ENV["CHEF_FIPS"] == "1"
|
|
227
|
-
end
|
|
228
|
-
|
|
229
226
|
def fips_mode_build?
|
|
230
227
|
OpenSSL::OPENSSL_FIPS
|
|
231
228
|
end
|
|
232
229
|
|
|
230
|
+
def fips?
|
|
231
|
+
ENV["CHEF_FIPS"] == "1"
|
|
232
|
+
end
|
|
233
|
+
|
|
233
234
|
class HttpHelper
|
|
234
235
|
extend Ohai::Mixin::HttpHelper
|
|
235
236
|
def self.logger
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
|
|
17
|
+
def add_libarchive_dll_directory
|
|
18
|
+
require "ruby_installer"
|
|
19
|
+
libarchive_paths = Dir.glob("{#{Gem.dir},C:/hab}/**/libarchive.dll").map { |f| File.expand_path(f) }
|
|
20
|
+
if libarchive_paths.empty?
|
|
21
|
+
$stderr.puts <<~EOL
|
|
22
|
+
!!!!
|
|
23
|
+
We couldn't find a libarchive.dll in #{Gem.dir} or C:/hab
|
|
24
|
+
|
|
25
|
+
If this is running in a CI/CD environment, this may end up causing failures
|
|
26
|
+
in the tests for archive_file. If this is not running in a CI/CD
|
|
27
|
+
environment then it may be safe to ignore this. That is especially true if
|
|
28
|
+
you're not using the Ruby Installer as your Ruby runtime.
|
|
29
|
+
!!!!
|
|
30
|
+
EOL
|
|
31
|
+
return
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
$stderr.puts "\nFound the following libarchive paths:\n\n#{libarchive_paths.map { |f| "- #{f}\n" }.join}\n\n"
|
|
35
|
+
libarchive_path = libarchive_paths.first
|
|
36
|
+
libarchive_dir = File.dirname(libarchive_path)
|
|
37
|
+
|
|
38
|
+
if defined?(RubyInstaller::Build) && RubyInstaller::Build.methods.include?(:add_dll_directory)
|
|
39
|
+
$stderr.puts "Adding #{libarchive_dir} as a DLL load path using RubyInstaller::Build#add_dll_directory"
|
|
40
|
+
RubyInstaller::Build.add_dll_directory(libarchive_dir)
|
|
41
|
+
elsif defined?(RubyInstaller::Runtime) && RubyInstaller::Runtime.methods.include?(:add_dll_directory)
|
|
42
|
+
$stderr.puts "Adding #{libarchive_dir} as a DLL load path using RubyInstaller::Runtime#add_dll_directory"
|
|
43
|
+
RubyInstaller::Runtime.add_dll_directory(libarchive_dir)
|
|
44
|
+
else
|
|
45
|
+
$stderr.puts "Unable to find the right namespace to call #add_dll_directory! Please raise an issue on [GitHub](https://github.com/chef/chef/issues/new/choose)."
|
|
46
|
+
end
|
|
47
|
+
rescue LoadError
|
|
48
|
+
$stderr.puts "Failed to load ruby_installer. Assuming Ruby Installer is not being used."
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
add_libarchive_dll_directory if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
|
@@ -58,7 +58,7 @@ shared_context "a command that can be executed as an alternate user" do
|
|
|
58
58
|
include Chef::Mixin::ShellOut
|
|
59
59
|
|
|
60
60
|
before do
|
|
61
|
-
shell_out!("icacls \"#{script_output_dir.tr("/",
|
|
61
|
+
shell_out!("icacls \"#{script_output_dir.tr("/", "\\")}\" /grant \"authenticated users:(F)\"")
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
after do
|
|
@@ -157,7 +157,7 @@ shared_examples_for "a file with the wrong content" do
|
|
|
157
157
|
|
|
158
158
|
context "when running :create action" do
|
|
159
159
|
let(:provider) { resource.provider_for_action(:create) }
|
|
160
|
-
let(:reporter_messages) { provider.instance_variable_get(
|
|
160
|
+
let(:reporter_messages) { provider.instance_variable_get(:@converge_actions).actions[0][0] }
|
|
161
161
|
|
|
162
162
|
before do
|
|
163
163
|
provider.run_action
|
|
@@ -391,7 +391,7 @@ shared_examples_for "a configured file resource" do
|
|
|
391
391
|
end
|
|
392
392
|
|
|
393
393
|
def binread(file)
|
|
394
|
-
content = File.
|
|
394
|
+
content = File.binread(file)
|
|
395
395
|
content.force_encoding(Encoding::BINARY) if "".respond_to?(:force_encoding)
|
|
396
396
|
content
|
|
397
397
|
end
|
|
@@ -30,7 +30,7 @@ module ChefHTTPShared
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def binread(file)
|
|
33
|
-
content = File.
|
|
33
|
+
content = File.binread(file)
|
|
34
34
|
content.force_encoding(Encoding::BINARY) if "".respond_to?(:force_encoding)
|
|
35
35
|
content
|
|
36
36
|
end
|
|
@@ -51,19 +51,19 @@ module ChefHTTPShared
|
|
|
51
51
|
# just a normal file
|
|
52
52
|
# (expected_content should be uncompressed)
|
|
53
53
|
@api.get("/nyan_cat.png", 200) do
|
|
54
|
-
File.
|
|
54
|
+
File.binread(nyan_uncompressed_filename)
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
# this ends in .gz, we do not uncompress it and drop it on the filesystem as a .gz file (the internet often lies)
|
|
58
58
|
# (expected_content should be compressed)
|
|
59
59
|
@api.get("/nyan_cat.png.gz", 200, nil, { "Content-Type" => "application/gzip", "Content-Encoding" => "gzip" } ) do
|
|
60
|
-
File.
|
|
60
|
+
File.binread(nyan_compressed_filename)
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
# this is an uncompressed file that was compressed by some mod_gzip-ish webserver thingy, so we will expand it
|
|
64
64
|
# (expected_content should be uncompressed)
|
|
65
65
|
@api.get("/nyan_cat_compressed.png", 200, nil, { "Content-Type" => "application/gzip", "Content-Encoding" => "gzip" } ) do
|
|
66
|
-
File.
|
|
66
|
+
File.binread(nyan_compressed_filename)
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
#
|
|
@@ -75,7 +75,7 @@ module ChefHTTPShared
|
|
|
75
75
|
{
|
|
76
76
|
"Content-Length" => nyan_uncompressed_size.to_s,
|
|
77
77
|
}) do
|
|
78
|
-
File.
|
|
78
|
+
File.binread(nyan_uncompressed_filename)
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
# (expected_content should be uncompressed)
|
|
@@ -85,7 +85,7 @@ module ChefHTTPShared
|
|
|
85
85
|
"Content-Type" => "application/gzip",
|
|
86
86
|
"Content-Encoding" => "gzip",
|
|
87
87
|
}) do
|
|
88
|
-
File.
|
|
88
|
+
File.binread(nyan_compressed_filename)
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
#
|
|
@@ -97,7 +97,7 @@ module ChefHTTPShared
|
|
|
97
97
|
{
|
|
98
98
|
"Content-Length" => (nyan_uncompressed_size + 1).to_s,
|
|
99
99
|
}) do
|
|
100
|
-
File.
|
|
100
|
+
File.binread(nyan_uncompressed_filename)
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
# (expected_content should be uncompressed)
|
|
@@ -107,7 +107,7 @@ module ChefHTTPShared
|
|
|
107
107
|
"Content-Type" => "application/gzip",
|
|
108
108
|
"Content-Encoding" => "gzip",
|
|
109
109
|
}) do
|
|
110
|
-
File.
|
|
110
|
+
File.binread(nyan_compressed_filename)
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
#
|
|
@@ -120,7 +120,7 @@ module ChefHTTPShared
|
|
|
120
120
|
"Content-Length" => (nyan_uncompressed_size + 1).to_s,
|
|
121
121
|
"Transfer-Encoding" => "anything",
|
|
122
122
|
}) do
|
|
123
|
-
File.
|
|
123
|
+
File.binread(nyan_uncompressed_filename)
|
|
124
124
|
end
|
|
125
125
|
|
|
126
126
|
#
|
|
@@ -36,14 +36,13 @@ end
|
|
|
36
36
|
|
|
37
37
|
# forwards-vs-reverse slashes on windows sucks
|
|
38
38
|
def windows_path
|
|
39
|
-
windows? ? normalized_path.tr(
|
|
39
|
+
windows? ? normalized_path.tr("\\", "/") : normalized_path
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
# this is all getting a bit stupid, CHEF-4802 cut to remove all this
|
|
43
43
|
def setup_normal_file
|
|
44
44
|
[ resource_path, normalized_path, windows_path].each do |path|
|
|
45
45
|
allow(File).to receive(:file?).with(path).and_return(true)
|
|
46
|
-
allow(File).to receive(:exists?).with(path).and_return(true)
|
|
47
46
|
allow(File).to receive(:exist?).with(path).and_return(true)
|
|
48
47
|
allow(File).to receive(:directory?).with(path).and_return(false)
|
|
49
48
|
allow(File).to receive(:writable?).with(path).and_return(true)
|
|
@@ -57,7 +56,6 @@ def setup_missing_file
|
|
|
57
56
|
[ resource_path, normalized_path, windows_path].each do |path|
|
|
58
57
|
allow(File).to receive(:file?).with(path).and_return(false)
|
|
59
58
|
allow(File).to receive(:realpath?).with(path).and_return(resource_path)
|
|
60
|
-
allow(File).to receive(:exists?).with(path).and_return(false)
|
|
61
59
|
allow(File).to receive(:exist?).with(path).and_return(false)
|
|
62
60
|
allow(File).to receive(:directory?).with(path).and_return(false)
|
|
63
61
|
allow(File).to receive(:writable?).with(path).and_return(false)
|
|
@@ -70,7 +68,6 @@ def setup_symlink
|
|
|
70
68
|
[ resource_path, normalized_path, windows_path].each do |path|
|
|
71
69
|
allow(File).to receive(:file?).with(path).and_return(true)
|
|
72
70
|
allow(File).to receive(:realpath?).with(path).and_return(normalized_path)
|
|
73
|
-
allow(File).to receive(:exists?).with(path).and_return(true)
|
|
74
71
|
allow(File).to receive(:exist?).with(path).and_return(true)
|
|
75
72
|
allow(File).to receive(:directory?).with(path).and_return(false)
|
|
76
73
|
allow(File).to receive(:writable?).with(path).and_return(true)
|
|
@@ -84,7 +81,6 @@ def setup_unwritable_file
|
|
|
84
81
|
[ resource_path, normalized_path, windows_path].each do |path|
|
|
85
82
|
allow(File).to receive(:file?).with(path).and_return(false)
|
|
86
83
|
allow(File).to receive(:realpath?).with(path).and_raise(Errno::ENOENT)
|
|
87
|
-
allow(File).to receive(:exists?).with(path).and_return(true)
|
|
88
84
|
allow(File).to receive(:exist?).with(path).and_return(true)
|
|
89
85
|
allow(File).to receive(:directory?).with(path).and_return(false)
|
|
90
86
|
allow(File).to receive(:writable?).with(path).and_return(false)
|
|
@@ -97,7 +93,6 @@ def setup_missing_enclosing_directory
|
|
|
97
93
|
[ resource_path, normalized_path, windows_path].each do |path|
|
|
98
94
|
allow(File).to receive(:file?).with(path).and_return(false)
|
|
99
95
|
allow(File).to receive(:realpath?).with(path).and_raise(Errno::ENOENT)
|
|
100
|
-
allow(File).to receive(:exists?).with(path).and_return(false)
|
|
101
96
|
allow(File).to receive(:exist?).with(path).and_return(false)
|
|
102
97
|
allow(File).to receive(:directory?).with(path).and_return(false)
|
|
103
98
|
allow(File).to receive(:writable?).with(path).and_return(false)
|
|
@@ -138,7 +133,6 @@ shared_examples_for Chef::Provider::File do
|
|
|
138
133
|
before(:each) do
|
|
139
134
|
allow(content).to receive(:tempfile).and_return(tempfile)
|
|
140
135
|
allow(File).to receive(:exist?).with(tempfile.path).and_call_original
|
|
141
|
-
allow(File).to receive(:exists?).with(tempfile.path).and_call_original
|
|
142
136
|
end
|
|
143
137
|
|
|
144
138
|
after do
|
|
@@ -547,7 +541,7 @@ shared_examples_for Chef::Provider::File do
|
|
|
547
541
|
provider.load_current_resource
|
|
548
542
|
tempfile = double("Tempfile", path: "/tmp/foo-bar-baz")
|
|
549
543
|
allow(content).to receive(:tempfile).and_return(tempfile)
|
|
550
|
-
expect(File).to receive(:
|
|
544
|
+
expect(File).to receive(:exist?).with("/tmp/foo-bar-baz").and_return(true)
|
|
551
545
|
expect(tempfile).to receive(:close).once
|
|
552
546
|
expect(tempfile).to receive(:unlink).once
|
|
553
547
|
end
|
|
@@ -630,7 +624,7 @@ shared_examples_for Chef::Provider::File do
|
|
|
630
624
|
it "raises an exception when the content object returns a tempfile that does not exist" do
|
|
631
625
|
tempfile = double("Tempfile", path: "/tmp/foo-bar-baz")
|
|
632
626
|
expect(provider.send(:content)).to receive(:tempfile).at_least(:once).and_return(tempfile)
|
|
633
|
-
expect(File).to receive(:
|
|
627
|
+
expect(File).to receive(:exist?).with("/tmp/foo-bar-baz").and_return(false)
|
|
634
628
|
expect { provider.send(:do_contents_changes) }.to raise_error(RuntimeError)
|
|
635
629
|
end
|
|
636
630
|
end
|
|
@@ -169,7 +169,7 @@ shared_examples_for "a useradd-based user provider" do |supported_useradd_option
|
|
|
169
169
|
before do
|
|
170
170
|
provider.new_resource.system true
|
|
171
171
|
# there is no public API to set attribute's value to nil
|
|
172
|
-
provider.new_resource.instance_variable_set(
|
|
172
|
+
provider.new_resource.instance_variable_set(:@home, nil)
|
|
173
173
|
end
|
|
174
174
|
|
|
175
175
|
it "should not include -m or -d in the command options" do
|
|
@@ -47,9 +47,9 @@ shared_examples_for "a script resource" do
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
describe "when executing guards" do
|
|
50
|
-
it "inherits exactly the :cwd, :domain, :environment, :group, :password, :path, :user, and :
|
|
50
|
+
it "inherits exactly the :cwd, :domain, :environment, :group, :password, :path, :user, :umask, and :login attributes from a parent resource class" do
|
|
51
51
|
inherited_difference = Chef::Resource::Script.guard_inherited_attributes -
|
|
52
|
-
%i{cwd domain environment group password path user umask}
|
|
52
|
+
%i{cwd domain environment group password path user umask login}
|
|
53
53
|
|
|
54
54
|
expect(inherited_difference).to eq([])
|
|
55
55
|
end
|