chef 12.18.31 → 13.0.118
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 +15 -11
- data/README.md +13 -13
- data/Rakefile +1 -19
- data/VERSION +1 -1
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
- data/acceptance/Gemfile +8 -5
- data/acceptance/Gemfile.lock +90 -81
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +8 -7
- data/lib/chef/api_client.rb +8 -15
- data/lib/chef/api_client_v1.rb +9 -11
- data/lib/chef/application/apply.rb +8 -10
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/exit_code.rb +11 -82
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/solo.rb +0 -1
- data/lib/chef/application/windows_service.rb +36 -37
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/application.rb +15 -25
- data/lib/chef/audit/audit_event_proxy.rb +2 -2
- data/lib/chef/audit/control_group_data.rb +1 -1
- data/lib/chef/blacklist.rb +81 -0
- data/lib/chef/chef_class.rb +1 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
- data/lib/chef/chef_fs/command_line.rb +15 -16
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_pattern.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +18 -32
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
- data/lib/chef/chef_fs/file_system.rb +1 -1
- data/lib/chef/chef_fs/parallelizer.rb +9 -11
- data/lib/chef/client.rb +47 -11
- data/lib/chef/config_fetcher.rb +4 -4
- data/lib/chef/constants.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +10 -6
- data/lib/chef/cookbook/manifest_v0.rb +68 -0
- data/lib/chef/cookbook/manifest_v2.rb +41 -0
- data/lib/chef/cookbook/metadata.rb +25 -134
- data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
- data/lib/chef/cookbook/synchronizer.rb +24 -21
- data/lib/chef/cookbook/syntax_check.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +91 -65
- data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +69 -157
- data/lib/chef/data_bag.rb +1 -7
- data/lib/chef/data_bag_item.rb +5 -10
- data/lib/chef/data_collector/messages.rb +2 -0
- data/lib/chef/data_collector/resource_report.rb +32 -4
- data/lib/chef/data_collector.rb +3 -4
- data/lib/chef/decorator/unchain.rb +0 -16
- data/lib/chef/decorator.rb +1 -1
- data/lib/chef/deprecated.rb +53 -19
- data/lib/chef/dsl/audit.rb +2 -2
- data/lib/chef/dsl/declare_resource.rb +11 -17
- data/lib/chef/dsl/platform_introspection.rb +29 -31
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/dsl/recipe.rb +1 -4
- data/lib/chef/dsl/resources.rb +4 -13
- data/lib/chef/encrypted_data_bag_item.rb +2 -2
- data/lib/chef/environment.rb +9 -16
- data/lib/chef/event_dispatch/base.rb +16 -0
- data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
- data/lib/chef/exceptions.rb +6 -10
- data/lib/chef/file_access_control/unix.rb +14 -14
- data/lib/chef/file_access_control/windows.rb +1 -1
- data/lib/chef/formatters/error_description.rb +18 -1
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
- data/lib/chef/formatters/error_mapper.rb +6 -6
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
- data/lib/chef/http/api_versions.rb +54 -0
- data/lib/chef/http/authenticator.rb +15 -6
- data/lib/chef/http/json_output.rb +4 -1
- data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
- data/lib/chef/http/validate_content_length.rb +2 -2
- data/lib/chef/http.rb +39 -0
- data/lib/chef/json_compat.rb +7 -103
- data/lib/chef/key.rb +5 -10
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
- data/lib/chef/knife/bootstrap.rb +6 -0
- data/lib/chef/knife/configure.rb +1 -3
- data/lib/chef/knife/configure_client.rb +1 -3
- data/lib/chef/knife/cookbook_create.rb +1 -434
- data/lib/chef/knife/cookbook_download.rb +3 -4
- data/lib/chef/knife/cookbook_show.rb +7 -3
- data/lib/chef/knife/cookbook_site_install.rb +2 -2
- data/lib/chef/knife/core/bootstrap_context.rb +8 -7
- data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +2 -32
- data/lib/chef/knife/core/ui.rb +20 -27
- data/lib/chef/knife/data_bag_create.rb +6 -4
- data/lib/chef/knife/data_bag_secret_options.rb +1 -1
- data/lib/chef/knife/deps.rb +32 -34
- data/lib/chef/knife/edit.rb +1 -1
- data/lib/chef/knife/help.rb +1 -1
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/search.rb +9 -20
- data/lib/chef/knife/ssh.rb +62 -36
- data/lib/chef/knife/ssl_check.rb +1 -1
- data/lib/chef/knife/user_delete.rb +1 -1
- data/lib/chef/knife/xargs.rb +1 -1
- data/lib/chef/knife.rb +6 -7
- data/lib/chef/mash.rb +1 -1
- data/lib/chef/mixin/create_path.rb +3 -5
- data/lib/chef/mixin/from_file.rb +2 -2
- data/lib/chef/mixin/get_source_from_package.rb +2 -2
- data/lib/chef/mixin/notifying_block.rb +7 -9
- data/lib/chef/mixin/params_validate.rb +9 -8
- data/lib/chef/mixin/path_sanity.rb +17 -19
- data/lib/chef/mixin/securable.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +33 -29
- data/lib/chef/mixin/unformatter.rb +2 -2
- data/lib/chef/mixin/uris.rb +4 -6
- data/lib/chef/mixin/versioned_api.rb +84 -0
- data/lib/chef/mixin/which.rb +25 -8
- data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
- data/lib/chef/mixin/xml_escape.rb +3 -5
- data/lib/chef/mixins.rb +0 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
- data/lib/chef/node/attribute.rb +9 -32
- data/lib/chef/node/attribute_collections.rb +1 -19
- data/lib/chef/node/common_api.rb +5 -7
- data/lib/chef/node/immutable_collections.rb +42 -38
- data/lib/chef/node/mixin/immutablize_array.rb +1 -1
- data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
- data/lib/chef/node.rb +21 -20
- data/lib/chef/node_map.rb +2 -5
- data/lib/chef/org.rb +10 -17
- data/lib/chef/platform/provider_mapping.rb +2 -169
- data/lib/chef/platform/query_helpers.rb +1 -1
- data/lib/chef/platform/rebooter.rb +1 -2
- data/lib/chef/policy_builder/expand_node_object.rb +3 -29
- data/lib/chef/policy_builder/policyfile.rb +8 -6
- data/lib/chef/property.rb +66 -80
- data/lib/chef/provider/apt_repository.rb +6 -10
- data/lib/chef/provider/apt_update.rb +1 -7
- data/lib/chef/provider/batch.rb +1 -1
- data/lib/chef/provider/breakpoint.rb +2 -2
- data/lib/chef/provider/cookbook_file.rb +3 -9
- data/lib/chef/provider/cron.rb +42 -60
- data/lib/chef/provider/deploy/revision.rb +3 -5
- data/lib/chef/provider/deploy.rb +82 -88
- data/lib/chef/provider/directory.rb +33 -37
- data/lib/chef/provider/dsc_resource.rb +23 -11
- data/lib/chef/provider/dsc_script.rb +1 -5
- data/lib/chef/provider/env/windows.rb +5 -1
- data/lib/chef/provider/env.rb +32 -30
- data/lib/chef/provider/erl_call.rb +15 -47
- data/lib/chef/provider/execute.rb +7 -8
- data/lib/chef/provider/file.rb +49 -61
- data/lib/chef/provider/git.rb +56 -60
- data/lib/chef/provider/group.rb +1 -7
- data/lib/chef/provider/http_request.rb +37 -41
- data/lib/chef/provider/ifconfig/redhat.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +0 -6
- data/lib/chef/provider/launchd.rb +6 -2
- data/lib/chef/provider/link.rb +51 -55
- data/lib/chef/provider/log.rb +3 -7
- data/lib/chef/provider/lwrp_base.rb +0 -9
- data/lib/chef/provider/mdadm.rb +25 -33
- data/lib/chef/provider/mount/aix.rb +2 -2
- data/lib/chef/provider/mount/mount.rb +2 -2
- data/lib/chef/provider/mount.rb +1 -5
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/ohai.rb +1 -7
- data/lib/chef/provider/osx_profile.rb +24 -29
- data/lib/chef/provider/package/aix.rb +55 -53
- data/lib/chef/provider/package/apt.rb +15 -13
- data/lib/chef/provider/package/cab.rb +48 -20
- data/lib/chef/provider/package/chocolatey.rb +9 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
- data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
- data/lib/chef/provider/package/dnf/version.rb +1 -1
- data/lib/chef/provider/package/dnf.rb +21 -19
- data/lib/chef/provider/package/dpkg.rb +8 -9
- data/lib/chef/provider/package/freebsd/base.rb +10 -10
- data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
- data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
- data/lib/chef/provider/package/freebsd/port.rb +7 -7
- data/lib/chef/provider/package/homebrew.rb +11 -10
- data/lib/chef/provider/package/ips.rb +18 -24
- data/lib/chef/provider/package/macports.rb +23 -23
- data/lib/chef/provider/package/msu.rb +11 -12
- data/lib/chef/provider/package/openbsd.rb +25 -22
- data/lib/chef/provider/package/pacman.rb +16 -17
- data/lib/chef/provider/package/paludis.rb +26 -27
- data/lib/chef/provider/package/portage.rb +22 -23
- data/lib/chef/provider/package/powershell.rb +17 -17
- data/lib/chef/provider/package/rpm.rb +25 -26
- data/lib/chef/provider/package/rubygems.rb +64 -62
- data/lib/chef/provider/package/smartos.rb +16 -16
- data/lib/chef/provider/package/solaris.rb +44 -45
- data/lib/chef/provider/package/windows/exe.rb +6 -6
- data/lib/chef/provider/package/windows/msi.rb +7 -7
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
- data/lib/chef/provider/package/windows.rb +3 -3
- data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
- data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
- data/lib/chef/provider/package/yum.rb +319 -269
- data/lib/chef/provider/package/zypper.rb +10 -20
- data/lib/chef/provider/package.rb +71 -63
- data/lib/chef/provider/powershell_script.rb +15 -7
- data/lib/chef/provider/reboot.rb +10 -14
- data/lib/chef/provider/registry_key.rb +39 -43
- data/lib/chef/provider/remote_directory.rb +3 -15
- data/lib/chef/provider/remote_file.rb +3 -9
- data/lib/chef/provider/route.rb +1 -7
- data/lib/chef/provider/ruby_block.rb +4 -8
- data/lib/chef/provider/script.rb +42 -6
- data/lib/chef/provider/service/aix.rb +1 -5
- data/lib/chef/provider/service/debian.rb +15 -21
- data/lib/chef/provider/service/freebsd.rb +0 -1
- data/lib/chef/provider/service/gentoo.rb +0 -1
- data/lib/chef/provider/service/init.rb +0 -1
- data/lib/chef/provider/service/insserv.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +0 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +0 -5
- data/lib/chef/provider/service/solaris.rb +5 -4
- data/lib/chef/provider/service/systemd.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +10 -12
- data/lib/chef/provider/service/windows.rb +1 -5
- data/lib/chef/provider/service.rb +51 -58
- data/lib/chef/provider/subversion.rb +40 -46
- data/lib/chef/provider/systemd_unit.rb +2 -0
- data/lib/chef/provider/template/content.rb +24 -1
- data/lib/chef/provider/template.rb +3 -9
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/linux.rb +6 -5
- data/lib/chef/provider/user/pw.rb +4 -10
- data/lib/chef/provider/user/solaris.rb +2 -2
- data/lib/chef/provider/user/useradd.rb +5 -5
- data/lib/chef/provider/user.rb +43 -59
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
- data/lib/chef/provider/windows_task.rb +418 -0
- data/lib/chef/provider/yum_repository.rb +3 -6
- data/lib/chef/provider.rb +63 -115
- data/lib/chef/provider_resolver.rb +8 -34
- data/lib/chef/providers.rb +1 -1
- data/lib/chef/recipe.rb +9 -1
- data/lib/chef/resource/action_class.rb +13 -17
- data/lib/chef/resource/apt_repository.rb +0 -1
- data/lib/chef/resource/apt_update.rb +3 -1
- data/lib/chef/resource/chef_gem.rb +4 -11
- data/lib/chef/resource/chocolatey_package.rb +4 -1
- data/lib/chef/resource/dnf_package.rb +6 -3
- data/lib/chef/resource/dsc_resource.rb +9 -1
- data/lib/chef/resource/execute.rb +66 -19
- data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
- data/lib/chef/resource/file/verification.rb +2 -7
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +16 -2
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/lwrp_base.rb +0 -2
- data/lib/chef/resource/mount.rb +5 -12
- data/lib/chef/resource/package.rb +2 -2
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/script.rb +8 -34
- data/lib/chef/resource/service.rb +15 -13
- data/lib/chef/resource/systemd_unit.rb +5 -0
- data/lib/chef/resource/user/aix_user.rb +1 -1
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +1 -10
- data/lib/chef/resource/user/pw_user.rb +1 -1
- data/lib/chef/resource/user/solaris_user.rb +1 -1
- data/lib/chef/resource/user/windows_user.rb +1 -1
- data/lib/chef/resource/user.rb +1 -19
- data/lib/chef/resource/windows_package.rb +4 -1
- data/lib/chef/resource/windows_task.rb +237 -0
- data/lib/chef/resource/yum_package.rb +13 -4
- data/lib/chef/resource/yum_repository.rb +0 -1
- data/lib/chef/resource/zypper_package.rb +2 -0
- data/lib/chef/resource.rb +90 -202
- data/lib/chef/resource_builder.rb +1 -65
- data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
- data/lib/chef/resource_collection/resource_list.rb +6 -0
- data/lib/chef/resource_collection/resource_set.rb +44 -17
- data/lib/chef/resource_collection.rb +10 -0
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resource_resolver.rb +1 -25
- data/lib/chef/resources.rb +1 -1
- data/lib/chef/role.rb +0 -6
- data/lib/chef/run_context/cookbook_compiler.rb +49 -5
- data/lib/chef/run_context.rb +4 -25
- data/lib/chef/run_list/run_list_item.rb +1 -1
- data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
- data/lib/chef/search/query.rb +26 -31
- data/lib/chef/server_api.rb +2 -0
- data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/shell/shell_session.rb +14 -4
- data/lib/chef/shell.rb +32 -7
- data/lib/chef/user.rb +9 -16
- data/lib/chef/user_v1.rb +9 -16
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
- data/lib/chef/util/selinux.rb +1 -1
- data/lib/chef/util/windows/net_group.rb +18 -30
- data/lib/chef/util/windows/net_use.rb +7 -11
- data/lib/chef/util/windows/net_user.rb +12 -18
- data/lib/chef/util/windows/volume.rb +9 -15
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/win32/api/file.rb +25 -31
- data/lib/chef/win32/api/installer.rb +2 -2
- data/lib/chef/win32/api.rb +4 -6
- data/lib/chef/win32/file.rb +4 -6
- data/lib/chef/win32/registry.rb +9 -9
- data/lib/chef/win32/security/acl.rb +2 -2
- data/lib/chef/win32/security/sid.rb +5 -0
- data/lib/chef/win32/security.rb +2 -2
- data/lib/chef/win32/unicode.rb +2 -2
- data/lib/chef/win32/version.rb +1 -1
- data/lib/chef.rb +1 -2
- data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
- data/spec/data/lwrp/resources/buck_passer.rb +5 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
- data/spec/data/prefer_metadata_json/metadata.json +51 -0
- data/spec/data/prefer_metadata_json/metadata.rb +6 -0
- data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
- data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
- data/spec/data/shef-config.rb +11 -10
- data/spec/functional/knife/ssh_spec.rb +34 -6
- data/spec/functional/rebooter_spec.rb +1 -0
- data/spec/functional/resource/bash_spec.rb +11 -45
- data/spec/functional/resource/batch_spec.rb +5 -1
- data/spec/functional/resource/cron_spec.rb +2 -2
- data/spec/functional/resource/dsc_script_spec.rb +2 -4
- data/spec/functional/resource/execute_spec.rb +17 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/template_spec.rb +33 -0
- data/spec/functional/resource/user/dscl_spec.rb +2 -4
- data/spec/functional/root_alias_spec.rb +78 -0
- data/spec/functional/shell_spec.rb +38 -40
- data/spec/integration/client/client_spec.rb +109 -16
- data/spec/integration/client/exit_code_spec.rb +1 -105
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
- data/spec/integration/knife/cookbook_download_spec.rb +0 -24
- data/spec/integration/knife/cookbook_show_spec.rb +12 -23
- data/spec/integration/knife/deps_spec.rb +5 -9
- data/spec/integration/knife/search_node_spec.rb +39 -0
- data/spec/integration/knife/serve_spec.rb +58 -22
- data/spec/integration/knife/upload_spec.rb +3 -11
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
- data/spec/integration/recipes/notifies_spec.rb +60 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
- data/spec/integration/recipes/resource_action_spec.rb +37 -30
- data/spec/spec_helper.rb +7 -0
- data/spec/support/chef_helpers.rb +5 -7
- data/spec/support/platform_helpers.rb +10 -3
- data/spec/support/platforms/prof/gc.rb +4 -6
- data/spec/support/shared/context/client.rb +9 -2
- data/spec/support/shared/functional/execute_resource.rb +150 -0
- data/spec/support/shared/functional/windows_script.rb +74 -4
- data/spec/support/shared/integration/knife_support.rb +1 -1
- data/spec/support/shared/unit/execute_resource.rb +37 -9
- data/spec/support/shared/unit/provider/file.rb +10 -0
- data/spec/support/shared/unit/script_resource.rb +1 -9
- data/spec/unit/application/exit_code_spec.rb +4 -89
- data/spec/unit/application_spec.rb +39 -29
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
- data/spec/unit/client_spec.rb +72 -31
- data/spec/unit/config_fetcher_spec.rb +2 -2
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
- data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
- data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
- data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
- data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
- data/spec/unit/cookbook/metadata_spec.rb +29 -108
- data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
- data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
- data/spec/unit/cookbook_loader_spec.rb +17 -19
- data/spec/unit/cookbook_manifest_spec.rb +12 -44
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
- data/spec/unit/cookbook_spec.rb +10 -14
- data/spec/unit/cookbook_uploader_spec.rb +1 -1
- data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
- data/spec/unit/cookbook_version_spec.rb +19 -128
- data/spec/unit/data_bag_item_spec.rb +4 -0
- data/spec/unit/data_collector/messages_spec.rb +137 -0
- data/spec/unit/data_collector/resource_report_spec.rb +145 -0
- data/spec/unit/deprecation_spec.rb +0 -14
- data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
- data/spec/unit/formatters/error_description_spec.rb +52 -7
- data/spec/unit/http/api_versions_spec.rb +79 -0
- data/spec/unit/http/authenticator_spec.rb +20 -0
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
- data/spec/unit/json_compat_spec.rb +0 -32
- data/spec/unit/knife/bootstrap_spec.rb +34 -0
- data/spec/unit/knife/configure_client_spec.rb +0 -2
- data/spec/unit/knife/cookbook_create_spec.rb +1 -220
- data/spec/unit/knife/cookbook_download_spec.rb +46 -28
- data/spec/unit/knife/cookbook_show_spec.rb +42 -9
- data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
- data/spec/unit/knife/core/ui_spec.rb +21 -11
- data/spec/unit/knife/data_bag_create_spec.rb +65 -45
- data/spec/unit/knife/ssh_spec.rb +34 -36
- data/spec/unit/knife_spec.rb +2 -2
- data/spec/unit/lwrp_spec.rb +38 -127
- data/spec/unit/mixin/path_sanity_spec.rb +7 -7
- data/spec/unit/mixin/shell_out_spec.rb +18 -84
- data/spec/unit/mixin/versioned_api_spec.rb +128 -0
- data/spec/unit/mixin/which.rb +160 -0
- data/spec/unit/node/attribute_spec.rb +65 -33
- data/spec/unit/node/immutable_collections_spec.rb +104 -1
- data/spec/unit/node_map_spec.rb +1 -23
- data/spec/unit/node_spec.rb +81 -98
- data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
- data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
- data/spec/unit/property/validation_spec.rb +51 -69
- data/spec/unit/property_spec.rb +105 -125
- data/spec/unit/provider/apt_repository_spec.rb +33 -27
- data/spec/unit/provider/cron_spec.rb +15 -39
- data/spec/unit/provider/deploy_spec.rb +1 -1
- data/spec/unit/provider/directory_spec.rb +10 -0
- data/spec/unit/provider/dsc_resource_spec.rb +175 -0
- data/spec/unit/provider/erl_call_spec.rb +5 -13
- data/spec/unit/provider/execute_spec.rb +3 -14
- data/spec/unit/provider/launchd_spec.rb +2 -2
- data/spec/unit/provider/package/aix_spec.rb +22 -22
- data/spec/unit/provider/package/apt_spec.rb +37 -27
- data/spec/unit/provider/package/cab_spec.rb +59 -5
- data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
- data/spec/unit/provider/package/dpkg_spec.rb +16 -16
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
- data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
- data/spec/unit/provider/package/homebrew_spec.rb +9 -9
- data/spec/unit/provider/package/ips_spec.rb +37 -31
- data/spec/unit/provider/package/macports_spec.rb +10 -10
- data/spec/unit/provider/package/openbsd_spec.rb +10 -10
- data/spec/unit/provider/package/pacman_spec.rb +6 -6
- data/spec/unit/provider/package/paludis_spec.rb +7 -7
- data/spec/unit/provider/package/portage_spec.rb +6 -7
- data/spec/unit/provider/package/rpm_spec.rb +23 -23
- data/spec/unit/provider/package/rubygems_spec.rb +135 -46
- data/spec/unit/provider/package/solaris_spec.rb +15 -15
- data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum_spec.rb +58 -50
- data/spec/unit/provider/package/zypper_spec.rb +54 -97
- data/spec/unit/provider/package_spec.rb +8 -0
- data/spec/unit/provider/powershell_script_spec.rb +14 -4
- data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
- data/spec/unit/provider/route_spec.rb +7 -1
- data/spec/unit/provider/script_spec.rb +49 -6
- data/spec/unit/provider/service/debian_service_spec.rb +14 -20
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
- data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
- data/spec/unit/provider/subversion_spec.rb +2 -2
- data/spec/unit/provider/user/linux_spec.rb +5 -43
- data/spec/unit/provider/user/pw_spec.rb +7 -27
- data/spec/unit/provider/windows_task_spec.rb +392 -0
- data/spec/unit/provider_resolver_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +10 -3
- data/spec/unit/recipe_spec.rb +3 -172
- data/spec/unit/resource/chef_gem_spec.rb +16 -62
- data/spec/unit/resource/conditional_spec.rb +4 -4
- data/spec/unit/resource/cookbook_file_spec.rb +2 -2
- data/spec/unit/resource/cron_spec.rb +1 -1
- data/spec/unit/resource/deploy_spec.rb +4 -4
- data/spec/unit/resource/directory_spec.rb +2 -2
- data/spec/unit/resource/dsc_resource_spec.rb +6 -0
- data/spec/unit/resource/env_spec.rb +1 -1
- data/spec/unit/resource/execute_spec.rb +215 -1
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
- data/spec/unit/resource/file/verification_spec.rb +8 -14
- data/spec/unit/resource/file_spec.rb +3 -3
- data/spec/unit/resource/freebsd_package_spec.rb +2 -2
- data/spec/unit/resource/group_spec.rb +2 -2
- data/spec/unit/resource/ifconfig_spec.rb +1 -1
- data/spec/unit/resource/link_spec.rb +2 -2
- data/spec/unit/resource/mdadm_spec.rb +1 -1
- data/spec/unit/resource/mount_spec.rb +3 -3
- data/spec/unit/resource/ohai_spec.rb +1 -1
- data/spec/unit/resource/package_spec.rb +14 -4
- data/spec/unit/resource/registry_key_spec.rb +2 -2
- data/spec/unit/resource/remote_directory_spec.rb +2 -2
- data/spec/unit/resource/remote_file_spec.rb +2 -2
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/scm_spec.rb +2 -2
- data/spec/unit/resource/script_spec.rb +1 -1
- data/spec/unit/resource/service_spec.rb +25 -5
- data/spec/unit/resource/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/user_spec.rb +6 -6
- data/spec/unit/resource/windows_task_spec.rb +213 -0
- data/spec/unit/resource/yum_package_spec.rb +42 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
- data/spec/unit/resource_collection_spec.rb +4 -3
- data/spec/unit/resource_reporter_spec.rb +6 -6
- data/spec/unit/resource_spec.rb +55 -71
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
- data/spec/unit/runner_spec.rb +10 -28
- data/spec/unit/search/query_spec.rb +32 -34
- data/spec/unit/server_api_versions_spec.rb +44 -0
- data/spec/unit/shell/shell_session_spec.rb +33 -2
- data/spec/unit/util/selinux_spec.rb +3 -14
- data/spec/unit/win32/error_spec.rb +67 -0
- data/spec/unit/win32/security_spec.rb +66 -0
- data/tasks/bundle.rb +36 -52
- data/tasks/changelog.rb +1 -1
- data/tasks/dependencies.rb +54 -52
- data/tasks/version.rb +41 -0
- metadata +91 -76
- data/lib/chef/deprecation/mixin/template.rb +0 -48
- data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
- data/lib/chef/deprecation/provider/file.rb +0 -198
- data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
- data/lib/chef/deprecation/provider/remote_file.rb +0 -85
- data/lib/chef/deprecation/provider/template.rb +0 -63
- data/lib/chef/dsl/method_missing.rb +0 -75
- data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
- data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
- data/lib/chef/mixin/command/unix.rb +0 -220
- data/lib/chef/mixin/command/windows.rb +0 -71
- data/lib/chef/mixin/command.rb +0 -194
- data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
- data/lib/chef/provider/package/easy_install.rb +0 -135
- data/lib/chef/rest.rb +0 -210
- data/lib/chef/shell_out.rb +0 -13
- data/lib/chef/tasks/chef_repo.rake +0 -200
- data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
- data/spec/functional/rest_spec.rb +0 -95
- data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
- data/spec/unit/lib_backcompat_spec.rb +0 -34
- data/spec/unit/mixin/command_spec.rb +0 -107
- data/spec/unit/platform_spec.rb +0 -242
- data/spec/unit/provider/package/easy_install_spec.rb +0 -114
- data/spec/unit/resource/easy_install_package_spec.rb +0 -39
- data/spec/unit/rest/auth_credentials_spec.rb +0 -292
- data/spec/unit/rest_spec.rb +0 -753
- data/spec/unit/shell_out_spec.rb +0 -18
- data/tasks/bin/bundle-platform +0 -20
- data/tasks/bin/bundle-platform.bat +0 -2
- data/tasks/bin/bundler_patch.rb +0 -27
- data/tasks/bin/gem-version-diff +0 -37
- data/tasks/bundle_util.rb +0 -110
|
@@ -59,21 +59,30 @@ describe "Recipe DSL methods" do
|
|
|
59
59
|
expect(BaseThingy.created_resource).to eq BaseThingy
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
-
it "errors
|
|
62
|
+
it "errors when you call base_thingy do ... end in a recipe" do
|
|
63
63
|
expect_converge do
|
|
64
64
|
base_thingy { ; }
|
|
65
|
-
end.to raise_error(
|
|
65
|
+
end.to raise_error(Chef::Exceptions::ValidationFailed)
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
context "nameless resources" do
|
|
69
|
+
before(:context) do
|
|
70
|
+
class NamelessThingy < BaseThingy
|
|
71
|
+
resource_name :nameless_thingy
|
|
72
|
+
provides :nameless_thingy
|
|
73
|
+
|
|
74
|
+
property :name, String, default: ""
|
|
72
75
|
end
|
|
73
76
|
end
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
|
|
78
|
+
it "does not error when not given a name" do
|
|
79
|
+
recipe = converge do
|
|
80
|
+
nameless_thingy {}
|
|
81
|
+
end
|
|
82
|
+
expect(recipe.logged_warnings).to eq ""
|
|
83
|
+
expect(BaseThingy.created_name).to eq ""
|
|
84
|
+
expect(BaseThingy.created_resource).to eq NamelessThingy
|
|
85
|
+
end
|
|
77
86
|
end
|
|
78
87
|
|
|
79
88
|
context "Deprecated automatic resource DSL" do
|
|
@@ -81,52 +90,6 @@ describe "Recipe DSL methods" do
|
|
|
81
90
|
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
|
82
91
|
end
|
|
83
92
|
|
|
84
|
-
context "with a resource 'backcompat_thingy' declared in Chef::Resource and Chef::Provider" do
|
|
85
|
-
before(:context) do
|
|
86
|
-
|
|
87
|
-
class Chef::Resource::BackcompatThingy < Chef::Resource
|
|
88
|
-
default_action :create
|
|
89
|
-
end
|
|
90
|
-
class Chef::Provider::BackcompatThingy < Chef::Provider
|
|
91
|
-
def load_current_resource
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def action_create
|
|
95
|
-
BaseThingy.created_resource = new_resource.class
|
|
96
|
-
BaseThingy.created_provider = self.class
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
it "backcompat_thingy creates a Chef::Resource::BackcompatThingy" do
|
|
103
|
-
recipe = converge do
|
|
104
|
-
backcompat_thingy("blah") {}
|
|
105
|
-
end
|
|
106
|
-
expect(BaseThingy.created_resource).to eq Chef::Resource::BackcompatThingy
|
|
107
|
-
expect(BaseThingy.created_provider).to eq Chef::Provider::BackcompatThingy
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
context "and another resource 'backcompat_thingy' in BackcompatThingy with 'provides'" do
|
|
111
|
-
before(:context) do
|
|
112
|
-
|
|
113
|
-
class RecipeDSLSpecNamespace::BackcompatThingy < BaseThingy
|
|
114
|
-
provides :backcompat_thingy
|
|
115
|
-
resource_name :backcompat_thingy
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
it "backcompat_thingy creates a BackcompatThingy" do
|
|
121
|
-
recipe = converge do
|
|
122
|
-
backcompat_thingy("blah") {}
|
|
123
|
-
end
|
|
124
|
-
expect(recipe.logged_warnings).to match(/Class Chef::Provider::BackcompatThingy does not declare 'provides :backcompat_thingy'./)
|
|
125
|
-
expect(BaseThingy.created_resource).not_to be_nil
|
|
126
|
-
end
|
|
127
|
-
end
|
|
128
|
-
end
|
|
129
|
-
|
|
130
93
|
context "with a resource named RecipeDSLSpecNamespace::Bar::BarThingy" do
|
|
131
94
|
before(:context) do
|
|
132
95
|
|
|
@@ -861,9 +824,9 @@ describe "Recipe DSL methods" do
|
|
|
861
824
|
before { resource_class_a } # pull on it so it gets defined before the recipe runs
|
|
862
825
|
|
|
863
826
|
it "two_classes_one_dsl resolves to A (alphabetically earliest)" do
|
|
864
|
-
|
|
827
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
865
828
|
recipe = converge do
|
|
866
|
-
instance_eval("#{
|
|
829
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
867
830
|
end
|
|
868
831
|
expect(recipe.logged_warnings).to eq ""
|
|
869
832
|
expect(BaseThingy.created_resource).to eq resource_class_a
|
|
@@ -891,9 +854,9 @@ describe "Recipe DSL methods" do
|
|
|
891
854
|
before { resource_class_z } # pull on it so it gets defined before the recipe runs
|
|
892
855
|
|
|
893
856
|
it "two_classes_one_dsl resolves to B (alphabetically earliest)" do
|
|
894
|
-
|
|
857
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
895
858
|
recipe = converge do
|
|
896
|
-
instance_eval("#{
|
|
859
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
897
860
|
end
|
|
898
861
|
expect(recipe.logged_warnings).to eq ""
|
|
899
862
|
expect(BaseThingy.created_resource).to eq resource_class
|
|
@@ -909,9 +872,9 @@ describe "Recipe DSL methods" do
|
|
|
909
872
|
end
|
|
910
873
|
|
|
911
874
|
it "two_classes_one_dsl resolves to Z (respects the priority array)" do
|
|
912
|
-
|
|
875
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
913
876
|
recipe = converge do
|
|
914
|
-
instance_eval("#{
|
|
877
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
915
878
|
end
|
|
916
879
|
expect(recipe.logged_warnings).to eq ""
|
|
917
880
|
expect(BaseThingy.created_resource).to eq resource_class_z
|
|
@@ -927,9 +890,9 @@ describe "Recipe DSL methods" do
|
|
|
927
890
|
end
|
|
928
891
|
|
|
929
892
|
it "two_classes_one_dsl resolves to B (picks the next thing in the priority array)" do
|
|
930
|
-
|
|
893
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
931
894
|
recipe = converge do
|
|
932
|
-
instance_eval("#{
|
|
895
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
933
896
|
end
|
|
934
897
|
expect(recipe.logged_warnings).to eq ""
|
|
935
898
|
expect(BaseThingy.created_resource).to eq resource_class
|
|
@@ -948,9 +911,9 @@ describe "Recipe DSL methods" do
|
|
|
948
911
|
end
|
|
949
912
|
|
|
950
913
|
it "two_classes_one_dsl resolves to Z (respects the most recent priority array)" do
|
|
951
|
-
|
|
914
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
952
915
|
recipe = converge do
|
|
953
|
-
instance_eval("#{
|
|
916
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
954
917
|
end
|
|
955
918
|
expect(recipe.logged_warnings).to eq ""
|
|
956
919
|
expect(BaseThingy.created_resource).to eq resource_class_z
|
|
@@ -966,9 +929,9 @@ describe "Recipe DSL methods" do
|
|
|
966
929
|
end
|
|
967
930
|
|
|
968
931
|
it "two_classes_one_dsl resolves to B (picks the first match from the other priority array)" do
|
|
969
|
-
|
|
932
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
970
933
|
recipe = converge do
|
|
971
|
-
instance_eval("#{
|
|
934
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
972
935
|
end
|
|
973
936
|
expect(recipe.logged_warnings).to eq ""
|
|
974
937
|
expect(BaseThingy.created_resource).to eq resource_class
|
|
@@ -991,9 +954,9 @@ describe "Recipe DSL methods" do
|
|
|
991
954
|
end
|
|
992
955
|
|
|
993
956
|
it "two_classes_one_dsl resolves to B (picks the first match outside the priority array)" do
|
|
994
|
-
|
|
957
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
995
958
|
recipe = converge do
|
|
996
|
-
instance_eval("#{
|
|
959
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
997
960
|
end
|
|
998
961
|
expect(recipe.logged_warnings).to eq ""
|
|
999
962
|
expect(BaseThingy.created_resource).to eq resource_class
|
|
@@ -1044,9 +1007,9 @@ describe "Recipe DSL methods" do
|
|
|
1044
1007
|
before { provider_class_a.provides two_classes_one_dsl }
|
|
1045
1008
|
|
|
1046
1009
|
it "two_classes_one_dsl resolves to A (alphabetically earliest)" do
|
|
1047
|
-
|
|
1010
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
1048
1011
|
recipe = converge do
|
|
1049
|
-
instance_eval("#{
|
|
1012
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
1050
1013
|
end
|
|
1051
1014
|
expect(recipe.logged_warnings).to eq ""
|
|
1052
1015
|
expect(BaseThingy.created_provider).to eq provider_class_a
|
|
@@ -1056,9 +1019,9 @@ describe "Recipe DSL methods" do
|
|
|
1056
1019
|
before { provider_class_a.provides(two_classes_one_dsl) { false } }
|
|
1057
1020
|
|
|
1058
1021
|
it "two_classes_one_dsl resolves to B (since A declined)" do
|
|
1059
|
-
|
|
1022
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
1060
1023
|
recipe = converge do
|
|
1061
|
-
instance_eval("#{
|
|
1024
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
1062
1025
|
end
|
|
1063
1026
|
expect(recipe.logged_warnings).to eq ""
|
|
1064
1027
|
expect(BaseThingy.created_provider).to eq provider_class
|
|
@@ -1085,9 +1048,9 @@ describe "Recipe DSL methods" do
|
|
|
1085
1048
|
before { provider_class_z.provides two_classes_one_dsl }
|
|
1086
1049
|
|
|
1087
1050
|
it "two_classes_one_dsl resolves to B (alphabetically earliest)" do
|
|
1088
|
-
|
|
1051
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
1089
1052
|
recipe = converge do
|
|
1090
|
-
instance_eval("#{
|
|
1053
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
1091
1054
|
end
|
|
1092
1055
|
expect(recipe.logged_warnings).to eq ""
|
|
1093
1056
|
expect(BaseThingy.created_provider).to eq provider_class
|
|
@@ -1097,9 +1060,9 @@ describe "Recipe DSL methods" do
|
|
|
1097
1060
|
before { Chef.set_provider_priority_array two_classes_one_dsl, [ provider_class_z, provider_class ] }
|
|
1098
1061
|
|
|
1099
1062
|
it "two_classes_one_dsl resolves to Z (respects the priority map)" do
|
|
1100
|
-
|
|
1063
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
1101
1064
|
recipe = converge do
|
|
1102
|
-
instance_eval("#{
|
|
1065
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
1103
1066
|
end
|
|
1104
1067
|
expect(recipe.logged_warnings).to eq ""
|
|
1105
1068
|
expect(BaseThingy.created_provider).to eq provider_class_z
|
|
@@ -1114,9 +1077,9 @@ describe "Recipe DSL methods" do
|
|
|
1114
1077
|
before { Chef.set_provider_priority_array two_classes_one_dsl, [ provider_class_z, provider_class ] }
|
|
1115
1078
|
|
|
1116
1079
|
it "two_classes_one_dsl resolves to B (the next one in the priority map)" do
|
|
1117
|
-
|
|
1080
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
1118
1081
|
recipe = converge do
|
|
1119
|
-
instance_eval("#{
|
|
1082
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
1120
1083
|
end
|
|
1121
1084
|
expect(recipe.logged_warnings).to eq ""
|
|
1122
1085
|
expect(BaseThingy.created_provider).to eq provider_class
|
|
@@ -1128,9 +1091,9 @@ describe "Recipe DSL methods" do
|
|
|
1128
1091
|
before { Chef.set_provider_priority_array two_classes_one_dsl, [ provider_class ] }
|
|
1129
1092
|
|
|
1130
1093
|
it "two_classes_one_dsl resolves to B (the one in the next priority map)" do
|
|
1131
|
-
|
|
1094
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
1132
1095
|
recipe = converge do
|
|
1133
|
-
instance_eval("#{
|
|
1096
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah'")
|
|
1134
1097
|
end
|
|
1135
1098
|
expect(recipe.logged_warnings).to eq ""
|
|
1136
1099
|
expect(BaseThingy.created_provider).to eq provider_class
|
|
@@ -1158,22 +1121,22 @@ describe "Recipe DSL methods" do
|
|
|
1158
1121
|
before { resource_class_blarghle } # pull on it so it gets defined before the recipe runs
|
|
1159
1122
|
|
|
1160
1123
|
it "on os = blarghle, two_classes_one_dsl resolves to Blarghle" do
|
|
1161
|
-
|
|
1124
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
1162
1125
|
recipe = converge do
|
|
1163
1126
|
# this is an ugly way to test, make Cheffish expose node attrs
|
|
1164
1127
|
run_context.node.automatic[:os] = "blarghle"
|
|
1165
|
-
instance_eval("#{
|
|
1128
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah' do; end")
|
|
1166
1129
|
end
|
|
1167
1130
|
expect(recipe.logged_warnings).to eq ""
|
|
1168
1131
|
expect(BaseThingy.created_resource).to eq resource_class_blarghle
|
|
1169
1132
|
end
|
|
1170
1133
|
|
|
1171
1134
|
it "on os = linux, two_classes_one_dsl resolves to B" do
|
|
1172
|
-
|
|
1135
|
+
temp_two_classes_one_dsl = two_classes_one_dsl
|
|
1173
1136
|
recipe = converge do
|
|
1174
1137
|
# this is an ugly way to test, make Cheffish expose node attrs
|
|
1175
1138
|
run_context.node.automatic[:os] = "linux"
|
|
1176
|
-
instance_eval("#{
|
|
1139
|
+
instance_eval("#{temp_two_classes_one_dsl} 'blah' do; end")
|
|
1177
1140
|
end
|
|
1178
1141
|
expect(recipe.logged_warnings).to eq ""
|
|
1179
1142
|
expect(BaseThingy.created_resource).to eq resource_class
|
|
@@ -1202,15 +1165,15 @@ describe "Recipe DSL methods" do
|
|
|
1202
1165
|
|
|
1203
1166
|
context "with provides? returning true to my_resource" do
|
|
1204
1167
|
before do
|
|
1205
|
-
|
|
1168
|
+
temp_my_resource = my_resource
|
|
1206
1169
|
resource_class.define_singleton_method(:provides?) do |node, resource_name|
|
|
1207
1170
|
@called_provides = true
|
|
1208
|
-
resource_name ==
|
|
1171
|
+
resource_name == temp_my_resource
|
|
1209
1172
|
end
|
|
1210
1173
|
end
|
|
1211
1174
|
|
|
1212
1175
|
it "my_resource returns the resource and calls provides?, but does not emit a warning" do
|
|
1213
|
-
dsl_name =
|
|
1176
|
+
dsl_name = my_resource
|
|
1214
1177
|
recipe = converge do
|
|
1215
1178
|
instance_eval("#{dsl_name} 'foo'")
|
|
1216
1179
|
end
|
|
@@ -1220,35 +1183,6 @@ describe "Recipe DSL methods" do
|
|
|
1220
1183
|
end
|
|
1221
1184
|
end
|
|
1222
1185
|
|
|
1223
|
-
context "with provides? returning true to blarghle_blarghle_little_star and not resource_name" do
|
|
1224
|
-
before do
|
|
1225
|
-
blarghle_blarghle_little_star = self.blarghle_blarghle_little_star
|
|
1226
|
-
resource_class.define_singleton_method(:provides?) do |node, resource_name|
|
|
1227
|
-
@called_provides = true
|
|
1228
|
-
resource_name == blarghle_blarghle_little_star
|
|
1229
|
-
end
|
|
1230
|
-
end
|
|
1231
|
-
|
|
1232
|
-
it "my_resource does not return the resource" do
|
|
1233
|
-
dsl_name = self.my_resource
|
|
1234
|
-
expect_converge do
|
|
1235
|
-
instance_eval("#{dsl_name} 'foo'")
|
|
1236
|
-
end.to raise_error(Chef::Exceptions::NoSuchResourceType)
|
|
1237
|
-
expect(resource_class.called_provides).to be_truthy
|
|
1238
|
-
end
|
|
1239
|
-
|
|
1240
|
-
it "blarghle_blarghle_little_star 'foo' returns the resource and emits a warning" do
|
|
1241
|
-
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
|
1242
|
-
dsl_name = self.blarghle_blarghle_little_star
|
|
1243
|
-
recipe = converge do
|
|
1244
|
-
instance_eval("#{dsl_name} 'foo'")
|
|
1245
|
-
end
|
|
1246
|
-
expect(recipe.logged_warnings).to include "WARN: #{resource_class}.provides? returned true when asked if it provides DSL #{dsl_name}, but provides :#{dsl_name} was never called!"
|
|
1247
|
-
expect(BaseThingy.created_resource).to eq resource_class
|
|
1248
|
-
expect(resource_class.called_provides).to be_truthy
|
|
1249
|
-
end
|
|
1250
|
-
end
|
|
1251
|
-
|
|
1252
1186
|
context "and a provider" do
|
|
1253
1187
|
let(:provider_class) do
|
|
1254
1188
|
Class.new(BaseThingy::Provider) do
|
|
@@ -1281,9 +1215,9 @@ describe "Recipe DSL methods" do
|
|
|
1281
1215
|
end
|
|
1282
1216
|
|
|
1283
1217
|
it "my_resource runs the provider and does not emit a warning" do
|
|
1284
|
-
|
|
1218
|
+
temp_my_resource = my_resource
|
|
1285
1219
|
recipe = converge do
|
|
1286
|
-
instance_eval("#{
|
|
1220
|
+
instance_eval("#{temp_my_resource} 'foo'")
|
|
1287
1221
|
end
|
|
1288
1222
|
expect(recipe.logged_warnings).to eq ""
|
|
1289
1223
|
expect(BaseThingy.created_provider).to eq provider_class
|
|
@@ -1311,9 +1245,9 @@ describe "Recipe DSL methods" do
|
|
|
1311
1245
|
end
|
|
1312
1246
|
|
|
1313
1247
|
it "my_resource runs the first provider" do
|
|
1314
|
-
|
|
1248
|
+
temp_my_resource = my_resource
|
|
1315
1249
|
recipe = converge do
|
|
1316
|
-
instance_eval("#{
|
|
1250
|
+
instance_eval("#{temp_my_resource} 'foo'")
|
|
1317
1251
|
end
|
|
1318
1252
|
expect(recipe.logged_warnings).to eq ""
|
|
1319
1253
|
expect(BaseThingy.created_provider).to eq provider_class
|
|
@@ -1328,9 +1262,9 @@ describe "Recipe DSL methods" do
|
|
|
1328
1262
|
|
|
1329
1263
|
# TODO no warning? ick
|
|
1330
1264
|
it "my_resource runs the provider anyway" do
|
|
1331
|
-
|
|
1265
|
+
temp_my_resource = my_resource
|
|
1332
1266
|
recipe = converge do
|
|
1333
|
-
instance_eval("#{
|
|
1267
|
+
instance_eval("#{temp_my_resource} 'foo'")
|
|
1334
1268
|
end
|
|
1335
1269
|
expect(recipe.logged_warnings).to eq ""
|
|
1336
1270
|
expect(BaseThingy.created_provider).to eq provider_class
|
|
@@ -1338,7 +1272,7 @@ describe "Recipe DSL methods" do
|
|
|
1338
1272
|
|
|
1339
1273
|
context "and another provider supporting :my_resource with supports? true" do
|
|
1340
1274
|
let(:provider_class2) do
|
|
1341
|
-
|
|
1275
|
+
temp_my_resource = my_resource
|
|
1342
1276
|
Class.new(BaseThingy::Provider) do
|
|
1343
1277
|
def self.name
|
|
1344
1278
|
"MyProvider2"
|
|
@@ -1351,7 +1285,7 @@ describe "Recipe DSL methods" do
|
|
|
1351
1285
|
def self.called_provides
|
|
1352
1286
|
@called_provides
|
|
1353
1287
|
end
|
|
1354
|
-
provides
|
|
1288
|
+
provides temp_my_resource
|
|
1355
1289
|
def self.supports?(resource, action)
|
|
1356
1290
|
true
|
|
1357
1291
|
end
|
|
@@ -1360,9 +1294,9 @@ describe "Recipe DSL methods" do
|
|
|
1360
1294
|
before { provider_class2 } # make sure the provider class shows up
|
|
1361
1295
|
|
|
1362
1296
|
it "my_resource runs the other provider" do
|
|
1363
|
-
|
|
1297
|
+
temp_my_resource = my_resource
|
|
1364
1298
|
recipe = converge do
|
|
1365
|
-
instance_eval("#{
|
|
1299
|
+
instance_eval("#{temp_my_resource} 'foo'")
|
|
1366
1300
|
end
|
|
1367
1301
|
expect(recipe.logged_warnings).to eq ""
|
|
1368
1302
|
expect(BaseThingy.created_provider).to eq provider_class2
|
|
@@ -1370,82 +1304,24 @@ describe "Recipe DSL methods" do
|
|
|
1370
1304
|
end
|
|
1371
1305
|
end
|
|
1372
1306
|
end
|
|
1307
|
+
end
|
|
1308
|
+
end
|
|
1309
|
+
end
|
|
1373
1310
|
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
end
|
|
1382
|
-
|
|
1383
|
-
context "that provides :my_resource" do
|
|
1384
|
-
before do
|
|
1385
|
-
provider_class.provides my_resource
|
|
1386
|
-
end
|
|
1387
|
-
|
|
1388
|
-
it "my_resource calls the provider (and calls provides?), but does not emit a warning" do
|
|
1389
|
-
my_resource = self.my_resource
|
|
1390
|
-
recipe = converge do
|
|
1391
|
-
instance_eval("#{my_resource} 'foo'")
|
|
1392
|
-
end
|
|
1393
|
-
expect(recipe.logged_warnings).to eq ""
|
|
1394
|
-
expect(BaseThingy.created_provider).to eq provider_class
|
|
1395
|
-
expect(provider_class.called_provides).to be_truthy
|
|
1396
|
-
end
|
|
1397
|
-
end
|
|
1398
|
-
|
|
1399
|
-
context "that does not call provides :my_resource" do
|
|
1400
|
-
it "my_resource calls the provider (and calls provides?), and emits a warning" do
|
|
1401
|
-
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
|
1402
|
-
my_resource = self.my_resource
|
|
1403
|
-
recipe = converge do
|
|
1404
|
-
instance_eval("#{my_resource} 'foo'")
|
|
1405
|
-
end
|
|
1406
|
-
expect(recipe.logged_warnings).to include("WARN: #{provider_class}.provides? returned true when asked if it provides DSL #{my_resource}, but provides :#{my_resource} was never called!")
|
|
1407
|
-
expect(BaseThingy.created_provider).to eq provider_class
|
|
1408
|
-
expect(provider_class.called_provides).to be_truthy
|
|
1409
|
-
end
|
|
1410
|
-
end
|
|
1411
|
-
end
|
|
1412
|
-
|
|
1413
|
-
context "with provides? returning false to my_resource" do
|
|
1414
|
-
before do
|
|
1415
|
-
my_resource = self.my_resource
|
|
1416
|
-
provider_class.define_singleton_method(:provides?) do |node, resource|
|
|
1417
|
-
@called_provides = true
|
|
1418
|
-
false
|
|
1419
|
-
end
|
|
1420
|
-
end
|
|
1421
|
-
|
|
1422
|
-
context "that provides :my_resource" do
|
|
1423
|
-
before do
|
|
1424
|
-
provider_class.provides my_resource
|
|
1425
|
-
end
|
|
1426
|
-
|
|
1427
|
-
it "my_resource fails to find a provider (and calls provides)" do
|
|
1428
|
-
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
|
1429
|
-
my_resource = self.my_resource
|
|
1430
|
-
expect_converge do
|
|
1431
|
-
instance_eval("#{my_resource} 'foo'")
|
|
1432
|
-
end.to raise_error(Chef::Exceptions::ProviderNotFound)
|
|
1433
|
-
expect(provider_class.called_provides).to be_truthy
|
|
1434
|
-
end
|
|
1435
|
-
end
|
|
1311
|
+
context "with UTF-8 provides" do
|
|
1312
|
+
before(:context) do
|
|
1313
|
+
class UTF8Thingy < BaseThingy
|
|
1314
|
+
resource_name :Straße
|
|
1315
|
+
provides :Straße
|
|
1316
|
+
end
|
|
1317
|
+
end
|
|
1436
1318
|
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
my_resource = self.my_resource
|
|
1441
|
-
expect_converge do
|
|
1442
|
-
instance_eval("#{my_resource} 'foo'")
|
|
1443
|
-
end.to raise_error(Chef::Exceptions::ProviderNotFound)
|
|
1444
|
-
expect(provider_class.called_provides).to be_truthy
|
|
1445
|
-
end
|
|
1446
|
-
end
|
|
1447
|
-
end
|
|
1319
|
+
it "utf-8 dsl names work" do
|
|
1320
|
+
recipe = converge do
|
|
1321
|
+
Straße("blah") {}
|
|
1448
1322
|
end
|
|
1323
|
+
expect(recipe.logged_warnings).to eq ""
|
|
1324
|
+
expect(BaseThingy.created_resource).to eq(UTF8Thingy)
|
|
1449
1325
|
end
|
|
1450
1326
|
end
|
|
1451
1327
|
end
|
|
@@ -1494,30 +1370,4 @@ describe "Recipe DSL methods" do
|
|
|
1494
1370
|
end
|
|
1495
1371
|
end
|
|
1496
1372
|
|
|
1497
|
-
context "with a dynamically defined resource and regular provider" do
|
|
1498
|
-
before(:context) do
|
|
1499
|
-
Class.new(Chef::Resource) do
|
|
1500
|
-
resource_name :lw_resource_with_hw_provider_test_case
|
|
1501
|
-
default_action :create
|
|
1502
|
-
attr_accessor :created_provider
|
|
1503
|
-
end
|
|
1504
|
-
class Chef::Provider::LwResourceWithHwProviderTestCase < Chef::Provider
|
|
1505
|
-
def load_current_resource
|
|
1506
|
-
end
|
|
1507
|
-
|
|
1508
|
-
def action_create
|
|
1509
|
-
new_resource.created_provider = self.class
|
|
1510
|
-
end
|
|
1511
|
-
end
|
|
1512
|
-
end
|
|
1513
|
-
|
|
1514
|
-
it "looks up the provider in Chef::Provider converting the resource name from snake case to camel case" do
|
|
1515
|
-
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
|
1516
|
-
resource = nil
|
|
1517
|
-
recipe = converge do
|
|
1518
|
-
resource = lw_resource_with_hw_provider_test_case("blah") {}
|
|
1519
|
-
end
|
|
1520
|
-
expect(resource.created_provider).to eq(Chef::Provider::LwResourceWithHwProviderTestCase)
|
|
1521
|
-
end
|
|
1522
|
-
end
|
|
1523
1373
|
end
|
|
@@ -357,7 +357,7 @@ module ResourceActionSpec
|
|
|
357
357
|
end
|
|
358
358
|
end
|
|
359
359
|
|
|
360
|
-
context "With a resource with
|
|
360
|
+
context "With a resource with a UTF-8 action" do
|
|
361
361
|
class WeirdActionJackson < Chef::Resource
|
|
362
362
|
use_automatic_resource_name
|
|
363
363
|
|
|
@@ -365,7 +365,7 @@ module ResourceActionSpec
|
|
|
365
365
|
attr_accessor :action_was
|
|
366
366
|
end
|
|
367
367
|
|
|
368
|
-
action
|
|
368
|
+
action :Straße do
|
|
369
369
|
WeirdActionJackson.action_was = action
|
|
370
370
|
end
|
|
371
371
|
end
|
|
@@ -374,7 +374,7 @@ module ResourceActionSpec
|
|
|
374
374
|
expect_recipe do
|
|
375
375
|
weird_action_jackson "hi"
|
|
376
376
|
end.to be_up_to_date
|
|
377
|
-
expect(WeirdActionJackson.action_was).to eq :
|
|
377
|
+
expect(WeirdActionJackson.action_was).to eq :Straße
|
|
378
378
|
end
|
|
379
379
|
end
|
|
380
380
|
|
|
@@ -502,40 +502,28 @@ module ResourceActionSpec
|
|
|
502
502
|
end
|
|
503
503
|
end
|
|
504
504
|
|
|
505
|
-
context "When a resource declares methods in action_class
|
|
505
|
+
context "When a resource declares methods in action_class" do
|
|
506
506
|
class DeclaresActionClassMethods < Chef::Resource
|
|
507
507
|
use_automatic_resource_name
|
|
508
508
|
property :x
|
|
509
|
-
action :create do
|
|
510
|
-
new_resource.x = a + b + c + d
|
|
511
|
-
end
|
|
512
509
|
action_class do
|
|
513
510
|
def a
|
|
514
511
|
1
|
|
515
512
|
end
|
|
516
513
|
end
|
|
517
|
-
|
|
518
|
-
def b
|
|
519
|
-
2
|
|
520
|
-
end
|
|
521
|
-
end
|
|
522
|
-
action_class do
|
|
514
|
+
action_class.class_eval <<-EOM
|
|
523
515
|
def c
|
|
524
516
|
3
|
|
525
517
|
end
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
4
|
|
530
|
-
end
|
|
518
|
+
EOM
|
|
519
|
+
action :create do
|
|
520
|
+
new_resource.x = a + c
|
|
531
521
|
end
|
|
532
522
|
end
|
|
533
523
|
|
|
534
524
|
it "the methods are not available on the resource" do
|
|
535
525
|
expect { DeclaresActionClassMethods.new("hi").a }.to raise_error(NameError)
|
|
536
|
-
expect { DeclaresActionClassMethods.new("hi").b }.to raise_error(NameError)
|
|
537
526
|
expect { DeclaresActionClassMethods.new("hi").c }.to raise_error(NameError)
|
|
538
|
-
expect { DeclaresActionClassMethods.new("hi").d }.to raise_error(NameError)
|
|
539
527
|
end
|
|
540
528
|
|
|
541
529
|
it "the methods are available to the action" do
|
|
@@ -543,17 +531,14 @@ module ResourceActionSpec
|
|
|
543
531
|
expect_recipe do
|
|
544
532
|
r = declares_action_class_methods "hi"
|
|
545
533
|
end.to emit_no_warnings_or_errors
|
|
546
|
-
expect(r.x).to eq(
|
|
534
|
+
expect(r.x).to eq(4)
|
|
547
535
|
end
|
|
548
536
|
|
|
549
|
-
context "And a subclass
|
|
537
|
+
context "And a subclass overrides a method with an action_class block" do
|
|
550
538
|
class DeclaresActionClassMethodsToo < DeclaresActionClassMethods
|
|
551
539
|
use_automatic_resource_name
|
|
552
|
-
action :create do
|
|
553
|
-
new_resource.x a + b + c + d + e
|
|
554
|
-
end
|
|
555
540
|
action_class do
|
|
556
|
-
def
|
|
541
|
+
def a
|
|
557
542
|
5
|
|
558
543
|
end
|
|
559
544
|
end
|
|
@@ -561,10 +546,7 @@ module ResourceActionSpec
|
|
|
561
546
|
|
|
562
547
|
it "the methods are not available on the resource" do
|
|
563
548
|
expect { DeclaresActionClassMethods.new("hi").a }.to raise_error(NameError)
|
|
564
|
-
expect { DeclaresActionClassMethods.new("hi").b }.to raise_error(NameError)
|
|
565
549
|
expect { DeclaresActionClassMethods.new("hi").c }.to raise_error(NameError)
|
|
566
|
-
expect { DeclaresActionClassMethods.new("hi").d }.to raise_error(NameError)
|
|
567
|
-
expect { DeclaresActionClassMethods.new("hi").e }.to raise_error(NameError)
|
|
568
550
|
end
|
|
569
551
|
|
|
570
552
|
it "the methods are available to the action" do
|
|
@@ -572,7 +554,32 @@ module ResourceActionSpec
|
|
|
572
554
|
expect_recipe do
|
|
573
555
|
r = declares_action_class_methods_too "hi"
|
|
574
556
|
end.to emit_no_warnings_or_errors
|
|
575
|
-
expect(r.x).to eq(
|
|
557
|
+
expect(r.x).to eq(8)
|
|
558
|
+
end
|
|
559
|
+
end
|
|
560
|
+
|
|
561
|
+
context "And a subclass overrides a method with class_eval" do
|
|
562
|
+
# this tests inheritance with *only* an action_class accessor that does not declare a block
|
|
563
|
+
class DeclaresActionClassMethodsToo < DeclaresActionClassMethods
|
|
564
|
+
use_automatic_resource_name
|
|
565
|
+
action_class.class_eval <<-EOM
|
|
566
|
+
def a
|
|
567
|
+
5
|
|
568
|
+
end
|
|
569
|
+
EOM
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
it "the methods are not available on the resource" do
|
|
573
|
+
expect { DeclaresActionClassMethods.new("hi").a }.to raise_error(NameError)
|
|
574
|
+
expect { DeclaresActionClassMethods.new("hi").c }.to raise_error(NameError)
|
|
575
|
+
end
|
|
576
|
+
|
|
577
|
+
it "the methods are available to the action" do
|
|
578
|
+
r = nil
|
|
579
|
+
expect_recipe do
|
|
580
|
+
r = declares_action_class_methods_too "hi"
|
|
581
|
+
end.to emit_no_warnings_or_errors
|
|
582
|
+
expect(r.x).to eq(8)
|
|
576
583
|
end
|
|
577
584
|
end
|
|
578
585
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -70,6 +70,9 @@ require "chef/chef_fs/file_system_cache"
|
|
|
70
70
|
|
|
71
71
|
require "chef/api_client_v1"
|
|
72
72
|
|
|
73
|
+
require "chef/mixin/versioned_api"
|
|
74
|
+
require "chef/server_api_versions"
|
|
75
|
+
|
|
73
76
|
if ENV["CHEF_FIPS"] == "1"
|
|
74
77
|
Chef::Config.init_openssl
|
|
75
78
|
end
|
|
@@ -152,6 +155,10 @@ RSpec.configure do |config|
|
|
|
152
155
|
config.filter_run_excluding :windows_powershell_no_dsc_only => true unless ! windows_powershell_dsc?
|
|
153
156
|
config.filter_run_excluding :windows_domain_joined_only => true unless windows_domain_joined?
|
|
154
157
|
config.filter_run_excluding :windows_not_domain_joined_only => true if windows_domain_joined?
|
|
158
|
+
# We think this line was causing rspec tests to not run on the Jenkins windows
|
|
159
|
+
# testers. If we ever fix it we should restore it.
|
|
160
|
+
# config.filter_run_excluding :windows_service_requires_assign_token => true if !STDOUT.isatty && !windows_user_right?("SeAssignPrimaryTokenPrivilege")
|
|
161
|
+
config.filter_run_excluding :windows_service_requires_assign_token => true
|
|
155
162
|
config.filter_run_excluding :solaris_only => true unless solaris?
|
|
156
163
|
config.filter_run_excluding :system_windows_service_gem_only => true unless system_windows_service_gem?
|
|
157
164
|
config.filter_run_excluding :unix_only => true unless unix?
|