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
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
require "support/shared/integration/integration_helper"
|
3
3
|
|
4
4
|
class NoActionJackson < Chef::Resource
|
5
|
-
|
5
|
+
provides :no_action_jackson
|
6
6
|
|
7
7
|
def foo(value = nil)
|
8
8
|
@foo = value if value
|
@@ -15,7 +15,7 @@ class NoActionJackson < Chef::Resource
|
|
15
15
|
end
|
16
16
|
|
17
17
|
class WeirdActionJackson < Chef::Resource
|
18
|
-
|
18
|
+
provides :weird_action_jackson
|
19
19
|
|
20
20
|
class <<self
|
21
21
|
attr_accessor :action_was
|
@@ -164,7 +164,8 @@ module ResourceActionSpec
|
|
164
164
|
|
165
165
|
context "With resource 'action_jackson'" do
|
166
166
|
class ActionJackson < Chef::Resource
|
167
|
-
|
167
|
+
provides :action_jackson
|
168
|
+
|
168
169
|
def foo(value = nil)
|
169
170
|
@foo = value if value
|
170
171
|
@foo
|
@@ -257,7 +258,7 @@ module ResourceActionSpec
|
|
257
258
|
context "And 'action_jackgrandson' inheriting from ActionJackson and changing nothing" do
|
258
259
|
before(:each) do
|
259
260
|
class ActionJackgrandson < ActionJackson
|
260
|
-
|
261
|
+
provides :action_jackgrandson
|
261
262
|
end
|
262
263
|
end
|
263
264
|
|
@@ -268,7 +269,7 @@ module ResourceActionSpec
|
|
268
269
|
|
269
270
|
context "And 'action_jackalope' inheriting from ActionJackson with an extra attribute, action and custom method" do
|
270
271
|
class ActionJackalope < ActionJackson
|
271
|
-
|
272
|
+
provides :action_jackalope
|
272
273
|
|
273
274
|
def foo(value = nil)
|
274
275
|
@foo = "#{value}alope" if value
|
@@ -381,7 +382,7 @@ module ResourceActionSpec
|
|
381
382
|
|
382
383
|
context "With a resource with a set_or_return property named group (same name as a resource)" do
|
383
384
|
class ResourceActionSpecWithGroupAction < Chef::Resource
|
384
|
-
|
385
|
+
provides :resource_action_spec_set_group_to_nil
|
385
386
|
action :set_group_to_nil do
|
386
387
|
# Access x during converge to ensure that we emit no warnings there
|
387
388
|
resource_action_spec_with_group "hi" do
|
@@ -392,7 +393,7 @@ module ResourceActionSpec
|
|
392
393
|
end
|
393
394
|
|
394
395
|
class ResourceActionSpecWithGroup < Chef::Resource
|
395
|
-
|
396
|
+
provides :resource_action_spec_with_group
|
396
397
|
def group(value = nil)
|
397
398
|
set_or_return(:group, value, {})
|
398
399
|
end
|
@@ -409,7 +410,8 @@ module ResourceActionSpec
|
|
409
410
|
|
410
411
|
context "When a resource has a property with the same name as another resource" do
|
411
412
|
class HasPropertyNamedTemplate < Chef::Resource
|
412
|
-
|
413
|
+
provides :has_property_named_template
|
414
|
+
|
413
415
|
property :template
|
414
416
|
action :create do
|
415
417
|
template "x" do
|
@@ -421,7 +423,8 @@ module ResourceActionSpec
|
|
421
423
|
|
422
424
|
context "When a resource declares methods in action_class" do
|
423
425
|
class DeclaresActionClassMethods < Chef::Resource
|
424
|
-
|
426
|
+
provides :declares_action_class_methods
|
427
|
+
|
425
428
|
property :x
|
426
429
|
action_class do
|
427
430
|
def a
|
@@ -453,7 +456,8 @@ module ResourceActionSpec
|
|
453
456
|
|
454
457
|
context "And a subclass overrides a method with an action_class block" do
|
455
458
|
class DeclaresActionClassMethodsToo < DeclaresActionClassMethods
|
456
|
-
|
459
|
+
provides :declares_action_class_methods_too
|
460
|
+
|
457
461
|
action_class do
|
458
462
|
def a
|
459
463
|
5
|
@@ -478,7 +482,8 @@ module ResourceActionSpec
|
|
478
482
|
context "And a subclass overrides a method with class_eval" do
|
479
483
|
# this tests inheritance with *only* an action_class accessor that does not declare a block
|
480
484
|
class DeclaresActionClassMethodsToo < DeclaresActionClassMethods
|
481
|
-
|
485
|
+
provides :declares_action_class_methods_too
|
486
|
+
|
482
487
|
action_class.class_eval <<-EOM
|
483
488
|
def a
|
484
489
|
5
|
@@ -35,7 +35,7 @@ describe "Resource.load_current_value" do
|
|
35
35
|
new_resource.class.created_x = new_resource.x
|
36
36
|
end
|
37
37
|
end
|
38
|
-
result.
|
38
|
+
result.provides resource_name
|
39
39
|
result
|
40
40
|
end
|
41
41
|
|
@@ -65,17 +65,17 @@ describe "Resource.load_current_value" do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "current_resource is passed name but not x" do
|
68
|
-
expect(resource.current_value.x).to eq "loaded
|
68
|
+
expect(resource.current_value.x).to eq "loaded 3 (name=blah)"
|
69
69
|
end
|
70
70
|
|
71
71
|
it "resource.current_value returns a different resource" do
|
72
|
-
expect(resource.current_value.x).to eq "loaded
|
72
|
+
expect(resource.current_value.x).to eq "loaded 3 (name=blah)"
|
73
73
|
expect(resource.x).to eq "desired"
|
74
74
|
end
|
75
75
|
|
76
76
|
it "resource.current_value constructs the resource anew each time" do
|
77
|
-
expect(resource.current_value.x).to eq "loaded 2 (name=blah)"
|
78
77
|
expect(resource.current_value.x).to eq "loaded 3 (name=blah)"
|
78
|
+
expect(resource.current_value.x).to eq "loaded 4 (name=blah)"
|
79
79
|
end
|
80
80
|
|
81
81
|
it "the provider accesses the current value of x" do
|
@@ -96,7 +96,7 @@ describe "Resource.load_current_value" do
|
|
96
96
|
end
|
97
97
|
|
98
98
|
it "i, name and d are passed to load_current_value, but not x" do
|
99
|
-
expect(resource.current_value.x).to eq "loaded
|
99
|
+
expect(resource.current_value.x).to eq "loaded 3 (d=desired_d, i=desired_i, name=blah)"
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
@@ -114,7 +114,7 @@ describe "Resource.load_current_value" do
|
|
114
114
|
end
|
115
115
|
|
116
116
|
it "i, name and d are passed to load_current_value, but not x" do
|
117
|
-
expect(resource.current_value.x).to eq "loaded
|
117
|
+
expect(resource.current_value.x).to eq "loaded 3 (d=desired_d, i=desired_i, name=blah)"
|
118
118
|
end
|
119
119
|
end
|
120
120
|
end
|
@@ -126,7 +126,7 @@ describe "Resource.load_current_value" do
|
|
126
126
|
r = Class.new(resource_class) do
|
127
127
|
property :y, default: lazy { "default_y #{Namer.incrementing_value}" }
|
128
128
|
end
|
129
|
-
r.
|
129
|
+
r.provides subresource_name
|
130
130
|
r
|
131
131
|
end
|
132
132
|
|
@@ -146,7 +146,7 @@ describe "Resource.load_current_value" do
|
|
146
146
|
|
147
147
|
context "and a child resource class with no load_current_value" do
|
148
148
|
it "the parent load_current_value is used" do
|
149
|
-
expect(subresource.current_value.x).to eq "loaded
|
149
|
+
expect(subresource.current_value.x).to eq "loaded 3 (name=blah)"
|
150
150
|
end
|
151
151
|
it "load_current_value yields a copy of the child class" do
|
152
152
|
expect(subresource.current_value).to be_kind_of(subresource_class)
|
@@ -165,8 +165,8 @@ describe "Resource.load_current_value" do
|
|
165
165
|
|
166
166
|
it "the overridden load_current_value is used" do
|
167
167
|
current_resource = subresource.current_value
|
168
|
-
expect(current_resource.x).to eq "default
|
169
|
-
expect(current_resource.y).to eq "loaded_y
|
168
|
+
expect(current_resource.x).to eq "default 4"
|
169
|
+
expect(current_resource.y).to eq "loaded_y 3 (name=blah)"
|
170
170
|
end
|
171
171
|
end
|
172
172
|
|
@@ -183,10 +183,131 @@ describe "Resource.load_current_value" do
|
|
183
183
|
|
184
184
|
it "the original load_current_value is called as well as the child one" do
|
185
185
|
current_resource = subresource.current_value
|
186
|
-
expect(current_resource.x).to eq "loaded
|
187
|
-
expect(current_resource.y).to eq "loaded_y
|
186
|
+
expect(current_resource.x).to eq "loaded 5 (name=blah)"
|
187
|
+
expect(current_resource.y).to eq "loaded_y 6 (name=blah, x=loaded 5 (name=blah))"
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
describe "simple load_current_value tests" do
|
194
|
+
let(:resource_class) do
|
195
|
+
Class.new(Chef::Resource) do
|
196
|
+
attr_writer :index # this is our hacky global state
|
197
|
+
def index; @index ||= 1; end
|
198
|
+
|
199
|
+
property :myindex, Integer
|
200
|
+
|
201
|
+
load_current_value do |new_resource|
|
202
|
+
myindex new_resource.index
|
203
|
+
end
|
204
|
+
|
205
|
+
action :run do
|
206
|
+
new_resource.index += 1
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
let(:node) { Chef::Node.new }
|
212
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
213
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
214
|
+
let(:new_resource) { resource_class.new("test", run_context) }
|
215
|
+
let(:provider) { new_resource.provider_for_action(:run) }
|
216
|
+
|
217
|
+
it "calling the action on the provider sets the current_resource" do
|
218
|
+
expect(events).to receive(:resource_current_state_loaded).with(new_resource, :run, anything)
|
219
|
+
provider.run_action(:run)
|
220
|
+
expect(provider.current_resource.myindex).to eql(1)
|
221
|
+
end
|
222
|
+
|
223
|
+
it "calling the action on the provider sets the after_resource" do
|
224
|
+
expect(events).to receive(:resource_after_state_loaded).with(new_resource, :run, anything)
|
225
|
+
provider.run_action(:run)
|
226
|
+
expect(provider.after_resource.myindex).to eql(2)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
describe "simple load_current_resource tests" do
|
231
|
+
let(:provider_class) do
|
232
|
+
Class.new(Chef::Provider) do
|
233
|
+
provides :no_load_current_value
|
234
|
+
def load_current_resource
|
235
|
+
@current_resource = new_resource.dup
|
236
|
+
@current_resource.myindex = 1
|
237
|
+
end
|
238
|
+
action :run do
|
239
|
+
end
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
let(:resource_class) do
|
244
|
+
provider_class # vivify the provider_class
|
245
|
+
Class.new(Chef::Resource) do
|
246
|
+
provides :no_load_current_value
|
247
|
+
property :myindex, Integer
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
251
|
+
let(:node) { Chef::Node.new }
|
252
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
253
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
254
|
+
let(:new_resource) { resource_class.new("test", run_context) }
|
255
|
+
let(:provider) { new_resource.provider_for_action(:run) }
|
256
|
+
|
257
|
+
it "calling the action on the provider sets the current_resource" do
|
258
|
+
expect(events).to receive(:resource_current_state_loaded).with(new_resource, :run, anything)
|
259
|
+
provider.run_action(:run)
|
260
|
+
expect(provider.current_resource.myindex).to eql(1)
|
261
|
+
end
|
262
|
+
|
263
|
+
it "calling the action on the provider sets the after_resource" do
|
264
|
+
expect(events).to receive(:resource_after_state_loaded).with(new_resource, :run, new_resource)
|
265
|
+
provider.run_action(:run)
|
266
|
+
expect(provider.after_resource.myindex).to eql(nil)
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
describe "simple load_current_resource and load_after_resource tests" do
|
271
|
+
let(:provider_class) do
|
272
|
+
Class.new(Chef::Provider) do
|
273
|
+
provides :load_after
|
274
|
+
def load_current_resource
|
275
|
+
@current_resource = new_resource.dup
|
276
|
+
@current_resource.myindex = 1
|
277
|
+
end
|
278
|
+
|
279
|
+
def load_after_resource
|
280
|
+
@after_resource = new_resource.dup
|
281
|
+
@after_resource.myindex = 2
|
188
282
|
end
|
283
|
+
action :run do
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
let(:resource_class) do
|
289
|
+
provider_class # autovivify provider class
|
290
|
+
Class.new(Chef::Resource) do
|
291
|
+
provides :load_after
|
292
|
+
property :myindex, Integer
|
189
293
|
end
|
190
294
|
end
|
191
295
|
|
296
|
+
let(:node) { Chef::Node.new }
|
297
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
298
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
299
|
+
let(:new_resource) { resource_class.new("test", run_context) }
|
300
|
+
let(:provider) { new_resource.provider_for_action(:run) }
|
301
|
+
|
302
|
+
it "calling the action on the provider sets the current_resource" do
|
303
|
+
expect(events).to receive(:resource_current_state_loaded).with(new_resource, :run, anything)
|
304
|
+
provider.run_action(:run)
|
305
|
+
expect(provider.current_resource.myindex).to eql(1)
|
306
|
+
end
|
307
|
+
|
308
|
+
it "calling the action on the provider sets the after_resource" do
|
309
|
+
expect(events).to receive(:resource_after_state_loaded).with(new_resource, :run, anything)
|
310
|
+
provider.run_action(:run)
|
311
|
+
expect(provider.after_resource.myindex).to eql(2)
|
312
|
+
end
|
192
313
|
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require "spec_helper"
|
18
|
+
require "support/shared/integration/integration_helper"
|
19
|
+
require "chef/mixin/shell_out"
|
20
|
+
|
21
|
+
describe "notifying_block" do
|
22
|
+
include IntegrationSupport
|
23
|
+
include Chef::Mixin::ShellOut
|
24
|
+
|
25
|
+
let(:chef_dir) { File.expand_path("../../../../bin", __FILE__) }
|
26
|
+
let(:chef_client) { "bundle exec chef-client --minimal-ohai" }
|
27
|
+
|
28
|
+
when_the_repository "has a cookbook with partial resources" do
|
29
|
+
before do
|
30
|
+
directory "cookbooks/x" do
|
31
|
+
file "resources/_shared_properties.rb", <<-EOM
|
32
|
+
property :content, String
|
33
|
+
EOM
|
34
|
+
file "resources/_action_helpers.rb", <<-EOM
|
35
|
+
def printit(string)
|
36
|
+
puts "DIDIT: \#{string}"
|
37
|
+
end
|
38
|
+
EOM
|
39
|
+
file "resources/thing.rb", <<-EOM
|
40
|
+
provides :thing
|
41
|
+
use "shared_properties"
|
42
|
+
action_class do
|
43
|
+
use "action_helpers"
|
44
|
+
end
|
45
|
+
action :run do
|
46
|
+
printit(new_resource.content)
|
47
|
+
end
|
48
|
+
EOM
|
49
|
+
file "recipes/default.rb", <<~EOM
|
50
|
+
thing "whatever" do
|
51
|
+
content "stuff"
|
52
|
+
end
|
53
|
+
EOM
|
54
|
+
end
|
55
|
+
file "config/client.rb", <<-EOM
|
56
|
+
local_mode true
|
57
|
+
cookbook_path "#{path_to("cookbooks")}"
|
58
|
+
log_level :warn
|
59
|
+
always_dump_stacktrace true
|
60
|
+
EOM
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should run cleanly and print the output" do
|
64
|
+
result = shell_out("#{chef_client} -c \"#{path_to("config/client.rb")}\" --no-color -F doc -o 'x::default'", cwd: chef_dir)
|
65
|
+
expect(result.stdout).to match(/DIDIT: stuff/)
|
66
|
+
result.error!
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
when_the_repository "has a cookbook with partial resources done differently" do
|
71
|
+
before do
|
72
|
+
directory "cookbooks/x" do
|
73
|
+
file "partials/_shared_properties.rb", <<-EOM
|
74
|
+
property :content, String
|
75
|
+
EOM
|
76
|
+
file "partials/_action_partials.rb", <<-EOM
|
77
|
+
def printit(string)
|
78
|
+
puts "DIDIT: \#{string}"
|
79
|
+
end
|
80
|
+
EOM
|
81
|
+
# this tests relative pathing, including the underscore and including the trailing .rb all work
|
82
|
+
file "resources/thing.rb", <<-EOM
|
83
|
+
provides :thing
|
84
|
+
use "../partials/_shared_properties.rb"
|
85
|
+
action_class do
|
86
|
+
use "../partials/_action_partials.rb"
|
87
|
+
end
|
88
|
+
action :run do
|
89
|
+
printit(new_resource.content)
|
90
|
+
end
|
91
|
+
EOM
|
92
|
+
file "recipes/default.rb", <<~EOM
|
93
|
+
thing "whatever" do
|
94
|
+
content "stuff"
|
95
|
+
end
|
96
|
+
EOM
|
97
|
+
end
|
98
|
+
file "config/client.rb", <<-EOM
|
99
|
+
local_mode true
|
100
|
+
cookbook_path "#{path_to("cookbooks")}"
|
101
|
+
log_level :warn
|
102
|
+
always_dump_stacktrace true
|
103
|
+
EOM
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should run cleanly and print the output" do
|
107
|
+
result = shell_out("#{chef_client} -c \"#{path_to("config/client.rb")}\" --no-color -F doc -o 'x::default'", cwd: chef_dir)
|
108
|
+
expect(result.stdout).to match(/DIDIT: stuff/)
|
109
|
+
result.error!
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -165,7 +165,7 @@ describe Chef::Dist::SOLOEXEC do
|
|
165
165
|
ruby_block "sleeping" do
|
166
166
|
block do
|
167
167
|
retries = 200
|
168
|
-
while IO.read(Chef::Config[:log_location]) !~ /.* is running, will wait for it to finish and then run./
|
168
|
+
while IO.read(Chef::Config[:log_location][0]) !~ /.* is running, will wait for it to finish and then run./
|
169
169
|
sleep 0.1
|
170
170
|
raise "we ran out of retries" if ( retries -= 1 ) <= 0
|
171
171
|
end
|
@@ -189,13 +189,13 @@ describe Chef::Dist::SOLOEXEC do
|
|
189
189
|
|
190
190
|
# Instantiate the first chef-solo run
|
191
191
|
threads << Thread.new do
|
192
|
-
s1 = Process.spawn("#{chef_solo} -c \"#{path_to("config/solo.rb")}\" -o 'x::default'
|
192
|
+
s1 = Process.spawn("#{chef_solo} -c \"#{path_to("config/solo.rb")}\" -o 'x::default' -l debug -L #{path_to("logs/runs.log")}", chdir: chef_dir)
|
193
193
|
Process.waitpid(s1)
|
194
194
|
end
|
195
195
|
|
196
196
|
# Instantiate the second chef-solo run
|
197
197
|
threads << Thread.new do
|
198
|
-
s2 = Process.spawn("#{chef_solo} -c \"#{path_to("config/solo.rb")}\" -o 'x::default'
|
198
|
+
s2 = Process.spawn("#{chef_solo} -c \"#{path_to("config/solo.rb")}\" -o 'x::default' -l debug -L #{path_to("logs/runs.log")}", chdir: chef_dir)
|
199
199
|
Process.waitpid(s2)
|
200
200
|
end
|
201
201
|
|