chef 15.17.4-universal-mingw32 → 16.0.257-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +14 -20
- data/README.md +6 -6
- data/Rakefile +18 -23
- data/chef-universal-mingw32.gemspec +4 -4
- data/chef.gemspec +10 -26
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/action_collection.rb +16 -5
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +33 -54
- data/lib/chef/application/apply.rb +20 -3
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +6 -2
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +0 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -3
- data/lib/chef/client.rb +16 -14
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +45 -22
- data/lib/chef/cookbook_version.rb +40 -5
- data/lib/chef/data_bag.rb +2 -2
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/deprecated.rb +1 -9
- data/lib/chef/dist.rb +8 -0
- data/lib/chef/dsl/chef_vault.rb +84 -0
- data/lib/chef/dsl/declare_resource.rb +7 -5
- data/lib/chef/dsl/platform_introspection.rb +2 -3
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/environment.rb +2 -2
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +0 -3
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -2
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/knife.rb +1 -3
- data/lib/chef/knife/acl_add.rb +57 -0
- data/lib/chef/knife/acl_base.rb +183 -0
- data/lib/chef/knife/acl_bulk_add.rb +78 -0
- data/lib/chef/knife/acl_bulk_remove.rb +83 -0
- data/lib/chef/knife/acl_remove.rb +62 -0
- data/lib/chef/knife/acl_show.rb +56 -0
- data/lib/chef/knife/bootstrap.rb +93 -97
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +20 -20
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +13 -15
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -3
- data/lib/chef/knife/core/node_presenter.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/ui.rb +17 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +45 -58
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- data/lib/chef/knife/environment_compare.rb +1 -1
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/group_add.rb +55 -0
- data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
- data/lib/chef/knife/group_destroy.rb +53 -0
- data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
- data/lib/chef/knife/group_remove.rb +56 -0
- data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -50
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +1 -2
- data/lib/chef/knife/supermarket_list.rb +1 -2
- data/lib/chef/knife/supermarket_search.rb +1 -2
- data/lib/chef/knife/supermarket_share.rb +1 -2
- data/lib/chef/knife/supermarket_show.rb +1 -2
- data/lib/chef/knife/supermarket_unshare.rb +1 -2
- data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
- data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
- data/lib/chef/knife/user_invite_list.rb +34 -0
- data/lib/chef/knife/user_invite_recind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/create_path.rb +8 -8
- data/lib/chef/mixin/openssl_helper.rb +3 -26
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +13 -1
- data/lib/chef/mixin/shell_out.rb +0 -4
- data/lib/chef/mixin/template.rb +0 -1
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
- data/lib/chef/node/mixin/immutablize_array.rb +4 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
- data/lib/chef/node_map.rb +7 -36
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +22 -4
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +2 -2
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -8
- data/lib/chef/provider/file.rb +5 -5
- data/lib/chef/provider/git.rb +84 -27
- data/lib/chef/provider/group.rb +4 -4
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/launchd.rb +36 -51
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/mount/solaris.rb +1 -0
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +3 -4
- data/lib/chef/provider/package/chocolatey.rb +1 -3
- data/lib/chef/provider/package/dnf.rb +66 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +84 -30
- data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
- data/lib/chef/provider/package/dnf/version.rb +5 -1
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -3
- data/lib/chef/provider/package/homebrew.rb +106 -42
- data/lib/chef/provider/package/msu.rb +3 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/powershell.rb +2 -6
- data/lib/chef/provider/package/rubygems.rb +29 -2
- data/lib/chef/provider/package/snap.rb +27 -96
- data/lib/chef/provider/package/windows.rb +3 -2
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +0 -8
- data/lib/chef/provider/package/yum/yum_helper.py +0 -4
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +4 -10
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +3 -3
- data/lib/chef/provider/remote_file/ftp.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +2 -1
- data/lib/chef/provider/remote_file/sftp.rb +3 -2
- data/lib/chef/provider/route.rb +5 -3
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/provider/service.rb +8 -8
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +31 -29
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +7 -12
- data/lib/chef/provider/service/openbsd.rb +1 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +3 -3
- data/lib/chef/provider/service/systemd.rb +12 -12
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +5 -11
- data/lib/chef/provider/subversion.rb +25 -5
- data/lib/chef/provider/systemd_unit.rb +26 -25
- data/lib/chef/provider/user.rb +6 -6
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/mac.rb +10 -9
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/provider/windows_env.rb +3 -3
- data/lib/chef/provider/windows_script.rb +2 -2
- data/lib/chef/provider/windows_task.rb +7 -9
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +11 -31
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +41 -56
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +149 -0
- data/lib/chef/resource/apt_package.rb +2 -1
- data/lib/chef/resource/apt_preference.rb +69 -2
- data/lib/chef/resource/apt_repository.rb +337 -5
- data/lib/chef/resource/apt_update.rb +52 -1
- data/lib/chef/resource/archive_file.rb +9 -29
- data/lib/chef/resource/bash.rb +2 -0
- data/lib/chef/resource/bff_package.rb +9 -1
- data/lib/chef/resource/breakpoint.rb +0 -1
- data/lib/chef/resource/build_essential.rb +42 -48
- data/lib/chef/resource/cab_package.rb +8 -1
- data/lib/chef/resource/chef_client_cron.rb +225 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +198 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +177 -0
- data/lib/chef/resource/chef_gem.rb +9 -16
- data/lib/chef/resource/chef_handler.rb +2 -1
- data/lib/chef/resource/chef_sleep.rb +0 -1
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +3 -1
- data/lib/chef/resource/chocolatey_feature.rb +2 -1
- data/lib/chef/resource/chocolatey_package.rb +2 -1
- data/lib/chef/resource/chocolatey_source.rb +2 -1
- data/lib/chef/resource/cookbook_file.rb +1 -1
- data/lib/chef/resource/cron.rb +22 -68
- data/lib/chef/resource/cron_access.rb +8 -15
- data/lib/chef/resource/cron_d.rb +9 -75
- data/lib/chef/resource/csh.rb +2 -0
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +4 -4
- data/lib/chef/resource/dnf_package.rb +2 -3
- data/lib/chef/resource/dpkg_package.rb +2 -1
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +13 -12
- data/lib/chef/resource/file.rb +3 -1
- data/lib/chef/resource/freebsd_package.rb +2 -1
- data/lib/chef/resource/gem_package.rb +14 -6
- data/lib/chef/resource/group.rb +4 -1
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +5 -4
- data/lib/chef/resource/homebrew_package.rb +4 -2
- data/lib/chef/resource/homebrew_tap.rb +2 -1
- data/lib/chef/resource/hostname.rb +41 -36
- data/lib/chef/resource/http_request.rb +0 -1
- data/lib/chef/resource/ifconfig.rb +1 -1
- data/lib/chef/resource/ips_package.rb +10 -2
- data/lib/chef/resource/kernel_module.rb +29 -29
- data/lib/chef/resource/ksh.rb +2 -0
- data/lib/chef/resource/launchd.rb +6 -6
- data/lib/chef/resource/link.rb +1 -23
- data/lib/chef/resource/locale.rb +58 -24
- data/lib/chef/resource/log.rb +12 -1
- data/lib/chef/resource/lwrp_base.rb +1 -8
- data/lib/chef/resource/macos_userdefaults.rb +9 -6
- data/lib/chef/resource/macosx_service.rb +2 -1
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +62 -2
- data/lib/chef/resource/mount.rb +3 -0
- data/lib/chef/resource/msu_package.rb +13 -1
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +19 -3
- data/lib/chef/resource/ohai_hint.rb +3 -12
- data/lib/chef/resource/openbsd_package.rb +9 -1
- data/lib/chef/resource/openssl_dhparam.rb +10 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +23 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +21 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +20 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +22 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +37 -1
- data/lib/chef/resource/openssl_x509_crl.rb +12 -1
- data/lib/chef/resource/openssl_x509_request.rb +37 -1
- data/lib/chef/resource/osx_profile.rb +3 -2
- data/lib/chef/resource/package.rb +2 -1
- data/lib/chef/resource/pacman_package.rb +2 -1
- data/lib/chef/resource/paludis_package.rb +12 -3
- data/lib/chef/resource/perl.rb +2 -0
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +13 -3
- data/lib/chef/resource/powershell_package.rb +1 -3
- data/lib/chef/resource/powershell_package_source.rb +3 -1
- data/lib/chef/resource/powershell_script.rb +7 -17
- data/lib/chef/resource/python.rb +2 -0
- data/lib/chef/resource/reboot.rb +0 -1
- data/lib/chef/resource/registry_key.rb +1 -2
- data/lib/chef/resource/remote_directory.rb +2 -0
- data/lib/chef/resource/remote_file.rb +2 -0
- data/lib/chef/resource/rhsm_errata.rb +0 -1
- data/lib/chef/resource/rhsm_errata_level.rb +0 -1
- data/lib/chef/resource/rhsm_register.rb +2 -1
- data/lib/chef/resource/rhsm_repo.rb +3 -1
- data/lib/chef/resource/rhsm_subscription.rb +4 -1
- data/lib/chef/resource/route.rb +5 -1
- data/lib/chef/resource/rpm_package.rb +9 -2
- data/lib/chef/resource/ruby.rb +2 -0
- data/lib/chef/resource/ruby_block.rb +1 -1
- data/lib/chef/resource/scm/_scm.rb +48 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +8 -5
- data/lib/chef/resource/script.rb +6 -3
- data/lib/chef/resource/service.rb +6 -7
- data/lib/chef/resource/smartos_package.rb +9 -1
- data/lib/chef/resource/snap_package.rb +3 -1
- data/lib/chef/resource/solaris_package.rb +9 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +9 -9
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -2
- data/lib/chef/resource/support/ulimit.erb +41 -0
- data/lib/chef/resource/swap_file.rb +5 -3
- data/lib/chef/resource/sysctl.rb +2 -2
- data/lib/chef/resource/systemd_unit.rb +4 -2
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +7 -18
- data/lib/chef/resource/user.rb +1 -3
- data/lib/chef/resource/user/aix_user.rb +0 -2
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +0 -2
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user/pw_user.rb +0 -2
- data/lib/chef/resource/user/solaris_user.rb +0 -2
- data/lib/chef/resource/user/windows_user.rb +0 -2
- data/lib/chef/resource/user_ulimit.rb +114 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +19 -6
- data/lib/chef/resource/windows_auto_run.rb +0 -1
- data/lib/chef/resource/windows_certificate.rb +1 -1
- data/lib/chef/resource/windows_dfs_folder.rb +0 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
- data/lib/chef/resource/windows_dfs_server.rb +0 -1
- data/lib/chef/resource/windows_dns_record.rb +0 -1
- data/lib/chef/resource/windows_dns_zone.rb +0 -1
- data/lib/chef/resource/windows_env.rb +2 -3
- data/lib/chef/resource/windows_feature.rb +2 -2
- data/lib/chef/resource/windows_feature_dism.rb +9 -22
- data/lib/chef/resource/windows_feature_powershell.rb +17 -82
- data/lib/chef/resource/windows_firewall_rule.rb +119 -10
- data/lib/chef/resource/windows_font.rb +1 -3
- data/lib/chef/resource/windows_package.rb +13 -4
- data/lib/chef/resource/windows_pagefile.rb +0 -1
- data/lib/chef/resource/windows_path.rb +0 -1
- data/lib/chef/resource/windows_printer.rb +0 -1
- data/lib/chef/resource/windows_printer_port.rb +0 -1
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +90 -0
- data/lib/chef/resource/windows_service.rb +45 -31
- data/lib/chef/resource/windows_share.rb +3 -7
- data/lib/chef/resource/windows_shortcut.rb +0 -1
- data/lib/chef/resource/windows_task.rb +14 -15
- data/lib/chef/resource/windows_uac.rb +0 -1
- data/lib/chef/resource/windows_user_privilege.rb +157 -0
- data/lib/chef/resource/windows_workgroup.rb +0 -1
- data/lib/chef/resource/yum_package.rb +3 -1
- data/lib/chef/resource/yum_repository.rb +2 -1
- data/lib/chef/resource/zypper_package.rb +3 -2
- data/lib/chef/resource/zypper_repository.rb +2 -1
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +6 -6
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/role.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/shell.rb +23 -32
- data/lib/chef/shell/shell_session.rb +0 -2
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/configuration_generator.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/version_string.rb +1 -1
- data/lib/chef/win32/api/file.rb +18 -18
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +3 -11
- data/lib/chef/win32/process.rb +2 -2
- data/lib/chef/win32/security.rb +40 -2
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +27 -23
- data/spec/functional/resource/aix_service_spec.rb +1 -0
- data/spec/functional/resource/aixinit_service_spec.rb +8 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -0
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +11 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +6 -5
- data/spec/functional/resource/link_spec.rb +17 -17
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/rpm_spec.rb +2 -2
- data/spec/functional/resource/user/dscl_spec.rb +2 -2
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +8 -8
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -2
- data/spec/functional/shell_spec.rb +6 -6
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +0 -6
- data/spec/functional/win32/security_spec.rb +22 -0
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +123 -2
- data/spec/integration/knife/cookbook_show_spec.rb +28 -26
- data/spec/integration/knife/data_bag_show_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +30 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +50 -21
- data/spec/integration/recipes/notifying_block_spec.rb +9 -6
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +46 -144
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -3
- data/spec/integration/recipes/resource_load_spec.rb +133 -13
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +11 -14
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
- data/spec/support/platform_helpers.rb +44 -19
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +3 -3
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +5 -18
- data/spec/support/shared/integration/knife_support.rb +14 -8
- data/spec/unit/application/apply_spec.rb +3 -0
- data/spec/unit/application/client_spec.rb +5 -1
- data/spec/unit/application_spec.rb +1 -9
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +4 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +3 -4
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +38 -17
- data/spec/unit/dsl/platform_introspection_spec.rb +0 -1
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -3
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
- data/spec/unit/knife/bootstrap_spec.rb +36 -54
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +6 -5
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +8 -68
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/ssh_spec.rb +10 -113
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_spec.rb +3 -5
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/securable_spec.rb +1 -0
- data/spec/unit/mixin/user_context_spec.rb +9 -1
- data/spec/unit/node/attribute_spec.rb +2 -2
- data/spec/unit/node_spec.rb +24 -0
- data/spec/unit/platform/query_helpers_spec.rb +0 -143
- data/spec/unit/property/state_spec.rb +12 -7
- data/spec/unit/property/validation_spec.rb +25 -1
- data/spec/unit/property_spec.rb +18 -15
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +9 -11
- data/spec/unit/provider/apt_update_spec.rb +12 -11
- data/spec/unit/provider/cookbook_file_spec.rb +4 -4
- data/spec/unit/provider/cron_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +4 -15
- data/spec/unit/provider/file_spec.rb +4 -4
- data/spec/unit/provider/git_spec.rb +44 -4
- data/spec/unit/provider/link_spec.rb +0 -1
- data/spec/unit/provider/log_spec.rb +3 -3
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/osx_profile_spec.rb +2 -2
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +2 -2
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/msu_spec.rb +3 -3
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/powershell_spec.rb +88 -96
- data/spec/unit/provider/package/rubygems_spec.rb +221 -31
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +53 -30
- data/spec/unit/provider/powershell_script_spec.rb +21 -61
- data/spec/unit/provider/remote_file_spec.rb +3 -4
- data/spec/unit/provider/service/arch_service_spec.rb +2 -3
- data/spec/unit/provider/service/debian_service_spec.rb +35 -14
- data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider/service/windows_spec.rb +6 -2
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/systemd_unit_spec.rb +24 -28
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +25 -75
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/provider_spec.rb +0 -1
- data/spec/unit/recipe_spec.rb +68 -0
- data/spec/unit/resource/alternatives_spec.rb +120 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -18
- data/spec/unit/resource/apt_repository_spec.rb +0 -18
- data/spec/unit/resource/apt_update_spec.rb +0 -18
- data/spec/unit/resource/archive_file_spec.rb +2 -11
- data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
- data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
- data/spec/unit/resource/cron_d_spec.rb +6 -48
- data/spec/unit/resource/cron_spec.rb +4 -10
- data/spec/unit/resource/gem_package_spec.rb +3 -3
- data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
- data/spec/unit/resource/link_spec.rb +0 -4
- data/spec/unit/resource/locale_spec.rb +0 -34
- data/spec/unit/resource/ohai_spec.rb +56 -2
- data/spec/unit/resource/plist_spec.rb +130 -0
- data/spec/unit/resource/powershell_script_spec.rb +0 -5
- data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
- data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
- data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
- data/spec/unit/resource/service_spec.rb +4 -0
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/user_ulimit_spec.rb +53 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +6 -47
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +4 -1
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_reporter_spec.rb +1 -5
- data/spec/unit/resource_spec.rb +11 -4
- data/spec/unit/role_spec.rb +11 -11
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +0 -9
- data/spec/unit/win32/security_spec.rb +3 -4
- data/tasks/rspec.rb +1 -1
- metadata +116 -87
- data/lib/chef/dsl/core.rb +0 -52
- data/lib/chef/knife/cookbook_site_share.rb +0 -41
- data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
- data/lib/chef/provider/apt_preference.rb +0 -93
- data/lib/chef/provider/apt_repository.rb +0 -358
- data/lib/chef/provider/apt_update.rb +0 -79
- data/lib/chef/provider/log.rb +0 -43
- data/lib/chef/provider/mdadm.rb +0 -85
- data/lib/chef/provider/ohai.rb +0 -45
- data/lib/chef/resource/git.rb +0 -37
- data/spec/functional/resource/windows_font_spec.rb +0 -49
- data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -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
|
@@ -6,7 +6,6 @@ describe "Resource::ActionClass#converge_if_changed" do
|
|
6
6
|
module Namer
|
7
7
|
extend self
|
8
8
|
attr_accessor :current_index
|
9
|
-
|
10
9
|
def incrementing_value
|
11
10
|
@incrementing_value += 1
|
12
11
|
@incrementing_value
|
@@ -31,13 +30,12 @@ describe "Resource::ActionClass#converge_if_changed" do
|
|
31
30
|
property :state2, default: "default_state2"
|
32
31
|
property :sensitive1, default: "default_dontprintme", sensitive: true
|
33
32
|
attr_accessor :converged
|
34
|
-
|
35
33
|
def initialize(*args)
|
36
34
|
super
|
37
35
|
@converged = 0
|
38
36
|
end
|
39
37
|
end
|
40
|
-
result.
|
38
|
+
result.provides resource_name
|
41
39
|
result
|
42
40
|
end
|
43
41
|
let(:converged_recipe) { converge(converge_recipe) }
|
@@ -6,7 +6,6 @@ describe "Resource.load_current_value" do
|
|
6
6
|
module Namer
|
7
7
|
extend self
|
8
8
|
attr_accessor :current_index
|
9
|
-
|
10
9
|
def incrementing_value
|
11
10
|
@incrementing_value += 1
|
12
11
|
@incrementing_value
|
@@ -36,7 +35,7 @@ describe "Resource.load_current_value" do
|
|
36
35
|
new_resource.class.created_x = new_resource.x
|
37
36
|
end
|
38
37
|
end
|
39
|
-
result.
|
38
|
+
result.provides resource_name
|
40
39
|
result
|
41
40
|
end
|
42
41
|
|
@@ -66,17 +65,17 @@ describe "Resource.load_current_value" do
|
|
66
65
|
end
|
67
66
|
|
68
67
|
it "current_resource is passed name but not x" do
|
69
|
-
expect(resource.current_value.x).to eq "loaded
|
68
|
+
expect(resource.current_value.x).to eq "loaded 3 (name=blah)"
|
70
69
|
end
|
71
70
|
|
72
71
|
it "resource.current_value returns a different resource" do
|
73
|
-
expect(resource.current_value.x).to eq "loaded
|
72
|
+
expect(resource.current_value.x).to eq "loaded 3 (name=blah)"
|
74
73
|
expect(resource.x).to eq "desired"
|
75
74
|
end
|
76
75
|
|
77
76
|
it "resource.current_value constructs the resource anew each time" do
|
78
|
-
expect(resource.current_value.x).to eq "loaded 2 (name=blah)"
|
79
77
|
expect(resource.current_value.x).to eq "loaded 3 (name=blah)"
|
78
|
+
expect(resource.current_value.x).to eq "loaded 4 (name=blah)"
|
80
79
|
end
|
81
80
|
|
82
81
|
it "the provider accesses the current value of x" do
|
@@ -97,7 +96,7 @@ describe "Resource.load_current_value" do
|
|
97
96
|
end
|
98
97
|
|
99
98
|
it "i, name and d are passed to load_current_value, but not x" do
|
100
|
-
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)"
|
101
100
|
end
|
102
101
|
end
|
103
102
|
|
@@ -115,7 +114,7 @@ describe "Resource.load_current_value" do
|
|
115
114
|
end
|
116
115
|
|
117
116
|
it "i, name and d are passed to load_current_value, but not x" do
|
118
|
-
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)"
|
119
118
|
end
|
120
119
|
end
|
121
120
|
end
|
@@ -127,7 +126,7 @@ describe "Resource.load_current_value" do
|
|
127
126
|
r = Class.new(resource_class) do
|
128
127
|
property :y, default: lazy { "default_y #{Namer.incrementing_value}" }
|
129
128
|
end
|
130
|
-
r.
|
129
|
+
r.provides subresource_name
|
131
130
|
r
|
132
131
|
end
|
133
132
|
|
@@ -147,7 +146,7 @@ describe "Resource.load_current_value" do
|
|
147
146
|
|
148
147
|
context "and a child resource class with no load_current_value" do
|
149
148
|
it "the parent load_current_value is used" do
|
150
|
-
expect(subresource.current_value.x).to eq "loaded
|
149
|
+
expect(subresource.current_value.x).to eq "loaded 3 (name=blah)"
|
151
150
|
end
|
152
151
|
it "load_current_value yields a copy of the child class" do
|
153
152
|
expect(subresource.current_value).to be_kind_of(subresource_class)
|
@@ -166,8 +165,8 @@ describe "Resource.load_current_value" do
|
|
166
165
|
|
167
166
|
it "the overridden load_current_value is used" do
|
168
167
|
current_resource = subresource.current_value
|
169
|
-
expect(current_resource.x).to eq "default
|
170
|
-
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)"
|
171
170
|
end
|
172
171
|
end
|
173
172
|
|
@@ -184,10 +183,131 @@ describe "Resource.load_current_value" do
|
|
184
183
|
|
185
184
|
it "the original load_current_value is called as well as the child one" do
|
186
185
|
current_resource = subresource.current_value
|
187
|
-
expect(current_resource.x).to eq "loaded
|
188
|
-
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
|
189
207
|
end
|
190
208
|
end
|
191
209
|
end
|
192
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
|
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
|
293
|
+
end
|
294
|
+
end
|
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
|
193
313
|
end
|
@@ -6,7 +6,7 @@ describe "Unified Mode" do
|
|
6
6
|
include IntegrationSupport
|
7
7
|
include Chef::Mixin::ShellOut
|
8
8
|
|
9
|
-
let(:chef_dir) { File.expand_path("
|
9
|
+
let(:chef_dir) { File.expand_path("../../../../bin", __FILE__) }
|
10
10
|
|
11
11
|
let(:chef_client) { "bundle exec chef-client --minimal-ohai" }
|
12
12
|
|
@@ -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
|