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
|
@@ -34,6 +34,78 @@ class Chef
|
|
|
34
34
|
|
|
35
35
|
description "Use the **remote_file** resource to transfer a file from a remote location using file specificity. This resource is similar to the **file** resource. Note: Fetching files from the `files/` directory in a cookbook should be done with the **cookbook_file** resource."
|
|
36
36
|
|
|
37
|
+
examples <<~'DOC'
|
|
38
|
+
**Download a file without checking the checksum**:
|
|
39
|
+
|
|
40
|
+
```ruby
|
|
41
|
+
remote_file '/tmp/remote.txt' do
|
|
42
|
+
source 'https://example.org/remote.txt'
|
|
43
|
+
end
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Download a file with a checksum to validate**:
|
|
47
|
+
|
|
48
|
+
```ruby
|
|
49
|
+
remote_file '/tmp/test_file' do
|
|
50
|
+
source 'http://www.example.com/tempfiles/test_file'
|
|
51
|
+
mode '0755'
|
|
52
|
+
checksum '3a7dac00b1' # A SHA256 (or portion thereof) of the file.
|
|
53
|
+
end
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Download a file only if it's not already present**:
|
|
57
|
+
|
|
58
|
+
```ruby
|
|
59
|
+
remote_file '/tmp/remote.txt' do
|
|
60
|
+
source 'https://example.org/remote.txt'
|
|
61
|
+
checksum '3a7dac00b1' # A SHA256 (or portion thereof) of the file.
|
|
62
|
+
action :create_if_missing
|
|
63
|
+
end
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Using HTTP Basic Authentication in Headers**:
|
|
67
|
+
|
|
68
|
+
```ruby
|
|
69
|
+
remote_file '/tmp/remote.txt' do
|
|
70
|
+
source 'https://example.org/remote.txt'
|
|
71
|
+
headers('Authorization' => "Basic #{Base64.encode64("USERNAME_VALUE:PASSWORD_VALUE").delete("\n")}")
|
|
72
|
+
checksum '3a7dac00b1' # A SHA256 (or portion thereof) of the file.
|
|
73
|
+
action :create_if_missing
|
|
74
|
+
end
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Downloading a file to the Chef file cache dir for execution**:
|
|
78
|
+
|
|
79
|
+
```ruby
|
|
80
|
+
remote_file '#{Chef::Config['file_cache_path']}/install.sh' do
|
|
81
|
+
source 'https://example.org/install.sh'
|
|
82
|
+
action :create_if_missing
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
execute '#{Chef::Config['file_cache_path']}/install.sh'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Specify advanced HTTP connection options including Net::HTTP (nethttp) options:**
|
|
89
|
+
|
|
90
|
+
```ruby
|
|
91
|
+
remote_file '/tmp/remote.txt' do
|
|
92
|
+
source 'https://example.org/remote.txt'
|
|
93
|
+
http_options({
|
|
94
|
+
http_retry_delay: 0,
|
|
95
|
+
http_retry_count: 0,
|
|
96
|
+
keepalives: false,
|
|
97
|
+
nethttp: {
|
|
98
|
+
continue_timeout: 5,
|
|
99
|
+
max_retries: 5,
|
|
100
|
+
read_timeout: 5,
|
|
101
|
+
write_timeout: 5,
|
|
102
|
+
ssl_timeout: 5,
|
|
103
|
+
},
|
|
104
|
+
})
|
|
105
|
+
end
|
|
106
|
+
```
|
|
107
|
+
DOC
|
|
108
|
+
|
|
37
109
|
def initialize(name, run_context = nil)
|
|
38
110
|
super
|
|
39
111
|
@source = []
|
|
@@ -66,7 +138,7 @@ class Chef
|
|
|
66
138
|
nil
|
|
67
139
|
elsif args[0].is_a?(Chef::DelayedEvaluator) && args.count == 1
|
|
68
140
|
args[0]
|
|
69
|
-
elsif args.any?
|
|
141
|
+
elsif args.any?(Chef::DelayedEvaluator) && args.count > 1
|
|
70
142
|
raise Exceptions::InvalidRemoteFileURI, "Only 1 source argument allowed when using a lazy evaluator"
|
|
71
143
|
else
|
|
72
144
|
Array(args).flatten
|
|
@@ -85,7 +157,7 @@ class Chef
|
|
|
85
157
|
end
|
|
86
158
|
|
|
87
159
|
property :use_etag, [ TrueClass, FalseClass ], default: true,
|
|
88
|
-
description: "Enable ETag headers. Set to false to disable ETag headers. To use this setting, `use_conditional_get` must also be set to true."
|
|
160
|
+
description: "Enable ETag headers. Set to `false` to disable ETag headers. To use this setting, `use_conditional_get` must also be set to true."
|
|
89
161
|
|
|
90
162
|
alias :use_etags :use_etag
|
|
91
163
|
|
|
@@ -95,10 +167,30 @@ class Chef
|
|
|
95
167
|
property :ftp_active_mode, [ TrueClass, FalseClass ], default: false,
|
|
96
168
|
description: "Whether #{ChefUtils::Dist::Infra::PRODUCT} uses active or passive FTP. Set to `true` to use active FTP."
|
|
97
169
|
|
|
98
|
-
property :headers, Hash, default:
|
|
99
|
-
description:
|
|
170
|
+
property :headers, Hash, default: {},
|
|
171
|
+
description: <<~'DOCS'
|
|
172
|
+
A Hash of custom headers. For example:
|
|
173
|
+
|
|
174
|
+
```ruby
|
|
175
|
+
headers({ "Cookie" => "user=some_user; pass=p@ssw0rd!" })
|
|
176
|
+
```
|
|
100
177
|
|
|
101
|
-
|
|
178
|
+
or:
|
|
179
|
+
|
|
180
|
+
```ruby
|
|
181
|
+
headers({ "Referer" => "#{header}" })
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
or:
|
|
185
|
+
|
|
186
|
+
```ruby
|
|
187
|
+
headers( "Authorization"=>"Basic #{ Base64.encode64("#{username}:#{password}").gsub("\n", "") }" )
|
|
188
|
+
```
|
|
189
|
+
DOCS
|
|
190
|
+
|
|
191
|
+
property :show_progress, [ TrueClass, FalseClass ],
|
|
192
|
+
description: "Displays the progress of the file download.",
|
|
193
|
+
default: false
|
|
102
194
|
|
|
103
195
|
property :ssl_verify_mode, Symbol, equal_to: %i{verify_none verify_peer},
|
|
104
196
|
introduced: "16.2",
|
|
@@ -118,6 +210,10 @@ class Chef
|
|
|
118
210
|
|
|
119
211
|
property :authentication, Symbol, equal_to: %i{remote local}, default: :remote
|
|
120
212
|
|
|
213
|
+
property :http_options, Hash, default: {},
|
|
214
|
+
introduced: "17.5",
|
|
215
|
+
description: "A Hash of custom HTTP options. For example: `http_options({ http_retry_count: 0, http_retry_delay: 2 })`"
|
|
216
|
+
|
|
121
217
|
def after_created
|
|
122
218
|
validate_identity_platform(remote_user, remote_password, remote_domain)
|
|
123
219
|
identity = qualify_user(remote_user, remote_password, remote_domain)
|
|
@@ -142,13 +238,13 @@ class Chef
|
|
|
142
238
|
end
|
|
143
239
|
|
|
144
240
|
# if domain is provided in both username and domain
|
|
145
|
-
if specified_user && ((specified_user.include?
|
|
241
|
+
if specified_user && ((specified_user.include? "\\") || (specified_user.include? "@")) && specified_domain
|
|
146
242
|
raise ArgumentError, "The domain is provided twice. Username: `#{specified_user}`, Domain: `#{specified_domain}`. Please specify domain only once."
|
|
147
243
|
end
|
|
148
244
|
|
|
149
245
|
if ! specified_user.nil? && specified_domain.nil?
|
|
150
246
|
# Splitting username of format: Domain\Username
|
|
151
|
-
domain_and_user = user.split(
|
|
247
|
+
domain_and_user = user.split("\\")
|
|
152
248
|
|
|
153
249
|
if domain_and_user.length == 2
|
|
154
250
|
domain = domain_and_user[0]
|
|
@@ -25,14 +25,27 @@ class Chef
|
|
|
25
25
|
|
|
26
26
|
description "Use the **rhsm_errata** resource to install packages associated with a given Red Hat Subscription Manager Errata ID. This is helpful if packages to mitigate a single vulnerability must be installed on your hosts."
|
|
27
27
|
introduced "14.0"
|
|
28
|
+
examples <<~DOC
|
|
29
|
+
**Install a package from an Errata ID**
|
|
30
|
+
|
|
31
|
+
```ruby
|
|
32
|
+
rhsm_errata 'RHSA:2018-1234'
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Specify an Errata ID that differs from the resource name**
|
|
36
|
+
|
|
37
|
+
```ruby
|
|
38
|
+
rhsm_errata 'errata-install'
|
|
39
|
+
errata_id 'RHSA:2018-1234'
|
|
40
|
+
end
|
|
41
|
+
```
|
|
42
|
+
DOC
|
|
28
43
|
|
|
29
44
|
property :errata_id, String,
|
|
30
45
|
description: "An optional property for specifying the errata ID if it differs from the resource block's name.",
|
|
31
46
|
name_property: true
|
|
32
47
|
|
|
33
|
-
action :install do
|
|
34
|
-
description "Installs a package for a specific errata ID."
|
|
35
|
-
|
|
48
|
+
action :install, description: "Install a package for a specific errata ID." do
|
|
36
49
|
execute "Install errata packages for #{new_resource.errata_id}" do
|
|
37
50
|
command "#{package_manager_command} update --advisory #{new_resource.errata_id} -y"
|
|
38
51
|
default_env true
|
|
@@ -25,6 +25,15 @@ class Chef
|
|
|
25
25
|
|
|
26
26
|
description "Use the **rhsm_errata_level** resource to install all packages of a specified errata level from the Red Hat Subscription Manager. For example, you can ensure that all packages associated with errata marked at a 'Critical' security level are installed."
|
|
27
27
|
introduced "14.0"
|
|
28
|
+
examples <<~DOC
|
|
29
|
+
**Specify an errata level that differs from the resource name**
|
|
30
|
+
|
|
31
|
+
```ruby
|
|
32
|
+
rhsm_errata_level 'example_install_moderate' do
|
|
33
|
+
errata_level 'moderate'
|
|
34
|
+
end
|
|
35
|
+
```
|
|
36
|
+
DOC
|
|
28
37
|
|
|
29
38
|
property :errata_level, String,
|
|
30
39
|
coerce: proc { |x| x.downcase },
|
|
@@ -32,12 +41,8 @@ class Chef
|
|
|
32
41
|
description: "An optional property for specifying the errata level of packages to install if it differs from the resource block's name.",
|
|
33
42
|
name_property: true
|
|
34
43
|
|
|
35
|
-
action :install do
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if rhel6?
|
|
39
|
-
yum_package "yum-plugin-security"
|
|
40
|
-
end
|
|
44
|
+
action :install, description: "Install all packages of the specified errata level." do
|
|
45
|
+
yum_package "yum-plugin-security" if rhel6?
|
|
41
46
|
|
|
42
47
|
execute "Install any #{new_resource.errata_level} errata" do
|
|
43
48
|
command "#{package_manager_command} update --sec-severity=#{new_resource.errata_level.capitalize} -y"
|
|
@@ -27,6 +27,16 @@ class Chef
|
|
|
27
27
|
|
|
28
28
|
description "Use the **rhsm_register** resource to register a node with the Red Hat Subscription Manager or a local Red Hat Satellite server."
|
|
29
29
|
introduced "14.0"
|
|
30
|
+
examples <<~DOC
|
|
31
|
+
**Register a node with RHSM*
|
|
32
|
+
|
|
33
|
+
```ruby
|
|
34
|
+
rhsm_register 'my-host' do
|
|
35
|
+
activation_key 'ABCD1234'
|
|
36
|
+
organization 'my_org'
|
|
37
|
+
end
|
|
38
|
+
```
|
|
39
|
+
DOC
|
|
30
40
|
|
|
31
41
|
property :activation_key, [String, Array],
|
|
32
42
|
coerce: proc { |x| Array(x) },
|
|
@@ -69,9 +79,24 @@ class Chef
|
|
|
69
79
|
default: false, desired_state: false,
|
|
70
80
|
introduced: "15.9"
|
|
71
81
|
|
|
72
|
-
|
|
73
|
-
description "
|
|
82
|
+
property :server_url, String,
|
|
83
|
+
description: "The hostname of the subscription service to use. The default is Customer Portal Subscription Management, subscription.rhn.redhat.com. If you do not use this option, the system registers with Customer Portal Subscription Management.",
|
|
84
|
+
introduced: "17.8"
|
|
85
|
+
|
|
86
|
+
property :base_url, String,
|
|
87
|
+
description: "The hostname of the content delivery server to use to receive updates. Both Customer Portal Subscription Management and Subscription Asset Manager use Red Hat's hosted content delivery services, with the URL https://cdn.redhat.com. Since Satellite 6 hosts its own content, the URL must be used for systems registered with Satellite 6.",
|
|
88
|
+
introduced: "17.8"
|
|
89
|
+
|
|
90
|
+
property :service_level, String,
|
|
91
|
+
description: "Sets the service level to use for subscriptions on the registering machine. This is only used with the `auto_attach` option.",
|
|
92
|
+
introduced: "17.8"
|
|
93
|
+
|
|
94
|
+
property :release,
|
|
95
|
+
[Float, String],
|
|
96
|
+
description: "Sets the operating system minor release to use for subscriptions for the system. Products and updates are limited to the specified minor release version. This is used only used with the `auto_attach` option. For example, `release '6.4'` will append `--release=6.4` to the register command.",
|
|
97
|
+
introduced: "17.8"
|
|
74
98
|
|
|
99
|
+
action :register, description: "Register the node with RHSM." do
|
|
75
100
|
package "subscription-manager"
|
|
76
101
|
|
|
77
102
|
unless new_resource.satellite_host.nil? || registered_with_rhsm?
|
|
@@ -111,7 +136,7 @@ class Chef
|
|
|
111
136
|
end
|
|
112
137
|
end
|
|
113
138
|
|
|
114
|
-
action :unregister do
|
|
139
|
+
action :unregister, description: "Unregister the node from RHSM." do
|
|
115
140
|
description "Unregister the node from RHSM."
|
|
116
141
|
|
|
117
142
|
package flush_package_cache_name do
|
|
@@ -181,6 +206,8 @@ class Chef
|
|
|
181
206
|
command << new_resource.activation_key.map { |key| "--activationkey=#{Shellwords.shellescape(key)}" }
|
|
182
207
|
command << "--org=#{Shellwords.shellescape(new_resource.organization)}"
|
|
183
208
|
command << "--name=#{Shellwords.shellescape(new_resource.system_name)}" if new_resource.system_name
|
|
209
|
+
command << "--serverurl=#{Shellwords.shellescape(new_resource.server_url)}" if new_resource.server_url
|
|
210
|
+
command << "--baseurl=#{Shellwords.shellescape(new_resource.base_url)}" if new_resource.base_url
|
|
184
211
|
command << "--force" if new_resource.force
|
|
185
212
|
|
|
186
213
|
return command.join(" ")
|
|
@@ -190,11 +217,23 @@ class Chef
|
|
|
190
217
|
if new_resource.username && new_resource.password
|
|
191
218
|
raise "Unable to register - you must specify environment when using username/password" if new_resource.environment.nil? && using_satellite_host?
|
|
192
219
|
|
|
220
|
+
if new_resource.service_level
|
|
221
|
+
raise "Unable to register - 'auto_attach' must be enabled when using property `service_level`." unless new_resource.auto_attach
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
if new_resource.release
|
|
225
|
+
raise "Unable to register - `auto_attach` must be enabled when using property `release`." unless new_resource.auto_attach
|
|
226
|
+
end
|
|
227
|
+
|
|
193
228
|
command << "--username=#{Shellwords.shellescape(new_resource.username)}"
|
|
194
229
|
command << "--password=#{Shellwords.shellescape(new_resource.password)}"
|
|
195
230
|
command << "--environment=#{Shellwords.shellescape(new_resource.environment)}" if using_satellite_host?
|
|
196
231
|
command << "--name=#{Shellwords.shellescape(new_resource.system_name)}" if new_resource.system_name
|
|
232
|
+
command << "--serverurl=#{Shellwords.shellescape(new_resource.server_url)}" if new_resource.server_url
|
|
233
|
+
command << "--baseurl=#{Shellwords.shellescape(new_resource.base_url)}" if new_resource.base_url
|
|
197
234
|
command << "--auto-attach" if new_resource.auto_attach
|
|
235
|
+
command << "--servicelevel=#{Shellwords.shellescape(new_resource.service_level)}" if new_resource.service_level
|
|
236
|
+
command << "--release=#{Shellwords.shellescape(new_resource.release)}" if new_resource.release
|
|
198
237
|
command << "--force" if new_resource.force
|
|
199
238
|
|
|
200
239
|
return command.join(" ")
|
|
@@ -26,14 +26,27 @@ class Chef
|
|
|
26
26
|
|
|
27
27
|
description "Use the **rhsm_repo** resource to enable or disable Red Hat Subscription Manager repositories that are made available via attached subscriptions."
|
|
28
28
|
introduced "14.0"
|
|
29
|
+
examples <<~DOC
|
|
30
|
+
**Enable an RHSM repository**
|
|
31
|
+
|
|
32
|
+
```ruby
|
|
33
|
+
rhsm_repo 'rhel-7-server-extras-rpms'
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Disable an RHSM repository**
|
|
37
|
+
|
|
38
|
+
```ruby
|
|
39
|
+
rhsm_repo 'rhel-7-server-extras-rpms' do
|
|
40
|
+
action :disable
|
|
41
|
+
end
|
|
42
|
+
```
|
|
43
|
+
DOC
|
|
29
44
|
|
|
30
45
|
property :repo_name, String,
|
|
31
46
|
description: "An optional property for specifying the repository name if it differs from the resource block's name.",
|
|
32
47
|
name_property: true
|
|
33
48
|
|
|
34
|
-
action :enable do
|
|
35
|
-
description "Enable a RHSM repository."
|
|
36
|
-
|
|
49
|
+
action :enable, description: "Enable a RHSM repository." do
|
|
37
50
|
execute "Enable repository #{new_resource.repo_name}" do
|
|
38
51
|
command "subscription-manager repos --enable=#{new_resource.repo_name}"
|
|
39
52
|
default_env true
|
|
@@ -42,9 +55,7 @@ class Chef
|
|
|
42
55
|
end
|
|
43
56
|
end
|
|
44
57
|
|
|
45
|
-
action :disable do
|
|
46
|
-
description "Disable a RHSM repository."
|
|
47
|
-
|
|
58
|
+
action :disable, description: "Disable a RHSM repository." do
|
|
48
59
|
execute "Enable repository #{new_resource.repo_name}" do
|
|
49
60
|
command "subscription-manager repos --disable=#{new_resource.repo_name}"
|
|
50
61
|
default_env true
|
|
@@ -31,9 +31,7 @@ class Chef
|
|
|
31
31
|
description: "An optional property for specifying the Pool ID if it differs from the resource block's name.",
|
|
32
32
|
name_property: true
|
|
33
33
|
|
|
34
|
-
action :attach do
|
|
35
|
-
description "Attach the node to a subscription pool."
|
|
36
|
-
|
|
34
|
+
action :attach, description: "Attach the node to a subscription pool." do
|
|
37
35
|
unless subscription_attached?(new_resource.pool_id)
|
|
38
36
|
converge_by("attach subscription pool #{new_resource.pool_id}") do
|
|
39
37
|
shell_out!("subscription-manager attach --pool=#{new_resource.pool_id}")
|
|
@@ -42,9 +40,7 @@ class Chef
|
|
|
42
40
|
end
|
|
43
41
|
end
|
|
44
42
|
|
|
45
|
-
action :remove do
|
|
46
|
-
description "Remove the node from a subscription pool."
|
|
47
|
-
|
|
43
|
+
action :remove, description: "Remove the node from a subscription pool." do
|
|
48
44
|
execute "Remove subscription pool #{new_resource.pool_id}" do
|
|
49
45
|
command "subscription-manager remove --serial=#{pool_serial(new_resource.pool_id)}"
|
|
50
46
|
default_env true
|
|
@@ -29,6 +29,106 @@ class Chef
|
|
|
29
29
|
provides :ruby_block, target_mode: true
|
|
30
30
|
|
|
31
31
|
description "Use the **ruby_block** resource to execute Ruby code during a #{ChefUtils::Dist::Infra::PRODUCT} run. Ruby code in the `ruby_block` resource is evaluated with other resources during convergence, whereas Ruby code outside of a `ruby_block` resource is evaluated before other resources, as the recipe is compiled."
|
|
32
|
+
examples <<~'DOC'
|
|
33
|
+
**Reload Chef Infra Client configuration data**
|
|
34
|
+
|
|
35
|
+
```ruby
|
|
36
|
+
ruby_block 'reload_client_config' do
|
|
37
|
+
block do
|
|
38
|
+
Chef::Config.from_file('/etc/chef/client.rb')
|
|
39
|
+
end
|
|
40
|
+
action :run
|
|
41
|
+
end
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Run a block on a particular platform**
|
|
45
|
+
|
|
46
|
+
The following example shows how an if statement can be used with the `windows?` method in the Chef Infra Language to run code specific to Microsoft Windows. The code is defined using the ruby_block resource:
|
|
47
|
+
|
|
48
|
+
```ruby
|
|
49
|
+
if windows?
|
|
50
|
+
ruby_block 'copy libmysql.dll into ruby path' do
|
|
51
|
+
block do
|
|
52
|
+
require 'fileutils'
|
|
53
|
+
FileUtils.cp "#{node['mysql']['client']['lib_dir']}\\libmysql.dll",
|
|
54
|
+
node['mysql']['client']['ruby_dir']
|
|
55
|
+
end
|
|
56
|
+
not_if { ::File.exist?("#{node['mysql']['client']['ruby_dir']}\\libmysql.dll") }
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Stash a file in a data bag**
|
|
62
|
+
|
|
63
|
+
The following example shows how to use the ruby_block resource to stash a BitTorrent file in a data bag so that it can be distributed to nodes in the organization.
|
|
64
|
+
|
|
65
|
+
```ruby
|
|
66
|
+
ruby_block 'share the torrent file' do
|
|
67
|
+
block do
|
|
68
|
+
f = File.open(node['bittorrent']['torrent'],'rb')
|
|
69
|
+
#read the .torrent file and base64 encode it
|
|
70
|
+
enc = Base64.encode64(f.read)
|
|
71
|
+
data = {
|
|
72
|
+
'id'=>bittorrent_item_id(node['bittorrent']['file']),
|
|
73
|
+
'seed'=>node.ipaddress,
|
|
74
|
+
'torrent'=>enc
|
|
75
|
+
}
|
|
76
|
+
item = Chef::DataBagItem.new
|
|
77
|
+
item.data_bag('bittorrent')
|
|
78
|
+
item.raw_data = data
|
|
79
|
+
item.save
|
|
80
|
+
end
|
|
81
|
+
action :nothing
|
|
82
|
+
subscribes :create, "bittorrent_torrent[#{node['bittorrent']['torrent']}]", :immediately
|
|
83
|
+
end
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Update the /etc/hosts file**
|
|
87
|
+
|
|
88
|
+
The following example shows how the ruby_block resource can be used to update the /etc/hosts file:
|
|
89
|
+
|
|
90
|
+
```ruby
|
|
91
|
+
ruby_block 'edit etc hosts' do
|
|
92
|
+
block do
|
|
93
|
+
rc = Chef::Util::FileEdit.new('/etc/hosts')
|
|
94
|
+
rc.search_file_replace_line(/^127\.0\.0\.1 localhost$/,
|
|
95
|
+
'127.0.0.1 #{new_fqdn} #{new_hostname} localhost')
|
|
96
|
+
rc.write_file
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Set environment variables**
|
|
102
|
+
|
|
103
|
+
The following example shows how to use variables within a Ruby block to set environment variables using rbenv.
|
|
104
|
+
|
|
105
|
+
```ruby
|
|
106
|
+
node.override[:rbenv][:root] = rbenv_root
|
|
107
|
+
node.override[:ruby_build][:bin_path] = rbenv_binary_path
|
|
108
|
+
|
|
109
|
+
ruby_block 'initialize' do
|
|
110
|
+
block do
|
|
111
|
+
ENV['RBENV_ROOT'] = node[:rbenv][:root]
|
|
112
|
+
ENV['PATH'] = "#{node[:rbenv][:root]}/bin:#{node[:ruby_build][:bin_path]}:#{ENV['PATH']}"
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Call methods in a gem**
|
|
118
|
+
|
|
119
|
+
The following example shows how to call methods in gems not shipped in Chef Infra Client
|
|
120
|
+
|
|
121
|
+
```ruby
|
|
122
|
+
chef_gem 'mongodb'
|
|
123
|
+
|
|
124
|
+
ruby_block 'config_replicaset' do
|
|
125
|
+
block do
|
|
126
|
+
MongoDB.configure_replicaset(node, replicaset_name, rs_nodes)
|
|
127
|
+
end
|
|
128
|
+
action :run
|
|
129
|
+
end
|
|
130
|
+
```
|
|
131
|
+
DOC
|
|
32
132
|
|
|
33
133
|
default_action :run
|
|
34
134
|
allowed_actions :create, :run
|
|
@@ -112,7 +112,7 @@ class Chef
|
|
|
112
112
|
|
|
113
113
|
property :additional_remotes, Hash,
|
|
114
114
|
description: "A Hash of additional remotes that are added to the git repository configuration.",
|
|
115
|
-
default:
|
|
115
|
+
default: {}
|
|
116
116
|
|
|
117
117
|
property :depth, Integer,
|
|
118
118
|
description: "The number of past revisions to be included in the git shallow clone. Unless specified the default behavior will do a full clone."
|
|
@@ -28,7 +28,7 @@ class Chef
|
|
|
28
28
|
|
|
29
29
|
provides :subversion
|
|
30
30
|
|
|
31
|
-
description "Use the **subversion** resource to manage source control resources that exist in a Subversion repository."
|
|
31
|
+
description "Use the **subversion** resource to manage source control resources that exist in a Subversion repository. Warning: The subversion resource has known bugs and may not work as expected. For more information see Chef GitHub issues, particularly [#4050](https://github.com/chef/chef/issues/4050) and [#4257](https://github.com/chef/chef/issues/4257)."
|
|
32
32
|
examples <<~DOC
|
|
33
33
|
**Get the latest version of an application**
|
|
34
34
|
|
|
@@ -75,7 +75,8 @@ class Chef
|
|
|
75
75
|
|
|
76
76
|
property :group, [String, Integer],
|
|
77
77
|
description: "The file group for the ssh_known_hosts file.",
|
|
78
|
-
default: lazy { node["root_group"] }
|
|
78
|
+
default: lazy { node["root_group"] },
|
|
79
|
+
default_description: "The root user's group depending on platform."
|
|
79
80
|
|
|
80
81
|
property :hash_entries, [TrueClass, FalseClass],
|
|
81
82
|
description: "Hash the hostname and addresses in the ssh_known_hosts file for privacy.",
|
|
@@ -85,9 +86,7 @@ class Chef
|
|
|
85
86
|
description: "The location of the ssh known hosts file. Change this to set a known host file for a particular user.",
|
|
86
87
|
default: "/etc/ssh/ssh_known_hosts"
|
|
87
88
|
|
|
88
|
-
action :create do
|
|
89
|
-
description "Create an entry in the ssh_known_hosts file."
|
|
90
|
-
|
|
89
|
+
action :create, description: "Create an entry in the ssh_known_hosts file." do
|
|
91
90
|
key =
|
|
92
91
|
if new_resource.key
|
|
93
92
|
hoststr = (new_resource.port != 22) ? "[#{new_resource.host}]:#{new_resource.port}" : new_resource.host
|
|
@@ -129,9 +128,7 @@ class Chef
|
|
|
129
128
|
end
|
|
130
129
|
|
|
131
130
|
# all this does is send an immediate run_action(:create) to the template resource
|
|
132
|
-
action :flush do
|
|
133
|
-
description "Immediately flush the entries to the config file. Without this the actual writing of the file is delayed in the #{ChefUtils::Dist::Infra::PRODUCT} run so all entries can be accumulated before writing the file out."
|
|
134
|
-
|
|
131
|
+
action :flush, description: "Immediately flush the entries to the config file. Without this the actual writing of the file is delayed in the #{ChefUtils::Dist::Infra::PRODUCT} run so all entries can be accumulated before writing the file out." do
|
|
135
132
|
with_run_context :root do
|
|
136
133
|
# if you haven't ever called ssh_known_hosts_entry before you're definitely doing it wrong so we blow up hard.
|
|
137
134
|
find_resource!(:template, "update ssh known hosts file #{new_resource.file_location}").run_action(:create)
|
data/lib/chef/resource/sudo.rb
CHANGED
|
@@ -71,12 +71,12 @@ class Chef
|
|
|
71
71
|
|
|
72
72
|
property :users, [String, Array],
|
|
73
73
|
description: "User(s) to provide sudo privileges to. This property accepts either an array or a comma separated list.",
|
|
74
|
-
default:
|
|
74
|
+
default: [],
|
|
75
75
|
coerce: proc { |x| x.is_a?(Array) ? x : x.split(/\s*,\s*/) }
|
|
76
76
|
|
|
77
77
|
property :groups, [String, Array],
|
|
78
78
|
description: "Group(s) to provide sudo privileges to. This property accepts either an array or a comma separated list. Leading % on group names is optional.",
|
|
79
|
-
default:
|
|
79
|
+
default: [],
|
|
80
80
|
coerce: proc { |x| coerce_groups(x) }
|
|
81
81
|
|
|
82
82
|
property :commands, Array,
|
|
@@ -108,11 +108,11 @@ class Chef
|
|
|
108
108
|
|
|
109
109
|
property :defaults, Array,
|
|
110
110
|
description: "An array of defaults for the user/group.",
|
|
111
|
-
default:
|
|
111
|
+
default: []
|
|
112
112
|
|
|
113
113
|
property :command_aliases, Array,
|
|
114
114
|
description: "Command aliases that can be used as allowed commands later in the configuration.",
|
|
115
|
-
default:
|
|
115
|
+
default: []
|
|
116
116
|
|
|
117
117
|
property :setenv, [TrueClass, FalseClass],
|
|
118
118
|
description: "Determines whether or not to permit preservation of the environment with `sudo -E`.",
|
|
@@ -120,11 +120,11 @@ class Chef
|
|
|
120
120
|
|
|
121
121
|
property :env_keep_add, Array,
|
|
122
122
|
description: "An array of strings to add to `env_keep`.",
|
|
123
|
-
default:
|
|
123
|
+
default: []
|
|
124
124
|
|
|
125
125
|
property :env_keep_subtract, Array,
|
|
126
126
|
description: "An array of strings to remove from `env_keep`.",
|
|
127
|
-
default:
|
|
127
|
+
default: []
|
|
128
128
|
|
|
129
129
|
property :visudo_path, String,
|
|
130
130
|
deprecated: true
|
|
@@ -170,9 +170,7 @@ class Chef
|
|
|
170
170
|
end
|
|
171
171
|
end
|
|
172
172
|
|
|
173
|
-
action :create do
|
|
174
|
-
description "Create a single sudoers config in the sudoers.d directory"
|
|
175
|
-
|
|
173
|
+
action :create, description: "Create a single sudoers configuration file in the `sudoers.d` directory." do
|
|
176
174
|
validate_properties
|
|
177
175
|
|
|
178
176
|
if docker? # don't even put this into resource collection unless we're in docker
|
|
@@ -230,9 +228,7 @@ class Chef
|
|
|
230
228
|
end
|
|
231
229
|
|
|
232
230
|
# Removes a user from the sudoers group
|
|
233
|
-
action :delete do
|
|
234
|
-
description "Remove a sudoers config from the sudoers.d directory"
|
|
235
|
-
|
|
231
|
+
action :delete, description: "Remove a sudoers configuration file from the `sudoers.d` directory." do
|
|
236
232
|
file "#{new_resource.config_prefix}/sudoers.d/#{new_resource.filename}" do
|
|
237
233
|
action :delete
|
|
238
234
|
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<configuration>
|
|
3
|
+
<appSettings>
|
|
4
|
+
<add key="debug" value="false" />
|
|
5
|
+
<% if @auth_token %>
|
|
6
|
+
<add key="ENV_HAB_AUTH_TOKEN" value="<%= @auth_token %>" />
|
|
7
|
+
<% end %>
|
|
8
|
+
<% if @gateway_auth_token %>
|
|
9
|
+
<add key="ENV_HAB_SUP_GATEWAY_AUTH_TOKEN" value="<%= @gateway_auth_token %>" />
|
|
10
|
+
<% end %>
|
|
11
|
+
<% if @bldr_url %>
|
|
12
|
+
<add key="ENV_HAB_BLDR_URL" value="<%= @bldr_url %>" />
|
|
13
|
+
<% end %>
|
|
14
|
+
<%if @exec_start_options %>
|
|
15
|
+
<add key="launcherArgs" value="--no-color <%= @exec_start_options %>" />
|
|
16
|
+
<% end %>
|
|
17
|
+
<add key="launcherPath" value="C:\Hab\pkgs\<%= `hab pkg list core/hab-launcher`.split().last %>\bin\hab-launch.exe"/>
|
|
18
|
+
</appSettings>
|
|
19
|
+
</configuration>
|
|
@@ -10,16 +10,19 @@
|
|
|
10
10
|
@https_proxy
|
|
11
11
|
@ftp_proxy
|
|
12
12
|
@log_level
|
|
13
|
-
@minimal_ohai
|
|
14
13
|
@named_run_list
|
|
15
14
|
@no_proxy
|
|
16
15
|
@pid_file
|
|
17
16
|
@policy_group
|
|
18
17
|
@policy_name
|
|
18
|
+
@rubygems_url
|
|
19
19
|
@ssl_verify_mode).each do |prop| -%>
|
|
20
20
|
<% next if instance_variable_get(prop).nil? || instance_variable_get(prop).empty? -%>
|
|
21
21
|
<%=prop.delete_prefix("@") %> <%= instance_variable_get(prop).inspect %>
|
|
22
22
|
<% end -%>
|
|
23
|
+
<%# boolean properties are neither .nil? nor respond to .empty? so they are included below %>
|
|
24
|
+
minimal_ohai <%= @minimal_ohai.inspect %>
|
|
25
|
+
policy_persist_run_list <%= @policy_persist_run_list.inspect %>
|
|
23
26
|
<%# ohai_disabled_plugins and ohai_optional_plugins properties don't match the config value perfectly-%>
|
|
24
27
|
<% %w(@ohai_disabled_plugins
|
|
25
28
|
@ohai_optional_plugins).each do |prop| -%>
|
|
@@ -34,6 +37,13 @@ log_location <%= @log_location %>
|
|
|
34
37
|
log_location <%= @log_location.inspect %>
|
|
35
38
|
<% end -%>
|
|
36
39
|
<% end -%>
|
|
40
|
+
<%# These data_collector options are special as they have a '.' -%>
|
|
41
|
+
<% unless @data_collector_server_url.nil? || @data_collector_server_url.empty? %>
|
|
42
|
+
data_collector.server_url <%= @data_collector_server_url %>
|
|
43
|
+
<% end %>
|
|
44
|
+
<% unless @data_collector_token.nil? || @data_collector_token.empty? %>
|
|
45
|
+
data_collector.token <%= @data_collector_token %>
|
|
46
|
+
<% end %>
|
|
37
47
|
<%# The code below is not DRY on purpose to improve readability -%>
|
|
38
48
|
<% unless @start_handlers.empty? -%>
|
|
39
49
|
# Do not crash if a start handler is missing / not installed yet
|