chef 16.18.0-universal-mingw32 → 17.0.242-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 +9 -13
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/chef-universal-mingw32.gemspec +1 -1
- data/chef.gemspec +6 -8
- data/lib/chef/action_collection.rb +1 -1
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application.rb +1 -1
- data/lib/chef/applications.rb +0 -1
- data/lib/chef/chef_fs/command_line.rb +5 -2
- data/lib/chef/chef_fs/file_system.rb +9 -10
- data/lib/chef/client.rb +5 -5
- data/lib/chef/compliance/default_attributes.rb +4 -3
- 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/gem_installer.rb +1 -5
- 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 +4 -26
- data/lib/chef/data_bag_item.rb +11 -2
- data/lib/chef/data_collector/run_end_message.rb +2 -2
- data/lib/chef/delayed_evaluator.rb +4 -0
- data/lib/chef/deprecated.rb +6 -12
- data/lib/chef/dsl/chef_vault.rb +6 -6
- data/lib/chef/dsl/reboot_pending.rb +1 -2
- data/lib/chef/exceptions.rb +0 -3
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
- data/lib/chef/formatters/error_mapper.rb +2 -2
- data/lib/chef/group.rb +75 -0
- data/lib/chef/http.rb +5 -5
- data/lib/chef/mixin/get_source_from_package.rb +1 -1
- data/lib/chef/node/attribute.rb +9 -24
- data/lib/chef/node/immutable_collections.rb +13 -0
- data/lib/chef/node/mixin/deep_merge_cache.rb +14 -10
- data/lib/chef/node.rb +19 -20
- data/lib/chef/org.rb +3 -2
- data/lib/chef/policy_builder/policyfile.rb +0 -5
- data/lib/chef/property.rb +18 -0
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +1 -1
- data/lib/chef/provider/git.rb +5 -7
- data/lib/chef/provider/group/dscl.rb +1 -1
- 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 +2 -2
- 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/mount.rb +5 -5
- 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 +1 -1
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +0 -5
- data/lib/chef/provider/package/rubygems.rb +9 -15
- data/lib/chef/provider/package/windows.rb +2 -4
- data/lib/chef/provider/package/yum/yum_helper.py +1 -1
- data/lib/chef/provider/package.rb +17 -21
- 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 +12 -12
- data/lib/chef/provider/service.rb +6 -6
- data/lib/chef/provider/subversion.rb +10 -12
- data/lib/chef/provider/systemd_unit.rb +36 -10
- data/lib/chef/provider/template/content.rb +3 -7
- 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/user.rb +2 -2
- data/lib/chef/provider/zypper_repository.rb +2 -2
- data/lib/chef/provider.rb +1 -1
- data/lib/chef/providers.rb +0 -1
- 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 +3 -2
- data/lib/chef/resource/archive_file.rb +8 -9
- 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 +2 -2
- data/lib/chef/resource/chef_client_cron.rb +4 -4
- data/lib/chef/resource/chef_client_launchd.rb +3 -3
- data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
- data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
- data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
- 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 +3 -8
- 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_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/execute.rb +6 -1
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/group.rb +2 -2
- data/lib/chef/resource/homebrew_cask.rb +5 -15
- data/lib/chef/resource/homebrew_tap.rb +2 -6
- data/lib/chef/resource/hostname.rb +21 -17
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/kernel_module.rb +6 -17
- data/lib/chef/resource/locale.rb +2 -3
- data/lib/chef/resource/lwrp_base.rb +4 -0
- data/lib/chef/resource/macos_userdefaults.rb +10 -14
- data/lib/chef/resource/mdadm.rb +53 -7
- data/lib/chef/resource/mount.rb +3 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
- data/lib/chef/resource/plist.rb +7 -7
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/remote_file.rb +1 -1
- data/lib/chef/resource/rhsm_errata.rb +16 -1
- data/lib/chef/resource/rhsm_errata_level.rb +10 -1
- data/lib/chef/resource/rhsm_register.rb +12 -6
- data/lib/chef/resource/rhsm_repo.rb +2 -6
- data/lib/chef/resource/rhsm_subscription.rb +7 -11
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/sudo.rb +6 -6
- data/lib/chef/resource/support/client.erb +2 -6
- data/lib/chef/resource/sysctl.rb +2 -6
- data/lib/chef/resource/systemd_unit.rb +3 -3
- 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 -3
- data/lib/chef/resource/windows_ad_join.rb +2 -6
- data/lib/chef/resource/windows_audit_policy.rb +1 -1
- data/lib/chef/resource/windows_auto_run.rb +2 -5
- data/lib/chef/resource/windows_certificate.rb +207 -73
- 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 +5 -4
- data/lib/chef/resource/windows_feature.rb +3 -9
- data/lib/chef/resource/windows_feature_dism.rb +2 -6
- 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 +2 -5
- data/lib/chef/resource/windows_font.rb +2 -4
- data/lib/chef/resource/windows_pagefile.rb +2 -6
- data/lib/chef/resource/windows_path.rb +2 -2
- data/lib/chef/resource/windows_printer.rb +4 -4
- data/lib/chef/resource/windows_printer_port.rb +6 -6
- data/lib/chef/resource/windows_security_policy.rb +9 -12
- 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 +17 -5
- data/lib/chef/resource/windows_uac.rb +2 -4
- data/lib/chef/resource/windows_user_privilege.rb +5 -5
- data/lib/chef/resource/windows_workgroup.rb +1 -2
- data/lib/chef/resource.rb +1 -1
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resources.rb +0 -1
- 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 +2 -9
- data/lib/chef/win32/registry.rb +4 -2
- data/lib/chef/win32/version.rb +1 -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/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/functional/dsl/registry_helper_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 +9 -0
- data/spec/functional/resource/dnf_package_spec.rb +4 -1
- data/spec/functional/resource/group_spec.rb +1 -5
- data/spec/functional/resource/link_spec.rb +0 -8
- data/spec/functional/resource/registry_spec.rb +8 -8
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +92 -35
- 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 -2
- 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 +9 -9
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +4 -1
- data/spec/spec_helper.rb +10 -13
- data/spec/support/chef_helpers.rb +0 -16
- 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/integration/integration_helper.rb +0 -1
- 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_spec.rb +1 -1
- data/spec/unit/client_spec.rb +4 -4
- 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 +30 -4
- data/spec/unit/cookbook_version_spec.rb +0 -52
- data/spec/unit/data_bag_item_spec.rb +1 -6
- data/spec/unit/data_collector_spec.rb +2 -71
- data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
- data/spec/unit/dsl/registry_helper_spec.rb +1 -1
- data/spec/unit/lwrp_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -3
- data/spec/unit/mixin/powershell_out_spec.rb +2 -2
- 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/policyfile_spec.rb +1 -11
- data/spec/unit/property_spec.rb +23 -22
- 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/package/apt_spec.rb +84 -18
- data/spec/unit/provider/package/deb_spec.rb +3 -3
- data/spec/unit/provider/package/powershell_spec.rb +12 -74
- data/spec/unit/provider/package/rubygems_spec.rb +18 -30
- 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 +2 -2
- data/spec/unit/provider_spec.rb +0 -8
- data/spec/unit/resource/archive_file_spec.rb +1 -13
- data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
- data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
- data/spec/unit/resource/mount_spec.rb +0 -10
- data/spec/unit/resource/powershell_script_spec.rb +2 -2
- data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
- data/spec/unit/resource/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/user_ulimit_spec.rb +1 -14
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +2 -7
- data/spec/unit/user_spec.rb +1 -1
- data/spec/unit/user_v1_spec.rb +6 -4
- data/tasks/rspec.rb +15 -7
- metadata +19 -382
- 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/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 -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_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_list.rb +0 -43
- 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/recipe_list.rb +0 -32
- 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/resource/user/dscl_user.rb +0 -35
- data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
- data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
- data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
- data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
- data/spec/data/knife_subcommand/test_yourself.rb +0 -21
- 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/knife.rb +0 -37
- data/spec/support/shared/functional/win32_service.rb +0 -57
- data/spec/support/shared/integration/knife_support.rb +0 -192
- data/spec/support/shared/unit/knife_shared.rb +0 -39
- 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
@@ -1,6 +1,7 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
require "json" # For .to_json
|
3
3
|
|
4
|
+
require "chef/compliance/reporter/automate"
|
4
5
|
describe Chef::Compliance::Reporter::Automate do
|
5
6
|
let(:reporter) { Chef::Compliance::Reporter::Automate.new(opts) }
|
6
7
|
|
@@ -264,11 +265,34 @@ describe Chef::Compliance::Reporter::Automate do
|
|
264
265
|
expect(metasearch_stub).to have_been_requested
|
265
266
|
expect(report_stub).to have_been_requested
|
266
267
|
end
|
268
|
+
end
|
267
269
|
|
268
|
-
|
270
|
+
describe "#validate_config!" do
|
271
|
+
it "raises CMPL004 when entity_uuid is not present" do
|
269
272
|
opts.delete(:entity_uuid)
|
273
|
+
expect { reporter.validate_config! }.to raise_error(/^CMPL004/)
|
274
|
+
end
|
275
|
+
|
276
|
+
it "raises CMPL005 when run_id is not present" do
|
277
|
+
opts.delete(:run_id)
|
278
|
+
expect { reporter.validate_config! }.to raise_error(/^CMPL005/)
|
279
|
+
end
|
280
|
+
|
281
|
+
it "raises CMPL006 when data collector URL is missing" do
|
282
|
+
Chef::Config[:data_collector] = { token: "not_nil", server_url: nil }
|
270
283
|
reporter = Chef::Compliance::Reporter::Automate.new(opts)
|
271
|
-
expect
|
284
|
+
expect { reporter.validate_config! }.to raise_error(/^CMPL006/)
|
285
|
+
end
|
286
|
+
|
287
|
+
it "raises CMPL006 when data collector token is missing" do
|
288
|
+
Chef::Config[:data_collector] = { token: nil, server_url: "not_nil" }
|
289
|
+
reporter = Chef::Compliance::Reporter::Automate.new(opts)
|
290
|
+
expect { reporter.validate_config! }.to raise_error(/^CMPL006/)
|
291
|
+
end
|
292
|
+
|
293
|
+
it "otherwise passes" do
|
294
|
+
Chef::Config[:data_collector] = { token: "not_nil", server_url: "not_nil" }
|
295
|
+
reporter.validate_config!
|
272
296
|
end
|
273
297
|
end
|
274
298
|
|
@@ -1,7 +1,9 @@
|
|
1
1
|
require "spec_helper"
|
2
|
+
require "chef/compliance/reporter/chef_server_automate"
|
2
3
|
|
3
4
|
describe Chef::Compliance::Reporter::ChefServerAutomate do
|
4
5
|
before do
|
6
|
+
# Isn't this already done globally in
|
5
7
|
WebMock.disable_net_connect!
|
6
8
|
|
7
9
|
Chef::Config[:client_key] = File.expand_path("../../../data/ssl/private_key.pem", __dir__)
|
@@ -174,4 +176,22 @@ describe Chef::Compliance::Reporter::ChefServerAutomate do
|
|
174
176
|
|
175
177
|
expect(report_stub).to have_been_requested
|
176
178
|
end
|
179
|
+
|
180
|
+
describe "#validate_config!" do
|
181
|
+
it "raises CMPL007 when entity_uuid is not present" do
|
182
|
+
opts.delete(:entity_uuid)
|
183
|
+
expect { reporter.validate_config! }.to raise_error(/^CMPL007/)
|
184
|
+
end
|
185
|
+
|
186
|
+
it "raises CMPL008 when run_id is not present" do
|
187
|
+
opts.delete(:run_id)
|
188
|
+
expect { reporter.validate_config! }.to raise_error(/^CMPL008/)
|
189
|
+
end
|
190
|
+
|
191
|
+
it "otherwise passes" do
|
192
|
+
reporter.validate_config!
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
196
|
+
|
177
197
|
end
|
@@ -12,6 +12,12 @@ describe Chef::Compliance::Runner do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
describe "#enabled?" do
|
15
|
+
context "when the node is not available" do
|
16
|
+
let(:runner) { described_class.new }
|
17
|
+
it "is false because it needs the node to answer that question" do
|
18
|
+
expect(runner).not_to be_enabled
|
19
|
+
end
|
20
|
+
end
|
15
21
|
|
16
22
|
it "is true if the node attributes have audit profiles and the audit cookbook is not present, and the compliance mode attribute is nil" do
|
17
23
|
node.normal["audit"]["profiles"]["ssh"] = { 'compliance': "base/ssh" }
|
@@ -124,7 +130,7 @@ describe Chef::Compliance::Runner do
|
|
124
130
|
expect(runner.inspec_profiles).to eq(expected)
|
125
131
|
end
|
126
132
|
|
127
|
-
it "raises
|
133
|
+
it "raises a CMPL010 message when the profiles are in the old audit-cookbook format" do
|
128
134
|
node.normal["audit"]["profiles"] = [
|
129
135
|
{
|
130
136
|
name: "Windows 2019 Baseline",
|
@@ -132,7 +138,7 @@ describe Chef::Compliance::Runner do
|
|
132
138
|
},
|
133
139
|
]
|
134
140
|
|
135
|
-
expect { runner.inspec_profiles }.to raise_error(/
|
141
|
+
expect { runner.inspec_profiles }.to raise_error(/CMPL010:/)
|
136
142
|
end
|
137
143
|
end
|
138
144
|
|
@@ -180,9 +186,29 @@ describe Chef::Compliance::Runner do
|
|
180
186
|
end
|
181
187
|
end
|
182
188
|
|
183
|
-
|
184
|
-
|
189
|
+
end
|
190
|
+
|
191
|
+
describe "#load_and_validate! when compliance is enabled" do
|
192
|
+
before do
|
193
|
+
allow(runner).to receive(:enabled?).and_return(true)
|
194
|
+
end
|
195
|
+
|
196
|
+
it "raises CMPL003 when the reporter is not a supported reporter type" do
|
197
|
+
node.normal["audit"]["reporter"] = [ "invalid" ]
|
198
|
+
expect { runner.load_and_validate! }.to raise_error(/^CMPL003:/)
|
199
|
+
end
|
200
|
+
it "raises CMPL002 if the configured fetcher is not supported" do
|
201
|
+
node.normal["audit"]["fetcher"] = "invalid"
|
202
|
+
expect { runner.load_and_validate! }.to raise_error(/^CMPL002:/)
|
185
203
|
end
|
204
|
+
|
205
|
+
it "validates configured reporters" do
|
206
|
+
node.normal["audit"]["reporter"] = [ "chef-automate" ]
|
207
|
+
reporter_double = double("reporter", validate_config!: nil)
|
208
|
+
expect(runner).to receive(:reporter).with("chef-automate").and_return(reporter_double)
|
209
|
+
runner.load_and_validate!
|
210
|
+
end
|
211
|
+
|
186
212
|
end
|
187
213
|
|
188
214
|
describe "#inspec_opts" do
|
@@ -41,59 +41,7 @@ describe Chef::CookbookVersion do
|
|
41
41
|
it "has empty metadata" do
|
42
42
|
expect(cookbook_version.metadata).to eq(Chef::Cookbook::Metadata.new)
|
43
43
|
end
|
44
|
-
end
|
45
|
-
|
46
|
-
describe "#recipe_yml_filenames_by_name" do
|
47
|
-
let(:cookbook_version) { Chef::CookbookVersion.new("mycb", "/tmp/mycb") }
|
48
|
-
|
49
|
-
def files_for_recipe(extension)
|
50
|
-
[
|
51
|
-
{ name: "recipes/default.#{extension}", full_path: "/home/user/repo/cookbooks/test/recipes/default.#{extension}" },
|
52
|
-
{ name: "recipes/other.#{extension}", full_path: "/home/user/repo/cookbooks/test/recipes/other.#{extension}" },
|
53
|
-
]
|
54
|
-
end
|
55
|
-
context "and YAML files present include both a recipes/default.yml and a recipes/default.yaml" do
|
56
|
-
before(:each) do
|
57
|
-
allow(cookbook_version).to receive(:files_for).with("recipes").and_return(
|
58
|
-
[
|
59
|
-
{ name: "recipes/default.yml", full_path: "/home/user/repo/cookbooks/test/recipes/default.yml" },
|
60
|
-
{ name: "recipes/default.yaml", full_path: "/home/user/repo/cookbooks/test/recipes/default.yaml" },
|
61
|
-
]
|
62
|
-
)
|
63
|
-
end
|
64
|
-
it "because both are valid and we can't pick, it raises an error that contains the info needed to fix the problem" do
|
65
|
-
expect { cookbook_version.recipe_yml_filenames_by_name }
|
66
|
-
.to raise_error(Chef::Exceptions::AmbiguousYAMLFile, /.*default.yml.*default.yaml.*update the cookbook to remove/)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
%w{yml yaml}.each do |extension|
|
71
|
-
|
72
|
-
context "and YAML files are present including a recipes/default.#{extension}" do
|
73
|
-
before(:each) do
|
74
|
-
allow(cookbook_version).to receive(:files_for).with("recipes").and_return(files_for_recipe(extension))
|
75
|
-
end
|
76
|
-
|
77
|
-
context "and manifest does not include a root_files/recipe.#{extension}" do
|
78
|
-
it "returns all YAML recipes with a correct default of default.#{extension}" do
|
79
|
-
expect(cookbook_version.recipe_yml_filenames_by_name).to eq({ "default" => "/home/user/repo/cookbooks/test/recipes/default.#{extension}",
|
80
|
-
"other" => "/home/user/repo/cookbooks/test/recipes/other.#{extension}" })
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
context "and manifest also includes a root_files/recipe.#{extension}" do
|
85
|
-
let(:root_files) { [{ name: "root_files/recipe.#{extension}", full_path: "/home/user/repo/cookbooks/test/recipe.#{extension}" } ] }
|
86
|
-
before(:each) do
|
87
|
-
allow(cookbook_version.cookbook_manifest).to receive(:root_files).and_return(root_files)
|
88
|
-
end
|
89
44
|
|
90
|
-
it "returns all YAML recipes with a correct default of recipe.#{extension}" do
|
91
|
-
expect(cookbook_version.recipe_yml_filenames_by_name).to eq({ "default" => "/home/user/repo/cookbooks/test/recipe.#{extension}",
|
92
|
-
"other" => "/home/user/repo/cookbooks/test/recipes/other.#{extension}" })
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
45
|
end
|
98
46
|
|
99
47
|
describe "with a cookbook directory named tatft" do
|
@@ -148,12 +148,7 @@ describe Chef::DataBagItem do
|
|
148
148
|
end
|
149
149
|
|
150
150
|
it "implements all the methods of Hash" do
|
151
|
-
methods =
|
152
|
-
default= default_proc index size length
|
153
|
-
empty? each_value each_key each_pair each keys values
|
154
|
-
values_at delete delete_if reject! clear
|
155
|
-
invert update replace merge! merge has_key? has_value?
|
156
|
-
key? value?}
|
151
|
+
methods = Hash.public_instance_methods
|
157
152
|
methods.each do |m|
|
158
153
|
expect(data_bag_item).to respond_to(m)
|
159
154
|
end
|
@@ -142,17 +142,11 @@ describe Chef::DataCollector do
|
|
142
142
|
def expect_converge_message(keys)
|
143
143
|
keys["message_type"] = "run_converge"
|
144
144
|
keys["message_version"] = "1.1.0"
|
145
|
-
# if (keys.key?("node") && !keys["node"].empty?)
|
146
|
-
# expect(rest_client).to receive(:post) do |_a, hash, _b|
|
147
|
-
# require 'pry'; binding.pry
|
148
|
-
# end
|
149
|
-
# else
|
150
145
|
expect(rest_client).to receive(:post).with(
|
151
146
|
nil,
|
152
147
|
hash_including(keys),
|
153
148
|
{ "Content-Type" => "application/json" }
|
154
149
|
)
|
155
|
-
# end
|
156
150
|
end
|
157
151
|
|
158
152
|
def resource_has_diff(new_resource, status)
|
@@ -164,7 +158,7 @@ describe Chef::DataCollector do
|
|
164
158
|
"after" => after_resource&.state_for_resource_reporter || {},
|
165
159
|
"before" => before_resource&.state_for_resource_reporter || {},
|
166
160
|
"cookbook_name" => cookbook_name,
|
167
|
-
"cookbook_version" => cookbook_version
|
161
|
+
"cookbook_version" => cookbook_version.version,
|
168
162
|
"delta" => resource_has_diff(new_resource, status) ? new_resource.diff : "",
|
169
163
|
"duration" => duration,
|
170
164
|
"id" => new_resource.identity,
|
@@ -208,7 +202,7 @@ describe Chef::DataCollector do
|
|
208
202
|
end
|
209
203
|
|
210
204
|
it "has a node" do
|
211
|
-
expect_converge_message("node" => expected_node
|
205
|
+
expect_converge_message("node" => expected_node)
|
212
206
|
send_run_failed_or_completed_event
|
213
207
|
end
|
214
208
|
|
@@ -567,29 +561,6 @@ describe Chef::DataCollector do
|
|
567
561
|
it_behaves_like "sends a converge message"
|
568
562
|
end
|
569
563
|
|
570
|
-
context "when the run contains a file resource that is up-to-date from a @recipe_files, returns nil for the version" do
|
571
|
-
let(:total_resource_count) { 1 }
|
572
|
-
let(:updated_resource_count) { 0 }
|
573
|
-
let(:cookbook_name) { "@recipe_files" }
|
574
|
-
let(:resource_record) { [ resource_record_for(new_resource, current_resource, after_resource, :create, "up-to-date", "1234") ] }
|
575
|
-
let(:status) { "success" }
|
576
|
-
let(:cookbook_version) { nil }
|
577
|
-
|
578
|
-
before do
|
579
|
-
allow(new_resource).to receive(:cookbook_version).and_call_original
|
580
|
-
events.resource_action_start(new_resource, :create)
|
581
|
-
events.resource_current_state_loaded(new_resource, :create, current_resource)
|
582
|
-
events.resource_up_to_date(new_resource, :create)
|
583
|
-
events.resource_after_state_loaded(new_resource, :create, after_resource)
|
584
|
-
new_resource.instance_variable_set(:@elapsed_time, 1.2345)
|
585
|
-
events.resource_completed(new_resource)
|
586
|
-
events.converge_complete
|
587
|
-
run_status.stop_clock
|
588
|
-
end
|
589
|
-
|
590
|
-
it_behaves_like "sends a converge message"
|
591
|
-
end
|
592
|
-
|
593
564
|
context "when the run contains a file resource that is updated" do
|
594
565
|
let(:total_resource_count) { 1 }
|
595
566
|
let(:updated_resource_count) { 1 }
|
@@ -837,46 +808,6 @@ describe Chef::DataCollector do
|
|
837
808
|
it_behaves_like "sends a converge message"
|
838
809
|
end
|
839
810
|
|
840
|
-
context "when node attributes are block-listed" do
|
841
|
-
let(:status) { "success" }
|
842
|
-
before do
|
843
|
-
Chef::Config[:blocked_default_attributes] = [
|
844
|
-
%w{secret key_to_the_kingdom},
|
845
|
-
]
|
846
|
-
node.default = {
|
847
|
-
"secret" => { "key_to_the_kingdom" => "under the flower pot to the left of the drawbridge" },
|
848
|
-
"publicinfo" => { "num_flower_pots" => 18 },
|
849
|
-
}
|
850
|
-
end
|
851
|
-
|
852
|
-
it "payload should exclude blocked attributes" do
|
853
|
-
expect(rest_client).to receive(:post) do |_addr, hash, _headers|
|
854
|
-
expect(hash["node"]["default"]).to eq({ "secret" => {}, "publicinfo" => { "num_flower_pots" => 18 } })
|
855
|
-
end
|
856
|
-
send_run_failed_or_completed_event
|
857
|
-
end
|
858
|
-
end
|
859
|
-
|
860
|
-
context "when node attributes are allow-listed" do
|
861
|
-
let(:status) { "success" }
|
862
|
-
before do
|
863
|
-
Chef::Config[:allowed_default_attributes] = [
|
864
|
-
%w{public entrance},
|
865
|
-
]
|
866
|
-
node.default = {
|
867
|
-
"public" => { "entrance" => "is the drawbridge" },
|
868
|
-
"secret" => { "entrance" => "is the tunnel" },
|
869
|
-
}
|
870
|
-
end
|
871
|
-
|
872
|
-
it "payload should include only allowed attributes" do
|
873
|
-
expect(rest_client).to receive(:post) do |_addr, hash, _headers|
|
874
|
-
expect(hash["node"]["default"]).to eq({ "public" => { "entrance" => "is the drawbridge" } })
|
875
|
-
end
|
876
|
-
send_run_failed_or_completed_event
|
877
|
-
end
|
878
|
-
end
|
879
|
-
|
880
811
|
end
|
881
812
|
end
|
882
813
|
|
@@ -51,9 +51,9 @@ describe Chef::DSL::RebootPending do
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
context "
|
54
|
+
context "platform_family is debian" do
|
55
55
|
before do
|
56
|
-
allow(recipe).to receive(:
|
56
|
+
allow(recipe).to receive(:platform_family?).with("debian").and_return(true)
|
57
57
|
end
|
58
58
|
|
59
59
|
it "should return true if /var/run/reboot-required exists" do
|
data/spec/unit/lwrp_spec.rb
CHANGED
@@ -576,7 +576,7 @@ describe "LWRP" do
|
|
576
576
|
@tmpdir = File.join(@tmpparent, "lwrp")
|
577
577
|
Dir.mkdir(@tmpdir)
|
578
578
|
resource_path = File.join(@tmpdir, "once.rb")
|
579
|
-
IO.write(resource_path, "
|
579
|
+
IO.write(resource_path, "unified_mode true\ndefault_action :create")
|
580
580
|
@test_lwrp_class = Chef::Resource::LWRPBase.build_from_file("lwrp", resource_path, nil)
|
581
581
|
end
|
582
582
|
|
@@ -359,10 +359,11 @@ describe Chef::Mixin::ParamsValidate do
|
|
359
359
|
expect(@vo.set_or_return(:test, nil, {}).object_id).to eq(value.object_id)
|
360
360
|
end
|
361
361
|
|
362
|
-
it "should set and return a default value when the argument is nil, then return the
|
362
|
+
it "should set and return a default value when the argument is nil, then return a dup of the value" do
|
363
363
|
value = "meow"
|
364
|
-
expect(@vo.set_or_return(:test, nil, { default: value }).object_id).
|
365
|
-
expect(@vo.set_or_return(:test, nil, {}).object_id).
|
364
|
+
expect(@vo.set_or_return(:test, nil, { default: value }).object_id).not_to eq(value.object_id)
|
365
|
+
expect(@vo.set_or_return(:test, nil, {}).object_id).not_to eq(value.object_id)
|
366
|
+
expect(@vo.set_or_return(:test, nil, {})).to eql(value)
|
366
367
|
end
|
367
368
|
|
368
369
|
it "should raise an ArgumentError when argument is nil and required is true" do
|
@@ -30,7 +30,7 @@ describe Chef::Mixin::PowershellOut, :windows_only do
|
|
30
30
|
it "runs a command and returns the shell_out object" do
|
31
31
|
ret = double("Mixlib::ShellOut")
|
32
32
|
expect(object).to receive(:shell_out).with(
|
33
|
-
"powershell.exe #{flags} -Command \"Get-Process\""
|
33
|
+
"powershell.exe #{flags} -Command \"Get-Process\""
|
34
34
|
).and_return(ret)
|
35
35
|
expect(object.powershell_out("Get-Process")).to eql(ret)
|
36
36
|
end
|
@@ -75,7 +75,7 @@ describe Chef::Mixin::PowershellOut, :windows_only do
|
|
75
75
|
it "runs a command and returns the shell_out object" do
|
76
76
|
mixlib_shellout = double("Mixlib::ShellOut")
|
77
77
|
expect(object).to receive(:shell_out).with(
|
78
|
-
"powershell.exe #{flags} -Command \"Get-Process\""
|
78
|
+
"powershell.exe #{flags} -Command \"Get-Process\""
|
79
79
|
).and_return(mixlib_shellout)
|
80
80
|
expect(mixlib_shellout).to receive(:error!)
|
81
81
|
expect(object.powershell_out!("Get-Process")).to eql(mixlib_shellout)
|
data/spec/unit/node_spec.rb
CHANGED
@@ -1951,4 +1951,82 @@ describe Chef::Node do
|
|
1951
1951
|
expect(node["foo"]["bar"]["test"]).to eql("right")
|
1952
1952
|
end
|
1953
1953
|
end
|
1954
|
+
|
1955
|
+
describe "lazy values" do
|
1956
|
+
it "supports lazy values in attributes" do
|
1957
|
+
node.instance_eval do
|
1958
|
+
default["foo"]["bar"] = lazy { node["fizz"]["buzz"] }
|
1959
|
+
default["fizz"]["buzz"] = "works"
|
1960
|
+
end
|
1961
|
+
expect(node["foo"]["bar"]).to eql("works")
|
1962
|
+
end
|
1963
|
+
|
1964
|
+
it "lazy values maintain laziness" do
|
1965
|
+
node.instance_eval do
|
1966
|
+
default["foo"]["bar"] = lazy { node["fizz"]["buzz"] }
|
1967
|
+
default["fizz"]["buzz"] = "works"
|
1968
|
+
end
|
1969
|
+
expect(node["foo"]["bar"]).to eql("works")
|
1970
|
+
node.default["fizz"]["buzz"] = "still works"
|
1971
|
+
expect(node["foo"]["bar"]).to eql("still works")
|
1972
|
+
end
|
1973
|
+
|
1974
|
+
it "supports recursive lazy values in attributes" do
|
1975
|
+
node.instance_eval do
|
1976
|
+
default["cool"]["beans"] = lazy { node["foo"]["bar"] }
|
1977
|
+
default["foo"]["bar"] = lazy { node["fizz"]["buzz"] }
|
1978
|
+
default["fizz"]["buzz"] = "works"
|
1979
|
+
end
|
1980
|
+
expect(node["cool"]["beans"]).to eql("works")
|
1981
|
+
node.default["fizz"]["buzz"] = "still works"
|
1982
|
+
expect(node["cool"]["beans"]).to eql("still works")
|
1983
|
+
end
|
1984
|
+
|
1985
|
+
it "supports top level lazy values in attributes" do
|
1986
|
+
# due to the top level deep merge cache these are special cases
|
1987
|
+
node.instance_eval do
|
1988
|
+
default["cool"] = lazy { node["foo"] }
|
1989
|
+
default["foo"] = lazy { node["fizz"] }
|
1990
|
+
default["fizz"] = "works"
|
1991
|
+
end
|
1992
|
+
expect(node["cool"]).to eql("works")
|
1993
|
+
node.default["fizz"] = "still works"
|
1994
|
+
expect(node["cool"]).to eql("still works")
|
1995
|
+
end
|
1996
|
+
|
1997
|
+
it "supports deep merged values in attributes" do
|
1998
|
+
node.instance_eval do
|
1999
|
+
override["bar"]["cool"] = lazy { node["bar"]["foo"] }
|
2000
|
+
override["bar"]["foo"] = lazy { node["bar"]["fizz"] }
|
2001
|
+
override["bar"]["fizz"] = "works"
|
2002
|
+
end
|
2003
|
+
expect(node["bar"]["cool"]).to eql("works")
|
2004
|
+
node.override["bar"]["fizz"] = "still works"
|
2005
|
+
expect(node["bar"]["cool"]).to eql("still works")
|
2006
|
+
end
|
2007
|
+
|
2008
|
+
it "supports overridden deep merged values in attributes (deep_merge)" do
|
2009
|
+
node.instance_eval do
|
2010
|
+
role_override["bar"] = { "cool" => "bad", "foo" => "bad", "fizz" => "bad" }
|
2011
|
+
force_override["bar"]["cool"] = lazy { node["bar"]["foo"] }
|
2012
|
+
force_override["bar"]["foo"] = lazy { node["bar"]["fizz"] }
|
2013
|
+
force_override["bar"]["fizz"] = "works"
|
2014
|
+
end
|
2015
|
+
expect(node["bar"]["cool"]).to eql("works")
|
2016
|
+
node.force_override["bar"]["fizz"] = "still works"
|
2017
|
+
expect(node["bar"]["cool"]).to eql("still works")
|
2018
|
+
end
|
2019
|
+
|
2020
|
+
it "supports overridden deep merged values in attributes (hash_only_merge)" do
|
2021
|
+
node.instance_eval do
|
2022
|
+
default["bar"] = { "cool" => "bad", "foo" => "bad", "fizz" => "bad" }
|
2023
|
+
override["bar"]["cool"] = lazy { node["bar"]["foo"] }
|
2024
|
+
override["bar"]["foo"] = lazy { node["bar"]["fizz"] }
|
2025
|
+
override["bar"]["fizz"] = "works"
|
2026
|
+
end
|
2027
|
+
expect(node["bar"]["cool"]).to eql("works")
|
2028
|
+
node.override["bar"]["fizz"] = "still works"
|
2029
|
+
expect(node["bar"]["cool"]).to eql("still works")
|
2030
|
+
end
|
2031
|
+
end
|
1954
2032
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
3
|
+
# you may not use this file except in compliance with the License.
|
4
|
+
# You may obtain a copy of the License at
|
5
|
+
#
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
#
|
14
|
+
|
15
|
+
require "spec_helper"
|
16
|
+
require "chef/org"
|
17
|
+
|
18
|
+
describe Chef::Org do
|
19
|
+
let(:org) { Chef::Org.new("myorg") }
|
20
|
+
|
21
|
+
describe "API Interactions" do
|
22
|
+
before(:each) do
|
23
|
+
Chef::Config[:chef_server_root] = "http://www.example.com"
|
24
|
+
@rest = double("rest")
|
25
|
+
allow(Chef::ServerAPI).to receive(:new).and_return(@rest)
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "group" do
|
29
|
+
it "should load group data when it's not loaded." do
|
30
|
+
expect(@rest).to receive(:get_rest).with("organizations/myorg/groups/admins").and_return({})
|
31
|
+
org.group("admins")
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should not load group data a second time when it's already loaded." do
|
35
|
+
expect(@rest).to receive(:get_rest)
|
36
|
+
.with("organizations/myorg/groups/admins")
|
37
|
+
.and_return({ anything: "goes" })
|
38
|
+
.exactly(:once)
|
39
|
+
admin1 = org.group("admins")
|
40
|
+
admin2 = org.group("admins")
|
41
|
+
expect(admin1).to eq admin2
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -206,7 +206,7 @@ describe Chef::PolicyBuilder::Policyfile do
|
|
206
206
|
end
|
207
207
|
|
208
208
|
before do
|
209
|
-
Chef::Config[:policy_document_native_api] =
|
209
|
+
Chef::Config[:policy_document_native_api] = false
|
210
210
|
Chef::Config[:deployment_group] = "example-policy-stage"
|
211
211
|
allow(policy_builder).to receive(:api_service).and_return(api_service)
|
212
212
|
end
|
@@ -214,8 +214,6 @@ describe Chef::PolicyBuilder::Policyfile do
|
|
214
214
|
describe "when using compatibility mode (policy_document_native_api == false)" do
|
215
215
|
|
216
216
|
before do
|
217
|
-
Chef::Config[:policy_document_native_api] = false
|
218
|
-
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
219
217
|
Chef::Config[:deployment_group] = "example-policy-stage"
|
220
218
|
end
|
221
219
|
|
@@ -341,10 +339,6 @@ describe Chef::PolicyBuilder::Policyfile do
|
|
341
339
|
end
|
342
340
|
|
343
341
|
describe "validating the Policyfile.lock" do
|
344
|
-
before do
|
345
|
-
Chef::Config[:policy_group] = "policy-stage"
|
346
|
-
Chef::Config[:policy_name] = "example"
|
347
|
-
end
|
348
342
|
|
349
343
|
it "errors if the policyfile json contains any non-recipe items" do
|
350
344
|
parsed_policyfile_json["run_list"] = ["role[foo]"]
|
@@ -812,10 +806,6 @@ describe Chef::PolicyBuilder::Policyfile do
|
|
812
806
|
context "when using compatibility mode (policy_document_native_api == false)" do
|
813
807
|
let(:cookbook1_url) { "cookbooks/example1/#{example1_xyz_version}" }
|
814
808
|
let(:cookbook2_url) { "cookbooks/example2/#{example2_xyz_version}" }
|
815
|
-
before do
|
816
|
-
Chef::Config[:policy_document_native_api] = false
|
817
|
-
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
818
|
-
end
|
819
809
|
|
820
810
|
context "when the cookbooks don't exist on the server" do
|
821
811
|
include_examples "fetching cookbooks when they don't exist"
|