chef 16.17.51-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 +2 -2
- 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 +6 -4
- data/lib/chef/node/immutable_collections.rb +13 -0
- data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
- data/lib/chef/node.rb +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 +0 -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 +13 -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/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/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 +0 -5
- 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,264 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Daniel DeLeo (<dan@chef.io>)
|
3
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require_relative "../../run_list"
|
20
|
-
require_relative "../../util/path_helper"
|
21
|
-
require "pathname" unless defined?(Pathname)
|
22
|
-
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
23
|
-
|
24
|
-
class Chef
|
25
|
-
class Knife
|
26
|
-
module Core
|
27
|
-
# Instances of BootstrapContext are the context objects (i.e., +self+) for
|
28
|
-
# bootstrap templates. For backwards compatibility, they +must+ set the
|
29
|
-
# following instance variables:
|
30
|
-
# * @config - a hash of knife's config values
|
31
|
-
# * @run_list - the run list for the node to bootstrap
|
32
|
-
#
|
33
|
-
class BootstrapContext
|
34
|
-
|
35
|
-
attr_accessor :client_pem
|
36
|
-
attr_accessor :config
|
37
|
-
attr_accessor :chef_config
|
38
|
-
|
39
|
-
def initialize(config, run_list, chef_config, secret = nil)
|
40
|
-
@config = config
|
41
|
-
@run_list = run_list
|
42
|
-
@chef_config = chef_config
|
43
|
-
@secret = secret
|
44
|
-
end
|
45
|
-
|
46
|
-
def bootstrap_environment
|
47
|
-
config[:environment]
|
48
|
-
end
|
49
|
-
|
50
|
-
def validation_key
|
51
|
-
if chef_config[:validation_key] &&
|
52
|
-
File.exist?(File.expand_path(chef_config[:validation_key]))
|
53
|
-
IO.read(File.expand_path(chef_config[:validation_key]))
|
54
|
-
else
|
55
|
-
false
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def client_d
|
60
|
-
@client_d ||= client_d_content
|
61
|
-
end
|
62
|
-
|
63
|
-
def encrypted_data_bag_secret
|
64
|
-
@secret
|
65
|
-
end
|
66
|
-
|
67
|
-
# Contains commands and content, see trusted_certs_content
|
68
|
-
# @todo Rename to trusted_certs_script
|
69
|
-
def trusted_certs
|
70
|
-
@trusted_certs ||= trusted_certs_content
|
71
|
-
end
|
72
|
-
|
73
|
-
def get_log_location
|
74
|
-
if !(chef_config[:config_log_location].class == IO ) && (chef_config[:config_log_location].nil? || chef_config[:config_log_location].to_s.empty?)
|
75
|
-
"STDOUT"
|
76
|
-
elsif chef_config[:config_log_location].equal?(:win_evt)
|
77
|
-
raise "The value :win_evt is not supported for config_log_location on Linux Platforms \n"
|
78
|
-
elsif chef_config[:config_log_location].equal?(:syslog)
|
79
|
-
":syslog"
|
80
|
-
elsif chef_config[:config_log_location].equal?(STDOUT)
|
81
|
-
"STDOUT"
|
82
|
-
elsif chef_config[:config_log_location].equal?(STDERR)
|
83
|
-
"STDERR"
|
84
|
-
elsif chef_config[:config_log_location]
|
85
|
-
%Q{"#{chef_config[:config_log_location]}"}
|
86
|
-
else
|
87
|
-
"STDOUT"
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
def config_content
|
92
|
-
client_rb = <<~CONFIG
|
93
|
-
chef_server_url "#{chef_config[:chef_server_url]}"
|
94
|
-
validation_client_name "#{chef_config[:validation_client_name]}"
|
95
|
-
CONFIG
|
96
|
-
|
97
|
-
unless chef_config[:chef_license].nil?
|
98
|
-
client_rb << "chef_license \"#{chef_config[:chef_license]}\"\n"
|
99
|
-
end
|
100
|
-
|
101
|
-
unless chef_config[:config_log_level].nil? || chef_config[:config_log_level].empty?
|
102
|
-
client_rb << %Q{log_level :#{chef_config[:config_log_level]}\n}
|
103
|
-
end
|
104
|
-
|
105
|
-
client_rb << "log_location #{get_log_location}\n"
|
106
|
-
|
107
|
-
if config[:chef_node_name]
|
108
|
-
client_rb << %Q{node_name "#{config[:chef_node_name]}"\n}
|
109
|
-
else
|
110
|
-
client_rb << "# Using default node name (fqdn)\n"
|
111
|
-
end
|
112
|
-
|
113
|
-
# We configure :verify_api_cert only when it's overridden on the CLI
|
114
|
-
# or when specified in the knife config.
|
115
|
-
if !config[:node_verify_api_cert].nil? || config.key?(:verify_api_cert)
|
116
|
-
value = config[:node_verify_api_cert].nil? ? config[:verify_api_cert] : config[:node_verify_api_cert]
|
117
|
-
client_rb << %Q{verify_api_cert #{value}\n}
|
118
|
-
end
|
119
|
-
|
120
|
-
# We configure :ssl_verify_mode only when it's overridden on the CLI
|
121
|
-
# or when specified in the knife config.
|
122
|
-
if config[:node_ssl_verify_mode] || config.key?(:ssl_verify_mode)
|
123
|
-
value = case config[:node_ssl_verify_mode]
|
124
|
-
when "peer"
|
125
|
-
:verify_peer
|
126
|
-
when "none"
|
127
|
-
:verify_none
|
128
|
-
when nil
|
129
|
-
config[:ssl_verify_mode]
|
130
|
-
else
|
131
|
-
nil
|
132
|
-
end
|
133
|
-
|
134
|
-
if value
|
135
|
-
client_rb << %Q{ssl_verify_mode :#{value}\n}
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
if config[:ssl_verify_mode]
|
140
|
-
client_rb << %Q{ssl_verify_mode :#{config[:ssl_verify_mode]}\n}
|
141
|
-
end
|
142
|
-
|
143
|
-
if config[:bootstrap_proxy]
|
144
|
-
client_rb << %Q{http_proxy "#{config[:bootstrap_proxy]}"\n}
|
145
|
-
client_rb << %Q{https_proxy "#{config[:bootstrap_proxy]}"\n}
|
146
|
-
end
|
147
|
-
|
148
|
-
if config[:bootstrap_proxy_user]
|
149
|
-
client_rb << %Q{http_proxy_user "#{config[:bootstrap_proxy_user]}"\n}
|
150
|
-
client_rb << %Q{https_proxy_user "#{config[:bootstrap_proxy_user]}"\n}
|
151
|
-
end
|
152
|
-
|
153
|
-
if config[:bootstrap_proxy_pass]
|
154
|
-
client_rb << %Q{http_proxy_pass "#{config[:bootstrap_proxy_pass]}"\n}
|
155
|
-
client_rb << %Q{https_proxy_pass "#{config[:bootstrap_proxy_pass]}"\n}
|
156
|
-
end
|
157
|
-
|
158
|
-
if config[:bootstrap_no_proxy]
|
159
|
-
client_rb << %Q{no_proxy "#{config[:bootstrap_no_proxy]}"\n}
|
160
|
-
end
|
161
|
-
|
162
|
-
if encrypted_data_bag_secret
|
163
|
-
client_rb << %Q{encrypted_data_bag_secret "/etc/chef/encrypted_data_bag_secret"\n}
|
164
|
-
end
|
165
|
-
|
166
|
-
unless trusted_certs.empty?
|
167
|
-
client_rb << %Q{trusted_certs_dir "/etc/chef/trusted_certs"\n}
|
168
|
-
end
|
169
|
-
|
170
|
-
if chef_config[:fips]
|
171
|
-
client_rb << "fips true\n"
|
172
|
-
end
|
173
|
-
|
174
|
-
unless chef_config[:file_cache_path].nil?
|
175
|
-
client_rb << "file_cache_path \"#{chef_config[:file_cache_path]}\"\n"
|
176
|
-
end
|
177
|
-
|
178
|
-
unless chef_config[:file_backup_path].nil?
|
179
|
-
client_rb << "file_backup_path \"#{chef_config[:file_backup_path]}\"\n"
|
180
|
-
end
|
181
|
-
|
182
|
-
client_rb
|
183
|
-
end
|
184
|
-
|
185
|
-
def start_chef
|
186
|
-
# If the user doesn't have a client path configure, let bash use the PATH for what it was designed for
|
187
|
-
client_path = chef_config[:chef_client_path] || ChefUtils::Dist::Infra::CLIENT
|
188
|
-
s = "#{client_path} -j /etc/chef/first-boot.json"
|
189
|
-
if config[:verbosity] && config[:verbosity] >= 3
|
190
|
-
s << " -l trace"
|
191
|
-
elsif config[:verbosity] && config[:verbosity] >= 2
|
192
|
-
s << " -l debug"
|
193
|
-
end
|
194
|
-
s << " -E #{bootstrap_environment}" unless bootstrap_environment.nil?
|
195
|
-
s << " --no-color" unless config[:color]
|
196
|
-
s
|
197
|
-
end
|
198
|
-
|
199
|
-
#
|
200
|
-
# Returns the version of Chef to install (as recognized by the Omnitruck API)
|
201
|
-
#
|
202
|
-
# @return [String] download version string
|
203
|
-
def version_to_install
|
204
|
-
return config[:bootstrap_version] if config[:bootstrap_version]
|
205
|
-
|
206
|
-
if config[:channel] == "stable"
|
207
|
-
Chef::VERSION.split(".").first
|
208
|
-
else
|
209
|
-
"latest"
|
210
|
-
end
|
211
|
-
end
|
212
|
-
|
213
|
-
def first_boot
|
214
|
-
(config[:first_boot_attributes] = Mash.new(config[:first_boot_attributes]) || Mash.new).tap do |attributes|
|
215
|
-
if config[:policy_name] && config[:policy_group]
|
216
|
-
attributes[:policy_name] = config[:policy_name]
|
217
|
-
attributes[:policy_group] = config[:policy_group]
|
218
|
-
else
|
219
|
-
attributes[:run_list] = @run_list
|
220
|
-
end
|
221
|
-
attributes.delete(:run_list) if attributes[:policy_name] && !attributes[:policy_name].empty?
|
222
|
-
attributes.merge!(tags: config[:tags]) if config[:tags] && !config[:tags].empty?
|
223
|
-
end
|
224
|
-
end
|
225
|
-
|
226
|
-
private
|
227
|
-
|
228
|
-
# Returns a string for copying the trusted certificates on the workstation to the system being bootstrapped
|
229
|
-
# This string should contain both the commands necessary to both create the files, as well as their content
|
230
|
-
def trusted_certs_content
|
231
|
-
content = ""
|
232
|
-
if chef_config[:trusted_certs_dir]
|
233
|
-
Dir.glob(File.join(Chef::Util::PathHelper.escape_glob_dir(chef_config[:trusted_certs_dir]), "*.{crt,pem}")).each do |cert|
|
234
|
-
content << "cat > /etc/chef/trusted_certs/#{File.basename(cert)} <<'EOP'\n" +
|
235
|
-
IO.read(File.expand_path(cert)) + "\nEOP\n"
|
236
|
-
end
|
237
|
-
end
|
238
|
-
content
|
239
|
-
end
|
240
|
-
|
241
|
-
def client_d_content
|
242
|
-
content = ""
|
243
|
-
if chef_config[:client_d_dir] && File.exist?(chef_config[:client_d_dir])
|
244
|
-
root = Pathname(chef_config[:client_d_dir])
|
245
|
-
root.find do |f|
|
246
|
-
relative = f.relative_path_from(root)
|
247
|
-
if f != root
|
248
|
-
file_on_node = "/etc/chef/client.d/#{relative}"
|
249
|
-
if f.directory?
|
250
|
-
content << "mkdir #{file_on_node}\n"
|
251
|
-
else
|
252
|
-
content << "cat > #{file_on_node} <<'EOP'\n" +
|
253
|
-
f.read.gsub("'", "'\\\\''") + "\nEOP\n"
|
254
|
-
end
|
255
|
-
end
|
256
|
-
end
|
257
|
-
end
|
258
|
-
content
|
259
|
-
end
|
260
|
-
|
261
|
-
end
|
262
|
-
end
|
263
|
-
end
|
264
|
-
end
|
@@ -1,159 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Daniel DeLeo (<dan@chef.io>)
|
3
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require_relative "../../mixin/shell_out"
|
20
|
-
|
21
|
-
class Chef
|
22
|
-
class Knife
|
23
|
-
class CookbookSCMRepo
|
24
|
-
|
25
|
-
DIRTY_REPO = /^\s+M/.freeze
|
26
|
-
|
27
|
-
include Chef::Mixin::ShellOut
|
28
|
-
|
29
|
-
attr_reader :repo_path
|
30
|
-
attr_reader :default_branch
|
31
|
-
attr_reader :use_current_branch
|
32
|
-
attr_reader :ui
|
33
|
-
|
34
|
-
def initialize(repo_path, ui, opts = {})
|
35
|
-
@repo_path = repo_path
|
36
|
-
@ui = ui
|
37
|
-
@default_branch = "master"
|
38
|
-
@use_current_branch = false
|
39
|
-
apply_opts(opts)
|
40
|
-
end
|
41
|
-
|
42
|
-
def sanity_check
|
43
|
-
unless ::File.directory?(repo_path)
|
44
|
-
ui.error("The cookbook repo path #{repo_path} does not exist or is not a directory")
|
45
|
-
exit 1
|
46
|
-
end
|
47
|
-
unless git_repo?(repo_path)
|
48
|
-
ui.error "The cookbook repo #{repo_path} is not a git repository."
|
49
|
-
ui.info("Use `git init` to initialize a git repo")
|
50
|
-
exit 1
|
51
|
-
end
|
52
|
-
if use_current_branch
|
53
|
-
@default_branch = get_current_branch
|
54
|
-
end
|
55
|
-
unless branch_exists?(default_branch)
|
56
|
-
ui.error "The default branch '#{default_branch}' does not exist"
|
57
|
-
ui.info "If this is a new git repo, make sure you have at least one commit before installing cookbooks"
|
58
|
-
exit 1
|
59
|
-
end
|
60
|
-
cmd = git("status --porcelain")
|
61
|
-
if DIRTY_REPO.match?(cmd.stdout)
|
62
|
-
ui.error "You have uncommitted changes to your cookbook repo (#{repo_path}):"
|
63
|
-
ui.msg cmd.stdout
|
64
|
-
ui.info "Commit or stash your changes before importing cookbooks"
|
65
|
-
exit 1
|
66
|
-
end
|
67
|
-
# TODO: any untracked files in the cookbook directory will get nuked later
|
68
|
-
# make this an error condition also.
|
69
|
-
true
|
70
|
-
end
|
71
|
-
|
72
|
-
def reset_to_default_state
|
73
|
-
ui.info("Checking out the #{default_branch} branch.")
|
74
|
-
git("checkout #{default_branch}")
|
75
|
-
end
|
76
|
-
|
77
|
-
def prepare_to_import(cookbook_name)
|
78
|
-
branch = "chef-vendor-#{cookbook_name}"
|
79
|
-
if branch_exists?(branch)
|
80
|
-
ui.info("Pristine copy branch (#{branch}) exists, switching to it.")
|
81
|
-
git("checkout #{branch}")
|
82
|
-
else
|
83
|
-
ui.info("Creating pristine copy branch #{branch}")
|
84
|
-
git("checkout -b #{branch}")
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def finalize_updates_to(cookbook_name, version)
|
89
|
-
if update_count = updated?(cookbook_name)
|
90
|
-
ui.info "#{update_count} files updated, committing changes"
|
91
|
-
git("add #{cookbook_name}")
|
92
|
-
git("commit -m \"Import #{cookbook_name} version #{version}\" -- #{cookbook_name}")
|
93
|
-
ui.info("Creating tag cookbook-site-imported-#{cookbook_name}-#{version}")
|
94
|
-
git("tag -f cookbook-site-imported-#{cookbook_name}-#{version}")
|
95
|
-
true
|
96
|
-
else
|
97
|
-
ui.info("No changes made to #{cookbook_name}")
|
98
|
-
false
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
def merge_updates_from(cookbook_name, version)
|
103
|
-
branch = "chef-vendor-#{cookbook_name}"
|
104
|
-
Dir.chdir(repo_path) do
|
105
|
-
if system("git merge #{branch}")
|
106
|
-
ui.info("Cookbook #{cookbook_name} version #{version} successfully installed")
|
107
|
-
else
|
108
|
-
ui.error("You have merge conflicts - please resolve manually")
|
109
|
-
ui.info("Merge status (cd #{repo_path}; git status):")
|
110
|
-
system("git status")
|
111
|
-
exit 3
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
def updated?(cookbook_name)
|
117
|
-
update_count = git("status --porcelain -- #{cookbook_name}").stdout.strip.lines.count
|
118
|
-
update_count == 0 ? nil : update_count
|
119
|
-
end
|
120
|
-
|
121
|
-
def branch_exists?(branch_name)
|
122
|
-
git("branch --no-color").stdout.lines.any? { |l| l =~ /\s#{Regexp.escape(branch_name)}(?:\s|$)/ }
|
123
|
-
end
|
124
|
-
|
125
|
-
def get_current_branch
|
126
|
-
ref = git("symbolic-ref HEAD").stdout
|
127
|
-
ref.chomp.split("/")[2]
|
128
|
-
end
|
129
|
-
|
130
|
-
private
|
131
|
-
|
132
|
-
def git_repo?(directory)
|
133
|
-
if File.directory?(File.join(directory, ".git"))
|
134
|
-
true
|
135
|
-
elsif File.dirname(directory) == directory
|
136
|
-
false
|
137
|
-
else
|
138
|
-
git_repo?(File.dirname(directory))
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
def apply_opts(opts)
|
143
|
-
opts.each do |option, value|
|
144
|
-
case option.to_s
|
145
|
-
when "default_branch"
|
146
|
-
@default_branch = value
|
147
|
-
when "use_current_branch"
|
148
|
-
@use_current_branch = value
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
def git(command)
|
154
|
-
shell_out!("git #{command}", cwd: repo_path)
|
155
|
-
end
|
156
|
-
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Nicolas DUPEUX (<nicolas.dupeux@arkea.com>)
|
3
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
class Chef
|
20
|
-
class Knife
|
21
|
-
module Core
|
22
|
-
|
23
|
-
# This module may be included into a knife subcommand class to automatically
|
24
|
-
# add configuration options used by the StatusPresenter and NodePresenter.
|
25
|
-
module FormattingOptions
|
26
|
-
# @private
|
27
|
-
# Would prefer to do this in a rational way, but can't be done b/c of
|
28
|
-
# Mixlib::CLI's design :(
|
29
|
-
def self.included(includer)
|
30
|
-
includer.class_eval do
|
31
|
-
option :medium_output,
|
32
|
-
short: "-m",
|
33
|
-
long: "--medium",
|
34
|
-
boolean: true,
|
35
|
-
default: false,
|
36
|
-
description: "Include normal attributes in the output"
|
37
|
-
|
38
|
-
option :long_output,
|
39
|
-
short: "-l",
|
40
|
-
long: "--long",
|
41
|
-
boolean: true,
|
42
|
-
default: false,
|
43
|
-
description: "Include all attributes in the output"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,138 +0,0 @@
|
|
1
|
-
# Author:: Christopher Brown (<cb@chef.io>)
|
2
|
-
# Author:: Daniel DeLeo (<dan@chef.io>)
|
3
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require_relative "../../version"
|
20
|
-
require_relative "../../util/path_helper"
|
21
|
-
class Chef
|
22
|
-
class Knife
|
23
|
-
class SubcommandLoader
|
24
|
-
class GemGlobLoader < Chef::Knife::SubcommandLoader
|
25
|
-
MATCHES_CHEF_GEM ||= %r{/chef-\d+\.\d+\.\d+}.freeze
|
26
|
-
MATCHES_THIS_CHEF_GEM ||= %r{/chef-#{Chef::VERSION}(-\w+)?(-\w+)?/}.freeze
|
27
|
-
|
28
|
-
def subcommand_files
|
29
|
-
@subcommand_files ||= (gem_and_builtin_subcommands.values + site_subcommands).flatten.uniq
|
30
|
-
end
|
31
|
-
|
32
|
-
# Returns a Hash of paths to knife commands built-in to chef, or installed via gem.
|
33
|
-
# If rubygems is not installed, falls back to globbing the knife directory.
|
34
|
-
# The Hash is of the form {"relative/path" => "/absolute/path"}
|
35
|
-
#--
|
36
|
-
# Note: the "right" way to load the plugins is to require the relative path, i.e.,
|
37
|
-
# require 'chef/knife/command'
|
38
|
-
# but we're getting frustrated by bugs at every turn, and it's slow besides. So
|
39
|
-
# subcommand loader has been modified to load the plugins by using Kernel.load
|
40
|
-
# with the absolute path.
|
41
|
-
def gem_and_builtin_subcommands
|
42
|
-
require "rubygems" unless defined?(Gem)
|
43
|
-
find_subcommands_via_rubygems
|
44
|
-
rescue LoadError
|
45
|
-
find_subcommands_via_dirglob
|
46
|
-
end
|
47
|
-
|
48
|
-
def find_subcommands_via_dirglob
|
49
|
-
# The "require paths" of the core knife subcommands bundled with chef
|
50
|
-
files = Dir[File.join(Chef::Util::PathHelper.escape_glob_dir(File.expand_path("../../knife", __dir__)), "*.rb")]
|
51
|
-
subcommand_files = {}
|
52
|
-
files.each do |knife_file|
|
53
|
-
rel_path = knife_file[/#{CHEF_ROOT}#{Regexp.escape(File::SEPARATOR)}(.*)\.rb/, 1]
|
54
|
-
subcommand_files[rel_path] = knife_file
|
55
|
-
end
|
56
|
-
subcommand_files
|
57
|
-
end
|
58
|
-
|
59
|
-
def find_subcommands_via_rubygems
|
60
|
-
files = find_files_latest_gems "chef/knife/*.rb"
|
61
|
-
subcommand_files = {}
|
62
|
-
files.each do |file|
|
63
|
-
rel_path = file[/(#{Regexp.escape File.join('chef', 'knife', '')}.*)\.rb/, 1]
|
64
|
-
|
65
|
-
# When not installed as a gem (ChefDK/appbundler in particular), AND
|
66
|
-
# a different version of Chef is installed via gems, `files` will
|
67
|
-
# include some files from the 'other' Chef install. If this contains
|
68
|
-
# a knife command that doesn't exist in this version of Chef, we will
|
69
|
-
# get a LoadError later when we try to require it.
|
70
|
-
next if from_different_chef_version?(file)
|
71
|
-
|
72
|
-
subcommand_files[rel_path] = file
|
73
|
-
end
|
74
|
-
|
75
|
-
subcommand_files.merge(find_subcommands_via_dirglob)
|
76
|
-
end
|
77
|
-
|
78
|
-
private
|
79
|
-
|
80
|
-
def find_files_latest_gems(glob, check_load_path = true)
|
81
|
-
files = []
|
82
|
-
|
83
|
-
if check_load_path
|
84
|
-
files = $LOAD_PATH.map do |load_path|
|
85
|
-
Dir["#{File.expand_path glob, Chef::Util::PathHelper.escape_glob_dir(load_path)}#{Gem.suffix_pattern}"]
|
86
|
-
end.flatten.select { |file| File.file? file.untaint }
|
87
|
-
end
|
88
|
-
|
89
|
-
gem_files = latest_gem_specs.map do |spec|
|
90
|
-
# Gem::Specification#matches_for_glob wasn't added until RubyGems 1.8
|
91
|
-
if spec.respond_to? :matches_for_glob
|
92
|
-
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
93
|
-
else
|
94
|
-
check_spec_for_glob(spec, glob)
|
95
|
-
end
|
96
|
-
end.flatten
|
97
|
-
|
98
|
-
files.concat gem_files
|
99
|
-
files.uniq! if check_load_path
|
100
|
-
|
101
|
-
files
|
102
|
-
end
|
103
|
-
|
104
|
-
def latest_gem_specs
|
105
|
-
@latest_gem_specs ||= if Gem::Specification.respond_to? :latest_specs
|
106
|
-
Gem::Specification.latest_specs(true) # find prerelease gems
|
107
|
-
else
|
108
|
-
Gem.source_index.latest_specs(true)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
def check_spec_for_glob(spec, glob)
|
113
|
-
dirs = if spec.require_paths.size > 1
|
114
|
-
"{#{spec.require_paths.join(",")}}"
|
115
|
-
else
|
116
|
-
spec.require_paths.first
|
117
|
-
end
|
118
|
-
|
119
|
-
glob = File.join(Chef::Util::PathHelper.escape_glob_dir(spec.full_gem_path, dirs), glob)
|
120
|
-
|
121
|
-
Dir[glob].map(&:untaint)
|
122
|
-
end
|
123
|
-
|
124
|
-
def from_different_chef_version?(path)
|
125
|
-
matches_any_chef_gem?(path) && !matches_this_chef_gem?(path)
|
126
|
-
end
|
127
|
-
|
128
|
-
def matches_any_chef_gem?(path)
|
129
|
-
path =~ MATCHES_CHEF_GEM
|
130
|
-
end
|
131
|
-
|
132
|
-
def matches_this_chef_gem?(path)
|
133
|
-
path =~ MATCHES_THIS_CHEF_GEM
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|