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
|
@@ -29,14 +29,14 @@ class Chef
|
|
|
29
29
|
|
|
30
30
|
def load_current_resource; end
|
|
31
31
|
|
|
32
|
-
action :create do
|
|
32
|
+
action :create, description: "Add a new Zypper repository." do
|
|
33
33
|
if new_resource.gpgautoimportkeys
|
|
34
|
-
|
|
34
|
+
install_gpg_keys(new_resource.gpgkey)
|
|
35
35
|
else
|
|
36
|
-
logger.
|
|
36
|
+
logger.debug("'gpgautoimportkeys' property is set to false. Skipping key import.")
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
template "/etc/zypp/repos.d/#{escaped_repo_name}.repo" do
|
|
40
40
|
if template_available?(new_resource.source)
|
|
41
41
|
source new_resource.source
|
|
42
42
|
else
|
|
@@ -50,14 +50,14 @@ class Chef
|
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
action :delete do
|
|
54
|
-
|
|
53
|
+
action :delete, description: "Remove a Zypper repository." do
|
|
54
|
+
execute "zypper --quiet --non-interactive removerepo #{escaped_repo_name}" do
|
|
55
55
|
only_if "zypper --quiet lr #{escaped_repo_name}"
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
action :refresh do
|
|
60
|
-
|
|
59
|
+
action :refresh, description: "Refresh Zypper repository." do
|
|
60
|
+
execute "zypper --quiet --non-interactive refresh --force #{escaped_repo_name}" do
|
|
61
61
|
only_if "zypper --quiet lr #{escaped_repo_name}"
|
|
62
62
|
end
|
|
63
63
|
end
|
|
@@ -68,15 +68,7 @@ class Chef
|
|
|
68
68
|
# zypper repos are allowed to have spaces in the names
|
|
69
69
|
# @return [String] escaped repo string
|
|
70
70
|
def escaped_repo_name
|
|
71
|
-
Shellwords.escape(new_resource.repo_name)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
# return the specified cookbook name or the cookbook containing the
|
|
75
|
-
# resource.
|
|
76
|
-
#
|
|
77
|
-
# @return [String] name of the cookbook
|
|
78
|
-
def cookbook_name
|
|
79
|
-
new_resource.cookbook || new_resource.cookbook_name
|
|
71
|
+
@escaped_repo_name ||= Shellwords.escape(new_resource.repo_name)
|
|
80
72
|
end
|
|
81
73
|
|
|
82
74
|
# determine if a template file is available in the current run
|
|
@@ -84,7 +76,7 @@ class Chef
|
|
|
84
76
|
#
|
|
85
77
|
# @return [Boolean] template file exists or doesn't
|
|
86
78
|
def template_available?(path)
|
|
87
|
-
!path.nil? && run_context.has_template_in_cookbook?(
|
|
79
|
+
!path.nil? && run_context.has_template_in_cookbook?(new_resource.cookbook, path)
|
|
88
80
|
end
|
|
89
81
|
|
|
90
82
|
# determine if a cookbook file is available in the run
|
|
@@ -92,7 +84,7 @@ class Chef
|
|
|
92
84
|
#
|
|
93
85
|
# @return [Boolean] cookbook file exists or doesn't
|
|
94
86
|
def has_cookbook_file?(fn)
|
|
95
|
-
run_context.has_cookbook_file_in_cookbook?(
|
|
87
|
+
run_context.has_cookbook_file_in_cookbook?(new_resource.cookbook, fn)
|
|
96
88
|
end
|
|
97
89
|
|
|
98
90
|
# Given the provided key URI determine what kind of chef resource we need
|
|
@@ -158,27 +150,31 @@ class Chef
|
|
|
158
150
|
short_key_id
|
|
159
151
|
end
|
|
160
152
|
|
|
161
|
-
# install the provided gpg
|
|
162
|
-
# @param [String]
|
|
163
|
-
def
|
|
164
|
-
|
|
165
|
-
logger.
|
|
153
|
+
# install the provided gpg keys
|
|
154
|
+
# @param [String] uris the uri of the local or remote gpg key
|
|
155
|
+
def install_gpg_keys(uris)
|
|
156
|
+
if uris.empty?
|
|
157
|
+
logger.debug("'gpgkey' property not provided or set. Skipping gpg key import.")
|
|
166
158
|
return
|
|
167
159
|
end
|
|
168
160
|
|
|
169
|
-
|
|
161
|
+
# fetch each key to the cache dir either from the cookbook or by downloading it
|
|
162
|
+
# and then import the key
|
|
163
|
+
uris.each do |uri|
|
|
164
|
+
cached_keyfile = ::File.join(Chef::Config[:file_cache_path], uri.split("/")[-1])
|
|
170
165
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
166
|
+
declare_resource(key_type(uri), cached_keyfile) do
|
|
167
|
+
source uri
|
|
168
|
+
mode "0644"
|
|
169
|
+
sensitive new_resource.sensitive
|
|
170
|
+
action :create
|
|
171
|
+
end
|
|
177
172
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
173
|
+
execute "import gpg key from #{uri}" do
|
|
174
|
+
command "/bin/rpm --import #{cached_keyfile}"
|
|
175
|
+
not_if { key_installed?(cached_keyfile) }
|
|
176
|
+
action :run
|
|
177
|
+
end
|
|
182
178
|
end
|
|
183
179
|
end
|
|
184
180
|
end
|
data/lib/chef/provider.rb
CHANGED
|
@@ -35,7 +35,6 @@ class Chef
|
|
|
35
35
|
attr_accessor :after_resource
|
|
36
36
|
attr_accessor :run_context
|
|
37
37
|
|
|
38
|
-
attr_reader :recipe_name
|
|
39
38
|
attr_reader :logger
|
|
40
39
|
|
|
41
40
|
include Chef::Mixin::WhyRun
|
|
@@ -57,10 +56,12 @@ class Chef
|
|
|
57
56
|
#
|
|
58
57
|
# @since 13.0
|
|
59
58
|
# @param name [String, Symbol] Name of the action to define.
|
|
59
|
+
# @param description [String] description of the action
|
|
60
60
|
# @param block [Proc] Body of the action.
|
|
61
61
|
#
|
|
62
62
|
# @return [void]
|
|
63
|
-
def self.action(name, &block)
|
|
63
|
+
def self.action(name, description: nil, &block)
|
|
64
|
+
action_descriptions[name.to_sym] = description unless description.nil?
|
|
64
65
|
# We need the block directly in a method so that `return` works.
|
|
65
66
|
define_method("compile_action_#{name}", &block)
|
|
66
67
|
class_eval <<-EOM
|
|
@@ -70,6 +71,29 @@ class Chef
|
|
|
70
71
|
EOM
|
|
71
72
|
end
|
|
72
73
|
|
|
74
|
+
# Return the hash of action descriptions defined for
|
|
75
|
+
# the provider class.
|
|
76
|
+
#
|
|
77
|
+
# @return [Hash] hash of [Symbol] => [String] containing
|
|
78
|
+
# any provided action descriptions.
|
|
79
|
+
def self.action_descriptions
|
|
80
|
+
@action_descriptions ||= {}
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Retrieve the description for a provider's action, if
|
|
84
|
+
# any description has been included in the definition.
|
|
85
|
+
#
|
|
86
|
+
# @param action [Symbol,String] the action name
|
|
87
|
+
# @return [String] the description of the action provided, or nil if no description
|
|
88
|
+
# was defined
|
|
89
|
+
def self.action_description(action)
|
|
90
|
+
description = action_descriptions[action.to_sym]
|
|
91
|
+
if description.nil? && superclass.respond_to?(:action_description)
|
|
92
|
+
description = superclass.action_description(action)
|
|
93
|
+
end
|
|
94
|
+
description
|
|
95
|
+
end
|
|
96
|
+
|
|
73
97
|
# Deprecation stub for the old use_inline_resources mode.
|
|
74
98
|
#
|
|
75
99
|
# @return [void]
|
|
@@ -149,6 +173,10 @@ class Chef
|
|
|
149
173
|
new_resource.cookbook_name
|
|
150
174
|
end
|
|
151
175
|
|
|
176
|
+
def recipe_name
|
|
177
|
+
new_resource.recipe_name
|
|
178
|
+
end
|
|
179
|
+
|
|
152
180
|
# hook that subclasses can use to do lazy validation for where properties aren't flexible enough
|
|
153
181
|
def check_resource_semantics!; end
|
|
154
182
|
|
|
@@ -244,7 +272,7 @@ class Chef
|
|
|
244
272
|
end
|
|
245
273
|
|
|
246
274
|
def requirements
|
|
247
|
-
@requirements ||= ResourceRequirements.new(@new_resource, run_context)
|
|
275
|
+
@requirements ||= ResourceRequirements.new(@new_resource, run_context, action || new_resource.action)
|
|
248
276
|
end
|
|
249
277
|
|
|
250
278
|
def description(description = "NOT_PASSED")
|
|
@@ -435,7 +463,7 @@ class Chef
|
|
|
435
463
|
# this block cannot interact with resources outside, e.g.,
|
|
436
464
|
# manipulating notifies.
|
|
437
465
|
|
|
438
|
-
converge_by
|
|
466
|
+
converge_by("evaluate block and run any associated actions") do
|
|
439
467
|
saved_run_context = run_context
|
|
440
468
|
begin
|
|
441
469
|
@run_context = run_context.create_child
|
|
@@ -57,10 +57,16 @@ class Chef
|
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
def resolve
|
|
60
|
-
maybe_explicit_provider(resource) ||
|
|
60
|
+
resolved = maybe_explicit_provider(resource) ||
|
|
61
61
|
maybe_custom_resource(resource) ||
|
|
62
|
-
maybe_dynamic_provider_resolution(resource, action)
|
|
62
|
+
maybe_dynamic_provider_resolution(resource, action)
|
|
63
|
+
|
|
64
|
+
if resolved.nil?
|
|
65
|
+
raise(Chef::Exceptions::ProviderNotFound, "Cannot find a provider for #{resource}") if node.nil?
|
|
66
|
+
|
|
63
67
|
raise(Chef::Exceptions::ProviderNotFound, "Cannot find a provider for #{resource} on #{node["platform"]} version #{node["platform_version"]}")
|
|
68
|
+
end
|
|
69
|
+
resolved
|
|
64
70
|
end
|
|
65
71
|
|
|
66
72
|
# Does NOT call provides? on the resource (it is assumed this is being
|
data/lib/chef/providers.rb
CHANGED
|
@@ -74,6 +74,7 @@ require_relative "provider/package/cab"
|
|
|
74
74
|
require_relative "provider/package/powershell"
|
|
75
75
|
require_relative "provider/package/msu"
|
|
76
76
|
require_relative "provider/package/snap"
|
|
77
|
+
require_relative "provider/package/habitat"
|
|
77
78
|
|
|
78
79
|
require_relative "provider/service/arch"
|
|
79
80
|
require_relative "provider/service/freebsd"
|
|
@@ -94,7 +95,6 @@ require_relative "provider/service/aixinit"
|
|
|
94
95
|
require_relative "provider/service/aix"
|
|
95
96
|
|
|
96
97
|
require_relative "provider/user/aix"
|
|
97
|
-
require_relative "provider/user/dscl"
|
|
98
98
|
require_relative "provider/user/linux"
|
|
99
99
|
require_relative "provider/user/mac"
|
|
100
100
|
require_relative "provider/user/pw"
|
|
@@ -108,7 +108,6 @@ require_relative "provider/group/groupadd"
|
|
|
108
108
|
require_relative "provider/group/groupmod"
|
|
109
109
|
require_relative "provider/group/pw"
|
|
110
110
|
require_relative "provider/group/solaris"
|
|
111
|
-
require_relative "provider/group/suse"
|
|
112
111
|
require_relative "provider/group/usermod"
|
|
113
112
|
require_relative "provider/group/windows"
|
|
114
113
|
|
data/lib/chef/pwsh.rb
CHANGED
|
@@ -24,15 +24,16 @@ class Chef
|
|
|
24
24
|
# bindir directory.
|
|
25
25
|
#
|
|
26
26
|
# @param script [String] script to run
|
|
27
|
+
# @param timeout [Integer, nil] timeout in seconds.
|
|
27
28
|
# @return [Object] output
|
|
28
|
-
def initialize(script)
|
|
29
|
+
def initialize(script, timeout: -1)
|
|
29
30
|
@dll = Pwsh.dll
|
|
30
31
|
super
|
|
31
32
|
end
|
|
32
33
|
|
|
33
34
|
protected
|
|
34
35
|
|
|
35
|
-
def exec(script)
|
|
36
|
+
def exec(script, timeout: -1)
|
|
36
37
|
# Note that we need to override the location of the shared dotnet core library
|
|
37
38
|
# location. With most .net core applications, you can simply publish them as a
|
|
38
39
|
# "self-contained" application allowing consumers of the application to run them
|
|
@@ -26,7 +26,7 @@ class Chef
|
|
|
26
26
|
|
|
27
27
|
provides(:alternatives) { true }
|
|
28
28
|
|
|
29
|
-
description "
|
|
29
|
+
description "Use the **alternatives** resource to configure command alternatives in Linux using the alternatives or update-alternatives packages."
|
|
30
30
|
introduced "16.0"
|
|
31
31
|
examples <<~DOC
|
|
32
32
|
**Install an alternative**:
|
|
@@ -122,7 +122,7 @@ class Chef
|
|
|
122
122
|
end
|
|
123
123
|
end
|
|
124
124
|
|
|
125
|
-
action :install do
|
|
125
|
+
action :install, description: "Install an alternative on the system including symlinks." do
|
|
126
126
|
if path_priority != new_resource.priority
|
|
127
127
|
converge_by("adding alternative #{new_resource.link} #{new_resource.link_name} #{new_resource.path} #{new_resource.priority}") do
|
|
128
128
|
output = shell_out(alternatives_cmd, "--install", new_resource.link, new_resource.link_name, new_resource.path, new_resource.priority)
|
|
@@ -133,7 +133,7 @@ class Chef
|
|
|
133
133
|
end
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
-
action :set do
|
|
136
|
+
action :set, description: "Set the symlink for an alternative." do
|
|
137
137
|
if current_path != new_resource.path
|
|
138
138
|
converge_by("setting alternative #{new_resource.link_name} #{new_resource.path}") do
|
|
139
139
|
output = shell_out(alternatives_cmd, "--set", new_resource.link_name, new_resource.path)
|
|
@@ -144,7 +144,7 @@ class Chef
|
|
|
144
144
|
end
|
|
145
145
|
end
|
|
146
146
|
|
|
147
|
-
action :remove do
|
|
147
|
+
action :remove, description: "Remove an alternative and all associated links." do
|
|
148
148
|
if path_exists?
|
|
149
149
|
converge_by("removing alternative #{new_resource.link_name} #{new_resource.path}") do
|
|
150
150
|
shell_out(alternatives_cmd, "--remove", new_resource.link_name, new_resource.path)
|
|
@@ -152,13 +152,13 @@ class Chef
|
|
|
152
152
|
end
|
|
153
153
|
end
|
|
154
154
|
|
|
155
|
-
action :auto do
|
|
155
|
+
action :auto, description: "Set an alternative up in automatic mode with the highest priority automatically selected." do
|
|
156
156
|
converge_by("setting auto alternative #{new_resource.link_name}") do
|
|
157
157
|
shell_out(alternatives_cmd, "--auto", new_resource.link_name)
|
|
158
158
|
end
|
|
159
159
|
end
|
|
160
160
|
|
|
161
|
-
action :refresh do
|
|
161
|
+
action :refresh, description: "Refresh alternatives." do
|
|
162
162
|
converge_by("refreshing alternative #{new_resource.link_name}") do
|
|
163
163
|
shell_out(alternatives_cmd, "--refresh", new_resource.link_name)
|
|
164
164
|
end
|
|
@@ -43,7 +43,7 @@ class Chef
|
|
|
43
43
|
**Install multiple packages at once**:
|
|
44
44
|
|
|
45
45
|
```ruby
|
|
46
|
-
apt_package %(package1 package2 package3)
|
|
46
|
+
apt_package %w(package1 package2 package3)
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
**Install without using recommend packages as a dependency**:
|
|
@@ -55,7 +55,7 @@ class Chef
|
|
|
55
55
|
```
|
|
56
56
|
DOC
|
|
57
57
|
|
|
58
|
-
description "Use the **apt_package** resource to manage packages on Debian and
|
|
58
|
+
description "Use the **apt_package** resource to manage packages on Debian, Ubuntu, and other platforms that use the APT package system."
|
|
59
59
|
|
|
60
60
|
property :default_release, String,
|
|
61
61
|
description: "The default release. For example: `stable`.",
|
|
@@ -72,7 +72,7 @@ class Chef
|
|
|
72
72
|
|
|
73
73
|
property :response_file_variables, Hash,
|
|
74
74
|
description: "A Hash of response file variables in the form of {'VARIABLE' => 'VALUE'}.",
|
|
75
|
-
default:
|
|
75
|
+
default: {}, desired_state: false
|
|
76
76
|
|
|
77
77
|
end
|
|
78
78
|
end
|
|
@@ -91,7 +91,7 @@ class Chef
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
-
action :add do
|
|
94
|
+
action :add, description: "Creates a preferences file under `/etc/apt/preferences.d`." do
|
|
95
95
|
return unless debian?
|
|
96
96
|
|
|
97
97
|
preference = build_pref(
|
|
@@ -130,7 +130,7 @@ class Chef
|
|
|
130
130
|
end
|
|
131
131
|
end
|
|
132
132
|
|
|
133
|
-
action :remove do
|
|
133
|
+
action :remove, description: "Removes the preferences file, thus unpinning the package." do
|
|
134
134
|
return unless debian?
|
|
135
135
|
|
|
136
136
|
sanitized_prefname = safe_name(new_resource.package_name)
|
|
@@ -36,7 +36,7 @@ class Chef
|
|
|
36
36
|
examples <<~DOC
|
|
37
37
|
**Add repository with basic settings**:
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
```ruby
|
|
40
40
|
apt_repository 'nginx' do
|
|
41
41
|
uri 'http://nginx.org/packages/ubuntu/'
|
|
42
42
|
components ['nginx']
|
|
@@ -128,7 +128,7 @@ class Chef
|
|
|
128
128
|
|
|
129
129
|
property :components, Array,
|
|
130
130
|
description: "Package groupings, such as 'main' and 'stable'.",
|
|
131
|
-
default:
|
|
131
|
+
default: [], default_description: "`main` if using a PPA repository."
|
|
132
132
|
|
|
133
133
|
property :arch, [String, nil, FalseClass],
|
|
134
134
|
description: "Constrain packages to a particular CPU architecture such as `i386` or `amd64`."
|
|
@@ -147,7 +147,7 @@ class Chef
|
|
|
147
147
|
|
|
148
148
|
property :key, [String, Array, nil, FalseClass],
|
|
149
149
|
description: "If a keyserver is provided, this is assumed to be the fingerprint; otherwise it can be either the URI of GPG key for the repo, or a cookbook_file.",
|
|
150
|
-
default:
|
|
150
|
+
default: [], coerce: proc { |x| x ? Array(x) : x }
|
|
151
151
|
|
|
152
152
|
property :key_proxy, [String, nil, FalseClass],
|
|
153
153
|
description: "If set, a specified proxy is passed to GPG via `http-proxy=`."
|
|
@@ -409,7 +409,7 @@ class Chef
|
|
|
409
409
|
end
|
|
410
410
|
end
|
|
411
411
|
|
|
412
|
-
action :add do
|
|
412
|
+
action :add, description: "Creates a repository file at `/etc/apt/sources.list.d/` and builds the repository listing." do
|
|
413
413
|
return unless debian?
|
|
414
414
|
|
|
415
415
|
execute "apt-cache gencaches" do
|
|
@@ -459,7 +459,7 @@ class Chef
|
|
|
459
459
|
end
|
|
460
460
|
end
|
|
461
461
|
|
|
462
|
-
action :remove do
|
|
462
|
+
action :remove, description: "Removes the repository listing." do
|
|
463
463
|
return unless debian?
|
|
464
464
|
|
|
465
465
|
cleanup_legacy_file!
|
|
@@ -477,7 +477,7 @@ class Chef
|
|
|
477
477
|
end
|
|
478
478
|
end
|
|
479
479
|
else
|
|
480
|
-
logger.
|
|
480
|
+
logger.debug("/etc/apt/sources.list.d/#{new_resource.repo_name}.list does not exist. Nothing to do")
|
|
481
481
|
end
|
|
482
482
|
end
|
|
483
483
|
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#
|
|
18
18
|
|
|
19
19
|
require_relative "../resource"
|
|
20
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
|
20
21
|
|
|
21
22
|
class Chef
|
|
22
23
|
class Resource
|
|
@@ -32,8 +33,8 @@ class Chef
|
|
|
32
33
|
|
|
33
34
|
```ruby
|
|
34
35
|
apt_update 'all platforms' do
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
frequency 86400
|
|
37
|
+
action :periodic
|
|
37
38
|
end
|
|
38
39
|
```
|
|
39
40
|
|
|
@@ -85,7 +86,7 @@ class Chef
|
|
|
85
86
|
end
|
|
86
87
|
end
|
|
87
88
|
|
|
88
|
-
action :periodic do
|
|
89
|
+
action :periodic, description: "Update the Apt repository at the interval specified by the `frequency` property." do
|
|
89
90
|
return unless debian?
|
|
90
91
|
|
|
91
92
|
unless apt_up_to_date?
|
|
@@ -95,7 +96,7 @@ class Chef
|
|
|
95
96
|
end
|
|
96
97
|
end
|
|
97
98
|
|
|
98
|
-
action :update do
|
|
99
|
+
action :update, description: "Update the Apt repository at the start of a #{ChefUtils::Dist::Infra::PRODUCT} run." do
|
|
99
100
|
return unless debian?
|
|
100
101
|
|
|
101
102
|
converge_by "force update new lists of packages" do
|
|
@@ -73,7 +73,7 @@ class Chef
|
|
|
73
73
|
|
|
74
74
|
property :mode, [String, Integer],
|
|
75
75
|
description: "The mode of the extracted files. Integer values are deprecated as octal values (ex. 0755) would not be interpreted correctly.",
|
|
76
|
-
default: "755"
|
|
76
|
+
default: "755", default_description: "'755'"
|
|
77
77
|
|
|
78
78
|
property :destination, String,
|
|
79
79
|
description: "The file path to extract the archive file to.",
|
|
@@ -87,12 +87,16 @@ class Chef
|
|
|
87
87
|
description: "Should the resource overwrite the destination file contents if they already exist? If set to `:auto` the date stamp of files within the archive will be compared to those on disk and disk contents will be overwritten if they differ. This may cause unintended consequences if disk date stamps are changed between runs, which will result in the files being overwritten during each client run. Make sure to properly test any change to this property.",
|
|
88
88
|
default: false
|
|
89
89
|
|
|
90
|
+
property :strip_components, Integer,
|
|
91
|
+
description: "Remove the specified number of leading path elements. Pathnames with fewer elements will be silently skipped. This behaves similarly to tar's --strip-components command line argument.",
|
|
92
|
+
introduced: "17.5",
|
|
93
|
+
default: 0
|
|
94
|
+
|
|
90
95
|
# backwards compatibility for the legacy cookbook names
|
|
91
96
|
alias_method :extract_options, :options
|
|
92
97
|
alias_method :extract_to, :destination
|
|
93
98
|
|
|
94
|
-
action :extract do
|
|
95
|
-
description "Extract and archive file."
|
|
99
|
+
action :extract, description: "Extract and archive file." do
|
|
96
100
|
|
|
97
101
|
unless ::File.exist?(new_resource.path)
|
|
98
102
|
raise Errno::ENOENT, "No archive found at #{new_resource.path}! Cannot continue."
|
|
@@ -122,7 +126,7 @@ class Chef
|
|
|
122
126
|
|
|
123
127
|
if new_resource.owner || new_resource.group
|
|
124
128
|
converge_by("set owner of files extracted in #{new_resource.destination} to #{new_resource.owner}:#{new_resource.group}") do
|
|
125
|
-
archive = Archive::Reader.open_filename(new_resource.path)
|
|
129
|
+
archive = Archive::Reader.open_filename(new_resource.path, nil, strip_components: new_resource.strip_components)
|
|
126
130
|
archive.each_entry do |e|
|
|
127
131
|
FileUtils.chown(new_resource.owner, new_resource.group, "#{new_resource.destination}/#{e.pathname}")
|
|
128
132
|
end
|
|
@@ -161,18 +165,16 @@ class Chef
|
|
|
161
165
|
# @return [Boolean]
|
|
162
166
|
def archive_differs_from_disk?(src, dest)
|
|
163
167
|
modified = false
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
modified = true
|
|
175
|
-
end
|
|
168
|
+
archive = Archive::Reader.open_filename(src, nil, strip_components: new_resource.strip_components)
|
|
169
|
+
Chef::Log.trace("Beginning the comparison of file mtime between contents of #{src} and #{dest}")
|
|
170
|
+
archive.each_entry do |e|
|
|
171
|
+
pathname = ::File.expand_path(e.pathname, dest)
|
|
172
|
+
if ::File.exist?(pathname)
|
|
173
|
+
Chef::Log.trace("#{pathname} mtime is #{::File.mtime(pathname)} and archive is #{e.mtime}")
|
|
174
|
+
modified = true unless ::File.mtime(pathname) == e.mtime
|
|
175
|
+
else
|
|
176
|
+
Chef::Log.trace("#{pathname} doesn't exist on disk, but exists in the archive")
|
|
177
|
+
modified = true
|
|
176
178
|
end
|
|
177
179
|
end
|
|
178
180
|
modified
|
|
@@ -190,7 +192,7 @@ class Chef
|
|
|
190
192
|
flags = [options].flatten.map { |option| extract_option_map[option] }.compact.reduce(:|)
|
|
191
193
|
|
|
192
194
|
Dir.chdir(dest) do
|
|
193
|
-
archive = Archive::Reader.open_filename(src)
|
|
195
|
+
archive = Archive::Reader.open_filename(src, nil, strip_components: new_resource.strip_components)
|
|
194
196
|
|
|
195
197
|
archive.each_entry do |e|
|
|
196
198
|
archive.extract(e, flags.to_i)
|
|
@@ -92,7 +92,7 @@ class Chef
|
|
|
92
92
|
super(caller.first, *args)
|
|
93
93
|
end
|
|
94
94
|
|
|
95
|
-
action :break do
|
|
95
|
+
action :break, description: "Add a breakpoint for use with #{ChefUtils::Dist::Infra::SHELL}" do
|
|
96
96
|
if defined?(Shell) && Shell.running?
|
|
97
97
|
with_run_context :parent do
|
|
98
98
|
run_context.resource_collection.iterator.pause
|
|
@@ -57,10 +57,7 @@ class Chef
|
|
|
57
57
|
introduced: "15.5",
|
|
58
58
|
default: false, desired_state: false # FIXME: make this default to true
|
|
59
59
|
|
|
60
|
-
action :install do
|
|
61
|
-
|
|
62
|
-
description "Install build essential packages"
|
|
63
|
-
|
|
60
|
+
action :install, description: "Install build essential packages." do
|
|
64
61
|
case
|
|
65
62
|
when debian?
|
|
66
63
|
package %w{ autoconf binutils-doc bison build-essential flex gettext ncurses-dev }
|
|
@@ -122,8 +119,7 @@ class Chef
|
|
|
122
119
|
end
|
|
123
120
|
end
|
|
124
121
|
|
|
125
|
-
action :upgrade do
|
|
126
|
-
description "Upgrade build essential (Xcode Command Line) tools on macOS"
|
|
122
|
+
action :upgrade, description: "Upgrade the Xcode CLI Tools on macOS hosts. **New in Chef Infra Client 16**" do
|
|
127
123
|
|
|
128
124
|
if macos?
|
|
129
125
|
pkg_label = xcode_cli_package_label
|
|
@@ -29,7 +29,7 @@ class Chef
|
|
|
29
29
|
examples <<~DOC
|
|
30
30
|
**Bare minimum #{ChefUtils::Dist::Infra::PRODUCT} client.rb**:
|
|
31
31
|
|
|
32
|
-
The absolute minimum configuration necessary for a node to communicate with the
|
|
32
|
+
The absolute minimum configuration necessary for a node to communicate with the #{ChefUtils::Dist::Server::PRODUCT} is the URL of the #{ChefUtils::Dist::Server::PRODUCT}. All other configuration options either have values at the server side (Policyfiles, Roles, Environments, etc) or have default values determined at client startup.
|
|
33
33
|
|
|
34
34
|
```ruby
|
|
35
35
|
chef_client_config 'Create client.rb' do
|
|
@@ -87,6 +87,16 @@ class Chef
|
|
|
87
87
|
]
|
|
88
88
|
end
|
|
89
89
|
```
|
|
90
|
+
|
|
91
|
+
**Report directly to the [Chef Automate data collector endpoint](/automate/data_collection/#configure-chef-infra-client-to-use-the-data-collector-endpoint-in-chef-automate).**
|
|
92
|
+
|
|
93
|
+
```ruby
|
|
94
|
+
chef_client_config 'Create client.rb' do
|
|
95
|
+
chef_server_url 'https://chef.example.dmz'
|
|
96
|
+
data_collector_server_url 'https://automate.example.dmz'
|
|
97
|
+
data_collector_token 'TEST_TOKEN_TEST'
|
|
98
|
+
end
|
|
99
|
+
```
|
|
90
100
|
DOC
|
|
91
101
|
|
|
92
102
|
# @todo policy_file or policy_group being set requires the other to be set so enforce that.
|
|
@@ -139,7 +149,7 @@ class Chef
|
|
|
139
149
|
DESC
|
|
140
150
|
|
|
141
151
|
property :formatters, Array,
|
|
142
|
-
description: "",
|
|
152
|
+
description: "Client logging formatters to load.",
|
|
143
153
|
default: []
|
|
144
154
|
|
|
145
155
|
property :event_loggers, Array,
|
|
@@ -184,8 +194,14 @@ class Chef
|
|
|
184
194
|
coerce: proc { |x| x.map { |v| string_to_symbol(v).capitalize } },
|
|
185
195
|
default: []
|
|
186
196
|
|
|
197
|
+
property :policy_persist_run_list, [true, false],
|
|
198
|
+
description: "Override run lists defined in a Policyfile with the `run_list` defined on the #{ChefUtils::Dist::Server::PRODUCT}.",
|
|
199
|
+
introduced: "17.3",
|
|
200
|
+
default: false
|
|
201
|
+
|
|
187
202
|
property :minimal_ohai, [true, false],
|
|
188
|
-
description: "Run a minimal set of Ohai plugins providing data necessary for the execution of #{ChefUtils::Dist::Infra::PRODUCT}'s built-in resources. Setting this to true will skip many large and time consuming data sets such as `cloud` or `packages`. Setting this
|
|
203
|
+
description: "Run a minimal set of Ohai plugins providing data necessary for the execution of #{ChefUtils::Dist::Infra::PRODUCT}'s built-in resources. Setting this to true will skip many large and time consuming data sets such as `cloud` or `packages`. Setting this to true may break cookbooks that assume all Ohai data will be present.",
|
|
204
|
+
default: false
|
|
189
205
|
|
|
190
206
|
property :start_handlers, Array,
|
|
191
207
|
description: %q(An array of hashes that contain a report handler class and the arguments to pass to that class on initialization. The hash should include `class` and `argument` keys where `class` is a String and `argument` is an array of quoted String values. For example: `[{'class' => 'MyHandler', %w('"argument1"', '"argument2"')}]`),
|
|
@@ -195,6 +211,10 @@ class Chef
|
|
|
195
211
|
description: %q(An array of hashes that contain a report handler class and the arguments to pass to that class on initialization. The hash should include `class` and `argument` keys where `class` is a String and `argument` is an array of quoted String values. For example: `[{'class' => 'MyHandler', %w('"argument1"', '"argument2"')}]`),
|
|
196
212
|
default: []
|
|
197
213
|
|
|
214
|
+
property :rubygems_url, [String, Array],
|
|
215
|
+
description: "The location to source rubygems. It can be set to a string or array of strings for URIs to set as rubygems sources. This allows individuals to setup an internal mirror of rubygems for “airgapped” environments.",
|
|
216
|
+
introduced: "17.11"
|
|
217
|
+
|
|
198
218
|
property :exception_handlers, Array,
|
|
199
219
|
description: %q(An array of hashes that contain a exception handler class and the arguments to pass to that class on initialization. The hash should include `class` and `argument` keys where `class` is a String and `argument` is an array of quoted String values. For example: `[{'class' => 'MyHandler', %w('"argument1"', '"argument2"')}]`),
|
|
200
220
|
default: []
|
|
@@ -227,7 +247,15 @@ class Chef
|
|
|
227
247
|
property :additional_config, String,
|
|
228
248
|
description: "Additional text to add at the bottom of the client.rb config. This can be used to run custom Ruby or to add less common config options"
|
|
229
249
|
|
|
230
|
-
|
|
250
|
+
property :data_collector_server_url, String,
|
|
251
|
+
description: "The data collector URL (typically automate) to send node, converge, and compliance data. Note: If possible, use Chef Infra Server to do all data collection reporting, as this removes the need to distribute tokens to individual nodes.",
|
|
252
|
+
introduced: "17.8"
|
|
253
|
+
|
|
254
|
+
property :data_collector_token, String,
|
|
255
|
+
description: "The data collector token to interact with the data collector server URL (Automate). Note: If possible, use Chef Infra Server to do all data collection reporting, as this removes the need to distribute tokens to individual nodes.",
|
|
256
|
+
introduced: "17.8"
|
|
257
|
+
|
|
258
|
+
action :create, description: "Create a client.rb config file for configuring #{ChefUtils::Dist::Infra::PRODUCT}." do
|
|
231
259
|
unless ::Dir.exist?(new_resource.config_directory)
|
|
232
260
|
directory new_resource.config_directory do
|
|
233
261
|
user new_resource.user unless new_resource.user.nil?
|
|
@@ -275,16 +303,20 @@ class Chef
|
|
|
275
303
|
policy_group: new_resource.policy_group,
|
|
276
304
|
policy_name: new_resource.policy_name,
|
|
277
305
|
report_handlers: format_handler(new_resource.report_handlers),
|
|
306
|
+
rubygems_url: new_resource.rubygems_url,
|
|
278
307
|
ssl_verify_mode: new_resource.ssl_verify_mode,
|
|
279
308
|
start_handlers: format_handler(new_resource.start_handlers),
|
|
280
|
-
additional_config: new_resource.additional_config
|
|
309
|
+
additional_config: new_resource.additional_config,
|
|
310
|
+
policy_persist_run_list: new_resource.policy_persist_run_list,
|
|
311
|
+
data_collector_server_url: new_resource.data_collector_server_url,
|
|
312
|
+
data_collector_token: new_resource.data_collector_token
|
|
281
313
|
)
|
|
282
314
|
mode "0640"
|
|
283
315
|
action :create
|
|
284
316
|
end
|
|
285
317
|
end
|
|
286
318
|
|
|
287
|
-
action :remove do
|
|
319
|
+
action :remove, description: "Remove a client.rb config file for configuring #{ChefUtils::Dist::Infra::PRODUCT}." do
|
|
288
320
|
file ::File.join(new_resource.config_directory, "client.rb") do
|
|
289
321
|
action :delete
|
|
290
322
|
end
|