chef 15.11.3-universal-mingw32 → 16.1.16-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 +3 -7
- data/README.md +1 -1
- data/Rakefile +44 -16
- data/chef.gemspec +6 -4
- 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/application.rb +33 -54
- data/lib/chef/application/apply.rb +18 -1
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.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/repository/chef_repository_file_system_root_dir.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.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_loader.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +38 -3
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +4 -0
- data/lib/chef/digester.rb +4 -4
- 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 +3 -2
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +2 -4
- 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 +84 -90
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +2 -2
- data/lib/chef/knife/bootstrap/client_builder.rb +2 -2
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +11 -11
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +12 -12
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- 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 +44 -42
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- 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/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -31
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +2 -3
- 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_rescind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +16 -2
- data/lib/chef/mixin/shell_out.rb +1 -5
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- 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 +5 -31
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +24 -6
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +3 -3
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +3 -9
- data/lib/chef/provider/file.rb +6 -6
- 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 +45 -64
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +5 -6
- 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 +85 -26
- 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/dpkg.rb +1 -1
- data/lib/chef/provider/package/freebsd/base.rb +2 -1
- data/lib/chef/provider/package/homebrew.rb +107 -43
- data/lib/chef/provider/package/macports.rb +0 -2
- data/lib/chef/provider/package/msu.rb +4 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/portage.rb +1 -0
- data/lib/chef/provider/package/powershell.rb +1 -1
- data/lib/chef/provider/package/rubygems.rb +30 -3
- data/lib/chef/provider/package/windows.rb +29 -53
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +1 -9
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +5 -11
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +5 -5
- 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 +1 -1
- data/lib/chef/provider/service/debian.rb +30 -28
- data/lib/chef/provider/service/macosx.rb +16 -10
- 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/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/mac.rb +20 -15
- 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 +10 -10
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +44 -57
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +210 -0
- data/lib/chef/resource/apt_package.rb +33 -3
- data/lib/chef/resource/apt_preference.rb +103 -7
- data/lib/chef/resource/apt_repository.rb +357 -18
- data/lib/chef/resource/apt_update.rb +58 -5
- data/lib/chef/resource/archive_file.rb +6 -5
- data/lib/chef/resource/bash.rb +3 -1
- data/lib/chef/resource/batch.rb +1 -1
- data/lib/chef/resource/bff_package.rb +10 -2
- data/lib/chef/resource/breakpoint.rb +1 -2
- data/lib/chef/resource/build_essential.rb +49 -51
- data/lib/chef/resource/cab_package.rb +9 -2
- data/lib/chef/resource/chef_client_cron.rb +228 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +201 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +180 -0
- data/lib/chef/resource/chef_gem.rb +15 -18
- data/lib/chef/resource/chef_handler.rb +5 -4
- data/lib/chef/resource/chef_sleep.rb +7 -5
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +8 -4
- data/lib/chef/resource/chocolatey_feature.rb +7 -4
- data/lib/chef/resource/chocolatey_package.rb +7 -4
- data/lib/chef/resource/chocolatey_source.rb +7 -4
- data/lib/chef/resource/cookbook_file.rb +4 -3
- data/lib/chef/resource/cron.rb +34 -80
- data/lib/chef/resource/cron_access.rb +10 -6
- data/lib/chef/resource/cron_d.rb +44 -95
- data/lib/chef/resource/csh.rb +3 -1
- data/lib/chef/resource/directory.rb +3 -3
- data/lib/chef/resource/dmg_package.rb +22 -19
- data/lib/chef/resource/dnf_package.rb +3 -4
- data/lib/chef/resource/dpkg_package.rb +3 -2
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +15 -14
- data/lib/chef/resource/file.rb +14 -9
- data/lib/chef/resource/freebsd_package.rb +3 -2
- data/lib/chef/resource/gem_package.rb +19 -11
- data/lib/chef/resource/group.rb +5 -2
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +3 -2
- data/lib/chef/resource/homebrew_package.rb +5 -3
- data/lib/chef/resource/homebrew_tap.rb +3 -2
- data/lib/chef/resource/hostname.rb +26 -20
- data/lib/chef/resource/http_request.rb +1 -2
- data/lib/chef/resource/ifconfig.rb +8 -8
- data/lib/chef/resource/ips_package.rb +11 -3
- data/lib/chef/resource/kernel_module.rb +30 -30
- data/lib/chef/resource/ksh.rb +3 -1
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/link.rb +5 -27
- data/lib/chef/resource/locale.rb +60 -26
- data/lib/chef/resource/log.rb +13 -2
- data/lib/chef/resource/lwrp_base.rb +1 -1
- data/lib/chef/resource/macos_userdefaults.rb +18 -10
- data/lib/chef/resource/macosx_service.rb +3 -2
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +63 -3
- data/lib/chef/resource/mount.rb +4 -1
- data/lib/chef/resource/msu_package.rb +19 -2
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +20 -4
- data/lib/chef/resource/ohai_hint.rb +4 -13
- data/lib/chef/resource/openbsd_package.rb +10 -2
- data/lib/chef/resource/openssl_dhparam.rb +11 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +24 -2
- data/lib/chef/resource/openssl_ec_public_key.rb +22 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +21 -2
- data/lib/chef/resource/openssl_rsa_public_key.rb +23 -2
- data/lib/chef/resource/openssl_x509_certificate.rb +38 -2
- data/lib/chef/resource/openssl_x509_crl.rb +13 -2
- data/lib/chef/resource/openssl_x509_request.rb +38 -2
- data/lib/chef/resource/osx_profile.rb +4 -3
- data/lib/chef/resource/package.rb +3 -2
- data/lib/chef/resource/pacman_package.rb +3 -2
- data/lib/chef/resource/paludis_package.rb +13 -4
- data/lib/chef/resource/perl.rb +3 -1
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +14 -4
- data/lib/chef/resource/powershell_package.rb +2 -4
- data/lib/chef/resource/powershell_package_source.rb +4 -2
- data/lib/chef/resource/powershell_script.rb +8 -18
- data/lib/chef/resource/python.rb +3 -1
- data/lib/chef/resource/reboot.rb +1 -2
- data/lib/chef/resource/registry_key.rb +2 -3
- data/lib/chef/resource/remote_directory.rb +3 -1
- data/lib/chef/resource/remote_file.rb +3 -2
- data/lib/chef/resource/rhsm_errata.rb +1 -4
- data/lib/chef/resource/rhsm_errata_level.rb +1 -2
- data/lib/chef/resource/rhsm_register.rb +3 -3
- data/lib/chef/resource/rhsm_repo.rb +4 -3
- data/lib/chef/resource/rhsm_subscription.rb +5 -4
- data/lib/chef/resource/route.rb +6 -2
- data/lib/chef/resource/rpm_package.rb +13 -3
- data/lib/chef/resource/ruby.rb +3 -1
- data/lib/chef/resource/ruby_block.rb +2 -5
- data/lib/chef/resource/scm/_scm.rb +49 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +10 -7
- data/lib/chef/resource/script.rb +7 -4
- data/lib/chef/resource/service.rb +7 -8
- data/lib/chef/resource/smartos_package.rb +10 -2
- data/lib/chef/resource/snap_package.rb +4 -2
- data/lib/chef/resource/solaris_package.rb +10 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +11 -11
- 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 +7 -5
- data/lib/chef/resource/sysctl.rb +63 -4
- data/lib/chef/resource/systemd_unit.rb +6 -4
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +8 -19
- data/lib/chef/resource/user.rb +3 -5
- 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 +116 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +20 -7
- data/lib/chef/resource/windows_auto_run.rb +2 -3
- data/lib/chef/resource/windows_certificate.rb +3 -3
- data/lib/chef/resource/windows_dfs_folder.rb +1 -2
- data/lib/chef/resource/windows_dfs_namespace.rb +1 -2
- data/lib/chef/resource/windows_dfs_server.rb +2 -3
- 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 +12 -4
- data/lib/chef/resource/windows_feature.rb +59 -4
- data/lib/chef/resource/windows_feature_dism.rb +24 -24
- data/lib/chef/resource/windows_feature_powershell.rb +44 -78
- data/lib/chef/resource/windows_firewall_rule.rb +121 -8
- data/lib/chef/resource/windows_font.rb +10 -2
- data/lib/chef/resource/windows_package.rb +76 -7
- data/lib/chef/resource/windows_pagefile.rb +31 -4
- data/lib/chef/resource/windows_path.rb +18 -2
- data/lib/chef/resource/windows_printer.rb +26 -7
- data/lib/chef/resource/windows_printer_port.rb +29 -2
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +119 -0
- data/lib/chef/resource/windows_service.rb +46 -32
- data/lib/chef/resource/windows_share.rb +22 -6
- data/lib/chef/resource/windows_shortcut.rb +13 -3
- data/lib/chef/resource/windows_task.rb +129 -16
- data/lib/chef/resource/windows_uac.rb +20 -2
- data/lib/chef/resource/windows_user_privilege.rb +199 -0
- data/lib/chef/resource/windows_workgroup.rb +19 -4
- data/lib/chef/resource/yum_package.rb +91 -7
- data/lib/chef/resource/yum_repository.rb +30 -12
- data/lib/chef/resource/zypper_package.rb +32 -5
- data/lib/chef/resource/zypper_repository.rb +19 -6
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +3 -2
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/scan_access_control.rb +1 -1
- data/lib/chef/shell.rb +22 -0
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/error.rb +3 -1
- data/lib/chef/win32/api/file.rb +1 -1
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +1 -9
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/security.rb +40 -2
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +23 -19
- data/spec/functional/resource/cron_spec.rb +10 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +1 -1
- data/spec/functional/resource/launchd_spec.rb +232 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/msu_package_spec.rb +5 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +4 -4
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -1
- data/spec/functional/shell_spec.rb +1 -1
- 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/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 +34 -6
- data/spec/integration/knife/redirection_spec.rb +2 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +3 -3
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +49 -20
- data/spec/integration/recipes/notifying_block_spec.rb +8 -5
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +45 -143
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -1
- data/spec/integration/recipes/resource_load_spec.rb +133 -12
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/spec_helper.rb +18 -3
- 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 +2 -20
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/http.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +3 -16
- data/spec/support/shared/integration/knife_support.rb +9 -6
- data/spec/support/shared/unit/mock_shellout.rb +1 -1
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- 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 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -2
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_collector_spec.rb +39 -18
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/json_compat_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 +20 -38
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +9 -63
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/ssh_spec.rb +8 -111
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/shell_out_spec.rb +25 -31
- data/spec/unit/node/attribute_spec.rb +3 -3
- 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 +12 -9
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +34 -36
- 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 +41 -1
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/launchd_spec.rb +8 -50
- 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/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +3 -2
- data/spec/unit/provider/package/rubygems_spec.rb +211 -26
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- 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/debian_service_spec.rb +34 -13
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +17 -17
- data/spec/unit/provider_resolver_spec.rb +4 -4
- 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/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/msu_package_spec.rb +4 -0
- 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_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +2 -17
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +14 -0
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource_reporter_spec.rb +2 -6
- data/spec/unit/resource_spec.rb +10 -3
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/win32/registry_spec.rb +1 -1
- data/tasks/rspec.rb +6 -14
- metadata +92 -37
- 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/unit/provider/ohai_spec.rb +0 -84
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Author::
|
2
|
+
# Author:: Steven Danna (<steve@chef.io>)
|
3
3
|
# Copyright:: Copyright (c) Chef Software Inc.
|
4
4
|
# License:: Apache License, Version 2.0
|
5
5
|
#
|
@@ -17,24 +17,26 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require_relative "../knife"
|
20
|
-
require_relative "supermarket_show"
|
21
|
-
require_relative "../dist"
|
22
20
|
|
23
21
|
class Chef
|
24
22
|
class Knife
|
25
|
-
class
|
26
|
-
|
27
|
-
|
28
|
-
dependency_loaders.concat(superclass.dependency_loaders)
|
29
|
-
|
30
|
-
banner "knife cookbook site show COOKBOOK [VERSION] (options)"
|
31
|
-
category "deprecated"
|
23
|
+
class UserDissociate < Chef::Knife
|
24
|
+
category "user"
|
25
|
+
banner "knife user dissociate USERNAMES"
|
32
26
|
|
33
27
|
def run
|
34
|
-
|
35
|
-
|
28
|
+
if name_args.length < 1
|
29
|
+
show_usage
|
30
|
+
ui.fatal("You must specify a username.")
|
31
|
+
exit 1
|
32
|
+
end
|
33
|
+
users = name_args
|
34
|
+
ui.confirm("Are you sure you want to dissociate the following users: #{users.join(", ")}")
|
35
|
+
users.each do |u|
|
36
|
+
api_endpoint = "users/#{u}"
|
37
|
+
rest.delete_rest(api_endpoint)
|
38
|
+
end
|
36
39
|
end
|
37
|
-
|
38
40
|
end
|
39
41
|
end
|
40
42
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Author::
|
2
|
+
# Author:: Steven Danna (<steve@chef.io>)
|
3
3
|
# Copyright:: Copyright (c) Chef Software Inc.
|
4
4
|
# License:: Apache License, Version 2.0
|
5
5
|
#
|
@@ -17,24 +17,27 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require_relative "../knife"
|
20
|
-
require_relative "supermarket_search"
|
21
|
-
require_relative "../dist"
|
22
20
|
|
23
21
|
class Chef
|
24
22
|
class Knife
|
25
|
-
class
|
26
|
-
|
27
|
-
|
28
|
-
dependency_loaders.concat(superclass.dependency_loaders)
|
29
|
-
|
30
|
-
banner "knife cookbook site search QUERY (options)"
|
31
|
-
category "deprecated"
|
23
|
+
class UserInviteAdd < Chef::Knife
|
24
|
+
category "user"
|
25
|
+
banner "knife user invite add USERNAMES"
|
32
26
|
|
33
27
|
def run
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
if name_args.length < 1
|
29
|
+
show_usage
|
30
|
+
ui.fatal("You must specify a username.")
|
31
|
+
exit 1
|
32
|
+
end
|
37
33
|
|
34
|
+
users = name_args
|
35
|
+
api_endpoint = "association_requests/"
|
36
|
+
users.each do |u|
|
37
|
+
body = { user: u }
|
38
|
+
rest.post_rest(api_endpoint, body)
|
39
|
+
end
|
40
|
+
end
|
38
41
|
end
|
39
42
|
end
|
40
43
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Steven Danna (<steve@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require_relative "../knife"
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
class Knife
|
23
|
+
class UserInviteList < Chef::Knife
|
24
|
+
category "user"
|
25
|
+
banner "knife user invite list"
|
26
|
+
|
27
|
+
def run
|
28
|
+
api_endpoint = "association_requests/"
|
29
|
+
invited_users = rest.get_rest(api_endpoint).map { |i| i["username"] }
|
30
|
+
ui.output(invited_users)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Steven Danna (<steve@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require_relative "../knife"
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
class Knife
|
23
|
+
class UserInviteRescind < Chef::Knife
|
24
|
+
category "user"
|
25
|
+
banner "knife user invite rescind [USERNAMES] (options)"
|
26
|
+
|
27
|
+
option :all,
|
28
|
+
short: "-a",
|
29
|
+
long: "--all",
|
30
|
+
description: "Rescind all invites!"
|
31
|
+
|
32
|
+
def run
|
33
|
+
if (name_args.length < 1) && ! config.key?(:all)
|
34
|
+
show_usage
|
35
|
+
ui.fatal("You must specify a username.")
|
36
|
+
exit 1
|
37
|
+
end
|
38
|
+
|
39
|
+
# To rescind we need to send a DELETE to association_requests/INVITE_ID
|
40
|
+
# For user friendliness we look up the invite ID based on username.
|
41
|
+
@invites = {}
|
42
|
+
usernames = name_args
|
43
|
+
rest.get_rest("association_requests").each { |i| @invites[i["username"]] = i["id"] }
|
44
|
+
if config[:all]
|
45
|
+
ui.confirm("Are you sure you want to rescind all association requests")
|
46
|
+
@invites.each do |u, i|
|
47
|
+
rest.delete_rest("association_requests/#{i}")
|
48
|
+
end
|
49
|
+
else
|
50
|
+
ui.confirm("Are you sure you want to rescind the association requests for: #{usernames.join(", ")}")
|
51
|
+
usernames.each do |u|
|
52
|
+
if @invites.key?(u)
|
53
|
+
rest.delete_rest("association_requests/#{@invites[u]}")
|
54
|
+
else
|
55
|
+
ui.fatal("No association request for #{u}.")
|
56
|
+
exit 1
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Bryan McLellan <btm@loftninjas.org>
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require "yaml"
|
20
|
+
require_relative "../knife"
|
21
|
+
class Chef::Knife::YamlConvert < Chef::Knife
|
22
|
+
|
23
|
+
banner "knife yaml convert YAML_FILENAME [RUBY_FILENAME]"
|
24
|
+
|
25
|
+
def run
|
26
|
+
if name_args.empty?
|
27
|
+
ui.fatal!("Please specify the file name of a YAML recipe to convert to Ruby")
|
28
|
+
elsif name_args.size >= 3
|
29
|
+
ui.fatal!("knife yaml convert YAML_FILENAME [RUBY_FILENAME]")
|
30
|
+
end
|
31
|
+
|
32
|
+
yaml_file = @name_args[0]
|
33
|
+
unless ::File.exist?(yaml_file) && ::File.readable?(yaml_file)
|
34
|
+
ui.fatal("Input YAML file '#{yaml_file}' does not exist or is unreadable")
|
35
|
+
end
|
36
|
+
|
37
|
+
ruby_file = if @name_args[1]
|
38
|
+
@name_args[1] # use the specified output filename if provided
|
39
|
+
else
|
40
|
+
if ::File.extname(yaml_file) == ".yml" || ::File.extname(yaml_file) == ".yaml"
|
41
|
+
yaml_file.gsub(/\.(yml|yaml)$/, ".rb")
|
42
|
+
else
|
43
|
+
yaml_file + ".rb" # fall back to putting .rb on the end of whatever the yaml file was named
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
if ::File.exist?(ruby_file)
|
48
|
+
ui.fatal!("Output Ruby file '#{ruby_file}' already exists")
|
49
|
+
end
|
50
|
+
|
51
|
+
yaml_contents = IO.read(yaml_file)
|
52
|
+
|
53
|
+
# YAML can contain multiple documents (--- is the separator), let's not support that.
|
54
|
+
if ::YAML.load_stream(yaml_contents).length > 1
|
55
|
+
ui.fatal!("YAML recipe '#{yaml_file}' contains multiple documents, only one is supported")
|
56
|
+
end
|
57
|
+
|
58
|
+
# Unfortunately, per the YAML spec, comments are stripped when we load, so we lose them on conversion
|
59
|
+
yaml_hash = ::YAML.safe_load(yaml_contents, permitted_classes: [Symbol])
|
60
|
+
unless yaml_hash.is_a?(Hash) && yaml_hash.key?("resources")
|
61
|
+
ui.fatal!("YAML recipe '#{source_file}' must contain a top-level 'resources' hash (YAML sequence), i.e. 'resources:'")
|
62
|
+
end
|
63
|
+
|
64
|
+
ui.warn("No resources found in '#{yaml_file}'") if yaml_hash["resources"].size == 0
|
65
|
+
|
66
|
+
::File.open(ruby_file, "w") do |file|
|
67
|
+
file.write(resource_hash_to_string(yaml_hash["resources"], yaml_file))
|
68
|
+
end
|
69
|
+
ui.info("Converted '#{yaml_file}' to '#{ruby_file}'")
|
70
|
+
end
|
71
|
+
|
72
|
+
# Converts a Hash of resources to a Ruby recipe
|
73
|
+
# returns a string ready to be written to a file or stdout
|
74
|
+
def resource_hash_to_string(resource_hash, filename)
|
75
|
+
ruby_contents = []
|
76
|
+
ruby_contents << "# Autoconverted recipe from #{filename}\n"
|
77
|
+
|
78
|
+
resource_hash.each do |r|
|
79
|
+
type = r.delete("type")
|
80
|
+
name = r.delete("name")
|
81
|
+
|
82
|
+
ruby_contents << "#{type} \"#{name}\" do"
|
83
|
+
r.each do |k, v|
|
84
|
+
ruby_contents << " #{k} #{v.inspect}"
|
85
|
+
end
|
86
|
+
ruby_contents << "end\n"
|
87
|
+
end
|
88
|
+
|
89
|
+
ruby_contents.join("\n")
|
90
|
+
end
|
91
|
+
end
|
@@ -53,7 +53,7 @@ class Chef
|
|
53
53
|
<<~EOH
|
54
54
|
The reregister command only supports server API version 0.
|
55
55
|
The server that received the request supports a min version of #{min_version} and a max version of #{max_version}.
|
56
|
-
User keys are now managed via the key rotation
|
56
|
+
User keys are now managed via the key rotation commands.
|
57
57
|
Please refer to the documentation on how to manage your keys via the key rotation commands:
|
58
58
|
https://docs.chef.io/ctl_chef_server/#key-rotation
|
59
59
|
EOH
|
data/lib/chef/mixin/checksum.rb
CHANGED
@@ -218,7 +218,7 @@ class Chef
|
|
218
218
|
# Chef 12 backward compatibility
|
219
219
|
::OpenSSL::PKey::EC.send(:alias_method, :private?, :private_key?)
|
220
220
|
|
221
|
-
request.sign(key, ::OpenSSL::Digest
|
221
|
+
request.sign(key, ::OpenSSL::Digest.new("SHA256"))
|
222
222
|
request
|
223
223
|
end
|
224
224
|
|
@@ -289,7 +289,7 @@ class Chef
|
|
289
289
|
cert.add_extension ef.create_extension("authorityKeyIdentifier",
|
290
290
|
"keyid:always,issuer:always")
|
291
291
|
|
292
|
-
cert.sign(key, ::OpenSSL::Digest
|
292
|
+
cert.sign(key, ::OpenSSL::Digest.new("SHA256"))
|
293
293
|
cert
|
294
294
|
end
|
295
295
|
|
@@ -319,7 +319,7 @@ class Chef
|
|
319
319
|
crl.add_extension ::OpenSSL::X509::Extension.new("crlNumber", ::OpenSSL::ASN1::Integer(1))
|
320
320
|
crl.add_extension ef.create_extension("authorityKeyIdentifier",
|
321
321
|
"keyid:always,issuer:always")
|
322
|
-
crl.sign(ca_private_key, ::OpenSSL::Digest
|
322
|
+
crl.sign(ca_private_key, ::OpenSSL::Digest.new("SHA256"))
|
323
323
|
crl
|
324
324
|
end
|
325
325
|
|
@@ -398,7 +398,7 @@ class Chef
|
|
398
398
|
::OpenSSL::ASN1::Integer(get_next_crl_number(crl)))]
|
399
399
|
crl.add_extension ef.create_extension("authorityKeyIdentifier",
|
400
400
|
"keyid:always,issuer:always")
|
401
|
-
crl.sign(ca_private_key, ::OpenSSL::Digest
|
401
|
+
crl.sign(ca_private_key, ::OpenSSL::Digest.new("SHA256"))
|
402
402
|
crl
|
403
403
|
end
|
404
404
|
|
@@ -20,7 +20,7 @@ require_relative "../powershell"
|
|
20
20
|
# The powershell_exec mixin provides in-process access to PowerShell engine via
|
21
21
|
# a COM interop (installed by the Chef Client installer).
|
22
22
|
#
|
23
|
-
# powershell_exec returns a Chef::PowerShell object that provides
|
23
|
+
# powershell_exec returns a Chef::PowerShell object that provides 4 methods:
|
24
24
|
#
|
25
25
|
# .result - returns a hash representing the results returned by executing the
|
26
26
|
# PowerShell script block
|
@@ -28,6 +28,7 @@ require_relative "../powershell"
|
|
28
28
|
# PowerShell error stream during execution
|
29
29
|
# .error? - returns true if there were error messages written to the PowerShell
|
30
30
|
# error stream during execution
|
31
|
+
# .error! - raise Chef::PowerShell::CommandFailed if there was an error
|
31
32
|
#
|
32
33
|
# Some examples of usage:
|
33
34
|
#
|
@@ -100,6 +101,14 @@ class Chef
|
|
100
101
|
def powershell_exec(script)
|
101
102
|
Chef::PowerShell.new(script)
|
102
103
|
end
|
104
|
+
|
105
|
+
# The same as the #powershell_exec method except this will raise
|
106
|
+
# Chef::PowerShell::CommandFailed if the command fails
|
107
|
+
def powershell_exec!(script)
|
108
|
+
cmd = Chef::PowerShell.new(script)
|
109
|
+
cmd.error!
|
110
|
+
cmd
|
111
|
+
end
|
103
112
|
end
|
104
113
|
end
|
105
114
|
end
|
@@ -264,10 +264,22 @@ class Chef
|
|
264
264
|
end
|
265
265
|
|
266
266
|
result = properties.values.select(&:identity?)
|
267
|
-
|
267
|
+
# if there are no other identity properties set, then the name_property becomes the identity, or
|
268
|
+
# failing that we use the actual name.
|
269
|
+
if result.empty?
|
270
|
+
result = name_property ? [ properties[name_property] ] : [ properties[:name] ]
|
271
|
+
end
|
268
272
|
result
|
269
273
|
end
|
270
274
|
|
275
|
+
# Returns the name of the name property. Returns nil if there is no name property.
|
276
|
+
#
|
277
|
+
# @return [Symbol] the name property for this resource
|
278
|
+
def name_property
|
279
|
+
p = properties.find { |n, p| p.name_property? }
|
280
|
+
p ? p.first : nil
|
281
|
+
end
|
282
|
+
|
271
283
|
def included(other)
|
272
284
|
other.extend ClassMethods
|
273
285
|
end
|
@@ -328,6 +340,7 @@ class Chef
|
|
328
340
|
# can also be overridden). Exclude has priority over include, although the caller is likely better
|
329
341
|
# off doing the set arithmetic themselves for explicitness.
|
330
342
|
#
|
343
|
+
# ```ruby
|
331
344
|
# action :doit do
|
332
345
|
# # use it inside a block
|
333
346
|
# file "/etc/whatever.xyz" do
|
@@ -338,10 +351,11 @@ class Chef
|
|
338
351
|
# r = declare_resource(:file, "etc/whatever.xyz")
|
339
352
|
# r.copy_properties_from(new_resource, :owner, :group, :mode)
|
340
353
|
# end
|
354
|
+
# ```
|
341
355
|
#
|
342
356
|
# @param other [Object] the other object (Chef::Resource) which implements the properties API
|
343
357
|
# @param includes [Array<Symbol>] splat-args list of symbols of the properties to copy.
|
344
|
-
# @param exclude [Array<Symbol>] list of
|
358
|
+
# @param exclude [Array<Symbol>] list of symbols of the properties to exclude.
|
345
359
|
# @return the self object the properties were copied to for method chaining
|
346
360
|
#
|
347
361
|
def copy_properties_from(other, *includes, exclude: [ :name ])
|
data/lib/chef/mixin/shell_out.rb
CHANGED
@@ -26,10 +26,6 @@ class Chef
|
|
26
26
|
#
|
27
27
|
# all consumers should now call shell_out!/shell_out.
|
28
28
|
#
|
29
|
-
# on unix the shell_out API supports the clean_array() kind of syntax (below) so that
|
30
|
-
# array args are flat/compact/to_s'd. on windows, array args aren't supported to its
|
31
|
-
# up to the caller to join(" ") on arrays of strings.
|
32
|
-
#
|
33
29
|
# the shell_out_compacted/shell_out_compacted! APIs are private but are intended for use
|
34
30
|
# in rspec tests, and should ideally always be used to make code refactoring that do not
|
35
31
|
# change behavior easier:
|
@@ -75,7 +71,7 @@ class Chef
|
|
75
71
|
default_val = 900
|
76
72
|
return options if options.key?(:timeout)
|
77
73
|
|
78
|
-
# FIXME: need to nuke
|
74
|
+
# FIXME: need to nuke descendent tracker out of Chef::Provider so we can just define that class here without requiring the
|
79
75
|
# world, and then just use symbol lookup
|
80
76
|
if obj.class.ancestors.map(&:name).include?("Chef::Provider") && obj.respond_to?(:new_resource) && obj.new_resource.respond_to?(:timeout) && !options.key?(:timeout)
|
81
77
|
options[:timeout] = obj.new_resource.timeout ? obj.new_resource.timeout.to_f : default_val
|
@@ -5,10 +5,6 @@ module ChefNetHTTPExceptionExtensions
|
|
5
5
|
attr_accessor :chef_rest_request
|
6
6
|
end
|
7
7
|
|
8
|
-
unless defined?(Net::HTTPClientException)
|
9
|
-
Net::HTTPClientException = Net::HTTPServerException
|
10
|
-
end
|
11
|
-
|
12
8
|
require "net/http" unless defined?(Net::HTTP)
|
13
9
|
module Net
|
14
10
|
class HTTPError
|