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
|
@@ -106,7 +106,7 @@ class Chef
|
|
|
106
106
|
description: "The e-mail address to e-mail any cron task failures to."
|
|
107
107
|
|
|
108
108
|
property :accept_chef_license, [true, false],
|
|
109
|
-
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement
|
|
109
|
+
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement>",
|
|
110
110
|
default: false
|
|
111
111
|
|
|
112
112
|
property :config_directory, String,
|
|
@@ -131,11 +131,11 @@ class Chef
|
|
|
131
131
|
description: "The path to the #{ChefUtils::Dist::Infra::CLIENT} binary."
|
|
132
132
|
|
|
133
133
|
property :daemon_options, Array,
|
|
134
|
-
default:
|
|
134
|
+
default: [],
|
|
135
135
|
description: "An array of options to pass to the #{ChefUtils::Dist::Infra::CLIENT} command."
|
|
136
136
|
|
|
137
137
|
property :environment, Hash,
|
|
138
|
-
default:
|
|
138
|
+
default: {},
|
|
139
139
|
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`."
|
|
140
140
|
|
|
141
141
|
property :nice, [Integer, String],
|
|
@@ -144,7 +144,7 @@ class Chef
|
|
|
144
144
|
coerce: proc { |x| Integer(x) },
|
|
145
145
|
callbacks: { "should be an Integer between -20 and 19" => proc { |v| v >= -20 && v <= 19 } }
|
|
146
146
|
|
|
147
|
-
action :add do
|
|
147
|
+
action :add, description: "Add a cron job to run #{ChefUtils::Dist::Infra::PRODUCT}." do
|
|
148
148
|
# TODO: Replace this with a :create_if_missing action on directory when that exists
|
|
149
149
|
unless ::Dir.exist?(new_resource.log_directory)
|
|
150
150
|
directory new_resource.log_directory do
|
|
@@ -168,7 +168,7 @@ class Chef
|
|
|
168
168
|
end
|
|
169
169
|
end
|
|
170
170
|
|
|
171
|
-
action :remove do
|
|
171
|
+
action :remove, description: "Remove a cron job for #{ChefUtils::Dist::Infra::PRODUCT}." do
|
|
172
172
|
declare_resource(cron_resource_type, new_resource.job_name) do
|
|
173
173
|
action :delete
|
|
174
174
|
end
|
|
@@ -23,7 +23,7 @@ class Chef
|
|
|
23
23
|
|
|
24
24
|
provides :chef_client_launchd
|
|
25
25
|
|
|
26
|
-
description "Use the **chef_client_launchd** resource to configure the #{ChefUtils::Dist::Infra::PRODUCT} to run on a schedule."
|
|
26
|
+
description "Use the **chef_client_launchd** resource to configure the #{ChefUtils::Dist::Infra::PRODUCT} to run on a schedule on macOS systems."
|
|
27
27
|
introduced "16.5"
|
|
28
28
|
examples <<~DOC
|
|
29
29
|
**Set the #{ChefUtils::Dist::Infra::PRODUCT} to run on a schedule**:
|
|
@@ -65,7 +65,7 @@ class Chef
|
|
|
65
65
|
description: "A random number of seconds between 0 and X to add to interval so that all #{ChefUtils::Dist::Infra::CLIENT} commands don't execute at the same time."
|
|
66
66
|
|
|
67
67
|
property :accept_chef_license, [true, false],
|
|
68
|
-
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement
|
|
68
|
+
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement>",
|
|
69
69
|
default: false
|
|
70
70
|
|
|
71
71
|
property :config_directory, String,
|
|
@@ -86,11 +86,11 @@ class Chef
|
|
|
86
86
|
|
|
87
87
|
property :daemon_options, Array,
|
|
88
88
|
description: "An array of options to pass to the #{ChefUtils::Dist::Infra::CLIENT} command.",
|
|
89
|
-
default:
|
|
89
|
+
default: []
|
|
90
90
|
|
|
91
91
|
property :environment, Hash,
|
|
92
92
|
description: "A Hash containing additional arbitrary environment variables under which the launchd daemon will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`.",
|
|
93
|
-
default:
|
|
93
|
+
default: {}
|
|
94
94
|
|
|
95
95
|
property :nice, [Integer, String],
|
|
96
96
|
description: "The process priority to run the #{ChefUtils::Dist::Infra::CLIENT} process at. A value of -20 is the highest priority and 19 is the lowest priority.",
|
|
@@ -101,7 +101,7 @@ class Chef
|
|
|
101
101
|
description: "Run the #{ChefUtils::Dist::Infra::CLIENT} process with low priority disk IO",
|
|
102
102
|
default: true
|
|
103
103
|
|
|
104
|
-
action :enable do
|
|
104
|
+
action :enable, description: "Enable running #{ChefUtils::Dist::Infra::PRODUCT} on a schedule using launchd." do
|
|
105
105
|
unless ::Dir.exist?(new_resource.log_directory)
|
|
106
106
|
directory new_resource.log_directory do
|
|
107
107
|
owner new_resource.user
|
|
@@ -134,7 +134,7 @@ class Chef
|
|
|
134
134
|
standard_error_path ::File.join(new_resource.log_directory, new_resource.log_file_name)
|
|
135
135
|
program_arguments ["/bin/bash",
|
|
136
136
|
"-c",
|
|
137
|
-
"echo; echo #{ChefUtils::Dist::Infra::PRODUCT} launchd daemon config has been updated. Manually unloading and reloading the daemon; echo Now unloading the daemon; /bin/launchctl unload /Library/LaunchDaemons/com.#{ChefUtils::Dist::Infra::SHORT}.#{ChefUtils::Dist::Infra::CLIENT}.plist; sleep 2; echo Now loading the daemon; /bin/launchctl load /Library/LaunchDaemons/com.#{ChefUtils::Dist::Infra::SHORT}.#{ChefUtils::Dist::Infra::CLIENT}.plist"]
|
|
137
|
+
"echo; echo #{ChefUtils::Dist::Infra::PRODUCT} launchd daemon config has been updated. Manually unloading and reloading the daemon; echo Now unloading the daemon; sudo /bin/launchctl unload /Library/LaunchDaemons/com.#{ChefUtils::Dist::Infra::SHORT}.#{ChefUtils::Dist::Infra::CLIENT}.plist; sleep 2; echo Now loading the daemon; sudo /bin/launchctl load /Library/LaunchDaemons/com.#{ChefUtils::Dist::Infra::SHORT}.#{ChefUtils::Dist::Infra::CLIENT}.plist"]
|
|
138
138
|
action :enable # enable creates the plist & triggers service restarts on change
|
|
139
139
|
end
|
|
140
140
|
|
|
@@ -148,7 +148,7 @@ class Chef
|
|
|
148
148
|
end
|
|
149
149
|
end
|
|
150
150
|
|
|
151
|
-
action :disable do
|
|
151
|
+
action :disable, description: "Disable running #{ChefUtils::Dist::Infra::PRODUCT} on a schedule using launchd" do
|
|
152
152
|
service ChefUtils::Dist::Infra::PRODUCT do
|
|
153
153
|
service_name "com.#{ChefUtils::Dist::Infra::SHORT}.#{ChefUtils::Dist::Infra::CLIENT}"
|
|
154
154
|
action :disable
|
|
@@ -30,33 +30,41 @@ class Chef
|
|
|
30
30
|
**Setup #{ChefUtils::Dist::Infra::PRODUCT} to run using the default 30 minute cadence**:
|
|
31
31
|
|
|
32
32
|
```ruby
|
|
33
|
-
|
|
33
|
+
chef_client_scheduled_task 'Run #{ChefUtils::Dist::Infra::PRODUCT} as a scheduled task'
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
**Run #{ChefUtils::Dist::Infra::PRODUCT} on system start**:
|
|
37
37
|
|
|
38
38
|
```ruby
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
chef_client_scheduled_task '#{ChefUtils::Dist::Infra::PRODUCT} on start' do
|
|
40
|
+
frequency 'onstart'
|
|
41
|
+
end
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
**Run #{ChefUtils::Dist::Infra::PRODUCT} with extra options passed to the client**:
|
|
45
45
|
|
|
46
46
|
```ruby
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
chef_client_scheduled_task 'Run an override recipe' do
|
|
48
|
+
daemon_options ['--override-runlist mycorp_base::default']
|
|
49
|
+
end
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
**Run #{ChefUtils::Dist::Infra::PRODUCT} daily at 01:00 am, specifying a named run-list**:
|
|
53
53
|
|
|
54
54
|
```ruby
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
chef_client_scheduled_task 'Run chef-client named run-list daily' do
|
|
56
|
+
frequency 'daily'
|
|
57
|
+
start_time '01:00'
|
|
58
|
+
daemon_options ['-n audit_only']
|
|
59
|
+
end
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Run #{ChefUtils::Dist::Infra::PRODUCT} with a persistent delay on every run calculated once, similar to how chef_client_cron resource works**:
|
|
63
|
+
|
|
64
|
+
```ruby
|
|
65
|
+
chef_client_scheduled_task 'Run chef-client with persistent splay' do
|
|
66
|
+
use_consistent_splay true
|
|
67
|
+
end
|
|
60
68
|
```
|
|
61
69
|
DOC
|
|
62
70
|
|
|
@@ -87,7 +95,7 @@ class Chef
|
|
|
87
95
|
default_description: "30 if frequency is 'minute', 1 otherwise"
|
|
88
96
|
|
|
89
97
|
property :accept_chef_license, [true, false],
|
|
90
|
-
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement
|
|
98
|
+
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement>",
|
|
91
99
|
default: false
|
|
92
100
|
|
|
93
101
|
property :start_date, String,
|
|
@@ -104,6 +112,11 @@ class Chef
|
|
|
104
112
|
description: "A random number of seconds between 0 and X to add to interval so that all #{ChefUtils::Dist::Infra::CLIENT} commands don't execute at the same time.",
|
|
105
113
|
default: 300
|
|
106
114
|
|
|
115
|
+
property :use_consistent_splay, [true, false],
|
|
116
|
+
description: "Always use the same random splay amount for each node to ensure consistent frequencies between #{ChefUtils::Dist::Infra::CLIENT} execution.",
|
|
117
|
+
introduced: "17.5",
|
|
118
|
+
default: false
|
|
119
|
+
|
|
107
120
|
property :run_on_battery, [true, false],
|
|
108
121
|
description: "Run the #{ChefUtils::Dist::Infra::PRODUCT} task when the system is on batteries.",
|
|
109
122
|
default: true
|
|
@@ -127,9 +140,14 @@ class Chef
|
|
|
127
140
|
|
|
128
141
|
property :daemon_options, Array,
|
|
129
142
|
description: "An array of options to pass to the #{ChefUtils::Dist::Infra::CLIENT} command.",
|
|
130
|
-
default:
|
|
143
|
+
default: []
|
|
131
144
|
|
|
132
|
-
|
|
145
|
+
property :priority, Integer,
|
|
146
|
+
description: "Use to set Priority Levels range from 0 to 10.",
|
|
147
|
+
introduced: "17.5",
|
|
148
|
+
default: 7, callbacks: { "should be in range of 0 to 10" => proc { |v| v >= 0 && v <= 10 } }
|
|
149
|
+
|
|
150
|
+
action :add, description: "Add a Windows Scheduled Task that runs #{ChefUtils::Dist::Infra::PRODUCT}." do
|
|
133
151
|
# TODO: Replace this with a :create_if_missing action on directory when that exists
|
|
134
152
|
unless Dir.exist?(new_resource.log_directory)
|
|
135
153
|
directory new_resource.log_directory do
|
|
@@ -151,13 +169,14 @@ class Chef
|
|
|
151
169
|
frequency_modifier new_resource.frequency_modifier if frequency_supports_frequency_modifier?
|
|
152
170
|
start_time new_resource.start_time
|
|
153
171
|
start_day new_resource.start_date unless new_resource.start_date.nil?
|
|
154
|
-
random_delay new_resource.splay if frequency_supports_random_delay?
|
|
172
|
+
random_delay new_resource.splay if frequency_supports_random_delay? && !new_resource.use_consistent_splay
|
|
155
173
|
disallow_start_if_on_batteries new_resource.splay unless new_resource.run_on_battery
|
|
174
|
+
priority new_resource.priority
|
|
156
175
|
action %i{create enable}
|
|
157
176
|
end
|
|
158
177
|
end
|
|
159
178
|
|
|
160
|
-
action :remove do
|
|
179
|
+
action :remove, description: "Remove a Windows Scheduled Task that runs #{ChefUtils::Dist::Infra::PRODUCT}." do
|
|
161
180
|
windows_task new_resource.task_name do
|
|
162
181
|
action :delete
|
|
163
182
|
end
|
|
@@ -173,7 +192,31 @@ class Chef
|
|
|
173
192
|
# Fetch path of cmd.exe through environment variable comspec
|
|
174
193
|
cmd_path = ENV["COMSPEC"]
|
|
175
194
|
|
|
176
|
-
"#{cmd_path} /c \"#{client_cmd}\""
|
|
195
|
+
"#{cmd_path} /c \"#{consistent_splay_command}#{client_cmd}\""
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
#
|
|
199
|
+
# Generate a uniformly distributed unique number to sleep from 0 to the splay time
|
|
200
|
+
#
|
|
201
|
+
# @param [Integer] splay The number of seconds to splay
|
|
202
|
+
#
|
|
203
|
+
# @return [Integer]
|
|
204
|
+
#
|
|
205
|
+
def splay_sleep_time(splay)
|
|
206
|
+
seed = node["shard_seed"] || Digest::MD5.hexdigest(node.name).to_s.hex
|
|
207
|
+
random = Random.new(seed.to_i)
|
|
208
|
+
random.rand(splay)
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
#
|
|
212
|
+
# The consistent splay sleep time when use_consistent_splay is true.
|
|
213
|
+
#
|
|
214
|
+
# @return [NilClass,String] The prepended sleep command to run prior to executing the full command.
|
|
215
|
+
#
|
|
216
|
+
def consistent_splay_command
|
|
217
|
+
return unless new_resource.use_consistent_splay
|
|
218
|
+
|
|
219
|
+
"C:/windows/system32/windowspowershell/v1.0/powershell.exe Start-Sleep -s #{splay_sleep_time(new_resource.splay)} && "
|
|
177
220
|
end
|
|
178
221
|
|
|
179
222
|
#
|
|
@@ -75,7 +75,7 @@ class Chef
|
|
|
75
75
|
default: "5min"
|
|
76
76
|
|
|
77
77
|
property :accept_chef_license, [true, false],
|
|
78
|
-
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement
|
|
78
|
+
description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement>",
|
|
79
79
|
default: false
|
|
80
80
|
|
|
81
81
|
property :run_on_battery, [true, false],
|
|
@@ -92,11 +92,11 @@ class Chef
|
|
|
92
92
|
|
|
93
93
|
property :daemon_options, Array,
|
|
94
94
|
description: "An array of options to pass to the #{ChefUtils::Dist::Infra::CLIENT} command.",
|
|
95
|
-
default:
|
|
95
|
+
default: []
|
|
96
96
|
|
|
97
97
|
property :environment, Hash,
|
|
98
98
|
description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`.",
|
|
99
|
-
default:
|
|
99
|
+
default: {}
|
|
100
100
|
|
|
101
101
|
property :cpu_quota, [Integer, String],
|
|
102
102
|
description: "The systemd CPUQuota to run the #{ChefUtils::Dist::Infra::CLIENT} process with. This is a percentage value of the total CPU time available on the system. If the system has more than 1 core this may be a value greater than 100.",
|
|
@@ -104,7 +104,7 @@ class Chef
|
|
|
104
104
|
coerce: proc { |x| Integer(x) },
|
|
105
105
|
callbacks: { "should be a positive Integer" => proc { |v| v > 0 } }
|
|
106
106
|
|
|
107
|
-
action :add do
|
|
107
|
+
action :add, description: "Add a systemd timer that runs #{ChefUtils::Dist::Infra::PRODUCT}." do
|
|
108
108
|
systemd_unit "#{new_resource.job_name}.service" do
|
|
109
109
|
content service_content
|
|
110
110
|
action :create
|
|
@@ -116,7 +116,7 @@ class Chef
|
|
|
116
116
|
end
|
|
117
117
|
end
|
|
118
118
|
|
|
119
|
-
action :remove do
|
|
119
|
+
action :remove, description: "Remove a systemd timer that runs #{ChefUtils::Dist::Infra::PRODUCT}." do
|
|
120
120
|
systemd_unit "#{new_resource.job_name}.service" do
|
|
121
121
|
action :delete
|
|
122
122
|
end
|
|
@@ -177,7 +177,7 @@ class Chef
|
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
unit["Service"]["ConditionACPower"] = "true" unless new_resource.run_on_battery
|
|
180
|
-
unit["Service"]["CPUQuota"] = new_resource.cpu_quota if new_resource.cpu_quota
|
|
180
|
+
unit["Service"]["CPUQuota"] = "#{new_resource.cpu_quota}%" if new_resource.cpu_quota
|
|
181
181
|
unit["Service"]["Environment"] = new_resource.environment.collect { |k, v| "\"#{k}=#{v}\"" } unless new_resource.environment.empty?
|
|
182
182
|
unit
|
|
183
183
|
end
|
|
@@ -64,7 +64,7 @@ class Chef
|
|
|
64
64
|
property :certificate, String, required: [:add],
|
|
65
65
|
description: "The text of the certificate file including the BEGIN/END comment lines."
|
|
66
66
|
|
|
67
|
-
action :add do
|
|
67
|
+
action :add, description: "Add a trusted certificate to #{ChefUtils::Dist::Infra::PRODUCT}'s trusted certificate directory" do
|
|
68
68
|
unless ::Dir.exist?(Chef::Config[:trusted_certs_dir])
|
|
69
69
|
directory Chef::Config[:trusted_certs_dir] do
|
|
70
70
|
mode "0640"
|
|
@@ -79,7 +79,7 @@ class Chef
|
|
|
79
79
|
end
|
|
80
80
|
end
|
|
81
81
|
|
|
82
|
-
action :remove do
|
|
82
|
+
action :remove, description: "Remove a trusted certificate from #{ChefUtils::Dist::Infra::PRODUCT}'s trusted certificate directory" do
|
|
83
83
|
file cert_path do
|
|
84
84
|
action :delete
|
|
85
85
|
end
|
|
@@ -182,7 +182,7 @@ class Chef
|
|
|
182
182
|
|
|
183
183
|
property :arguments, [Array, Hash],
|
|
184
184
|
description: "Arguments to pass the handler's class initializer.",
|
|
185
|
-
default:
|
|
185
|
+
default: []
|
|
186
186
|
|
|
187
187
|
property :type, Hash,
|
|
188
188
|
description: "The type of handler to register as, i.e. :report, :exception or both.",
|
|
@@ -194,9 +194,7 @@ class Chef
|
|
|
194
194
|
|
|
195
195
|
# This action needs to find an rb file that presumably contains the indicated class in it and the
|
|
196
196
|
# load that file. It then instantiates that class by name and registers it as a handler.
|
|
197
|
-
action :enable do
|
|
198
|
-
description "Enables the handler for the current #{ChefUtils::Dist::Infra::PRODUCT} run on the current node"
|
|
199
|
-
|
|
197
|
+
action :enable, description: "Enables the handler for the current #{ChefUtils::Dist::Infra::PRODUCT} run on the current node." do
|
|
200
198
|
class_name = new_resource.class_name
|
|
201
199
|
new_resource.type.each do |type, enable|
|
|
202
200
|
next unless enable
|
|
@@ -218,9 +216,7 @@ class Chef
|
|
|
218
216
|
end
|
|
219
217
|
end
|
|
220
218
|
|
|
221
|
-
action :disable do
|
|
222
|
-
description "Disables the handler for the current #{ChefUtils::Dist::Infra::PRODUCT} run on the current node"
|
|
223
|
-
|
|
219
|
+
action :disable, description: "Disables the handler for the current #{ChefUtils::Dist::Infra::PRODUCT} run on the current node." do
|
|
224
220
|
new_resource.type.each_key do |type|
|
|
225
221
|
unregister_handler(type, new_resource.class_name)
|
|
226
222
|
end
|
|
@@ -62,7 +62,7 @@ class Chef
|
|
|
62
62
|
coerce: proc { |s| Integer(s) },
|
|
63
63
|
name_property: true
|
|
64
64
|
|
|
65
|
-
action :sleep do
|
|
65
|
+
action :sleep, description: "Pause the #{ChefUtils::Dist::Infra::PRODUCT} run for a specified number of seconds." do
|
|
66
66
|
converge_by("sleep #{new_resource.seconds} seconds") do
|
|
67
67
|
sleep(new_resource.seconds)
|
|
68
68
|
end
|
|
@@ -33,7 +33,7 @@ class Chef
|
|
|
33
33
|
```ruby
|
|
34
34
|
chef_vault_secret 'foo' do
|
|
35
35
|
data_bag 'bar'
|
|
36
|
-
raw_data({'auth' => 'baz'})
|
|
36
|
+
raw_data({ 'auth' => 'baz' })
|
|
37
37
|
admins 'jtimberman'
|
|
38
38
|
search '*:*'
|
|
39
39
|
end
|
|
@@ -45,7 +45,7 @@ class Chef
|
|
|
45
45
|
chef_vault_secret 'root-password' do
|
|
46
46
|
admins 'jtimberman,paulmooring'
|
|
47
47
|
data_bag 'secrets'
|
|
48
|
-
raw_data({'auth' => 'DoNotUseThisPasswordForRoot'})
|
|
48
|
+
raw_data({ 'auth' => 'DoNotUseThisPasswordForRoot' })
|
|
49
49
|
search '*:*'
|
|
50
50
|
end
|
|
51
51
|
```
|
|
@@ -88,8 +88,7 @@ class Chef
|
|
|
88
88
|
|
|
89
89
|
end
|
|
90
90
|
|
|
91
|
-
action :create do
|
|
92
|
-
description "Creates the item, or updates it if it already exists."
|
|
91
|
+
action :create, description: "Creates the item, or updates it if it already exists." do
|
|
93
92
|
|
|
94
93
|
converge_if_changed do
|
|
95
94
|
item = ChefVault::Item.new(new_resource.data_bag, new_resource.id)
|
|
@@ -111,15 +110,11 @@ class Chef
|
|
|
111
110
|
end
|
|
112
111
|
end
|
|
113
112
|
|
|
114
|
-
action :create_if_missing do
|
|
115
|
-
description "Calls the create action unless it exists."
|
|
116
|
-
|
|
113
|
+
action :create_if_missing, description: "Calls the create action unless it exists." do
|
|
117
114
|
action_create if current_resource.nil?
|
|
118
115
|
end
|
|
119
116
|
|
|
120
|
-
action :delete do
|
|
121
|
-
description "Deletes the item and the item's keys ('id'_keys)."
|
|
122
|
-
|
|
117
|
+
action :delete, description: "Deletes the item and the item's keys ('id'_keys)." do
|
|
123
118
|
chef_data_bag_item new_resource.id do
|
|
124
119
|
data_bag new_resource.data_bag
|
|
125
120
|
action :delete
|
|
@@ -21,25 +21,25 @@ class Chef
|
|
|
21
21
|
|
|
22
22
|
provides :chocolatey_config
|
|
23
23
|
|
|
24
|
-
description "Use the **chocolatey_config** resource to add or remove Chocolatey configuration keys."
|
|
24
|
+
description "Use the **chocolatey_config** resource to add or remove Chocolatey configuration keys. Note: The Chocolatey package manager is not installed on Windows by default. You will need to install it prior to using this resource by adding the [Chocolatey cookbook](https://supermarket.chef.io/cookbooks/chocolatey/) to your node's run list."
|
|
25
25
|
introduced "14.3"
|
|
26
26
|
examples <<~DOC
|
|
27
|
-
|
|
27
|
+
**Set the Chocolatey cacheLocation config**:
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
```ruby
|
|
30
|
+
chocolatey_config 'Set cacheLocation config' do
|
|
31
|
+
config_key 'cacheLocation'
|
|
32
|
+
value 'C:\\temp\\choco'
|
|
33
|
+
end
|
|
34
|
+
```
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
**Unset a Chocolatey config**:
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
```ruby
|
|
39
|
+
chocolatey_config 'BogusConfig' do
|
|
40
|
+
action :unset
|
|
41
|
+
end
|
|
42
|
+
```
|
|
43
43
|
DOC
|
|
44
44
|
|
|
45
45
|
property :config_key, String, name_property: true,
|
|
@@ -68,9 +68,7 @@ class Chef
|
|
|
68
68
|
data ? data.attribute("value").to_s : nil # REXML just returns nil if it can't find anything so avoid an undefined method error
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
-
action :set do
|
|
72
|
-
description "Sets a Chocolatey config value."
|
|
73
|
-
|
|
71
|
+
action :set, description: "Sets a Chocolatey config value." do
|
|
74
72
|
raise "#{new_resource}: When adding a Chocolatey config you must pass the 'value' property!" unless new_resource.value
|
|
75
73
|
|
|
76
74
|
converge_if_changed do
|
|
@@ -78,9 +76,7 @@ class Chef
|
|
|
78
76
|
end
|
|
79
77
|
end
|
|
80
78
|
|
|
81
|
-
action :unset do
|
|
82
|
-
description "Unsets a Chocolatey config value."
|
|
83
|
-
|
|
79
|
+
action :unset, description: "Unsets a Chocolatey config value." do
|
|
84
80
|
if current_resource
|
|
85
81
|
converge_by("unset Chocolatey config '#{new_resource.config_key}'") do
|
|
86
82
|
shell_out!(choco_cmd("unset"))
|
|
@@ -20,7 +20,7 @@ class Chef
|
|
|
20
20
|
unified_mode true
|
|
21
21
|
provides :chocolatey_feature
|
|
22
22
|
|
|
23
|
-
description "Use the **chocolatey_feature** resource to enable and disable Chocolatey features."
|
|
23
|
+
description "Use the **chocolatey_feature** resource to enable and disable Chocolatey features. Note: The Chocolatey package manager is not installed on Windows by default. You will need to install it prior to using this resource by adding the [Chocolatey cookbook](https://supermarket.chef.io/cookbooks/chocolatey/) to your node's run list."
|
|
24
24
|
introduced "15.1"
|
|
25
25
|
examples <<~DOC
|
|
26
26
|
**Enable the checksumFiles Chocolatey feature**
|
|
@@ -65,9 +65,7 @@ class Chef
|
|
|
65
65
|
data ? data.attribute("enabled").to_s : nil # REXML just returns nil if it can't find anything so avoid an undefined method error
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
-
action :enable do
|
|
69
|
-
description "Enables a named Chocolatey feature."
|
|
70
|
-
|
|
68
|
+
action :enable, description: "Enables a named Chocolatey feature." do
|
|
71
69
|
if current_resource.feature_state != true
|
|
72
70
|
converge_by("enable Chocolatey feature '#{new_resource.feature_name}'") do
|
|
73
71
|
shell_out!(choco_cmd("enable"))
|
|
@@ -75,9 +73,7 @@ class Chef
|
|
|
75
73
|
end
|
|
76
74
|
end
|
|
77
75
|
|
|
78
|
-
action :disable do
|
|
79
|
-
description "Disables a named Chocolatey feature."
|
|
80
|
-
|
|
76
|
+
action :disable, description: "Disables a named Chocolatey feature." do
|
|
81
77
|
if current_resource.feature_state == true
|
|
82
78
|
converge_by("disable Chocolatey feature '#{new_resource.feature_name}'") do
|
|
83
79
|
shell_out!(choco_cmd("disable"))
|
|
@@ -25,7 +25,7 @@ class Chef
|
|
|
25
25
|
|
|
26
26
|
provides :chocolatey_package
|
|
27
27
|
|
|
28
|
-
description "Use the **chocolatey_package** resource to manage packages using Chocolatey on the Microsoft Windows platform. Note: The Chocolatey package manager is not installed on Windows by default. You will need to install it prior to using this resource by adding the [
|
|
28
|
+
description "Use the **chocolatey_package** resource to manage packages using the Chocolatey package manager on the Microsoft Windows platform. Note: The Chocolatey package manager is not installed on Windows by default. You will need to install it prior to using this resource by adding the [chocolatey cookbook](https://supermarket.chef.io/cookbooks/chocolatey/) to your node's run list. Warning: The **chocolatey_package** resource must be specified as `chocolatey_package` and cannot be shortened to `package` in a recipe."
|
|
29
29
|
introduced "12.7"
|
|
30
30
|
examples <<~DOC
|
|
31
31
|
**Install a Chocolatey package**:
|
|
@@ -73,9 +73,9 @@ class Chef
|
|
|
73
73
|
coerce: proc { |x| [x].flatten }
|
|
74
74
|
|
|
75
75
|
# In the choco if we have the feature useEnhancedExitCodes turned on, then choco will provide enhanced exit codes(2: no results).
|
|
76
|
-
# Choco exit codes https://chocolatey.org/
|
|
76
|
+
# Choco exit codes https://docs.chocolatey.org/en-us/choco/commands/info#exit-codes
|
|
77
77
|
property :returns, [Integer, Array],
|
|
78
|
-
description: "The exit code(s) returned
|
|
78
|
+
description: "The exit code(s) returned by the `choco` command that indicate a successful action. See [Chocolatey Exit Codes](https://docs.chocolatey.org/en-us/choco/commands/info#exit-codes) for a complete list of exit codes used by Chocolatey.",
|
|
79
79
|
default: [ 0, 2 ], desired_state: false,
|
|
80
80
|
introduced: "12.18"
|
|
81
81
|
end
|
|
@@ -20,7 +20,7 @@ class Chef
|
|
|
20
20
|
unified_mode true
|
|
21
21
|
provides :chocolatey_source
|
|
22
22
|
|
|
23
|
-
description "Use the **chocolatey_source** resource to add, remove, enable, or disable Chocolatey sources."
|
|
23
|
+
description "Use the **chocolatey_source** resource to add, remove, enable, or disable Chocolatey sources. Note: The Chocolatey package manager is not installed on Windows by default. You will need to install it prior to using this resource by adding the [Chocolatey cookbook](https://supermarket.chef.io/cookbooks/chocolatey/) to your node's run list."
|
|
24
24
|
introduced "14.3"
|
|
25
25
|
examples <<~DOC
|
|
26
26
|
**Add a Chocolatey source**
|
|
@@ -63,6 +63,22 @@ class Chef
|
|
|
63
63
|
|
|
64
64
|
property :disabled, [TrueClass, FalseClass], default: false, desired_state: false, skip_docs: true
|
|
65
65
|
|
|
66
|
+
property :username, String,
|
|
67
|
+
description: "The username to use when authenticating against the source",
|
|
68
|
+
introduced: "17.7"
|
|
69
|
+
|
|
70
|
+
property :password, String, sensitive: true, desired_state: false,
|
|
71
|
+
description: "The password to use when authenticating against the source",
|
|
72
|
+
introduced: "17.7"
|
|
73
|
+
|
|
74
|
+
property :cert, String,
|
|
75
|
+
description: "The certificate to use when authenticating against the source",
|
|
76
|
+
introduced: "17.7"
|
|
77
|
+
|
|
78
|
+
property :cert_password, String, sensitive: true, desired_state: false,
|
|
79
|
+
description: "The password for the certificate to use when authenticating against the source",
|
|
80
|
+
introduced: "17.7"
|
|
81
|
+
|
|
66
82
|
load_current_value do
|
|
67
83
|
element = fetch_source_element(source_name)
|
|
68
84
|
current_value_does_not_exist! if element.nil?
|
|
@@ -74,6 +90,8 @@ class Chef
|
|
|
74
90
|
allow_self_service element["selfService"] == "true"
|
|
75
91
|
priority element["priority"].to_i
|
|
76
92
|
disabled element["disabled"] == "true"
|
|
93
|
+
username element["user"]
|
|
94
|
+
cert element["certificate"]
|
|
77
95
|
end
|
|
78
96
|
|
|
79
97
|
# @param [String] id the source name
|
|
@@ -89,8 +107,7 @@ class Chef
|
|
|
89
107
|
data ? data.attributes : nil # REXML just returns nil if it can't find anything so avoid an undefined method error
|
|
90
108
|
end
|
|
91
109
|
|
|
92
|
-
action :add do
|
|
93
|
-
description "Adds a Chocolatey source."
|
|
110
|
+
action :add, description: "Adds a Chocolatey source" do
|
|
94
111
|
|
|
95
112
|
raise "#{new_resource}: When adding a Chocolatey source you must pass the 'source' property!" unless new_resource.source
|
|
96
113
|
|
|
@@ -99,8 +116,7 @@ class Chef
|
|
|
99
116
|
end
|
|
100
117
|
end
|
|
101
118
|
|
|
102
|
-
action :remove do
|
|
103
|
-
description "Removes a Chocolatey source."
|
|
119
|
+
action :remove, description: "Removes a Chocolatey source." do
|
|
104
120
|
|
|
105
121
|
if current_resource
|
|
106
122
|
converge_by("remove Chocolatey source '#{new_resource.source_name}'") do
|
|
@@ -109,9 +125,7 @@ class Chef
|
|
|
109
125
|
end
|
|
110
126
|
end
|
|
111
127
|
|
|
112
|
-
action :disable do
|
|
113
|
-
description "Disables a Chocolatey source."
|
|
114
|
-
|
|
128
|
+
action :disable, description: "Disables a Chocolatey source. **New in Chef Infra Client 15.1.**" do
|
|
115
129
|
if current_resource.disabled != true
|
|
116
130
|
converge_by("disable Chocolatey source '#{new_resource.source_name}'") do
|
|
117
131
|
shell_out!(choco_cmd("disable"))
|
|
@@ -119,9 +133,7 @@ class Chef
|
|
|
119
133
|
end
|
|
120
134
|
end
|
|
121
135
|
|
|
122
|
-
action :enable do
|
|
123
|
-
description "Enables a Chocolatey source."
|
|
124
|
-
|
|
136
|
+
action :enable, description: "Enables a Chocolatey source. **New in Chef Infra Client 15.1.**" do
|
|
125
137
|
if current_resource.disabled == true
|
|
126
138
|
converge_by("enable Chocolatey source '#{new_resource.source_name}'") do
|
|
127
139
|
shell_out!(choco_cmd("enable"))
|
|
@@ -135,10 +147,14 @@ class Chef
|
|
|
135
147
|
def choco_cmd(action)
|
|
136
148
|
cmd = "#{ENV["ALLUSERSPROFILE"]}\\chocolatey\\bin\\choco source #{action} -n \"#{new_resource.source_name}\""
|
|
137
149
|
if action == "add"
|
|
138
|
-
cmd << "
|
|
150
|
+
cmd << " --source=\"#{new_resource.source}\" --priority=#{new_resource.priority}"
|
|
139
151
|
cmd << " --bypassproxy" if new_resource.bypass_proxy
|
|
140
152
|
cmd << " --allowselfservice" if new_resource.allow_self_service
|
|
141
153
|
cmd << " --adminonly" if new_resource.admin_only
|
|
154
|
+
cmd << " --user=\"#{new_resource.username}\"" if new_resource.username
|
|
155
|
+
cmd << " --password=\"#{new_resource.password}\"" if new_resource.password
|
|
156
|
+
cmd << " --cert=\"#{new_resource.cert}\"" if new_resource.cert
|
|
157
|
+
cmd << " --certpassword=\"#{new_resource.cert_password}\"" if new_resource.cert_password
|
|
142
158
|
end
|
|
143
159
|
cmd
|
|
144
160
|
end
|
|
@@ -61,7 +61,7 @@ property :user, String,
|
|
|
61
61
|
|
|
62
62
|
property :environment, Hash,
|
|
63
63
|
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`. **Note**: These variables must exist for a command to be run successfully.",
|
|
64
|
-
default:
|
|
64
|
+
default: {}
|
|
65
65
|
|
|
66
66
|
property :time_out, Hash,
|
|
67
67
|
description: "A Hash of timeouts in the form of `({'OPTION' => 'VALUE'})`. Accepted valid options are:
|
|
@@ -69,7 +69,7 @@ property :time_out, Hash,
|
|
|
69
69
|
- `foreground` (BOOL, default: 'false'),
|
|
70
70
|
- `kill-after` (in seconds),
|
|
71
71
|
- `signal` (a name like 'HUP' or a number)",
|
|
72
|
-
default:
|
|
72
|
+
default: {},
|
|
73
73
|
introduced: "15.7",
|
|
74
74
|
coerce: proc { |h|
|
|
75
75
|
if h.is_a?(Hash)
|