chef 16.13.16-universal-mingw32 → 17.3.48-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +11 -22
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/chef-universal-mingw32.gemspec +1 -1
- data/chef.gemspec +12 -24
- data/lib/chef/action_collection.rb +6 -26
- data/lib/chef/application.rb +1 -1
- data/lib/chef/application/base.rb +16 -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 +2 -2
- data/lib/chef/chef_fs/file_system.rb +9 -10
- data/lib/chef/client.rb +9 -3
- data/lib/chef/compliance/default_attributes.rb +5 -4
- data/lib/chef/compliance/fetcher/automate.rb +0 -7
- data/lib/chef/compliance/reporter/automate.rb +17 -7
- 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 +4 -0
- data/lib/chef/compliance/reporter/json_file.rb +8 -1
- data/lib/chef/compliance/runner.rb +65 -27
- data/lib/chef/cookbook/cookbook_version_loader.rb +3 -3
- data/lib/chef/cookbook/gem_installer.rb +5 -1
- data/lib/chef/cookbook/synchronizer.rb +3 -5
- data/lib/chef/cookbook_loader.rb +2 -4
- data/lib/chef/cookbook_uploader.rb +0 -1
- data/lib/chef/cookbook_version.rb +26 -4
- data/lib/chef/data_bag_item.rb +11 -2
- data/lib/chef/data_collector.rb +0 -1
- data/lib/chef/data_collector/run_end_message.rb +1 -1
- data/lib/chef/delayed_evaluator.rb +4 -0
- data/lib/chef/deprecated.rb +18 -4
- data/lib/chef/dsl.rb +1 -0
- data/lib/chef/dsl/chef_vault.rb +6 -6
- data/lib/chef/dsl/declare_resource.rb +5 -10
- data/lib/chef/dsl/reboot_pending.rb +1 -2
- data/lib/chef/{knife/group_list.rb → dsl/render_helpers.rb} +18 -17
- data/lib/chef/dsl/secret.rb +64 -0
- data/lib/chef/dsl/toml.rb +116 -0
- data/lib/chef/dsl/universal.rb +5 -0
- data/lib/chef/event_dispatch/base.rb +2 -1
- data/lib/chef/exceptions.rb +25 -0
- data/lib/chef/formatters/doc.rb +2 -1
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
- data/lib/chef/group.rb +75 -0
- data/lib/chef/handler.rb +46 -8
- data/lib/chef/handler/slow_report.rb +66 -0
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/mixin/get_source_from_package.rb +1 -1
- data/lib/chef/node.rb +21 -20
- 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/org.rb +3 -2
- data/lib/chef/policy_builder/policyfile.rb +88 -45
- data/lib/chef/property.rb +18 -0
- data/lib/chef/provider.rb +1 -1
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/directory.rb +6 -6
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +3 -3
- data/lib/chef/provider/git.rb +5 -7
- 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.rb +2 -2
- data/lib/chef/provider/link.rb +3 -3
- data/lib/chef/provider/lwrp_base.rb +1 -1
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/mount/aix.rb +3 -3
- data/lib/chef/provider/mount/mount.rb +5 -5
- data/lib/chef/provider/mount/windows.rb +1 -1
- data/lib/chef/provider/package.rb +17 -21
- data/lib/chef/provider/package/apt.rb +27 -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/habitat.rb +168 -0
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +5 -0
- data/lib/chef/provider/package/rubygems.rb +11 -17
- data/lib/chef/provider/package/windows.rb +2 -4
- data/lib/chef/provider/package/yum.rb +1 -4
- data/lib/chef/provider/package/yum/python_helper.rb +15 -10
- data/lib/chef/provider/package/yum/yum_helper.py +47 -63
- data/lib/chef/provider/registry_key.rb +1 -1
- data/lib/chef/provider/route.rb +2 -2
- data/lib/chef/provider/service.rb +6 -6
- 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 +12 -12
- data/lib/chef/provider/subversion.rb +10 -12
- data/lib/chef/provider/support/zypper_repo.erb +4 -2
- data/lib/chef/provider/systemd_unit.rb +36 -10
- data/lib/chef/provider/template/content.rb +3 -7
- data/lib/chef/provider/user.rb +2 -2
- data/lib/chef/provider/user/dscl.rb +1 -1
- data/lib/chef/provider/user/mac.rb +17 -20
- data/lib/chef/provider/user/pw.rb +1 -1
- data/lib/chef/provider/user/windows.rb +1 -1
- data/lib/chef/provider/windows_script.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +28 -32
- data/lib/chef/providers.rb +1 -1
- data/lib/chef/resource.rb +6 -7
- data/lib/chef/resource/alternatives.rb +6 -6
- data/lib/chef/resource/apt_package.rb +1 -1
- 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 +2 -3
- 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 +10 -5
- data/lib/chef/resource/chef_client_cron.rb +5 -5
- data/lib/chef/resource/chef_client_launchd.rb +6 -6
- data/lib/chef/resource/chef_client_scheduled_task.rb +16 -16
- data/lib/chef/resource/chef_client_systemd_timer.rb +5 -5
- 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 +2 -6
- data/lib/chef/resource/chocolatey_feature.rb +2 -6
- data/lib/chef/resource/chocolatey_source.rb +4 -10
- data/lib/chef/resource/cron/_cron_shared.rb +2 -2
- data/lib/chef/resource/cron/cron_d.rb +4 -6
- data/lib/chef/resource/cron_access.rb +2 -4
- data/lib/chef/resource/dmg_package.rb +6 -10
- data/lib/chef/resource/dpkg_package.rb +1 -1
- data/lib/chef/resource/dsc_resource.rb +1 -1
- data/lib/chef/resource/execute.rb +11 -6
- 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 +17 -10
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +4 -7
- 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_waiver_file_entry.rb +156 -0
- data/lib/chef/resource/kernel_module.rb +6 -17
- data/lib/chef/resource/locale.rb +2 -3
- data/lib/chef/resource/lwrp_base.rb +20 -1
- data/lib/chef/resource/macos_userdefaults.rb +10 -14
- 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 +3 -6
- 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 +2 -4
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/reboot.rb +38 -9
- data/lib/chef/resource/remote_directory.rb +2 -2
- data/lib/chef/resource/remote_file.rb +3 -3
- 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 +12 -6
- data/lib/chef/resource/rhsm_repo.rb +17 -6
- data/lib/chef/resource/rhsm_subscription.rb +2 -6
- data/lib/chef/resource/scm/git.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 +8 -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 +1 -3
- 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 +2 -5
- data/lib/chef/resource/windows_certificate.rb +207 -73
- 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 +2 -6
- 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 +3 -3
- 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 +104 -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 +56 -40
- 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 +19 -7
- data/lib/chef/resource/windows_uac.rb +3 -5
- data/lib/chef/resource/windows_update_settings.rb +259 -0
- data/lib/chef/resource/windows_user_privilege.rb +4 -4
- data/lib/chef/resource/windows_workgroup.rb +3 -4
- data/lib/chef/resource/yum_package.rb +10 -10
- data/lib/chef/resource/zypper_package.rb +4 -4
- data/lib/chef/resource/zypper_repository.rb +28 -8
- data/lib/chef/resource_builder.rb +8 -2
- data/lib/chef/resource_reporter.rb +0 -1
- data/lib/chef/resources.rb +13 -2
- data/lib/chef/run_lock.rb +1 -1
- data/lib/chef/runner.rb +1 -1
- data/lib/chef/secret_fetcher.rb +54 -0
- data/lib/chef/secret_fetcher/aws_secrets_manager.rb +53 -0
- data/lib/chef/secret_fetcher/azure_key_vault.rb +56 -0
- data/lib/chef/secret_fetcher/base.rb +72 -0
- data/lib/chef/secret_fetcher/example.rb +46 -0
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/user.rb +0 -1
- data/lib/chef/user_v1.rb +3 -4
- data/lib/chef/util/dsc/configuration_generator.rb +1 -0
- data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +9 -2
- data/lib/chef/win32/registry.rb +4 -2
- 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-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/run_context/cookbooks/test/resources/resource.rb +2 -0
- data/spec/functional/dsl/registry_helper_spec.rb +1 -1
- 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/chocolatey_package_spec.rb +13 -0
- data/spec/functional/resource/dnf_package_spec.rb +857 -534
- data/spec/functional/resource/group_spec.rb +1 -1
- data/spec/functional/resource/link_spec.rb +1 -1
- data/spec/functional/resource/registry_spec.rb +8 -8
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +92 -35
- data/spec/functional/resource/windows_env_spec.rb +2 -2
- data/spec/functional/resource/windows_hostname_spec.rb +91 -0
- data/spec/functional/resource/windows_pagefile_spec.rb +98 -0
- data/spec/functional/resource/yum_package_spec.rb +495 -428
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +5 -22
- data/spec/integration/client/exit_code_spec.rb +1 -1
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/compliance/compliance_spec.rb +1 -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 +4 -4
- 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 +13 -13
- 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 +1 -8
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- 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/script_resource.rb +2 -2
- 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/compliance/fetcher/automate_spec.rb +0 -16
- data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
- data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
- data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
- data/spec/unit/compliance/runner_spec.rb +31 -5
- data/spec/unit/cookbook_version_spec.rb +52 -0
- data/spec/unit/data_bag_item_spec.rb +1 -6
- data/spec/unit/data_collector_spec.rb +47 -1
- data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
- data/spec/unit/dsl/registry_helper_spec.rb +1 -1
- data/spec/unit/dsl/render_helpers_spec.rb +102 -0
- data/spec/unit/dsl/secret_spec.rb +65 -0
- data/spec/unit/handler_spec.rb +8 -2
- data/spec/unit/lwrp_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -3
- 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/policy_builder/dynamic_spec.rb +0 -5
- data/spec/unit/policy_builder/policyfile_spec.rb +144 -56
- 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 +1 -1
- data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
- 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_spec.rb +1 -1
- data/spec/unit/provider/link_spec.rb +1 -1
- data/spec/unit/provider/mount/aix_spec.rb +1 -1
- data/spec/unit/provider/package/apt_spec.rb +84 -18
- 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 +74 -12
- data/spec/unit/provider/package/rubygems_spec.rb +21 -33
- data/spec/unit/provider/package/yum/python_helper_spec.rb +1 -0
- data/spec/unit/provider/service/arch_service_spec.rb +1 -0
- data/spec/unit/provider/service/debian_service_spec.rb +1 -0
- data/spec/unit/provider/service/macosx_spec.rb +2 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
- data/spec/unit/provider/service/windows_spec.rb +2 -2
- data/spec/unit/provider/subversion_spec.rb +2 -2
- data/spec/unit/provider/systemd_unit_spec.rb +79 -60
- data/spec/unit/provider/zypper_repository_spec.rb +5 -12
- data/spec/unit/provider_spec.rb +0 -8
- data/spec/unit/resource/inspec_waiver_file_entry_spec.rb +80 -0
- data/spec/unit/resource/powershell_script_spec.rb +2 -2
- 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_firewall_rule_spec.rb +12 -7
- data/spec/unit/resource/windows_pagefile_spec.rb +4 -9
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_update_settings_spec.rb +64 -0
- data/spec/unit/resource/zypper_repository_spec.rb +1 -1
- data/spec/unit/secret_fetcher/azure_key_vault_spec.rb +63 -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/tasks/rspec.rb +9 -6
- metadata +59 -519
- 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.rb +0 -102
- 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/cookbook_site_streaming_uploader.rb +0 -244
- data/lib/chef/knife.rb +0 -665
- 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.rb +0 -1192
- 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/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/client_show.rb +0 -48
- 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 -406
- 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_list.rb +0 -42
- 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/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/lib/chef/resource/user/dscl_user.rb +0 -35
- 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 -1617
- 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/user/dscl_spec.rb +0 -699
- data/spec/unit/windows_service_spec.rb +0 -118
data/lib/chef/node/attribute.rb
CHANGED
@@ -158,8 +158,10 @@ class Chef
|
|
158
158
|
}.freeze
|
159
159
|
|
160
160
|
ENUM_METHODS.each do |delegated_method|
|
161
|
-
|
162
|
-
|
161
|
+
if Hash.public_method_defined?(delegated_method)
|
162
|
+
define_method(delegated_method) do |*args, &block|
|
163
|
+
merged_attributes.send(delegated_method, *args, &block)
|
164
|
+
end
|
163
165
|
end
|
164
166
|
end
|
165
167
|
|
@@ -596,7 +598,7 @@ class Chef
|
|
596
598
|
merge_with.each do |key, merge_with_value|
|
597
599
|
value =
|
598
600
|
if merge_onto.key?(key)
|
599
|
-
deep_merge!(safe_dup(merge_onto
|
601
|
+
deep_merge!(safe_dup(merge_onto.internal_get(key)), merge_with_value)
|
600
602
|
else
|
601
603
|
merge_with_value
|
602
604
|
end
|
@@ -632,7 +634,7 @@ class Chef
|
|
632
634
|
merge_with.each do |key, merge_with_value|
|
633
635
|
value =
|
634
636
|
if merge_onto.key?(key)
|
635
|
-
hash_only_merge!(safe_dup(merge_onto
|
637
|
+
hash_only_merge!(safe_dup(merge_onto.internal_get(key)), merge_with_value)
|
636
638
|
else
|
637
639
|
merge_with_value
|
638
640
|
end
|
@@ -19,6 +19,7 @@ require_relative "common_api"
|
|
19
19
|
require_relative "mixin/state_tracking"
|
20
20
|
require_relative "mixin/immutablize_array"
|
21
21
|
require_relative "mixin/immutablize_hash"
|
22
|
+
require_relative "../delayed_evaluator"
|
22
23
|
|
23
24
|
class Chef
|
24
25
|
class Node
|
@@ -109,6 +110,12 @@ class Chef
|
|
109
110
|
key
|
110
111
|
end
|
111
112
|
|
113
|
+
def [](*args)
|
114
|
+
value = super
|
115
|
+
value = value.call while value.is_a?(::Chef::DelayedEvaluator)
|
116
|
+
value
|
117
|
+
end
|
118
|
+
|
112
119
|
prepend Chef::Node::Mixin::StateTracking
|
113
120
|
prepend Chef::Node::Mixin::ImmutablizeArray
|
114
121
|
end
|
@@ -187,6 +194,12 @@ class Chef
|
|
187
194
|
e
|
188
195
|
end
|
189
196
|
|
197
|
+
def [](*args)
|
198
|
+
value = super
|
199
|
+
value = value.call while value.is_a?(::Chef::DelayedEvaluator)
|
200
|
+
value
|
201
|
+
end
|
202
|
+
|
190
203
|
prepend Chef::Node::Mixin::StateTracking
|
191
204
|
prepend Chef::Node::Mixin::ImmutablizeHash
|
192
205
|
end
|
@@ -15,6 +15,8 @@
|
|
15
15
|
# limitations under the License.
|
16
16
|
#
|
17
17
|
|
18
|
+
require_relative "../../delayed_evaluator"
|
19
|
+
|
18
20
|
class Chef
|
19
21
|
class Node
|
20
22
|
module Mixin
|
@@ -46,13 +48,15 @@ class Chef
|
|
46
48
|
alias :reset :reset_cache
|
47
49
|
|
48
50
|
def [](key)
|
49
|
-
if deep_merge_cache.key?(key.to_s)
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
ret = if deep_merge_cache.key?(key.to_s)
|
52
|
+
# return the cache of the deep merged values by top-level key
|
53
|
+
deep_merge_cache[key.to_s]
|
54
|
+
else
|
55
|
+
# save all the work of computing node[key]
|
56
|
+
deep_merge_cache[key.to_s] = merged_attributes(key)
|
57
|
+
end
|
58
|
+
ret = ret.call while ret.is_a?(::Chef::DelayedEvaluator)
|
59
|
+
ret
|
56
60
|
end
|
57
61
|
|
58
62
|
end
|
data/lib/chef/org.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Steven Danna (steve@chef.io)
|
3
|
-
# Copyright:: Copyright (c) Chef Software Inc
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc
|
4
4
|
# License:: Apache License, Version 2.0
|
5
5
|
#
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -19,9 +19,10 @@
|
|
19
19
|
require_relative "json_compat"
|
20
20
|
require_relative "mixin/params_validate"
|
21
21
|
require_relative "server_api"
|
22
|
+
require_relative "group"
|
22
23
|
|
23
24
|
class Chef
|
24
|
-
class Org
|
25
|
+
class Org < Group
|
25
26
|
|
26
27
|
include Chef::Mixin::ParamsValidate
|
27
28
|
|
@@ -32,14 +32,8 @@ class Chef
|
|
32
32
|
# Policyfile is a policy builder implementation that gets run
|
33
33
|
# list and cookbook version information from a single document.
|
34
34
|
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
# policyfile, or replaced with a similar feature that has different
|
38
|
-
# semantics.
|
39
|
-
# * specific_recipes:: put more design thought into this use case.
|
40
|
-
# * run_list in json_attribs:: would be ignored anyway, so it raises an error.
|
41
|
-
# * chef-solo:: not currently supported. Need more design thought around
|
42
|
-
# how this should work.
|
35
|
+
# Does not support legacy chef-solo or roles/environments.
|
36
|
+
#
|
43
37
|
class Policyfile
|
44
38
|
|
45
39
|
class UnsupportedFeature < StandardError; end
|
@@ -81,10 +75,12 @@ class Chef
|
|
81
75
|
attr_reader :ohai_data
|
82
76
|
attr_reader :json_attribs
|
83
77
|
attr_reader :run_context
|
78
|
+
attr_reader :override_runlist
|
84
79
|
|
85
80
|
def initialize(node_name, ohai_data, json_attribs, override_runlist, events)
|
86
81
|
@node_name = node_name
|
87
82
|
@ohai_data = ohai_data
|
83
|
+
@override_runlist = override_runlist
|
88
84
|
@json_attribs = json_attribs
|
89
85
|
@events = events
|
90
86
|
|
@@ -94,32 +90,11 @@ class Chef
|
|
94
90
|
raise UnsupportedFeature, "Policyfile does not support chef-solo. Use #{ChefUtils::Dist::Infra::CLIENT} local mode instead."
|
95
91
|
end
|
96
92
|
|
97
|
-
if override_runlist
|
98
|
-
raise UnsupportedFeature, "Policyfile does not support override run lists. Use named run_lists instead."
|
99
|
-
end
|
100
|
-
|
101
|
-
if json_attribs && json_attribs.key?("run_list")
|
102
|
-
raise UnsupportedFeature, "Policyfile does not support setting the run_list in json data."
|
103
|
-
end
|
104
|
-
|
105
93
|
if Chef::Config[:environment] && !Chef::Config[:environment].chomp.empty?
|
106
94
|
raise UnsupportedFeature, "Policyfile does not work with an Environment configured."
|
107
95
|
end
|
108
96
|
end
|
109
97
|
|
110
|
-
## API Compat ##
|
111
|
-
# Methods related to unsupported features
|
112
|
-
|
113
|
-
# Override run_list is not supported.
|
114
|
-
def original_runlist
|
115
|
-
nil
|
116
|
-
end
|
117
|
-
|
118
|
-
# Override run_list is not supported.
|
119
|
-
def override_runlist
|
120
|
-
nil
|
121
|
-
end
|
122
|
-
|
123
98
|
# Policyfile gives you the run_list already expanded, but users of this
|
124
99
|
# class may expect to get a run_list expansion compatible object by
|
125
100
|
# calling this method.
|
@@ -148,17 +123,27 @@ class Chef
|
|
148
123
|
# consume_external_attrs may add items to the run_list. Save the
|
149
124
|
# expanded run_list, which we will pass to the server later to
|
150
125
|
# determine which versions of cookbooks to use.
|
126
|
+
|
127
|
+
unless Chef::Config[:policy_document_native_api]
|
128
|
+
Chef.deprecated(:policyfile_compat_mode, "The chef-server 11 policyfile compat mode is deprecated, please set policy_document_native_api to true in your config")
|
129
|
+
end
|
130
|
+
|
151
131
|
node.reset_defaults_and_overrides
|
152
132
|
|
153
133
|
node.consume_external_attrs(ohai_data, json_attribs)
|
154
134
|
|
135
|
+
setup_run_list_override
|
136
|
+
|
155
137
|
expand_run_list
|
156
138
|
apply_policyfile_attributes
|
157
139
|
|
140
|
+
if persistent_run_list_set?
|
141
|
+
Chef::Log.warn("The node.run_list setting is overriding the Policyfile run_list")
|
142
|
+
end
|
158
143
|
Chef::Log.info("Run List is [#{run_list}]")
|
159
|
-
Chef::Log.info("Run List expands to [#{run_list_with_versions_for_display.join(", ")}]")
|
144
|
+
Chef::Log.info("Run List expands to [#{run_list_with_versions_for_display(run_list).join(", ")}]")
|
160
145
|
|
161
|
-
events.node_load_completed(node, run_list_with_versions_for_display, Chef::Config)
|
146
|
+
events.node_load_completed(node, run_list_with_versions_for_display(run_list), Chef::Config)
|
162
147
|
events.run_list_expanded(run_list_expansion_ish)
|
163
148
|
|
164
149
|
# we must do this after `node.consume_external_attrs`
|
@@ -194,6 +179,11 @@ class Chef
|
|
194
179
|
events.cookbook_compilation_start(run_context)
|
195
180
|
|
196
181
|
run_context.load(run_list_expansion_ish)
|
182
|
+
if specific_recipes
|
183
|
+
specific_recipes.each do |recipe_file|
|
184
|
+
run_context.load_recipe_file(recipe_file)
|
185
|
+
end
|
186
|
+
end
|
197
187
|
|
198
188
|
events.cookbook_compilation_complete(run_context)
|
199
189
|
|
@@ -206,7 +196,7 @@ class Chef
|
|
206
196
|
#
|
207
197
|
# @return [RunListExpansionIsh] A RunListExpansion duck-type.
|
208
198
|
def expand_run_list
|
209
|
-
|
199
|
+
validate_run_list!(run_list)
|
210
200
|
|
211
201
|
node.run_list(run_list)
|
212
202
|
node.automatic_attrs[:policy_revision] = revision_id
|
@@ -231,21 +221,25 @@ class Chef
|
|
231
221
|
cookbooks_to_sync
|
232
222
|
end
|
233
223
|
|
234
|
-
|
235
|
-
|
224
|
+
## Internal Public API ##
|
225
|
+
|
226
|
+
# @api private
|
236
227
|
#
|
237
|
-
#
|
238
|
-
|
239
|
-
|
228
|
+
# Validate run_list against policyfile cookbooks
|
229
|
+
#
|
230
|
+
def validate_run_list!(run_list)
|
231
|
+
run_list.map do |recipe_spec|
|
232
|
+
cookbook, recipe = parse_recipe_spec(recipe_spec)
|
233
|
+
lock_data = cookbook_lock_for(cookbook)
|
234
|
+
raise PolicyfileError, "invalid run_list item '#{recipe_spec}' not in cookbook set of PolicyFile #{policyfile_location}" unless lock_data
|
235
|
+
end
|
240
236
|
end
|
241
237
|
|
242
|
-
## Internal Public API ##
|
243
|
-
|
244
238
|
# @api private
|
245
239
|
#
|
246
240
|
# Generates an array of strings with recipe names including version and
|
247
241
|
# identifier info.
|
248
|
-
def run_list_with_versions_for_display
|
242
|
+
def run_list_with_versions_for_display(run_list)
|
249
243
|
run_list.map do |recipe_spec|
|
250
244
|
cookbook, recipe = parse_recipe_spec(recipe_spec)
|
251
245
|
lock_data = cookbook_lock_for(cookbook)
|
@@ -287,9 +281,14 @@ class Chef
|
|
287
281
|
|
288
282
|
# @api private
|
289
283
|
def parse_recipe_spec(recipe_spec)
|
290
|
-
rmatch = recipe_spec.match(/recipe\[([^:]+)::([^:]+)\]/)
|
284
|
+
rmatch = recipe_spec.to_s.match(/recipe\[([^:]+)::([^:]+)\]/)
|
291
285
|
if rmatch.nil?
|
292
|
-
|
286
|
+
rmatch = recipe_spec.to_s.match(/recipe\[([^:]+)\]/)
|
287
|
+
if rmatch.nil?
|
288
|
+
raise PolicyfileError, "invalid recipe specification #{recipe_spec} in Policyfile from #{policyfile_location}"
|
289
|
+
else
|
290
|
+
[rmatch[1], "default"]
|
291
|
+
end
|
293
292
|
else
|
294
293
|
[rmatch[1], rmatch[2]]
|
295
294
|
end
|
@@ -301,8 +300,15 @@ class Chef
|
|
301
300
|
end
|
302
301
|
|
303
302
|
# @api private
|
303
|
+
# @return [Array<String>]
|
304
304
|
def run_list
|
305
|
-
if
|
305
|
+
return override_runlist.map(&:to_s) if override_runlist
|
306
|
+
|
307
|
+
if json_attribs["run_list"]
|
308
|
+
json_attribs["run_list"]
|
309
|
+
elsif persistent_run_list_set?
|
310
|
+
node.run_list
|
311
|
+
elsif named_run_list_requested?
|
306
312
|
named_run_list || raise(ConfigurationError,
|
307
313
|
"Policy '#{retrieved_policy_name}' revision '#{revision_id}' does not have named_run_list '#{named_run_list_name}'" +
|
308
314
|
"(available named_run_lists: [#{available_named_run_lists.join(", ")}])")
|
@@ -458,7 +464,7 @@ class Chef
|
|
458
464
|
# should be reduced to a single call.
|
459
465
|
def cookbooks_to_sync
|
460
466
|
@cookbook_to_sync ||= begin
|
461
|
-
events.cookbook_resolution_start(run_list_with_versions_for_display)
|
467
|
+
events.cookbook_resolution_start(run_list_with_versions_for_display(run_list))
|
462
468
|
|
463
469
|
cookbook_versions_by_name = cookbook_locks.inject({}) do |cb_map, (name, lock_data)|
|
464
470
|
cb_map[name] = manifest_for(name, lock_data)
|
@@ -470,7 +476,7 @@ class Chef
|
|
470
476
|
end
|
471
477
|
rescue Exception => e
|
472
478
|
# TODO: wrap/munge exception to provide helpful error output
|
473
|
-
events.cookbook_resolution_failed(run_list_with_versions_for_display, e)
|
479
|
+
events.cookbook_resolution_failed(run_list_with_versions_for_display(run_list), e)
|
474
480
|
raise
|
475
481
|
end
|
476
482
|
|
@@ -509,6 +515,13 @@ class Chef
|
|
509
515
|
Chef::Config
|
510
516
|
end
|
511
517
|
|
518
|
+
# Indicates whether the policy is temporary, which means an
|
519
|
+
# override_runlist was provided. Chef::Client uses this to decide whether
|
520
|
+
# to do the final node save at the end of the run or not.
|
521
|
+
def temporary_policy?
|
522
|
+
node.override_runlist_set?
|
523
|
+
end
|
524
|
+
|
512
525
|
private
|
513
526
|
|
514
527
|
# This method injects the run_context and into the Chef class.
|
@@ -533,6 +546,10 @@ class Chef
|
|
533
546
|
(policy["named_run_lists"] || {}).keys
|
534
547
|
end
|
535
548
|
|
549
|
+
def persistent_run_list_set?
|
550
|
+
Chef::Config[:policy_persist_run_list] && node.run_list && !node.run_list.empty?
|
551
|
+
end
|
552
|
+
|
536
553
|
def named_run_list_requested?
|
537
554
|
!!Chef::Config[:named_run_list]
|
538
555
|
end
|
@@ -567,6 +584,32 @@ class Chef
|
|
567
584
|
Chef::CookbookVersion.from_cb_artifact_data(raw_manifest)
|
568
585
|
end
|
569
586
|
|
587
|
+
def setup_run_list_override
|
588
|
+
unless override_runlist.nil?
|
589
|
+
runlist_override_sanity_check!
|
590
|
+
node.override_runlist = override_runlist
|
591
|
+
Chef::Log.warn "Run List override has been provided."
|
592
|
+
Chef::Log.warn "Original Run List: [#{node.primary_runlist}]"
|
593
|
+
Chef::Log.warn "Overridden Run List: [#{node.run_list}]"
|
594
|
+
end
|
595
|
+
end
|
596
|
+
|
597
|
+
# Ensures runlist override contains RunListItem instances
|
598
|
+
def runlist_override_sanity_check!
|
599
|
+
# Convert to array and remove whitespace
|
600
|
+
if override_runlist.is_a?(String)
|
601
|
+
@override_runlist = override_runlist.split(",").map(&:strip)
|
602
|
+
end
|
603
|
+
@override_runlist = [override_runlist].flatten.compact
|
604
|
+
override_runlist.map! do |item|
|
605
|
+
if item.is_a?(Chef::RunList::RunListItem)
|
606
|
+
item
|
607
|
+
else
|
608
|
+
Chef::RunList::RunListItem.new(item)
|
609
|
+
end
|
610
|
+
end
|
611
|
+
end
|
612
|
+
|
570
613
|
end
|
571
614
|
end
|
572
615
|
end
|
data/lib/chef/property.rb
CHANGED
@@ -412,6 +412,7 @@ class Chef
|
|
412
412
|
# Otherwise, we have to validate it now.
|
413
413
|
value = input_to_stored_value(resource, default, is_default: true)
|
414
414
|
end
|
415
|
+
value = deep_dup(value)
|
415
416
|
value = stored_value_to_output(resource, value)
|
416
417
|
|
417
418
|
# If the value is mutable (non-frozen), we set it on the instance
|
@@ -748,5 +749,22 @@ class Chef
|
|
748
749
|
|
749
750
|
result
|
750
751
|
end
|
752
|
+
|
753
|
+
# recursively dup the value
|
754
|
+
def deep_dup(value)
|
755
|
+
return value if value.is_a?(DelayedEvaluator)
|
756
|
+
|
757
|
+
visitor = lambda do |obj|
|
758
|
+
obj = obj.dup rescue obj
|
759
|
+
case obj
|
760
|
+
when Hash
|
761
|
+
obj.each { |k, v| obj[k] = visitor.call(v) }
|
762
|
+
when Array
|
763
|
+
obj.each_with_index { |v, i| obj[i] = visitor.call(v) }
|
764
|
+
end
|
765
|
+
obj
|
766
|
+
end
|
767
|
+
visitor.call(value)
|
768
|
+
end
|
751
769
|
end
|
752
770
|
end
|
data/lib/chef/provider.rb
CHANGED
@@ -435,7 +435,7 @@ class Chef
|
|
435
435
|
# this block cannot interact with resources outside, e.g.,
|
436
436
|
# manipulating notifies.
|
437
437
|
|
438
|
-
converge_by
|
438
|
+
converge_by("evaluate block and run any associated actions") do
|
439
439
|
saved_run_context = run_context
|
440
440
|
begin
|
441
441
|
@run_context = run_context.create_child
|
data/lib/chef/provider/cron.rb
CHANGED
@@ -101,7 +101,7 @@ class Chef
|
|
101
101
|
|
102
102
|
if @cron_exists
|
103
103
|
unless cron_different?
|
104
|
-
logger.
|
104
|
+
logger.debug("#{new_resource}: Skipping existing cron entry")
|
105
105
|
return
|
106
106
|
end
|
107
107
|
read_crontab.each_line do |line|
|
@@ -32,7 +32,7 @@ class Chef
|
|
32
32
|
def load_current_resource
|
33
33
|
@current_resource = Chef::Resource::Directory.new(new_resource.name)
|
34
34
|
current_resource.path(new_resource.path)
|
35
|
-
if ::File.
|
35
|
+
if ::File.exist?(current_resource.path) && @action != :create_if_missing
|
36
36
|
load_resource_attributes_from_file(current_resource)
|
37
37
|
end
|
38
38
|
current_resource
|
@@ -73,7 +73,7 @@ class Chef
|
|
73
73
|
# make sure we have write permissions to that directory
|
74
74
|
is_parent_writable = lambda do |base_dir|
|
75
75
|
base_dir = ::File.dirname(base_dir)
|
76
|
-
if ::File.
|
76
|
+
if ::File.exist?(base_dir)
|
77
77
|
if Chef::FileAccessControl.writable?(base_dir)
|
78
78
|
true
|
79
79
|
elsif Chef::Util::PathHelper.is_sip_path?(base_dir, node)
|
@@ -89,7 +89,7 @@ class Chef
|
|
89
89
|
else
|
90
90
|
# in why run mode & parent directory does not exist no permissions check is required
|
91
91
|
# If not in why run, permissions must be valid and we rely on prior assertion that dir exists
|
92
|
-
if !whyrun_mode? || ::File.
|
92
|
+
if !whyrun_mode? || ::File.exist?(parent_directory)
|
93
93
|
if Chef::FileAccessControl.writable?(parent_directory)
|
94
94
|
true
|
95
95
|
elsif Chef::Util::PathHelper.is_sip_path?(parent_directory, node)
|
@@ -108,7 +108,7 @@ class Chef
|
|
108
108
|
|
109
109
|
requirements.assert(:delete) do |a|
|
110
110
|
a.assertion do
|
111
|
-
if ::File.
|
111
|
+
if ::File.exist?(new_resource.path)
|
112
112
|
::File.directory?(new_resource.path) && Chef::FileAccessControl.writable?(new_resource.path)
|
113
113
|
else
|
114
114
|
true
|
@@ -122,7 +122,7 @@ class Chef
|
|
122
122
|
end
|
123
123
|
|
124
124
|
action :create do
|
125
|
-
unless ::File.
|
125
|
+
unless ::File.exist?(new_resource.path)
|
126
126
|
converge_by("create new directory #{new_resource.path}") do
|
127
127
|
if new_resource.recursive == true
|
128
128
|
::FileUtils.mkdir_p(new_resource.path)
|
@@ -138,7 +138,7 @@ class Chef
|
|
138
138
|
end
|
139
139
|
|
140
140
|
action :delete do
|
141
|
-
if ::File.
|
141
|
+
if ::File.exist?(new_resource.path)
|
142
142
|
converge_by("delete existing directory #{new_resource.path}") do
|
143
143
|
if new_resource.recursive == true
|
144
144
|
# we don't use rm_rf here because it masks all errors, including
|