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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ad66f754d1e6094ff88edbf998626e7e746718e5781e86dd4b78ff1d21e75f7
|
4
|
+
data.tar.gz: bdb41d8a4bb0377bb2dfb893dd03a633df245007aa1802a28e1c1f96b6e6894e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 222caf878f4fac2f06bbecc75a3b15e1612b4c6653bf3f4344cf768445c48c9499b47ecfadb7be32ec2fdf1a4111cde31ff8c315b878b34e3fbf77d34f6dc211
|
7
|
+
data.tar.gz: 91655f57a638806ef03f768ac2ff639cc746d8ae67a160c970bcf08e62a68ec8f448fe762bb726044eb7f6692e7f9d3c797db19a979d6bfe1f9e536900c3accf
|
data/Gemfile
CHANGED
@@ -7,36 +7,36 @@ source "https://rubygems.org"
|
|
7
7
|
# of bundler versions prior to 1.12.0 (https://github.com/bundler/bundler/commit/193a14fe5e0d56294c7b370a0e59f93b2c216eed)
|
8
8
|
gem "chef", path: "."
|
9
9
|
|
10
|
-
gem "ohai", git: "https://github.com/chef/ohai.git", branch: "
|
10
|
+
gem "ohai", git: "https://github.com/chef/ohai.git", branch: "master"
|
11
11
|
|
12
|
-
gem "chef-utils", path: File.expand_path("chef-utils",
|
13
|
-
gem "chef-config", path: File.expand_path("chef-config",
|
12
|
+
gem "chef-utils", path: File.expand_path("../chef-utils", __FILE__) if File.exist?(File.expand_path("../chef-utils", __FILE__))
|
13
|
+
gem "chef-config", path: File.expand_path("../chef-config", __FILE__) if File.exist?(File.expand_path("../chef-config", __FILE__))
|
14
14
|
|
15
|
-
if File.exist?(File.expand_path("chef-bin",
|
15
|
+
if File.exist?(File.expand_path("../chef-bin", __FILE__))
|
16
16
|
# bundling in a git checkout
|
17
|
-
gem "chef-bin", path: File.expand_path("chef-bin",
|
17
|
+
gem "chef-bin", path: File.expand_path("../chef-bin", __FILE__)
|
18
18
|
else
|
19
19
|
# bundling in omnibus
|
20
20
|
gem "chef-bin" # rubocop:disable Bundler/DuplicatedGem
|
21
21
|
end
|
22
22
|
|
23
|
-
gem "cheffish", "
|
24
|
-
|
25
|
-
gem "chef-telemetry", ">=1.0.8" # 1.0.8 removes the http dep
|
23
|
+
gem "cheffish", ">= 14"
|
26
24
|
|
27
25
|
group(:omnibus_package) do
|
28
26
|
gem "appbundler"
|
29
27
|
gem "rb-readline"
|
30
28
|
gem "inspec-core", "~> 4.18"
|
31
|
-
gem "inspec-core-bin", "~> 4.
|
29
|
+
gem "inspec-core-bin", "~> 4.18" # need to provide the binaries for inspec
|
32
30
|
gem "chef-vault"
|
31
|
+
gem "ed25519" # ed25519 ssh key support done here as it's a native gem we can't put in train
|
32
|
+
gem "bcrypt_pbkdf", ">= 1.1.0.rc1" # ed25519 ssh key support done here as it's a native gem we can't put in train
|
33
33
|
end
|
34
34
|
|
35
35
|
group(:omnibus_package, :pry) do
|
36
36
|
gem "pry"
|
37
37
|
gem "pry-byebug"
|
38
38
|
gem "pry-remote"
|
39
|
-
gem "pry-stack_explorer"
|
39
|
+
gem "pry-stack_explorer"
|
40
40
|
end
|
41
41
|
|
42
42
|
group(:docgen) do
|
@@ -55,21 +55,18 @@ group(:ruby_shadow) do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
group(:development, :test) do
|
58
|
-
|
59
|
-
# if you bump the ruby version you should confirm we don't end up with
|
60
|
-
# two rake gems installed again
|
61
|
-
gem "rake", "<= 12.3.3"
|
62
|
-
|
58
|
+
gem "rake"
|
63
59
|
gem "rspec-core", "~> 3.5"
|
64
60
|
gem "rspec-mocks", "~> 3.5"
|
65
61
|
gem "rspec-expectations", "~> 3.5"
|
66
|
-
gem "rspec_junit_formatter", "~> 0.
|
62
|
+
gem "rspec_junit_formatter", "~> 0.2.0"
|
67
63
|
gem "webmock"
|
68
64
|
gem "fauxhai-ng" # for chef-utils gem
|
69
65
|
end
|
70
66
|
|
71
67
|
group(:chefstyle) do
|
72
|
-
|
68
|
+
# for testing new chefstyle rules
|
69
|
+
gem "chefstyle", git: "https://github.com/chef/chefstyle.git", branch: "master"
|
73
70
|
end
|
74
71
|
|
75
72
|
instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
|
@@ -82,9 +79,6 @@ eval_gemfile("./Gemfile.local") if File.exist?("./Gemfile.local")
|
|
82
79
|
# For FFI to call into PowerShell we need the binaries and assemblies located
|
83
80
|
# in the Ruby bindir.
|
84
81
|
# The Powershell DLL source lives here: https://github.com/chef/chef-powershell-shim
|
85
|
-
# Every merge into that repo triggers a Habitat build and promotion. Running
|
86
|
-
# the rake :update_chef_exec_dll task in this (chef/chef) repo will pull down
|
87
|
-
# the built packages and copy the binaries to distro/ruby_bin_folder.
|
88
82
|
#
|
89
83
|
# We copy (and overwrite) these files every time "bundle <exec|install>" is
|
90
84
|
# executed, just in case they have changed.
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Chef Infra
|
2
2
|
[](https://codeclimate.com/github/chef/chef)
|
3
|
-
[](https://buildkite.com/chef-oss/chef-chef-master-verify)
|
4
4
|
[](https://badge.fury.io/rb/chef)
|
5
|
-
[](https://github.com/chef/chef/blob/
|
5
|
+
[](https://github.com/chef/chef/blob/v15.2.21/docs/dev/design_documents/client_release_cadence.md)
|
6
6
|
|
7
7
|
**Umbrella Project**: [Chef Infra](https://github.com/chef/chef-oss-practices/blob/master/projects/chef-infra.md)
|
8
8
|
|
@@ -18,7 +18,7 @@ Chef Infra is a configuration management tool designed to bring automation to yo
|
|
18
18
|
|
19
19
|
### Want to try Chef Infra?
|
20
20
|
|
21
|
-
For Chef Infra usage, please refer to [Learn Chef](https://learn.chef.io/)
|
21
|
+
For Chef Infra usage, please refer to our [Learn Chef Rally](https://learn.chef.io/) website, which includes module-based training for Chef Infra, as well as Automate, Habitat, and InSpec.
|
22
22
|
|
23
23
|
Other useful resources for Chef Infra users:
|
24
24
|
|
@@ -26,13 +26,13 @@ Other useful resources for Chef Infra users:
|
|
26
26
|
- Source: <https://github.com/chef/chef/tree/master>
|
27
27
|
- Tickets/Issues: <https://github.com/chef/chef/issues>
|
28
28
|
- Slack: [Chef Community Slack](https://community-slack.chef.io/)
|
29
|
-
- Mailing list
|
29
|
+
- Mailing list: <https://discourse.chef.io>
|
30
30
|
|
31
31
|
## Reporting Issues
|
32
32
|
|
33
33
|
Issues can be reported by using [GitHub Issues](https://github.com/chef/chef/issues).
|
34
34
|
|
35
|
-
Note that this repository is primarily for reporting issues in the chef-client itself.
|
35
|
+
Note that this repository is primarily for reporting issues in the chef-client itself. For reporting issues against other Chef projects, please look up the appropriate repository. If you're unsure where to submit an issue, please ask in the #chef-dev channel in [Chef Community Slack](https://community-slack.chef.io/).
|
36
36
|
|
37
37
|
## How We Build & Release Chef
|
38
38
|
|
@@ -46,7 +46,7 @@ We'd love to have your help developing Chef Infra. See our [Contributing Documen
|
|
46
46
|
|
47
47
|
## License and Copyright
|
48
48
|
|
49
|
-
Copyright 2008-
|
49
|
+
Copyright 2008-2019, Chef Software, Inc.
|
50
50
|
|
51
51
|
```
|
52
52
|
Licensed under the Apache License, Version 2.0 (the "License");
|
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
3
3
|
# Author:: Daniel DeLeo (<dan@chef.io>)
|
4
|
-
# Copyright:: Copyright, Chef Software Inc.
|
4
|
+
# Copyright:: Copyright 2008-2019, Chef Software Inc.
|
5
5
|
# License:: Apache License, Version 2.0
|
6
6
|
#
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -17,20 +17,16 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
# we need this to resolve files required by lib/chef/dist
|
21
|
-
$LOAD_PATH.unshift(File.expand_path("chef-config/lib", __dir__))
|
22
|
-
|
23
20
|
begin
|
24
21
|
require_relative "tasks/rspec"
|
25
22
|
require_relative "tasks/dependencies"
|
23
|
+
require_relative "tasks/announce"
|
26
24
|
require_relative "tasks/docs"
|
27
|
-
require_relative "lib/chef/dist"
|
25
|
+
require_relative "lib/chef/dist"
|
28
26
|
rescue LoadError => e
|
29
27
|
puts "Skipping missing rake dep: #{e}"
|
30
28
|
end
|
31
29
|
|
32
|
-
require "bundler/gem_helper"
|
33
|
-
|
34
30
|
ENV["CHEF_LICENSE"] = "accept-no-persist"
|
35
31
|
|
36
32
|
# hack the chef-config install to run before the traditional install task
|
@@ -41,8 +37,7 @@ task :super_install do
|
|
41
37
|
sh("rake install")
|
42
38
|
end
|
43
39
|
|
44
|
-
|
45
|
-
require "erb"
|
40
|
+
# Templating the powershell extensions so we can inject distro constants
|
46
41
|
template_file = ::File.join(::File.dirname(__FILE__), "distro", "templates", "powershell", "chef", "chef.psm1.erb")
|
47
42
|
psm1_path = ::File.join(::File.dirname(__FILE__), "distro", "powershell", "chef")
|
48
43
|
FileUtils.mkdir_p psm1_path
|
@@ -60,20 +55,8 @@ Bundler::GemHelper.install_tasks name: gemspec
|
|
60
55
|
# this gets appended to the normal bundler install helper
|
61
56
|
task :install do
|
62
57
|
chef_bin_path = ::File.join(::File.dirname(__FILE__), "chef-bin")
|
63
|
-
Dir.chdir(chef_bin_path)
|
64
|
-
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
namespace :install do
|
69
|
-
task local: "super_install"
|
70
|
-
|
71
|
-
task :local do
|
72
|
-
chef_bin_path = ::File.join(::File.dirname(__FILE__), "chef-bin")
|
73
|
-
Dir.chdir(chef_bin_path) do
|
74
|
-
sh("rake install:local")
|
75
|
-
end
|
76
|
-
end
|
58
|
+
Dir.chdir(chef_bin_path)
|
59
|
+
sh("rake install:force")
|
77
60
|
end
|
78
61
|
|
79
62
|
task :pedant, :chef_zero_spec
|
@@ -99,3 +82,15 @@ begin
|
|
99
82
|
rescue LoadError
|
100
83
|
puts "chefstyle/rubocop is not available. bundle install first to make sure all dependencies are installed."
|
101
84
|
end
|
85
|
+
|
86
|
+
begin
|
87
|
+
require "yard"
|
88
|
+
DOC_FILES = [ "spec/tiny_server.rb", "lib/**/*.rb" ].freeze
|
89
|
+
|
90
|
+
YARD::Rake::YardocTask.new(:docs) do |t|
|
91
|
+
t.files = DOC_FILES
|
92
|
+
t.options = ["--format", "html"]
|
93
|
+
end
|
94
|
+
rescue LoadError
|
95
|
+
puts "yard is not available. bundle install first to make sure all dependencies are installed."
|
96
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
gemspec = eval(IO.read(File.expand_path("chef.gemspec",
|
1
|
+
gemspec = eval(IO.read(File.expand_path("../chef.gemspec", __FILE__)))
|
2
2
|
|
3
3
|
gemspec.platform = Gem::Platform.new(%w{universal mingw32})
|
4
4
|
|
@@ -10,12 +10,12 @@ gemspec.add_dependency "win32-event", "~> 0.6.1"
|
|
10
10
|
gemspec.add_dependency "win32-eventlog", "0.6.3"
|
11
11
|
gemspec.add_dependency "win32-mmap", "~> 0.4.1"
|
12
12
|
gemspec.add_dependency "win32-mutex", "~> 0.4.2"
|
13
|
-
gemspec.add_dependency "win32-process", "~> 0.
|
13
|
+
gemspec.add_dependency "win32-process", "~> 0.8.2"
|
14
14
|
gemspec.add_dependency "win32-service", ">= 2.1.5", "< 3.0"
|
15
15
|
gemspec.add_dependency "wmi-lite", "~> 1.0"
|
16
16
|
gemspec.add_dependency "win32-taskscheduler", "~> 2.0"
|
17
|
-
gemspec.add_dependency "iso8601", "
|
18
|
-
gemspec.add_dependency "win32-certstore", "~> 0.
|
17
|
+
gemspec.add_dependency "iso8601", "~> 0.12.1"
|
18
|
+
gemspec.add_dependency "win32-certstore", "~> 0.3"
|
19
19
|
gemspec.extensions << "ext/win32-eventlog/Rakefile"
|
20
20
|
gemspec.files += Dir.glob("{distro,ext}/**/*")
|
21
21
|
|
data/chef.gemspec
CHANGED
@@ -1,13 +1,4 @@
|
|
1
1
|
$:.unshift(File.dirname(__FILE__) + "/lib")
|
2
|
-
vs_path = File.expand_path("chef-utils/lib/chef-utils/version_string.rb", __dir__)
|
3
|
-
|
4
|
-
if File.exist?(vs_path)
|
5
|
-
# this is the moral equivalent of a require_relative since bundler makes require_relative here fail hard
|
6
|
-
eval(IO.read(vs_path))
|
7
|
-
else
|
8
|
-
# if the path doesn't exist then we're just in the wild gem and not in the git repo
|
9
|
-
require "chef-utils/version_string"
|
10
|
-
end
|
11
2
|
require "chef/version"
|
12
3
|
|
13
4
|
Gem::Specification.new do |s|
|
@@ -22,40 +13,42 @@ Gem::Specification.new do |s|
|
|
22
13
|
s.email = "adam@chef.io"
|
23
14
|
s.homepage = "https://www.chef.io"
|
24
15
|
|
25
|
-
s.required_ruby_version = ">= 2.
|
16
|
+
s.required_ruby_version = ">= 2.6.0"
|
26
17
|
|
27
18
|
s.add_dependency "chef-config", "= #{Chef::VERSION}"
|
28
19
|
s.add_dependency "chef-utils", "= #{Chef::VERSION}"
|
29
20
|
s.add_dependency "train-core", "~> 3.2", ">= 3.2.28" # 3.2.28 fixes sudo prompts. See https://github.com/chef/chef/pull/9635
|
30
21
|
s.add_dependency "train-winrm", ">= 0.2.5"
|
31
22
|
|
32
|
-
s.add_dependency "license-acceptance", "
|
23
|
+
s.add_dependency "license-acceptance", "~> 1.0", ">= 1.0.5"
|
33
24
|
s.add_dependency "mixlib-cli", ">= 2.1.1", "< 3.0"
|
34
25
|
s.add_dependency "mixlib-log", ">= 2.0.3", "< 4.0"
|
35
26
|
s.add_dependency "mixlib-authentication", ">= 2.1", "< 4"
|
36
27
|
s.add_dependency "mixlib-shellout", ">= 3.0.3", "< 4.0"
|
37
28
|
s.add_dependency "mixlib-archive", ">= 0.4", "< 2.0"
|
38
|
-
s.add_dependency "ohai", "~>
|
29
|
+
s.add_dependency "ohai", "~> 16.0"
|
39
30
|
|
40
31
|
s.add_dependency "ffi", "~> 1.9", ">= 1.9.25"
|
41
32
|
s.add_dependency "ffi-yajl", "~> 2.2"
|
42
|
-
s.add_dependency "net-ssh", ">= 4.2", "<
|
33
|
+
s.add_dependency "net-ssh", ">= 4.2", "< 6"
|
43
34
|
s.add_dependency "net-ssh-multi", "~> 1.2", ">= 1.2.1"
|
44
|
-
s.add_dependency "net-sftp", "
|
35
|
+
s.add_dependency "net-sftp", "~> 2.1", ">= 2.1.2"
|
45
36
|
s.add_dependency "ed25519", "~> 1.2" # ed25519 ssh key support
|
46
37
|
s.add_dependency "bcrypt_pbkdf", "~> 1.0" # ed25519 ssh key support
|
47
38
|
s.add_dependency "highline", ">= 1.6.9", "< 3"
|
48
39
|
s.add_dependency "tty-screen", "~> 0.6" # knife list
|
40
|
+
s.add_dependency "pastel" # knife ui.color
|
49
41
|
s.add_dependency "erubis", "~> 2.7"
|
50
|
-
s.add_dependency "diff-lcs", "
|
51
|
-
s.add_dependency "ffi-libarchive"
|
42
|
+
s.add_dependency "diff-lcs", "~> 1.2", ">= 1.2.4"
|
43
|
+
s.add_dependency "ffi-libarchive"
|
52
44
|
s.add_dependency "chef-zero", ">= 14.0.11"
|
45
|
+
s.add_dependency "chef-vault"
|
53
46
|
|
54
47
|
s.add_dependency "plist", "~> 3.2"
|
55
48
|
s.add_dependency "iniparse", "~> 1.4"
|
56
49
|
s.add_dependency "addressable"
|
57
50
|
s.add_dependency "syslog-logger", "~> 1.6"
|
58
|
-
s.add_dependency "uuidtools", "
|
51
|
+
s.add_dependency "uuidtools", "~> 2.1.5"
|
59
52
|
|
60
53
|
s.add_dependency "proxifier", "~> 1.0"
|
61
54
|
|
@@ -71,13 +64,4 @@ Gem::Specification.new do |s|
|
|
71
64
|
Dir.glob("{lib,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) } +
|
72
65
|
Dir.glob("*.gemspec") +
|
73
66
|
Dir.glob("tasks/rspec.rb")
|
74
|
-
|
75
|
-
s.metadata = {
|
76
|
-
"bug_tracker_uri" => "https://github.com/chef/chef/issues",
|
77
|
-
"changelog_uri" => "https://github.com/chef/chef/blob/master/CHANGELOG.md",
|
78
|
-
"documentation_uri" => "https://docs.chef.io/",
|
79
|
-
"homepage_uri" => "https://www.chef.io",
|
80
|
-
"mailing_list_uri" => "https://discourse.chef.io/",
|
81
|
-
"source_code_uri" => "https://github.com/chef/chef/",
|
82
|
-
}
|
83
67
|
end
|
@@ -358,7 +358,7 @@ function Run-RubyCommand($command, $argList) {
|
|
358
358
|
# When arguments come into this method, the standard PS rules for interpreting cmdlet arguments
|
359
359
|
# apply. When using & (call operator) and providing an array of arguments, powershell (verified
|
360
360
|
# on PS 4.0 on Windows Server 2012R2) will not evaluate them but (contrary to documentation),
|
361
|
-
# it will still marginally interpret them. The
|
361
|
+
# it will still marginally interpret them. The behaviour of PS 5.0 seems to be different but
|
362
362
|
# ignore that for now. If any of the provided arguments has a space in it, powershell checks
|
363
363
|
# the first and last character to ensure that they are " characters (and that's all it checks).
|
364
364
|
# If they are not, it will blindly surround that argument with " characters. It won't do this
|
@@ -381,10 +381,10 @@ function Run-RubyCommand($command, $argList) {
|
|
381
381
|
# Command line:
|
382
382
|
# "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" "foo '' bar "baz"" "foo '' bar "baz""
|
383
383
|
#
|
384
|
-
# $x = "abc'123'nospace`"
|
384
|
+
# $x = "abc'123'nospace`"lulz`"!!!"
|
385
385
|
# & EchoArgs @($x, $x)
|
386
386
|
# Command line:
|
387
|
-
# "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" abc'123'nospace"
|
387
|
+
# "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" abc'123'nospace"lulz"!!! abc'123'nospace"lulz"!!!
|
388
388
|
#
|
389
389
|
# $x = "`"`"Look ma! Tonnes of spaces! 'foo' 'bar'`"`""
|
390
390
|
# & EchoArgs @($x, $x)
|
@@ -358,7 +358,7 @@ function Run-RubyCommand($command, $argList) {
|
|
358
358
|
# When arguments come into this method, the standard PS rules for interpreting cmdlet arguments
|
359
359
|
# apply. When using & (call operator) and providing an array of arguments, powershell (verified
|
360
360
|
# on PS 4.0 on Windows Server 2012R2) will not evaluate them but (contrary to documentation),
|
361
|
-
# it will still marginally interpret them. The
|
361
|
+
# it will still marginally interpret them. The behaviour of PS 5.0 seems to be different but
|
362
362
|
# ignore that for now. If any of the provided arguments has a space in it, powershell checks
|
363
363
|
# the first and last character to ensure that they are " characters (and that's all it checks).
|
364
364
|
# If they are not, it will blindly surround that argument with " characters. It won't do this
|
@@ -381,10 +381,10 @@ function Run-RubyCommand($command, $argList) {
|
|
381
381
|
# Command line:
|
382
382
|
# "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" "foo '' bar "baz"" "foo '' bar "baz""
|
383
383
|
#
|
384
|
-
# $x = "abc'123'nospace`"
|
384
|
+
# $x = "abc'123'nospace`"lulz`"!!!"
|
385
385
|
# & EchoArgs @($x, $x)
|
386
386
|
# Command line:
|
387
|
-
# "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" abc'123'nospace"
|
387
|
+
# "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" abc'123'nospace"lulz"!!! abc'123'nospace"lulz"!!!
|
388
388
|
#
|
389
389
|
# $x = "`"`"Look ma! Tonnes of spaces! 'foo' 'bar'`"`""
|
390
390
|
# & EchoArgs @($x, $x)
|
@@ -24,10 +24,6 @@ class Chef
|
|
24
24
|
|
25
25
|
class ActionRecord
|
26
26
|
|
27
|
-
# XXX: this is buggy since we (ab)use this resource for "after" state and it may be
|
28
|
-
# inaccurate and it may be mutated by the user. A third after_resource should be added
|
29
|
-
# to new_resource + current_resource to properly implement this.
|
30
|
-
#
|
31
27
|
# @return [Chef::Resource] The declared resource state.
|
32
28
|
#
|
33
29
|
attr_accessor :new_resource
|
@@ -38,6 +34,10 @@ class Chef
|
|
38
34
|
# implementation, but must be handled), or for unprocessed resources.
|
39
35
|
attr_accessor :current_resource
|
40
36
|
|
37
|
+
# @return [Chef::Resource] the after_resource object (after-state). This can be nil for
|
38
|
+
# non custom-resources or resources that do not implement load_after_resource.
|
39
|
+
attr_accessor :after_resource
|
40
|
+
|
41
41
|
# @return [Symbol] # The action that was run (or scheduled to run in the case of "unprocessed" resources).
|
42
42
|
attr_accessor :action
|
43
43
|
|
@@ -161,7 +161,7 @@ class Chef
|
|
161
161
|
pending_updates << ActionRecord.new(new_resource, action, pending_updates.length)
|
162
162
|
end
|
163
163
|
|
164
|
-
# Hook called after a resource is loaded. If load_current_resource fails, this hook will
|
164
|
+
# Hook called after a current resource is loaded. If load_current_resource fails, this hook will
|
165
165
|
# not be called and current_resource will be nil, and the resource_failed hook will be called.
|
166
166
|
#
|
167
167
|
# (see EventDispatch::Base#)
|
@@ -172,6 +172,17 @@ class Chef
|
|
172
172
|
current_record.current_resource = current_resource
|
173
173
|
end
|
174
174
|
|
175
|
+
# Hook called after an after resource is loaded. If load_after_resource fails, this hook will
|
176
|
+
# not be called and after_resource will be nil, and the resource_failed hook will be called.
|
177
|
+
#
|
178
|
+
# (see EventDispatch::Base#)
|
179
|
+
#
|
180
|
+
def resource_after_state_loaded(new_resource, action, after_resource)
|
181
|
+
return if consumers.empty?
|
182
|
+
|
183
|
+
current_record.after_resource = after_resource
|
184
|
+
end
|
185
|
+
|
175
186
|
# Hook called after an action is determined to be up to date.
|
176
187
|
#
|
177
188
|
# (see EventDispatch::Base#)
|
@@ -72,14 +72,14 @@ class Chef
|
|
72
72
|
|
73
73
|
def assert_destination_writable!
|
74
74
|
abs_path = File.expand_path(destination)
|
75
|
-
unless File.
|
75
|
+
unless File.exists?(File.dirname(abs_path))
|
76
76
|
begin
|
77
77
|
FileUtils.mkdir_p(File.dirname(abs_path))
|
78
78
|
rescue Errno::EACCES
|
79
79
|
raise Chef::Exceptions::CannotWritePrivateKey, "I can't create the configuration directory at #{File.dirname(abs_path)} - check permissions?"
|
80
80
|
end
|
81
81
|
end
|
82
|
-
if (File.
|
82
|
+
if (File.exists?(abs_path) && !File.writable?(abs_path)) || !File.writable?(File.dirname(abs_path))
|
83
83
|
raise Chef::Exceptions::CannotWritePrivateKey, "I can't write your private key to #{abs_path} - check permissions?"
|
84
84
|
end
|
85
85
|
end
|
data/lib/chef/application.rb
CHANGED
@@ -168,28 +168,11 @@ class Chef
|
|
168
168
|
end
|
169
169
|
end
|
170
170
|
|
171
|
-
# Initialize and configure the logger.
|
172
|
-
# === Loggers and Formatters
|
173
|
-
# In Chef 10.x and previous, the Logger was the primary/only way that Chef
|
174
|
-
# communicated information to the user. In Chef 10.14, a new system, "output
|
175
|
-
# formatters" was added, and in Chef 11.0+ it is the default when running
|
176
|
-
# chef in a console (detected by `STDOUT.tty?`). Because output formatters
|
177
|
-
# are more complex than the logger system and users have less experience with
|
178
|
-
# them, the config option `force_logger` is provided to restore the Chef 10.x
|
179
|
-
# behavior.
|
180
|
-
#
|
181
|
-
# Conversely, for users who want formatter output even when chef is running
|
182
|
-
# unattended, the `force_formatter` option is provided.
|
183
|
-
#
|
184
|
-
# === Auto Log Level
|
185
|
-
# The `log_level` of `:auto` means `:warn` in the formatter and `:info` in
|
186
|
-
# the logger.
|
187
|
-
#
|
188
171
|
def configure_logging
|
189
172
|
configure_log_location
|
190
|
-
logger.init(MonoLogger.new(chef_config[:log_location]))
|
191
|
-
|
192
|
-
|
173
|
+
logger.init(MonoLogger.new(chef_config[:log_location][0]))
|
174
|
+
chef_config[:log_location][1..-1].each do |log_location|
|
175
|
+
logger.loggers << MonoLogger.new(log_location)
|
193
176
|
end
|
194
177
|
logger.level = resolve_log_level
|
195
178
|
rescue StandardError => error
|
@@ -197,30 +180,28 @@ class Chef
|
|
197
180
|
Chef::Application.fatal!("Aborting due to invalid 'log_location' configuration", error)
|
198
181
|
end
|
199
182
|
|
200
|
-
#
|
201
|
-
#
|
183
|
+
# merge Chef::Config[:log_location] and config[:log_location_cli]
|
184
|
+
# - the nil default value of log_location_cli means STDOUT
|
185
|
+
# - the nil default value of log_location is removed
|
186
|
+
# - Arrays are supported
|
187
|
+
# - syslog + winevt are converted to those specific logger objects
|
188
|
+
#
|
202
189
|
def configure_log_location
|
203
|
-
|
204
|
-
return unless log_location.respond_to?(:to_sym)
|
205
|
-
|
206
|
-
chef_config[:log_location] =
|
207
|
-
case log_location.to_sym
|
208
|
-
when :syslog then logger::Syslog.new
|
209
|
-
when :win_evt then logger::WinEvt.new
|
210
|
-
else log_location # Probably a path; let MonoLogger sort it out
|
211
|
-
end
|
212
|
-
end
|
190
|
+
log_location_cli = [ config[:log_location_cli] ].flatten.map { |log_location| log_location.nil? ? STDOUT : log_location }
|
213
191
|
|
214
|
-
|
215
|
-
# secondary logger for stdout?
|
216
|
-
def want_additional_logger?
|
217
|
-
( Chef::Config[:log_location].class != IO ) && STDOUT.tty? && !Chef::Config[:daemonize]
|
218
|
-
end
|
192
|
+
chef_config[:log_location] = [ chef_config[:log_location], log_location_cli ].flatten.compact.uniq
|
219
193
|
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
194
|
+
chef_config[:log_location].map! do |log_location|
|
195
|
+
case log_location
|
196
|
+
when :syslog, "syslog"
|
197
|
+
logger::Syslog.new
|
198
|
+
when :win_evt, "win_evt"
|
199
|
+
logger::WinEvt.new
|
200
|
+
else
|
201
|
+
# should be a path or STDOUT
|
202
|
+
log_location
|
203
|
+
end
|
204
|
+
end
|
224
205
|
end
|
225
206
|
|
226
207
|
# Use of output formatters is assumed if `force_formatter` is set or if `force_logger` is not set
|
@@ -228,19 +209,10 @@ class Chef
|
|
228
209
|
chef_config[:force_formatter] || !chef_config[:force_logger]
|
229
210
|
end
|
230
211
|
|
231
|
-
|
232
|
-
chef_config[:log_level] == :auto
|
233
|
-
end
|
234
|
-
|
235
|
-
# if log_level is `:auto`, convert it to :warn (when using output formatter)
|
236
|
-
# or :info (no output formatter). See also +using_output_formatter?+
|
212
|
+
# The :auto formatter defaults to :warn with the formatter and :info with the logger
|
237
213
|
def resolve_log_level
|
238
|
-
if
|
239
|
-
|
240
|
-
:warn
|
241
|
-
else
|
242
|
-
:info
|
243
|
-
end
|
214
|
+
if chef_config[:log_level] == :auto
|
215
|
+
using_output_formatter? ? :warn : :info
|
244
216
|
else
|
245
217
|
chef_config[:log_level]
|
246
218
|
end
|
@@ -392,7 +364,11 @@ class Chef
|
|
392
364
|
Chef::FileCache.store("#{Chef::Dist::SHORT}-stacktrace.out", chef_stacktrace_out)
|
393
365
|
logger.fatal("Stacktrace dumped to #{Chef::FileCache.load("#{Chef::Dist::SHORT}-stacktrace.out", false)}")
|
394
366
|
logger.fatal("Please provide the contents of the stacktrace.out file if you file a bug report")
|
395
|
-
|
367
|
+
if Chef::Config[:always_dump_stacktrace]
|
368
|
+
logger.fatal(message)
|
369
|
+
else
|
370
|
+
logger.debug(message)
|
371
|
+
end
|
396
372
|
true
|
397
373
|
end
|
398
374
|
|
@@ -402,6 +378,9 @@ class Chef
|
|
402
378
|
|
403
379
|
# Log a fatal error message to both STDERR and the Logger, exit the application
|
404
380
|
def fatal!(msg, err = nil)
|
381
|
+
if Chef::Config[:always_dump_stacktrace]
|
382
|
+
msg << "\n#{err.backtrace.join("\n")}"
|
383
|
+
end
|
405
384
|
logger.fatal(msg)
|
406
385
|
Process.exit(normalize_exit_code(err))
|
407
386
|
end
|