chef 15.17.4-universal-mingw32 → 16.0.257-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 +14 -20
- data/README.md +6 -6
- data/Rakefile +18 -23
- data/chef-universal-mingw32.gemspec +4 -4
- data/chef.gemspec +10 -26
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/action_collection.rb +16 -5
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +33 -54
- data/lib/chef/application/apply.rb +20 -3
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +6 -2
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +0 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -3
- data/lib/chef/client.rb +16 -14
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +45 -22
- data/lib/chef/cookbook_version.rb +40 -5
- data/lib/chef/data_bag.rb +2 -2
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/deprecated.rb +1 -9
- data/lib/chef/dist.rb +8 -0
- data/lib/chef/dsl/chef_vault.rb +84 -0
- data/lib/chef/dsl/declare_resource.rb +7 -5
- data/lib/chef/dsl/platform_introspection.rb +2 -3
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/environment.rb +2 -2
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +0 -3
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -2
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/knife.rb +1 -3
- data/lib/chef/knife/acl_add.rb +57 -0
- data/lib/chef/knife/acl_base.rb +183 -0
- data/lib/chef/knife/acl_bulk_add.rb +78 -0
- data/lib/chef/knife/acl_bulk_remove.rb +83 -0
- data/lib/chef/knife/acl_remove.rb +62 -0
- data/lib/chef/knife/acl_show.rb +56 -0
- data/lib/chef/knife/bootstrap.rb +93 -97
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +20 -20
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +13 -15
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -3
- data/lib/chef/knife/core/node_presenter.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/ui.rb +17 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +45 -58
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- data/lib/chef/knife/environment_compare.rb +1 -1
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/group_add.rb +55 -0
- data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
- data/lib/chef/knife/group_destroy.rb +53 -0
- data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
- data/lib/chef/knife/group_remove.rb +56 -0
- data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -50
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +1 -2
- data/lib/chef/knife/supermarket_list.rb +1 -2
- data/lib/chef/knife/supermarket_search.rb +1 -2
- data/lib/chef/knife/supermarket_share.rb +1 -2
- data/lib/chef/knife/supermarket_show.rb +1 -2
- data/lib/chef/knife/supermarket_unshare.rb +1 -2
- data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
- data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
- data/lib/chef/knife/user_invite_list.rb +34 -0
- data/lib/chef/knife/user_invite_recind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/create_path.rb +8 -8
- data/lib/chef/mixin/openssl_helper.rb +3 -26
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +13 -1
- data/lib/chef/mixin/shell_out.rb +0 -4
- data/lib/chef/mixin/template.rb +0 -1
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
- data/lib/chef/node/mixin/immutablize_array.rb +4 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
- data/lib/chef/node_map.rb +7 -36
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +22 -4
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +2 -2
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -8
- data/lib/chef/provider/file.rb +5 -5
- data/lib/chef/provider/git.rb +84 -27
- data/lib/chef/provider/group.rb +4 -4
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/launchd.rb +36 -51
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/mount/solaris.rb +1 -0
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +3 -4
- data/lib/chef/provider/package/chocolatey.rb +1 -3
- data/lib/chef/provider/package/dnf.rb +66 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +84 -30
- data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
- data/lib/chef/provider/package/dnf/version.rb +5 -1
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -3
- data/lib/chef/provider/package/homebrew.rb +106 -42
- data/lib/chef/provider/package/msu.rb +3 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/powershell.rb +2 -6
- data/lib/chef/provider/package/rubygems.rb +29 -2
- data/lib/chef/provider/package/snap.rb +27 -96
- data/lib/chef/provider/package/windows.rb +3 -2
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +0 -8
- data/lib/chef/provider/package/yum/yum_helper.py +0 -4
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +4 -10
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +3 -3
- data/lib/chef/provider/remote_file/ftp.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +2 -1
- data/lib/chef/provider/remote_file/sftp.rb +3 -2
- data/lib/chef/provider/route.rb +5 -3
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/provider/service.rb +8 -8
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +31 -29
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +7 -12
- data/lib/chef/provider/service/openbsd.rb +1 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +3 -3
- data/lib/chef/provider/service/systemd.rb +12 -12
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +5 -11
- data/lib/chef/provider/subversion.rb +25 -5
- data/lib/chef/provider/systemd_unit.rb +26 -25
- data/lib/chef/provider/user.rb +6 -6
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/mac.rb +10 -9
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/provider/windows_env.rb +3 -3
- data/lib/chef/provider/windows_script.rb +2 -2
- data/lib/chef/provider/windows_task.rb +7 -9
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +11 -31
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +41 -56
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +149 -0
- data/lib/chef/resource/apt_package.rb +2 -1
- data/lib/chef/resource/apt_preference.rb +69 -2
- data/lib/chef/resource/apt_repository.rb +337 -5
- data/lib/chef/resource/apt_update.rb +52 -1
- data/lib/chef/resource/archive_file.rb +9 -29
- data/lib/chef/resource/bash.rb +2 -0
- data/lib/chef/resource/bff_package.rb +9 -1
- data/lib/chef/resource/breakpoint.rb +0 -1
- data/lib/chef/resource/build_essential.rb +42 -48
- data/lib/chef/resource/cab_package.rb +8 -1
- data/lib/chef/resource/chef_client_cron.rb +225 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +198 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +177 -0
- data/lib/chef/resource/chef_gem.rb +9 -16
- data/lib/chef/resource/chef_handler.rb +2 -1
- data/lib/chef/resource/chef_sleep.rb +0 -1
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +3 -1
- data/lib/chef/resource/chocolatey_feature.rb +2 -1
- data/lib/chef/resource/chocolatey_package.rb +2 -1
- data/lib/chef/resource/chocolatey_source.rb +2 -1
- data/lib/chef/resource/cookbook_file.rb +1 -1
- data/lib/chef/resource/cron.rb +22 -68
- data/lib/chef/resource/cron_access.rb +8 -15
- data/lib/chef/resource/cron_d.rb +9 -75
- data/lib/chef/resource/csh.rb +2 -0
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +4 -4
- data/lib/chef/resource/dnf_package.rb +2 -3
- data/lib/chef/resource/dpkg_package.rb +2 -1
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +13 -12
- data/lib/chef/resource/file.rb +3 -1
- data/lib/chef/resource/freebsd_package.rb +2 -1
- data/lib/chef/resource/gem_package.rb +14 -6
- data/lib/chef/resource/group.rb +4 -1
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +5 -4
- data/lib/chef/resource/homebrew_package.rb +4 -2
- data/lib/chef/resource/homebrew_tap.rb +2 -1
- data/lib/chef/resource/hostname.rb +41 -36
- data/lib/chef/resource/http_request.rb +0 -1
- data/lib/chef/resource/ifconfig.rb +1 -1
- data/lib/chef/resource/ips_package.rb +10 -2
- data/lib/chef/resource/kernel_module.rb +29 -29
- data/lib/chef/resource/ksh.rb +2 -0
- data/lib/chef/resource/launchd.rb +6 -6
- data/lib/chef/resource/link.rb +1 -23
- data/lib/chef/resource/locale.rb +58 -24
- data/lib/chef/resource/log.rb +12 -1
- data/lib/chef/resource/lwrp_base.rb +1 -8
- data/lib/chef/resource/macos_userdefaults.rb +9 -6
- data/lib/chef/resource/macosx_service.rb +2 -1
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +62 -2
- data/lib/chef/resource/mount.rb +3 -0
- data/lib/chef/resource/msu_package.rb +13 -1
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +19 -3
- data/lib/chef/resource/ohai_hint.rb +3 -12
- data/lib/chef/resource/openbsd_package.rb +9 -1
- data/lib/chef/resource/openssl_dhparam.rb +10 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +23 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +21 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +20 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +22 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +37 -1
- data/lib/chef/resource/openssl_x509_crl.rb +12 -1
- data/lib/chef/resource/openssl_x509_request.rb +37 -1
- data/lib/chef/resource/osx_profile.rb +3 -2
- data/lib/chef/resource/package.rb +2 -1
- data/lib/chef/resource/pacman_package.rb +2 -1
- data/lib/chef/resource/paludis_package.rb +12 -3
- data/lib/chef/resource/perl.rb +2 -0
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +13 -3
- data/lib/chef/resource/powershell_package.rb +1 -3
- data/lib/chef/resource/powershell_package_source.rb +3 -1
- data/lib/chef/resource/powershell_script.rb +7 -17
- data/lib/chef/resource/python.rb +2 -0
- data/lib/chef/resource/reboot.rb +0 -1
- data/lib/chef/resource/registry_key.rb +1 -2
- data/lib/chef/resource/remote_directory.rb +2 -0
- data/lib/chef/resource/remote_file.rb +2 -0
- data/lib/chef/resource/rhsm_errata.rb +0 -1
- data/lib/chef/resource/rhsm_errata_level.rb +0 -1
- data/lib/chef/resource/rhsm_register.rb +2 -1
- data/lib/chef/resource/rhsm_repo.rb +3 -1
- data/lib/chef/resource/rhsm_subscription.rb +4 -1
- data/lib/chef/resource/route.rb +5 -1
- data/lib/chef/resource/rpm_package.rb +9 -2
- data/lib/chef/resource/ruby.rb +2 -0
- data/lib/chef/resource/ruby_block.rb +1 -1
- data/lib/chef/resource/scm/_scm.rb +48 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +8 -5
- data/lib/chef/resource/script.rb +6 -3
- data/lib/chef/resource/service.rb +6 -7
- data/lib/chef/resource/smartos_package.rb +9 -1
- data/lib/chef/resource/snap_package.rb +3 -1
- data/lib/chef/resource/solaris_package.rb +9 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +9 -9
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -2
- data/lib/chef/resource/support/ulimit.erb +41 -0
- data/lib/chef/resource/swap_file.rb +5 -3
- data/lib/chef/resource/sysctl.rb +2 -2
- data/lib/chef/resource/systemd_unit.rb +4 -2
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +7 -18
- data/lib/chef/resource/user.rb +1 -3
- data/lib/chef/resource/user/aix_user.rb +0 -2
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +0 -2
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user/pw_user.rb +0 -2
- data/lib/chef/resource/user/solaris_user.rb +0 -2
- data/lib/chef/resource/user/windows_user.rb +0 -2
- data/lib/chef/resource/user_ulimit.rb +114 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +19 -6
- data/lib/chef/resource/windows_auto_run.rb +0 -1
- data/lib/chef/resource/windows_certificate.rb +1 -1
- data/lib/chef/resource/windows_dfs_folder.rb +0 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
- data/lib/chef/resource/windows_dfs_server.rb +0 -1
- data/lib/chef/resource/windows_dns_record.rb +0 -1
- data/lib/chef/resource/windows_dns_zone.rb +0 -1
- data/lib/chef/resource/windows_env.rb +2 -3
- data/lib/chef/resource/windows_feature.rb +2 -2
- data/lib/chef/resource/windows_feature_dism.rb +9 -22
- data/lib/chef/resource/windows_feature_powershell.rb +17 -82
- data/lib/chef/resource/windows_firewall_rule.rb +119 -10
- data/lib/chef/resource/windows_font.rb +1 -3
- data/lib/chef/resource/windows_package.rb +13 -4
- data/lib/chef/resource/windows_pagefile.rb +0 -1
- data/lib/chef/resource/windows_path.rb +0 -1
- data/lib/chef/resource/windows_printer.rb +0 -1
- data/lib/chef/resource/windows_printer_port.rb +0 -1
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +90 -0
- data/lib/chef/resource/windows_service.rb +45 -31
- data/lib/chef/resource/windows_share.rb +3 -7
- data/lib/chef/resource/windows_shortcut.rb +0 -1
- data/lib/chef/resource/windows_task.rb +14 -15
- data/lib/chef/resource/windows_uac.rb +0 -1
- data/lib/chef/resource/windows_user_privilege.rb +157 -0
- data/lib/chef/resource/windows_workgroup.rb +0 -1
- data/lib/chef/resource/yum_package.rb +3 -1
- data/lib/chef/resource/yum_repository.rb +2 -1
- data/lib/chef/resource/zypper_package.rb +3 -2
- data/lib/chef/resource/zypper_repository.rb +2 -1
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +6 -6
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/role.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/shell.rb +23 -32
- data/lib/chef/shell/shell_session.rb +0 -2
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/configuration_generator.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/version_string.rb +1 -1
- data/lib/chef/win32/api/file.rb +18 -18
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +3 -11
- data/lib/chef/win32/process.rb +2 -2
- data/lib/chef/win32/security.rb +40 -2
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +27 -23
- data/spec/functional/resource/aix_service_spec.rb +1 -0
- data/spec/functional/resource/aixinit_service_spec.rb +8 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -0
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +11 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +6 -5
- data/spec/functional/resource/link_spec.rb +17 -17
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/rpm_spec.rb +2 -2
- data/spec/functional/resource/user/dscl_spec.rb +2 -2
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +8 -8
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -2
- data/spec/functional/shell_spec.rb +6 -6
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +0 -6
- data/spec/functional/win32/security_spec.rb +22 -0
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +123 -2
- data/spec/integration/knife/cookbook_show_spec.rb +28 -26
- data/spec/integration/knife/data_bag_show_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +30 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +50 -21
- data/spec/integration/recipes/notifying_block_spec.rb +9 -6
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +46 -144
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -3
- data/spec/integration/recipes/resource_load_spec.rb +133 -13
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +11 -14
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
- data/spec/support/platform_helpers.rb +44 -19
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +3 -3
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +5 -18
- data/spec/support/shared/integration/knife_support.rb +14 -8
- data/spec/unit/application/apply_spec.rb +3 -0
- data/spec/unit/application/client_spec.rb +5 -1
- data/spec/unit/application_spec.rb +1 -9
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +4 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +3 -4
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +38 -17
- data/spec/unit/dsl/platform_introspection_spec.rb +0 -1
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -3
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
- data/spec/unit/knife/bootstrap_spec.rb +36 -54
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +6 -5
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +8 -68
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/ssh_spec.rb +10 -113
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_spec.rb +3 -5
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/securable_spec.rb +1 -0
- data/spec/unit/mixin/user_context_spec.rb +9 -1
- data/spec/unit/node/attribute_spec.rb +2 -2
- data/spec/unit/node_spec.rb +24 -0
- data/spec/unit/platform/query_helpers_spec.rb +0 -143
- data/spec/unit/property/state_spec.rb +12 -7
- data/spec/unit/property/validation_spec.rb +25 -1
- data/spec/unit/property_spec.rb +18 -15
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +9 -11
- data/spec/unit/provider/apt_update_spec.rb +12 -11
- data/spec/unit/provider/cookbook_file_spec.rb +4 -4
- data/spec/unit/provider/cron_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +4 -15
- data/spec/unit/provider/file_spec.rb +4 -4
- data/spec/unit/provider/git_spec.rb +44 -4
- data/spec/unit/provider/link_spec.rb +0 -1
- data/spec/unit/provider/log_spec.rb +3 -3
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/osx_profile_spec.rb +2 -2
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +2 -2
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/msu_spec.rb +3 -3
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/powershell_spec.rb +88 -96
- data/spec/unit/provider/package/rubygems_spec.rb +221 -31
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +53 -30
- data/spec/unit/provider/powershell_script_spec.rb +21 -61
- data/spec/unit/provider/remote_file_spec.rb +3 -4
- data/spec/unit/provider/service/arch_service_spec.rb +2 -3
- data/spec/unit/provider/service/debian_service_spec.rb +35 -14
- data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider/service/windows_spec.rb +6 -2
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/systemd_unit_spec.rb +24 -28
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +25 -75
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/provider_spec.rb +0 -1
- data/spec/unit/recipe_spec.rb +68 -0
- data/spec/unit/resource/alternatives_spec.rb +120 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -18
- data/spec/unit/resource/apt_repository_spec.rb +0 -18
- data/spec/unit/resource/apt_update_spec.rb +0 -18
- data/spec/unit/resource/archive_file_spec.rb +2 -11
- data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
- data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
- data/spec/unit/resource/cron_d_spec.rb +6 -48
- data/spec/unit/resource/cron_spec.rb +4 -10
- data/spec/unit/resource/gem_package_spec.rb +3 -3
- data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
- data/spec/unit/resource/link_spec.rb +0 -4
- data/spec/unit/resource/locale_spec.rb +0 -34
- data/spec/unit/resource/ohai_spec.rb +56 -2
- data/spec/unit/resource/plist_spec.rb +130 -0
- data/spec/unit/resource/powershell_script_spec.rb +0 -5
- data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
- data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
- data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
- data/spec/unit/resource/service_spec.rb +4 -0
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/user_ulimit_spec.rb +53 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +6 -47
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +4 -1
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_reporter_spec.rb +1 -5
- data/spec/unit/resource_spec.rb +11 -4
- data/spec/unit/role_spec.rb +11 -11
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +0 -9
- data/spec/unit/win32/security_spec.rb +3 -4
- data/tasks/rspec.rb +1 -1
- metadata +116 -87
- data/lib/chef/dsl/core.rb +0 -52
- data/lib/chef/knife/cookbook_site_share.rb +0 -41
- data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
- data/lib/chef/provider/apt_preference.rb +0 -93
- data/lib/chef/provider/apt_repository.rb +0 -358
- data/lib/chef/provider/apt_update.rb +0 -79
- data/lib/chef/provider/log.rb +0 -43
- data/lib/chef/provider/mdadm.rb +0 -85
- data/lib/chef/provider/ohai.rb +0 -45
- data/lib/chef/resource/git.rb +0 -37
- data/spec/functional/resource/windows_font_spec.rb +0 -49
- data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -34,8 +34,8 @@ class Chef
|
|
34
34
|
def initialize(config: {}, knife_config: nil, ui: nil)
|
35
35
|
@config = config
|
36
36
|
unless knife_config.nil?
|
37
|
-
# the knife_config argument becomes deprecated in Chef-16, don't use it
|
38
37
|
@config = knife_config
|
38
|
+
Chef.deprecated(:knife_bootstrap_apis, "The knife_config option to the Bootstrap::ClientBuilder object is deprecated and has been renamed to just 'config'")
|
39
39
|
end
|
40
40
|
@ui = ui
|
41
41
|
end
|
@@ -42,8 +42,8 @@ class Chef
|
|
42
42
|
def initialize(config: {}, knife_config: nil, chef_config: {}, ui: nil)
|
43
43
|
@config = config
|
44
44
|
unless knife_config.nil?
|
45
|
-
# the knife_config argument becomes deprecated in Chef-16, don't use it
|
46
45
|
@config = knife_config
|
46
|
+
Chef.deprecated(:knife_bootstrap_apis, "The knife_config option to the Bootstrap::ClientBuilder object is deprecated and has been renamed to just 'config'")
|
47
47
|
end
|
48
48
|
@chef_config = chef_config
|
49
49
|
@ui = ui
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<%= "https_proxy=\"#{
|
2
|
-
<%= "no_proxy=\"#{
|
1
|
+
<%= "https_proxy=\"#{@config[:bootstrap_proxy]}\" export https_proxy" if @config[:bootstrap_proxy] %>
|
2
|
+
<%= "no_proxy=\"#{@config[:bootstrap_no_proxy]}\" export no_proxy" if @config[:bootstrap_no_proxy] %>
|
3
3
|
|
4
4
|
if test "x$TMPDIR" = "x"; then
|
5
5
|
tmp="/tmp"
|
@@ -37,7 +37,7 @@ capture_tmp_stderr() {
|
|
37
37
|
# do_wget URL FILENAME
|
38
38
|
do_wget() {
|
39
39
|
echo "trying wget..."
|
40
|
-
wget <%= "--proxy=on " if
|
40
|
+
wget <%= "--proxy=on " if @config[:bootstrap_proxy] %> <%= @config[:bootstrap_wget_options] %> -O "$2" "$1" 2>$tmp_dir/stderr
|
41
41
|
rc=$?
|
42
42
|
# check for 404
|
43
43
|
grep "ERROR 404" $tmp_dir/stderr 2>&1 >/dev/null
|
@@ -57,7 +57,7 @@ do_wget() {
|
|
57
57
|
# do_curl URL FILENAME
|
58
58
|
do_curl() {
|
59
59
|
echo "trying curl..."
|
60
|
-
curl -sL <%= "--proxy \"#{
|
60
|
+
curl -sL <%= "--proxy \"#{@config[:bootstrap_proxy]}\" " if @config[:bootstrap_proxy] %> <%= @config[:bootstrap_curl_options] %> -D $tmp_dir/stderr -o "$2" "$1" 2>$tmp_dir/stderr
|
61
61
|
rc=$?
|
62
62
|
# check for 404
|
63
63
|
grep "404 Not Found" $tmp_dir/stderr 2>&1 >/dev/null
|
@@ -164,14 +164,14 @@ do_download() {
|
|
164
164
|
|
165
165
|
<%# Run any custom commands before installing chef-client -%>
|
166
166
|
<%# Ex. wait for cloud-init to complete -%>
|
167
|
-
<% if
|
168
|
-
<%=
|
167
|
+
<% if @config[:bootstrap_preinstall_command] %>
|
168
|
+
<%= @config[:bootstrap_preinstall_command] %>
|
169
169
|
<% end %>
|
170
170
|
|
171
|
-
<% if
|
172
|
-
<%=
|
171
|
+
<% if @config[:bootstrap_install_command] %>
|
172
|
+
<%= @config[:bootstrap_install_command] %>
|
173
173
|
<% else %>
|
174
|
-
install_sh="<%=
|
174
|
+
install_sh="<%= @config[:bootstrap_url] ? @config[:bootstrap_url] : "https://omnitruck.chef.io/chef/install.sh" %>"
|
175
175
|
if test -f /usr/bin/<%= Chef::Dist::CLIENT %>; then
|
176
176
|
echo "-----> Existing <%= Chef::Dist::PRODUCT %> installation detected"
|
177
177
|
else
|
@@ -185,50 +185,50 @@ if test "x$tmp_dir" != "x"; then
|
|
185
185
|
rm -r "$tmp_dir"
|
186
186
|
fi
|
187
187
|
|
188
|
-
mkdir -p
|
188
|
+
mkdir -p <%= ChefConfig::Config.etc_chef_dir(false) %>
|
189
189
|
|
190
190
|
<% if client_pem -%>
|
191
|
-
(umask 077 && (cat >
|
191
|
+
(umask 077 && (cat > <%= ChefConfig::Config.etc_chef_dir(false) %>/client.pem <<'EOP'
|
192
192
|
<%= ::File.read(::File.expand_path(client_pem)) %>
|
193
193
|
EOP
|
194
194
|
)) || exit 1
|
195
195
|
<% end -%>
|
196
196
|
|
197
197
|
<% if validation_key -%>
|
198
|
-
(umask 077 && (cat >
|
198
|
+
(umask 077 && (cat > <%= ChefConfig::Config.etc_chef_dir(false) %>/validation.pem <<'EOP'
|
199
199
|
<%= validation_key %>
|
200
200
|
EOP
|
201
201
|
)) || exit 1
|
202
202
|
<% end -%>
|
203
203
|
|
204
204
|
<% if encrypted_data_bag_secret -%>
|
205
|
-
(umask 077 && (cat >
|
205
|
+
(umask 077 && (cat > <%= ChefConfig::Config.etc_chef_dir(false) %>/encrypted_data_bag_secret <<'EOP'
|
206
206
|
<%= encrypted_data_bag_secret %>
|
207
207
|
EOP
|
208
208
|
)) || exit 1
|
209
209
|
<% end -%>
|
210
210
|
|
211
211
|
<% unless trusted_certs.empty? -%>
|
212
|
-
mkdir -p
|
212
|
+
mkdir -p <%= ChefConfig::Config.etc_chef_dir(false) %>/trusted_certs
|
213
213
|
<%= trusted_certs %>
|
214
214
|
<% end -%>
|
215
215
|
|
216
216
|
<%# Generate Ohai Hints -%>
|
217
|
-
<% unless @
|
218
|
-
mkdir -p
|
217
|
+
<% unless @config[:hints].nil? || @config[:hints].empty? -%>
|
218
|
+
mkdir -p <%= ChefConfig::Config.etc_chef_dir(false) %>/ohai/hints
|
219
219
|
|
220
|
-
<% @
|
221
|
-
cat >
|
220
|
+
<% @config[:hints].each do |name, hash| -%>
|
221
|
+
cat > <%= ChefConfig::Config.etc_chef_dir(false) %>/ohai/hints/<%= name %>.json <<'EOP'
|
222
222
|
<%= Chef::JSONCompat.to_json(hash) %>
|
223
223
|
EOP
|
224
224
|
<% end -%>
|
225
225
|
<% end -%>
|
226
226
|
|
227
|
-
cat >
|
227
|
+
cat > <%= ChefConfig::Config.etc_chef_dir(false) %>/client.rb <<'EOP'
|
228
228
|
<%= config_content %>
|
229
229
|
EOP
|
230
230
|
|
231
|
-
cat >
|
231
|
+
cat > <%= ChefConfig::Config.etc_chef_dir(false) %>/first-boot.json <<'EOP'
|
232
232
|
<%= Chef::JSONCompat.to_json(first_boot) %>
|
233
233
|
EOP
|
234
234
|
|
@@ -21,7 +21,7 @@
|
|
21
21
|
@rem the line is read. See help for the /E switch from cmd.exe /? .
|
22
22
|
@setlocal ENABLEDELAYEDEXPANSION
|
23
23
|
|
24
|
-
<%= "SETX HTTP_PROXY \"#{
|
24
|
+
<%= "SETX HTTP_PROXY \"#{@config[:bootstrap_proxy]}\"" if @config[:bootstrap_proxy] %>
|
25
25
|
|
26
26
|
@set BOOTSTRAP_DIRECTORY=<%= bootstrap_directory %>
|
27
27
|
@echo Checking for existing directory "%BOOTSTRAP_DIRECTORY%"...
|
@@ -92,10 +92,10 @@ goto architecture_select
|
|
92
92
|
goto Version10.0
|
93
93
|
|
94
94
|
:architecture_select
|
95
|
-
<% if
|
96
|
-
@set MACHINE_ARCH=<%=
|
95
|
+
<% if @config[:architecture] %>
|
96
|
+
@set MACHINE_ARCH=<%= @config[:architecture] %>
|
97
97
|
|
98
|
-
<% if
|
98
|
+
<% if @config[:architecture] == "x86_64" %>
|
99
99
|
IF "%PROCESSOR_ARCHITECTURE%"=="x86" IF not defined PROCESSOR_ARCHITEW6432 (
|
100
100
|
echo You specified bootstrap_architecture as x86_64 but the target machine is i386. A 64 bit program cannot run on a 32 bit machine. > "&2"
|
101
101
|
echo Exiting without bootstrapping. > "&2"
|
@@ -109,20 +109,20 @@ goto Version10.0
|
|
109
109
|
goto chef_installed
|
110
110
|
|
111
111
|
:chef_installed
|
112
|
-
@echo Checking for existing
|
112
|
+
@echo Checking for existing <%= Chef::Dist::PRODUCT %> installation
|
113
113
|
WHERE <%= Chef::Dist::CLIENT %> >nul 2>nul
|
114
114
|
If !ERRORLEVEL!==0 (
|
115
|
-
@echo Existing Chef installation detected, skipping download
|
115
|
+
@echo Existing <%= Chef::Dist::PRODUCT %> installation detected, skipping download
|
116
116
|
goto key_create
|
117
117
|
) else (
|
118
|
-
@echo No existing installation of
|
118
|
+
@echo No existing installation of <%= Chef::Dist::PRODUCT %> detected
|
119
119
|
goto install
|
120
120
|
)
|
121
121
|
|
122
122
|
:install
|
123
123
|
@rem If user has provided the custom installation command, execute it
|
124
|
-
<% if @
|
125
|
-
<%= @
|
124
|
+
<% if @config[:bootstrap_install_command] %>
|
125
|
+
<%= @config[:bootstrap_install_command] %>
|
126
126
|
<% else %>
|
127
127
|
@rem Install Chef using the MSI installer
|
128
128
|
|
@@ -202,12 +202,10 @@ If !ERRORLEVEL!==0 (
|
|
202
202
|
) else (
|
203
203
|
@echo Installation completed successfully
|
204
204
|
del /f /q "%CHEF_CLIENT_MSI_LOG_PATH%"
|
205
|
-
|
205
|
+
)
|
206
206
|
|
207
207
|
<% end %>
|
208
208
|
|
209
|
-
@rem This line is required to separate the key_create label from the "block boundary"
|
210
|
-
@rem Removing these lines will cause the error "The system cannot find the batch label specified - key_create"
|
211
209
|
:key_create
|
212
210
|
@endlocal
|
213
211
|
|
@@ -246,12 +244,12 @@ echo Validation key written.
|
|
246
244
|
<% end -%>
|
247
245
|
|
248
246
|
<%# Generate Ohai Hints -%>
|
249
|
-
<% unless @
|
247
|
+
<% unless @config[:hints].nil? || @config[:hints].empty? -%>
|
250
248
|
@if NOT EXIST <%= bootstrap_directory %>\ohai\hints (
|
251
249
|
mkdir <%= bootstrap_directory %>\ohai\hints
|
252
250
|
)
|
253
251
|
|
254
|
-
<% @
|
252
|
+
<% @config[:hints].each do |name, hash| -%>
|
255
253
|
> <%= bootstrap_directory %>\ohai\hints\<%= name %>.json (
|
256
254
|
<%= escape_and_echo(hash.to_json) %>
|
257
255
|
)
|
@@ -274,5 +272,5 @@ echo Validation key written.
|
|
274
272
|
<%= client_d %>
|
275
273
|
<% end -%>
|
276
274
|
|
277
|
-
@echo Starting
|
275
|
+
@echo Starting <%= Chef::Dist::CLIENT %> to bootstrap the node...
|
278
276
|
<%= start_chef %>
|
@@ -73,7 +73,7 @@ class Chef
|
|
73
73
|
manifest = cookbook.cookbook_manifest
|
74
74
|
|
75
75
|
basedir = File.join(config[:download_directory], "#{@cookbook_name}-#{cookbook.version}")
|
76
|
-
if File.
|
76
|
+
if File.exists?(basedir)
|
77
77
|
if config[:force]
|
78
78
|
Chef::Log.trace("Deleting #{basedir}")
|
79
79
|
FileUtils.rm_rf(basedir)
|
@@ -62,7 +62,7 @@ class Chef
|
|
62
62
|
def generate_metadata(cookbook)
|
63
63
|
Array(config[:cookbook_path]).reverse_each do |path|
|
64
64
|
file = File.expand_path(File.join(path, cookbook, "metadata.rb"))
|
65
|
-
if File.
|
65
|
+
if File.exists?(file)
|
66
66
|
generate_metadata_from_file(cookbook, file)
|
67
67
|
else
|
68
68
|
validate_metadata_json(path, cookbook)
|
@@ -33,6 +33,8 @@ class Chef
|
|
33
33
|
class BootstrapContext
|
34
34
|
|
35
35
|
attr_accessor :client_pem
|
36
|
+
attr_accessor :config
|
37
|
+
attr_accessor :chef_config
|
36
38
|
|
37
39
|
def initialize(config, run_list, chef_config, secret = nil)
|
38
40
|
@config = config
|
@@ -42,13 +44,13 @@ class Chef
|
|
42
44
|
end
|
43
45
|
|
44
46
|
def bootstrap_environment
|
45
|
-
|
47
|
+
config[:environment]
|
46
48
|
end
|
47
49
|
|
48
50
|
def validation_key
|
49
|
-
if
|
50
|
-
File.exist?(File.expand_path(
|
51
|
-
IO.read(File.expand_path(
|
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]))
|
52
54
|
else
|
53
55
|
false
|
54
56
|
end
|
@@ -69,18 +71,18 @@ class Chef
|
|
69
71
|
end
|
70
72
|
|
71
73
|
def get_log_location
|
72
|
-
if !(
|
74
|
+
if !(chef_config[:config_log_location].class == IO ) && (chef_config[:config_log_location].nil? || chef_config[:config_log_location].to_s.empty?)
|
73
75
|
"STDOUT"
|
74
|
-
elsif
|
76
|
+
elsif chef_config[:config_log_location].equal?(:win_evt)
|
75
77
|
raise "The value :win_evt is not supported for config_log_location on Linux Platforms \n"
|
76
|
-
elsif
|
78
|
+
elsif chef_config[:config_log_location].equal?(:syslog)
|
77
79
|
":syslog"
|
78
|
-
elsif
|
80
|
+
elsif chef_config[:config_log_location].equal?(STDOUT)
|
79
81
|
"STDOUT"
|
80
|
-
elsif
|
82
|
+
elsif chef_config[:config_log_location].equal?(STDERR)
|
81
83
|
"STDERR"
|
82
|
-
elsif
|
83
|
-
%Q{"#{
|
84
|
+
elsif chef_config[:config_log_location]
|
85
|
+
%Q{"#{chef_config[:config_log_location]}"}
|
84
86
|
else
|
85
87
|
"STDOUT"
|
86
88
|
end
|
@@ -88,43 +90,43 @@ class Chef
|
|
88
90
|
|
89
91
|
def config_content
|
90
92
|
client_rb = <<~CONFIG
|
91
|
-
chef_server_url "#{
|
92
|
-
validation_client_name "#{
|
93
|
+
chef_server_url "#{chef_config[:chef_server_url]}"
|
94
|
+
validation_client_name "#{chef_config[:validation_client_name]}"
|
93
95
|
CONFIG
|
94
96
|
|
95
|
-
unless
|
96
|
-
client_rb << "chef_license \"#{
|
97
|
+
unless chef_config[:chef_license].nil?
|
98
|
+
client_rb << "chef_license \"#{chef_config[:chef_license]}\"\n"
|
97
99
|
end
|
98
100
|
|
99
|
-
unless
|
100
|
-
client_rb << %Q{log_level :#{
|
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}
|
101
103
|
end
|
102
104
|
|
103
105
|
client_rb << "log_location #{get_log_location}\n"
|
104
106
|
|
105
|
-
if
|
106
|
-
client_rb << %Q{node_name "#{
|
107
|
+
if config[:chef_node_name]
|
108
|
+
client_rb << %Q{node_name "#{config[:chef_node_name]}"\n}
|
107
109
|
else
|
108
110
|
client_rb << "# Using default node name (fqdn)\n"
|
109
111
|
end
|
110
112
|
|
111
113
|
# We configure :verify_api_cert only when it's overridden on the CLI
|
112
114
|
# or when specified in the knife config.
|
113
|
-
if
|
114
|
-
value =
|
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]
|
115
117
|
client_rb << %Q{verify_api_cert #{value}\n}
|
116
118
|
end
|
117
119
|
|
118
120
|
# We configure :ssl_verify_mode only when it's overridden on the CLI
|
119
121
|
# or when specified in the knife config.
|
120
|
-
if
|
121
|
-
value = case
|
122
|
+
if config[:node_ssl_verify_mode] || config.key?(:ssl_verify_mode)
|
123
|
+
value = case config[:node_ssl_verify_mode]
|
122
124
|
when "peer"
|
123
125
|
:verify_peer
|
124
126
|
when "none"
|
125
127
|
:verify_none
|
126
128
|
when nil
|
127
|
-
|
129
|
+
config[:ssl_verify_mode]
|
128
130
|
else
|
129
131
|
nil
|
130
132
|
end
|
@@ -134,27 +136,27 @@ class Chef
|
|
134
136
|
end
|
135
137
|
end
|
136
138
|
|
137
|
-
if
|
138
|
-
client_rb << %Q{ssl_verify_mode :#{
|
139
|
+
if config[:ssl_verify_mode]
|
140
|
+
client_rb << %Q{ssl_verify_mode :#{config[:ssl_verify_mode]}\n}
|
139
141
|
end
|
140
142
|
|
141
|
-
if
|
142
|
-
client_rb << %Q{http_proxy "#{
|
143
|
-
client_rb << %Q{https_proxy "#{
|
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}
|
144
146
|
end
|
145
147
|
|
146
|
-
if
|
147
|
-
client_rb << %Q{http_proxy_user "#{
|
148
|
-
client_rb << %Q{https_proxy_user "#{
|
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}
|
149
151
|
end
|
150
152
|
|
151
|
-
if
|
152
|
-
client_rb << %Q{http_proxy_pass "#{
|
153
|
-
client_rb << %Q{https_proxy_pass "#{
|
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}
|
154
156
|
end
|
155
157
|
|
156
|
-
if
|
157
|
-
client_rb << %Q{no_proxy "#{
|
158
|
+
if config[:bootstrap_no_proxy]
|
159
|
+
client_rb << %Q{no_proxy "#{config[:bootstrap_no_proxy]}"\n}
|
158
160
|
end
|
159
161
|
|
160
162
|
if encrypted_data_bag_secret
|
@@ -165,41 +167,43 @@ class Chef
|
|
165
167
|
client_rb << %Q{trusted_certs_dir "/etc/chef/trusted_certs"\n}
|
166
168
|
end
|
167
169
|
|
168
|
-
if
|
170
|
+
if chef_config[:fips]
|
169
171
|
client_rb << "fips true\n"
|
170
172
|
end
|
171
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
|
+
|
172
182
|
client_rb
|
173
183
|
end
|
174
184
|
|
175
185
|
def start_chef
|
176
186
|
# If the user doesn't have a client path configure, let bash use the PATH for what it was designed for
|
177
|
-
client_path =
|
187
|
+
client_path = chef_config[:chef_client_path] || "#{Chef::Dist::CLIENT}"
|
178
188
|
s = "#{client_path} -j /etc/chef/first-boot.json"
|
179
|
-
if
|
189
|
+
if config[:verbosity] && config[:verbosity] >= 3
|
180
190
|
s << " -l trace"
|
181
|
-
elsif
|
191
|
+
elsif config[:verbosity] && config[:verbosity] >= 2
|
182
192
|
s << " -l debug"
|
183
193
|
end
|
184
194
|
s << " -E #{bootstrap_environment}" unless bootstrap_environment.nil?
|
185
|
-
s << " --no-color" unless
|
195
|
+
s << " --no-color" unless config[:color]
|
186
196
|
s
|
187
197
|
end
|
188
198
|
|
189
|
-
# XXX: this reads values only out of the config file and is NOT merged with the CLI options, and it is most likely
|
190
|
-
# a bug to be using this accessor and we should be using config and not knife_config.
|
191
|
-
def knife_config
|
192
|
-
@chef_config.key?(:knife) ? @chef_config[:knife] : {}
|
193
|
-
end
|
194
|
-
|
195
199
|
#
|
196
200
|
# Returns the version of Chef to install (as recognized by the Omnitruck API)
|
197
201
|
#
|
198
202
|
# @return [String] download version string
|
199
203
|
def version_to_install
|
200
|
-
return
|
204
|
+
return config[:bootstrap_version] if config[:bootstrap_version]
|
201
205
|
|
202
|
-
if
|
206
|
+
if config[:channel] == "stable"
|
203
207
|
Chef::VERSION.split(".").first
|
204
208
|
else
|
205
209
|
"latest"
|
@@ -207,16 +211,15 @@ class Chef
|
|
207
211
|
end
|
208
212
|
|
209
213
|
def first_boot
|
210
|
-
(
|
211
|
-
if
|
212
|
-
attributes[:policy_name] =
|
213
|
-
attributes[:policy_group] =
|
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]
|
214
218
|
else
|
215
219
|
attributes[:run_list] = @run_list
|
216
220
|
end
|
217
|
-
|
218
221
|
attributes.delete(:run_list) if attributes[:policy_name] && !attributes[:policy_name].empty?
|
219
|
-
attributes.merge!(tags:
|
222
|
+
attributes.merge!(tags: config[:tags]) if config[:tags] && !config[:tags].empty?
|
220
223
|
end
|
221
224
|
end
|
222
225
|
|
@@ -226,8 +229,8 @@ class Chef
|
|
226
229
|
# This string should contain both the commands necessary to both create the files, as well as their content
|
227
230
|
def trusted_certs_content
|
228
231
|
content = ""
|
229
|
-
if
|
230
|
-
Dir.glob(File.join(Chef::Util::PathHelper.escape_glob_dir(
|
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|
|
231
234
|
content << "cat > /etc/chef/trusted_certs/#{File.basename(cert)} <<'EOP'\n" +
|
232
235
|
IO.read(File.expand_path(cert)) + "\nEOP\n"
|
233
236
|
end
|
@@ -237,8 +240,8 @@ class Chef
|
|
237
240
|
|
238
241
|
def client_d_content
|
239
242
|
content = ""
|
240
|
-
if
|
241
|
-
root = Pathname(
|
243
|
+
if chef_config[:client_d_dir] && File.exist?(chef_config[:client_d_dir])
|
244
|
+
root = Pathname(chef_config[:client_d_dir])
|
242
245
|
root.find do |f|
|
243
246
|
relative = f.relative_path_from(root)
|
244
247
|
if f != root
|