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
@@ -317,12 +317,12 @@ describe Chef::Resource::WindowsTask, :windows_only do
|
|
317
317
|
expect(subject).not_to be_updated_by_last_action
|
318
318
|
end
|
319
319
|
|
320
|
-
it "updates a scheduled task to run every 5 hrs when frequency
|
320
|
+
it "updates a scheduled task to run every 5 hrs when frequency modifier updated to 5" do
|
321
321
|
subject.run_action(:create)
|
322
322
|
current_resource = call_for_load_current_resource
|
323
323
|
trigger_details = current_resource.task.trigger(0)
|
324
324
|
expect(trigger_details[:minutes_interval]).to eq(180)
|
325
|
-
# updating frequency
|
325
|
+
# updating frequency modifier to 5 from 3
|
326
326
|
subject.frequency_modifier 5
|
327
327
|
subject.run_action(:create)
|
328
328
|
expect(subject).to be_updated_by_last_action
|
@@ -501,7 +501,7 @@ describe Chef::Resource::WindowsTask, :windows_only do
|
|
501
501
|
|
502
502
|
it "raises argument error if frequency_modifier is 'first, second' and day is not provided." do
|
503
503
|
subject.frequency_modifier "first, second"
|
504
|
-
expect { subject.after_created }.to raise_error("Please select day on which you want to run the task e.g. 'Mon, Tue'. Multiple values must be
|
504
|
+
expect { subject.after_created }.to raise_error("Please select day on which you want to run the task e.g. 'Mon, Tue'. Multiple values must be separated by comma.")
|
505
505
|
end
|
506
506
|
|
507
507
|
it "raises argument error if months is passed along with frequency_modifier" do
|
@@ -532,7 +532,7 @@ describe Chef::Resource::WindowsTask, :windows_only do
|
|
532
532
|
expect { subject.after_created }.to raise_error("frequency_modifier value 0 is invalid. Valid values for :monthly frequency are 1 - 12, 'FIRST', 'SECOND', 'THIRD', 'FOURTH', 'LAST'.")
|
533
533
|
end
|
534
534
|
|
535
|
-
it "creates scheduled task to run task monthly on Monday and Friday of first, second and
|
535
|
+
it "creates scheduled task to run task monthly on Monday and Friday of first, second and third week of month" do
|
536
536
|
subject.frequency_modifier "first, second, third"
|
537
537
|
subject.day "Mon, Fri"
|
538
538
|
expect { subject.after_created }.not_to raise_error(ArgumentError)
|
@@ -0,0 +1,193 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Vasundhara Jagdale (<vasundhara.jagdale@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
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
|
+
|
18
|
+
require_relative "../../spec_helper"
|
19
|
+
require_relative "../../functional/resource/base"
|
20
|
+
|
21
|
+
describe Chef::Resource::WindowsUserPrivilege, :windows_only do
|
22
|
+
let(:principal) { nil }
|
23
|
+
let(:privilege) { nil }
|
24
|
+
let(:users) { nil }
|
25
|
+
let(:sensitive) { true }
|
26
|
+
|
27
|
+
let(:windows_test_run_context) do
|
28
|
+
node = Chef::Node.new
|
29
|
+
node.consume_external_attrs(OHAI_SYSTEM.data, {}) # node[:languages][:powershell][:version]
|
30
|
+
node.automatic["os"] = "windows"
|
31
|
+
node.automatic["platform"] = "windows"
|
32
|
+
node.automatic["platform_version"] = "6.1"
|
33
|
+
node.automatic["kernel"][:machine] = :x86_64 # Only 64-bit architecture is supported
|
34
|
+
empty_events = Chef::EventDispatch::Dispatcher.new
|
35
|
+
Chef::RunContext.new(node, {}, empty_events)
|
36
|
+
end
|
37
|
+
|
38
|
+
subject do
|
39
|
+
new_resource = Chef::Resource::WindowsUserPrivilege.new(principal, windows_test_run_context)
|
40
|
+
new_resource.privilege = privilege
|
41
|
+
new_resource.principal = principal
|
42
|
+
new_resource.users = users
|
43
|
+
new_resource
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#add privilege" do
|
47
|
+
after { subject.run_action(:remove) }
|
48
|
+
|
49
|
+
context "when privilege is passed as string" do
|
50
|
+
let(:principal) { "Administrator" }
|
51
|
+
let(:privilege) { "SeCreateSymbolicLinkPrivilege" }
|
52
|
+
|
53
|
+
it "adds user to privilege" do
|
54
|
+
# Removing so that add update happens
|
55
|
+
subject.run_action(:remove)
|
56
|
+
subject.run_action(:add)
|
57
|
+
expect(subject).to be_updated_by_last_action
|
58
|
+
end
|
59
|
+
|
60
|
+
it "is idempotent" do
|
61
|
+
subject.run_action(:add)
|
62
|
+
subject.run_action(:add)
|
63
|
+
expect(subject).not_to be_updated_by_last_action
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when privilege is passed as array" do
|
68
|
+
let(:principal) { "Administrator" }
|
69
|
+
let(:privilege) { %w{SeCreateSymbolicLinkPrivilege SeCreatePagefilePrivilege} }
|
70
|
+
|
71
|
+
it "adds user to privilege" do
|
72
|
+
subject.run_action(:add)
|
73
|
+
expect(subject).to be_updated_by_last_action
|
74
|
+
end
|
75
|
+
|
76
|
+
it "is idempotent" do
|
77
|
+
subject.run_action(:add)
|
78
|
+
subject.run_action(:add)
|
79
|
+
expect(subject).not_to be_updated_by_last_action
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "#set privilege" do
|
85
|
+
after { remove_user_privilege("Administrator", subject.privilege) }
|
86
|
+
|
87
|
+
let(:principal) { "user_privilege" }
|
88
|
+
let(:users) { %w{Administrators Administrator} }
|
89
|
+
let(:privilege) { %w{SeCreateSymbolicLinkPrivilege} }
|
90
|
+
|
91
|
+
it "sets user to privilege" do
|
92
|
+
subject.action(:set)
|
93
|
+
subject.run_action(:set)
|
94
|
+
expect(subject).to be_updated_by_last_action
|
95
|
+
end
|
96
|
+
|
97
|
+
it "is idempotent" do
|
98
|
+
subject.action(:set)
|
99
|
+
subject.run_action(:set)
|
100
|
+
subject.run_action(:set)
|
101
|
+
expect(subject).not_to be_updated_by_last_action
|
102
|
+
end
|
103
|
+
|
104
|
+
it "raise error if users not provided" do
|
105
|
+
subject.users = nil
|
106
|
+
subject.action(:set)
|
107
|
+
expect { subject.run_action(:set) }.to raise_error(Chef::Exceptions::ValidationFailed)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe "#remove privilege" do
|
112
|
+
let(:principal) { "Administrator" }
|
113
|
+
context "when privilege is passed as array" do
|
114
|
+
let(:privilege) { "SeCreateSymbolicLinkPrivilege" }
|
115
|
+
it "remove user from privilege" do
|
116
|
+
subject.run_action(:add)
|
117
|
+
subject.run_action(:remove)
|
118
|
+
expect(subject).to be_updated_by_last_action
|
119
|
+
end
|
120
|
+
|
121
|
+
it "is idempotent" do
|
122
|
+
subject.run_action(:add)
|
123
|
+
subject.run_action(:remove)
|
124
|
+
subject.run_action(:remove)
|
125
|
+
expect(subject).not_to be_updated_by_last_action
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context "when privilege is passed as array" do
|
130
|
+
let(:privilege) { %w{SeCreateSymbolicLinkPrivilege SeCreatePagefilePrivilege} }
|
131
|
+
it "remove user from privilege" do
|
132
|
+
subject.run_action(:add)
|
133
|
+
subject.run_action(:remove)
|
134
|
+
expect(subject).to be_updated_by_last_action
|
135
|
+
end
|
136
|
+
|
137
|
+
it "is idempotent" do
|
138
|
+
subject.run_action(:add)
|
139
|
+
subject.run_action(:remove)
|
140
|
+
subject.run_action(:remove)
|
141
|
+
expect(subject).not_to be_updated_by_last_action
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
describe "running with non admin user" do
|
147
|
+
include Chef::Mixin::UserContext
|
148
|
+
|
149
|
+
let(:user) { "security_user" }
|
150
|
+
let(:password) { "Security@123" }
|
151
|
+
let(:principal) { "user_privilege" }
|
152
|
+
let(:users) { ["Administrators", "#{domain}\\security_user"] }
|
153
|
+
let(:privilege) { %w{SeCreateSymbolicLinkPrivilege} }
|
154
|
+
|
155
|
+
let(:domain) do
|
156
|
+
ENV["COMPUTERNAME"]
|
157
|
+
end
|
158
|
+
|
159
|
+
before do
|
160
|
+
allow_any_instance_of(Chef::Mixin::UserContext).to receive(:node).and_return({ "platform_family" => "windows" })
|
161
|
+
add_user = Mixlib::ShellOut.new("net user #{user} #{password} /ADD")
|
162
|
+
add_user.run_command
|
163
|
+
add_user.error!
|
164
|
+
end
|
165
|
+
|
166
|
+
after do
|
167
|
+
remove_user_privilege("#{domain}\\#{user}", subject.privilege)
|
168
|
+
delete_user = Mixlib::ShellOut.new("net user #{user} /delete")
|
169
|
+
delete_user.run_command
|
170
|
+
delete_user.error!
|
171
|
+
end
|
172
|
+
|
173
|
+
it "sets user to privilege" do
|
174
|
+
subject.action(:set)
|
175
|
+
subject.run_action(:set)
|
176
|
+
expect(subject).to be_updated_by_last_action
|
177
|
+
end
|
178
|
+
|
179
|
+
it "is idempotent" do
|
180
|
+
subject.action(:set)
|
181
|
+
subject.run_action(:set)
|
182
|
+
subject.run_action(:set)
|
183
|
+
expect(subject).not_to be_updated_by_last_action
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
def remove_user_privilege(user, privilege)
|
188
|
+
subject.action(:remove)
|
189
|
+
subject.principal = user
|
190
|
+
subject.privilege = privilege
|
191
|
+
subject.run_action(:remove)
|
192
|
+
end
|
193
|
+
end
|
@@ -15,7 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
|
18
|
+
require_relative "../spec_helper"
|
19
19
|
require "chef/client"
|
20
20
|
|
21
21
|
describe Chef::RunLock do
|
@@ -82,7 +82,7 @@ describe Shell do
|
|
82
82
|
|
83
83
|
require "pty"
|
84
84
|
config = File.expand_path("shef-config.rb", CHEF_SPEC_DATA)
|
85
|
-
reader, writer, pid = PTY.spawn("bundle exec chef-shell -c #{config} #{options}")
|
85
|
+
reader, writer, pid = PTY.spawn("bundle exec chef-shell --no-multiline --no-singleline --no-colorize -c #{config} #{options}")
|
86
86
|
read_until(reader, "chef (#{Chef::VERSION})>")
|
87
87
|
yield reader, writer if block_given?
|
88
88
|
writer.puts('"done"')
|
@@ -15,7 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
|
18
|
+
require_relative "../spec_helper"
|
19
19
|
require "chef/mixin/shell_out"
|
20
20
|
require "chef/version"
|
21
21
|
require "ohai/version"
|
@@ -56,12 +56,6 @@ describe "Chef::Win32::Registry", :windows_only do
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
# Server Versions
|
60
|
-
# it "succeeds if server versiion is 2003R2, 2008, 2008R2, 2012" do
|
61
|
-
# end
|
62
|
-
# it "falis if the server versions are anything else" do
|
63
|
-
# end
|
64
|
-
|
65
59
|
describe "hive_exists?" do
|
66
60
|
it "returns true if the hive exists" do
|
67
61
|
expect(@registry.hive_exists?("HKCU\\Software\\Root")).to eq(true)
|
@@ -199,6 +199,28 @@ describe "Chef::Win32::Security", :windows_only do
|
|
199
199
|
end
|
200
200
|
end
|
201
201
|
|
202
|
+
describe ".get_account_with_user_rights" do
|
203
|
+
let(:domain) { ENV["COMPUTERNAME"] }
|
204
|
+
let(:username) { ENV["USERNAME"] }
|
205
|
+
|
206
|
+
context "when given a valid user right" do
|
207
|
+
it "gets all accounts associated with given user right" do
|
208
|
+
Chef::ReservedNames::Win32::Security.add_account_right(username, "SeBatchLogonRight")
|
209
|
+
expect(Chef::ReservedNames::Win32::Security.get_account_with_user_rights("SeBatchLogonRight").flatten).to include("#{domain}\\#{username}")
|
210
|
+
Chef::ReservedNames::Win32::Security.remove_account_right(username, "SeBatchLogonRight")
|
211
|
+
expect(Chef::ReservedNames::Win32::Security.get_account_with_user_rights("SeBatchLogonRight").flatten).not_to include("#{domain}\\#{username}")
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
context "when given an invalid user right" do
|
216
|
+
let(:user_right) { "SeTest" }
|
217
|
+
|
218
|
+
it "returns empty array" do
|
219
|
+
expect(Chef::ReservedNames::Win32::Security.get_account_with_user_rights(user_right)).to be_empty
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
202
224
|
describe ".test_and_raise_lsa_nt_status" do
|
203
225
|
# NTSTATUS code: 0xC0000001 / STATUS_UNSUCCESSFUL
|
204
226
|
# Windows Error: ERROR_GEN_FAILURE / 31 / 0x1F / A device attached to the system is not functioning.
|
@@ -11,8 +11,8 @@ describe "chef-client" do
|
|
11
11
|
File.join(CHEF_SPEC_DATA, "recipes.tgz")
|
12
12
|
end
|
13
13
|
|
14
|
-
def start_tiny_server(server_opts
|
15
|
-
@server = TinyServer::Manager.new(server_opts)
|
14
|
+
def start_tiny_server(**server_opts)
|
15
|
+
@server = TinyServer::Manager.new(**server_opts)
|
16
16
|
@server.start
|
17
17
|
@api = TinyServer::API.instance
|
18
18
|
@api.clear
|
@@ -739,4 +739,125 @@ EOM
|
|
739
739
|
expect(command.stdout).to include("NOFORK")
|
740
740
|
end
|
741
741
|
end
|
742
|
+
|
743
|
+
when_the_repository "has an eager_load_libraries false cookbook" do
|
744
|
+
before do
|
745
|
+
file "cookbooks/x/libraries/require_me.rb", <<~'EOM'
|
746
|
+
class RequireMe
|
747
|
+
end
|
748
|
+
EOM
|
749
|
+
file "cookbooks/x/recipes/default.rb", <<~'EOM'
|
750
|
+
# shouldn't be required by default
|
751
|
+
raise "boom" if defined?(RequireMe)
|
752
|
+
require "require_me"
|
753
|
+
# should be in the LOAD_PATH
|
754
|
+
raise "boom" unless defined?(RequireMe)
|
755
|
+
EOM
|
756
|
+
file "cookbooks/x/metadata.rb", <<~EOM
|
757
|
+
name 'x'
|
758
|
+
version '0.0.1'
|
759
|
+
eager_load_libraries false
|
760
|
+
EOM
|
761
|
+
file "config/client.rb", <<~EOM
|
762
|
+
local_mode true
|
763
|
+
cookbook_path "#{path_to("cookbooks")}"
|
764
|
+
EOM
|
765
|
+
end
|
766
|
+
|
767
|
+
it "should not eagerly load the library" do
|
768
|
+
result = shell_out("#{chef_client} -c \"#{path_to("config/client.rb")}\" -o 'x::default'", cwd: chef_dir)
|
769
|
+
result.error!
|
770
|
+
end
|
771
|
+
end
|
772
|
+
|
773
|
+
when_the_repository "has an eager_load_libraries cookbook with a default hook" do
|
774
|
+
before do
|
775
|
+
file "cookbooks/x/libraries/aa_require_me.rb", <<~'EOM'
|
776
|
+
class RequireMe
|
777
|
+
end
|
778
|
+
EOM
|
779
|
+
file "cookbooks/x/libraries/default.rb", <<~'EOM'
|
780
|
+
raise "boom" if defined?(RequireMe)
|
781
|
+
require "aa_require_me"
|
782
|
+
EOM
|
783
|
+
file "cookbooks/x/libraries/nope/default.rb", <<~'EOM'
|
784
|
+
raise "boom" # this should never be required
|
785
|
+
EOM
|
786
|
+
file "cookbooks/x/recipes/default.rb", <<~'EOM'
|
787
|
+
raise "boom" unless defined?(RequireMe)
|
788
|
+
EOM
|
789
|
+
file "cookbooks/x/metadata.rb", <<~EOM
|
790
|
+
name 'x'
|
791
|
+
version '0.0.1'
|
792
|
+
eager_load_libraries "default.rb"
|
793
|
+
EOM
|
794
|
+
file "config/client.rb", <<~EOM
|
795
|
+
local_mode true
|
796
|
+
cookbook_path "#{path_to("cookbooks")}"
|
797
|
+
always_dump_stacktrace true
|
798
|
+
EOM
|
799
|
+
end
|
800
|
+
|
801
|
+
it "should properly load the library via the hook" do
|
802
|
+
result = shell_out("#{chef_client} -c \"#{path_to("config/client.rb")}\" -o 'x::default'", cwd: chef_dir)
|
803
|
+
result.error!
|
804
|
+
end
|
805
|
+
end
|
806
|
+
|
807
|
+
when_the_repository "has an eager_load_libraries false cookbook" do
|
808
|
+
before do
|
809
|
+
# this is loaded by default.rb
|
810
|
+
file "cookbooks/x/libraries/aa_require_me.rb", <<~'EOM'
|
811
|
+
class RequireMe
|
812
|
+
end
|
813
|
+
EOM
|
814
|
+
# this is loaded by eager_load_libraries
|
815
|
+
file "cookbooks/x/libraries/default.rb", <<~'EOM'
|
816
|
+
raise "boom" if defined?(RequireMe)
|
817
|
+
require "aa_require_me"
|
818
|
+
EOM
|
819
|
+
# this is loaded by the recipe using the LOAD_PATH
|
820
|
+
file "cookbooks/x/libraries/require_me.rb", <<~'EOM'
|
821
|
+
class RequireMe4
|
822
|
+
end
|
823
|
+
EOM
|
824
|
+
# these two are loaded by eager_load_libraries glob
|
825
|
+
file "cookbooks/x/libraries/loadme/foo/require_me.rb", <<~'EOM'
|
826
|
+
class RequireMe2
|
827
|
+
end
|
828
|
+
EOM
|
829
|
+
file "cookbooks/x/libraries/loadme/require_me.rb", <<~'EOM'
|
830
|
+
class RequireMe3
|
831
|
+
end
|
832
|
+
EOM
|
833
|
+
# this should nevrer be loaded
|
834
|
+
file "cookbooks/x/libraries/nope/require_me.rb", <<~'EOM'
|
835
|
+
raise "boom" # this should never be required
|
836
|
+
EOM
|
837
|
+
file "cookbooks/x/recipes/default.rb", <<~'EOM'
|
838
|
+
# all these are loaded by the eager_load_libraries
|
839
|
+
raise "boom" unless defined?(RequireMe)
|
840
|
+
raise "boom" unless defined?(RequireMe2)
|
841
|
+
raise "boom" unless defined?(RequireMe3)
|
842
|
+
raise "boom" if defined?(RequireMe4)
|
843
|
+
require "require_me"
|
844
|
+
raise "boom" unless defined?(RequireMe4)
|
845
|
+
EOM
|
846
|
+
file "cookbooks/x/metadata.rb", <<~EOM
|
847
|
+
name 'x'
|
848
|
+
version '0.0.1'
|
849
|
+
eager_load_libraries [ "default.rb", "loadme/**/*.rb" ]
|
850
|
+
EOM
|
851
|
+
file "config/client.rb", <<~EOM
|
852
|
+
local_mode true
|
853
|
+
cookbook_path "#{path_to("cookbooks")}"
|
854
|
+
always_dump_stacktrace true
|
855
|
+
EOM
|
856
|
+
end
|
857
|
+
|
858
|
+
it "should not eagerly load the library" do
|
859
|
+
result = shell_out("#{chef_client} -c \"#{path_to("config/client.rb")}\" -o 'x::default'", cwd: chef_dir)
|
860
|
+
result.error!
|
861
|
+
end
|
862
|
+
end
|
742
863
|
end
|
@@ -43,25 +43,26 @@ describe "knife cookbook show", :workstation do
|
|
43
43
|
metadata:
|
44
44
|
chef_versions:
|
45
45
|
dependencies:
|
46
|
-
description:
|
46
|
+
description:
|
47
|
+
eager_load_libraries: true
|
47
48
|
gems:
|
48
|
-
issues_url:
|
49
|
-
license:
|
50
|
-
long_description:
|
51
|
-
maintainer:
|
52
|
-
maintainer_email:
|
53
|
-
name:
|
49
|
+
issues_url:
|
50
|
+
license: All rights reserved
|
51
|
+
long_description:
|
52
|
+
maintainer:
|
53
|
+
maintainer_email:
|
54
|
+
name: x
|
54
55
|
ohai_versions:
|
55
56
|
platforms:
|
56
|
-
privacy:
|
57
|
+
privacy: false
|
57
58
|
providing:
|
58
59
|
x: >= 0.0.0
|
59
60
|
x::x: >= 0.0.0
|
60
61
|
recipes:
|
61
|
-
x:
|
62
|
-
x::x:
|
63
|
-
source_url:
|
64
|
-
version:
|
62
|
+
x:
|
63
|
+
x::x:
|
64
|
+
source_url:
|
65
|
+
version: 1.0.0
|
65
66
|
name: x-1.0.0
|
66
67
|
recipes:
|
67
68
|
checksum: 4631b34cf58de10c5ef1304889941b2e
|
@@ -69,7 +70,7 @@ describe "knife cookbook show", :workstation do
|
|
69
70
|
path: recipes/default.rb
|
70
71
|
specificity: default
|
71
72
|
url: http://127.0.0.1:8900/file_store/checksums/4631b34cf58de10c5ef1304889941b2e
|
72
|
-
|
73
|
+
|
73
74
|
checksum: d41d8cd98f00b204e9800998ecf8427e
|
74
75
|
name: recipes/x.rb
|
75
76
|
path: recipes/x.rb
|
@@ -89,25 +90,26 @@ describe "knife cookbook show", :workstation do
|
|
89
90
|
knife("cookbook show x 1.0.0 metadata").should_succeed <<~EOM
|
90
91
|
chef_versions:
|
91
92
|
dependencies:
|
92
|
-
description:
|
93
|
+
description:
|
94
|
+
eager_load_libraries: true
|
93
95
|
gems:
|
94
|
-
issues_url:
|
95
|
-
license:
|
96
|
-
long_description:
|
97
|
-
maintainer:
|
98
|
-
maintainer_email:
|
99
|
-
name:
|
96
|
+
issues_url:
|
97
|
+
license: All rights reserved
|
98
|
+
long_description:
|
99
|
+
maintainer:
|
100
|
+
maintainer_email:
|
101
|
+
name: x
|
100
102
|
ohai_versions:
|
101
103
|
platforms:
|
102
|
-
privacy:
|
104
|
+
privacy: false
|
103
105
|
providing:
|
104
106
|
x: >= 0.0.0
|
105
107
|
x::x: >= 0.0.0
|
106
108
|
recipes:
|
107
|
-
x:
|
108
|
-
x::x:
|
109
|
-
source_url:
|
110
|
-
version:
|
109
|
+
x:
|
110
|
+
x::x:
|
111
|
+
source_url:
|
112
|
+
version: 1.0.0
|
111
113
|
EOM
|
112
114
|
end
|
113
115
|
|
@@ -118,7 +120,7 @@ describe "knife cookbook show", :workstation do
|
|
118
120
|
path: recipes/default.rb
|
119
121
|
specificity: default
|
120
122
|
url: http://127.0.0.1:8900/file_store/checksums/4631b34cf58de10c5ef1304889941b2e
|
121
|
-
|
123
|
+
|
122
124
|
checksum: d41d8cd98f00b204e9800998ecf8427e
|
123
125
|
name: recipes/x.rb
|
124
126
|
path: recipes/x.rb
|