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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
|
-
# Copyright:: Copyright 2008-
|
|
3
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -40,6 +40,7 @@ describe Chef::Provider::Package::Yum do
|
|
|
40
40
|
)
|
|
41
41
|
allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
|
|
42
42
|
allow(@yum_cache).to receive(:yum_binary=).with("yum")
|
|
43
|
+
allow(::File).to receive(:exist?).with("/usr/bin/yum-deprecated").and_return(false)
|
|
43
44
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
44
45
|
@pid = double("PID")
|
|
45
46
|
end
|
|
@@ -80,12 +81,13 @@ describe Chef::Provider::Package::Yum do
|
|
|
80
81
|
@new_resource = Chef::Resource::YumPackage.new("testing.source")
|
|
81
82
|
@new_resource.source "chef-server-core-12.0.5-1.rpm"
|
|
82
83
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
83
|
-
allow(File).to receive(:
|
|
84
|
+
allow(File).to receive(:exist?).with(@new_resource.source).and_return(true)
|
|
84
85
|
allow(@yum_cache).to receive(:installed_version).and_return(nil)
|
|
85
|
-
shellout_double = double(:stdout => "chef-server-core 12.0.5-1")
|
|
86
|
+
shellout_double = double(:stdout => "chef-server-core 12.0.5-1 i386")
|
|
86
87
|
allow(@provider).to receive(:shell_out!).and_return(shellout_double)
|
|
87
88
|
@provider.load_current_resource
|
|
88
89
|
expect(@provider.candidate_version).to eql("12.0.5-1")
|
|
90
|
+
expect(@provider.new_resource.arch).to eql("i386")
|
|
89
91
|
end
|
|
90
92
|
end
|
|
91
93
|
|
|
@@ -94,14 +96,14 @@ describe Chef::Provider::Package::Yum do
|
|
|
94
96
|
expect(File).to receive(:exist?).with("/usr/bin/yum-deprecated").and_return(true)
|
|
95
97
|
expect(@yum_cache).to receive(:yum_binary=).with("yum-deprecated")
|
|
96
98
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
97
|
-
expect(@provider.yum_binary).to eql("yum-deprecated")
|
|
99
|
+
expect(@provider.send(:yum_binary)).to eql("yum-deprecated")
|
|
98
100
|
end
|
|
99
101
|
|
|
100
102
|
it "when yum-deprecated does not exist" do
|
|
101
103
|
expect(File).to receive(:exist?).with("/usr/bin/yum-deprecated").and_return(false)
|
|
102
104
|
expect(@yum_cache).to receive(:yum_binary=).with("yum")
|
|
103
105
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
104
|
-
expect(@provider.yum_binary).to eql("yum")
|
|
106
|
+
expect(@provider.send(:yum_binary)).to eql("yum")
|
|
105
107
|
end
|
|
106
108
|
|
|
107
109
|
it "when the yum_binary is set on the resource" do
|
|
@@ -109,23 +111,23 @@ describe Chef::Provider::Package::Yum do
|
|
|
109
111
|
expect(File).not_to receive(:exist?)
|
|
110
112
|
expect(@yum_cache).to receive(:yum_binary=).with("/usr/bin/yum-something")
|
|
111
113
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
112
|
-
expect(@provider.yum_binary).to eql("/usr/bin/yum-something")
|
|
114
|
+
expect(@provider.send(:yum_binary)).to eql("/usr/bin/yum-something")
|
|
113
115
|
end
|
|
114
116
|
|
|
115
117
|
it "when the new_resource is a vanilla package class and yum-deprecated exists" do
|
|
116
|
-
@new_resource = Chef::Resource::
|
|
118
|
+
@new_resource = Chef::Resource::YumPackage.new("cups")
|
|
117
119
|
expect(File).to receive(:exist?).with("/usr/bin/yum-deprecated").and_return(true)
|
|
118
120
|
expect(@yum_cache).to receive(:yum_binary=).with("yum-deprecated")
|
|
119
121
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
120
|
-
expect(@provider.yum_binary).to eql("yum-deprecated")
|
|
122
|
+
expect(@provider.send(:yum_binary)).to eql("yum-deprecated")
|
|
121
123
|
end
|
|
122
124
|
|
|
123
125
|
it "when the new_resource is a vanilla package class and yum-deprecated does not exist" do
|
|
124
|
-
@new_resource = Chef::Resource::
|
|
126
|
+
@new_resource = Chef::Resource::YumPackage.new("cups")
|
|
125
127
|
expect(File).to receive(:exist?).with("/usr/bin/yum-deprecated").and_return(false)
|
|
126
128
|
expect(@yum_cache).to receive(:yum_binary=).with("yum")
|
|
127
129
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
128
|
-
expect(@provider.yum_binary).to eql("yum")
|
|
130
|
+
expect(@provider.send(:yum_binary)).to eql("yum")
|
|
129
131
|
end
|
|
130
132
|
end
|
|
131
133
|
|
|
@@ -155,19 +157,17 @@ describe Chef::Provider::Package::Yum do
|
|
|
155
157
|
@provider.load_current_resource
|
|
156
158
|
expect(@provider.new_resource.package_name).to eq("testing")
|
|
157
159
|
expect(@provider.new_resource.arch).to eq("noarch")
|
|
158
|
-
expect(@provider.arch).to eq("noarch")
|
|
159
160
|
|
|
160
161
|
@new_resource = Chef::Resource::YumPackage.new("testing.more.noarch")
|
|
161
162
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
162
163
|
@provider.load_current_resource
|
|
163
164
|
expect(@provider.new_resource.package_name).to eq("testing.more")
|
|
164
165
|
expect(@provider.new_resource.arch).to eq("noarch")
|
|
165
|
-
expect(@provider.arch).to eq("noarch")
|
|
166
166
|
end
|
|
167
167
|
|
|
168
168
|
describe "when version constraint in package_name" do
|
|
169
169
|
it "should set package_version if no existing package_name is found and new_package_name is available" do
|
|
170
|
-
@new_resource = Chef::Resource::
|
|
170
|
+
@new_resource = Chef::Resource::YumPackage.new("cups = 1.2.4-11.18.el5_2.3")
|
|
171
171
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
172
172
|
allow(@yum_cache).to receive(:package_available?) { |pkg| pkg == "cups" ? true : false }
|
|
173
173
|
allow(@yum_cache).to receive(:packages_from_require) do |pkg|
|
|
@@ -211,14 +211,12 @@ describe Chef::Provider::Package::Yum do
|
|
|
211
211
|
@provider.load_current_resource
|
|
212
212
|
expect(@provider.new_resource.package_name).to eq("testing.beta3")
|
|
213
213
|
expect(@provider.new_resource.arch).to eq(nil)
|
|
214
|
-
expect(@provider.arch).to eq(nil)
|
|
215
214
|
|
|
216
215
|
@new_resource = Chef::Resource::YumPackage.new("testing.beta3.more")
|
|
217
216
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
218
217
|
@provider.load_current_resource
|
|
219
218
|
expect(@provider.new_resource.package_name).to eq("testing.beta3.more")
|
|
220
219
|
expect(@provider.new_resource.arch).to eq(nil)
|
|
221
|
-
expect(@provider.arch).to eq(nil)
|
|
222
220
|
end
|
|
223
221
|
|
|
224
222
|
it "should not set the arch when no existing package_name or new_package_name+new_arch is found" do
|
|
@@ -242,14 +240,12 @@ describe Chef::Provider::Package::Yum do
|
|
|
242
240
|
@provider.load_current_resource
|
|
243
241
|
expect(@provider.new_resource.package_name).to eq("testing.beta3")
|
|
244
242
|
expect(@provider.new_resource.arch).to eq(nil)
|
|
245
|
-
expect(@provider.arch).to eq(nil)
|
|
246
243
|
|
|
247
244
|
@new_resource = Chef::Resource::YumPackage.new("testing.beta3.more")
|
|
248
245
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
249
246
|
@provider.load_current_resource
|
|
250
247
|
expect(@provider.new_resource.package_name).to eq("testing.beta3.more")
|
|
251
248
|
expect(@provider.new_resource.arch).to eq(nil)
|
|
252
|
-
expect(@provider.arch).to eq(nil)
|
|
253
249
|
end
|
|
254
250
|
|
|
255
251
|
it "should ensure it doesn't clobber an existing arch if passed" do
|
|
@@ -282,31 +278,31 @@ describe Chef::Provider::Package::Yum do
|
|
|
282
278
|
end
|
|
283
279
|
|
|
284
280
|
it "should flush the cache if :before is true" do
|
|
285
|
-
|
|
281
|
+
@new_resource.flush_cache({ :after => false, :before => true })
|
|
286
282
|
expect(@yum_cache).to receive(:reload).once
|
|
287
283
|
@provider.load_current_resource
|
|
288
284
|
end
|
|
289
285
|
|
|
290
286
|
it "should flush the cache if :before is false" do
|
|
291
|
-
|
|
287
|
+
@new_resource.flush_cache({ :after => false, :before => false })
|
|
292
288
|
expect(@yum_cache).not_to receive(:reload)
|
|
293
289
|
@provider.load_current_resource
|
|
294
290
|
end
|
|
295
291
|
|
|
296
292
|
it "should detect --enablerepo or --disablerepo when passed among options, collect them preserving order and notify the yum cache" do
|
|
297
|
-
|
|
293
|
+
@new_resource.options("--stuff --enablerepo=foo --otherthings --disablerepo=a,b,c --enablerepo=bar")
|
|
298
294
|
expect(@yum_cache).to receive(:enable_extra_repo_control).with("--enablerepo=foo --disablerepo=a,b,c --enablerepo=bar")
|
|
299
295
|
@provider.load_current_resource
|
|
300
296
|
end
|
|
301
297
|
|
|
302
298
|
it "should let the yum cache know extra repos are disabled if --enablerepo or --disablerepo aren't among options" do
|
|
303
|
-
|
|
299
|
+
@new_resource.options("--stuff --otherthings")
|
|
304
300
|
expect(@yum_cache).to receive(:disable_extra_repo_control)
|
|
305
301
|
@provider.load_current_resource
|
|
306
302
|
end
|
|
307
303
|
|
|
308
304
|
it "should let the yum cache know extra repos are disabled if options aren't set" do
|
|
309
|
-
|
|
305
|
+
@new_resource.options(nil)
|
|
310
306
|
expect(@yum_cache).to receive(:disable_extra_repo_control)
|
|
311
307
|
@provider.load_current_resource
|
|
312
308
|
end
|
|
@@ -539,8 +535,8 @@ describe Chef::Provider::Package::Yum do
|
|
|
539
535
|
end
|
|
540
536
|
|
|
541
537
|
it "should run yum localinstall if given a path to an rpm as the package" do
|
|
542
|
-
@new_resource = Chef::Resource::
|
|
543
|
-
allow(::File).to receive(:
|
|
538
|
+
@new_resource = Chef::Resource::YumPackage.new("/tmp/emacs-21.4-20.el5.i386.rpm")
|
|
539
|
+
allow(::File).to receive(:exist?).with("/tmp/emacs-21.4-20.el5.i386.rpm").and_return(true)
|
|
544
540
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
545
541
|
expect(@new_resource.source).to eq("/tmp/emacs-21.4-20.el5.i386.rpm")
|
|
546
542
|
expect(@provider).to receive(:yum_command).with(
|
|
@@ -550,9 +546,9 @@ describe Chef::Provider::Package::Yum do
|
|
|
550
546
|
end
|
|
551
547
|
|
|
552
548
|
it "should run yum install with the package name, version and arch" do
|
|
553
|
-
@provider.load_current_resource
|
|
554
549
|
allow(@new_resource).to receive(:arch).and_return("i386")
|
|
555
550
|
allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
|
|
551
|
+
@provider.load_current_resource
|
|
556
552
|
expect(@provider).to receive(:yum_command).with(
|
|
557
553
|
"-d0 -e0 -y install cups-1.2.4-11.19.el5.i386"
|
|
558
554
|
)
|
|
@@ -562,7 +558,7 @@ describe Chef::Provider::Package::Yum do
|
|
|
562
558
|
it "installs the package with the options given in the resource" do
|
|
563
559
|
@provider.load_current_resource
|
|
564
560
|
allow(@provider).to receive(:candidate_version).and_return("11")
|
|
565
|
-
|
|
561
|
+
@new_resource.options("--disablerepo epmd")
|
|
566
562
|
allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
|
|
567
563
|
expect(@provider).to receive(:yum_command).with(
|
|
568
564
|
"-d0 -e0 -y --disablerepo epmd install cups-11"
|
|
@@ -690,7 +686,7 @@ describe Chef::Provider::Package::Yum do
|
|
|
690
686
|
|
|
691
687
|
it "should run yum install if the package is not installed" do
|
|
692
688
|
@provider.load_current_resource
|
|
693
|
-
@current_resource = Chef::Resource::
|
|
689
|
+
@current_resource = Chef::Resource::YumPackage.new("cups")
|
|
694
690
|
allow(@provider).to receive(:candidate_version).and_return("11")
|
|
695
691
|
allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
|
|
696
692
|
expect(@provider).to receive(:yum_command).with(
|
|
@@ -721,18 +717,15 @@ describe Chef::Provider::Package::Yum do
|
|
|
721
717
|
# Test our little workaround, some crossover into Chef::Provider::Package territory
|
|
722
718
|
it "should call action_upgrade in the parent if the current resource version is nil" do
|
|
723
719
|
allow(@yum_cache).to receive(:installed_version).and_return(nil)
|
|
724
|
-
@current_resource = Chef::Resource::
|
|
720
|
+
@current_resource = Chef::Resource::YumPackage.new("cups")
|
|
725
721
|
allow(@provider).to receive(:candidate_version).and_return("11")
|
|
726
|
-
expect(@provider).to receive(:upgrade_package).with(
|
|
727
|
-
"cups",
|
|
728
|
-
"11"
|
|
729
|
-
)
|
|
722
|
+
expect(@provider).to receive(:upgrade_package).with(["cups"], ["11"])
|
|
730
723
|
@provider.run_action(:upgrade)
|
|
731
724
|
end
|
|
732
725
|
|
|
733
726
|
it "should call action_upgrade in the parent if the candidate version is nil" do
|
|
734
727
|
@provider.load_current_resource
|
|
735
|
-
@current_resource = Chef::Resource::
|
|
728
|
+
@current_resource = Chef::Resource::YumPackage.new("cups")
|
|
736
729
|
allow(@provider).to receive(:candidate_version).and_return(nil)
|
|
737
730
|
expect(@provider).not_to receive(:upgrade_package)
|
|
738
731
|
@provider.run_action(:upgrade)
|
|
@@ -740,19 +733,16 @@ describe Chef::Provider::Package::Yum do
|
|
|
740
733
|
|
|
741
734
|
it "should call action_upgrade in the parent if the candidate is newer" do
|
|
742
735
|
@provider.load_current_resource
|
|
743
|
-
@current_resource = Chef::Resource::
|
|
736
|
+
@current_resource = Chef::Resource::YumPackage.new("cups")
|
|
744
737
|
allow(@provider).to receive(:candidate_version).and_return("11")
|
|
745
|
-
expect(@provider).to receive(:upgrade_package).with(
|
|
746
|
-
"cups",
|
|
747
|
-
"11"
|
|
748
|
-
)
|
|
738
|
+
expect(@provider).to receive(:upgrade_package).with(["cups"], ["11"])
|
|
749
739
|
@provider.run_action(:upgrade)
|
|
750
740
|
end
|
|
751
741
|
|
|
752
742
|
it "should not call action_upgrade in the parent if the candidate is older" do
|
|
753
743
|
allow(@yum_cache).to receive(:installed_version).and_return("12")
|
|
754
744
|
@provider.load_current_resource
|
|
755
|
-
@current_resource = Chef::Resource::
|
|
745
|
+
@current_resource = Chef::Resource::YumPackage.new("cups")
|
|
756
746
|
allow(@provider).to receive(:candidate_version).and_return("11")
|
|
757
747
|
expect(@provider).not_to receive(:upgrade_package)
|
|
758
748
|
@provider.run_action(:upgrade)
|
|
@@ -811,7 +801,7 @@ describe Chef::Provider::Package::Yum do
|
|
|
811
801
|
"yum -d0 -e0 -y install emacs-1.0",
|
|
812
802
|
{ :timeout => Chef::Config[:yum_timeout] }
|
|
813
803
|
)
|
|
814
|
-
@provider.yum_command
|
|
804
|
+
@provider.send(:yum_command, "-d0 -e0 -y install emacs-1.0")
|
|
815
805
|
end
|
|
816
806
|
|
|
817
807
|
it "should run yum once if it exits with a return code > 0 and no scriptlet failures" do
|
|
@@ -821,7 +811,7 @@ describe Chef::Provider::Package::Yum do
|
|
|
821
811
|
"yum -d0 -e0 -y install emacs-1.0",
|
|
822
812
|
{ :timeout => Chef::Config[:yum_timeout] }
|
|
823
813
|
)
|
|
824
|
-
expect { @provider.yum_command
|
|
814
|
+
expect { @provider.send(:yum_command, "-d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
|
|
825
815
|
end
|
|
826
816
|
|
|
827
817
|
it "should run yum once if it exits with a return code of 1 and %pre scriptlet failures" do
|
|
@@ -833,7 +823,7 @@ describe Chef::Provider::Package::Yum do
|
|
|
833
823
|
{ :timeout => Chef::Config[:yum_timeout] }
|
|
834
824
|
)
|
|
835
825
|
# will still raise an exception, can't stub out the subsequent call
|
|
836
|
-
expect { @provider.yum_command
|
|
826
|
+
expect { @provider.send(:yum_command, "-d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
|
|
837
827
|
end
|
|
838
828
|
|
|
839
829
|
it "should run yum twice if it exits with a return code of 1 and %post scriptlet failures" do
|
|
@@ -845,7 +835,7 @@ describe Chef::Provider::Package::Yum do
|
|
|
845
835
|
{ :timeout => Chef::Config[:yum_timeout] }
|
|
846
836
|
)
|
|
847
837
|
# will still raise an exception, can't stub out the subsequent call
|
|
848
|
-
expect { @provider.yum_command
|
|
838
|
+
expect { @provider.send(:yum_command, "-d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
|
|
849
839
|
end
|
|
850
840
|
|
|
851
841
|
it "should pass the yum_binary to the command if its specified" do
|
|
@@ -858,7 +848,7 @@ describe Chef::Provider::Package::Yum do
|
|
|
858
848
|
"yum-deprecated -d0 -e0 -y install emacs-1.0",
|
|
859
849
|
{ :timeout => Chef::Config[:yum_timeout] }
|
|
860
850
|
)
|
|
861
|
-
@provider.yum_command
|
|
851
|
+
@provider.send(:yum_command, "-d0 -e0 -y install emacs-1.0")
|
|
862
852
|
end
|
|
863
853
|
end
|
|
864
854
|
end
|
|
@@ -2132,7 +2122,7 @@ describe "Chef::Provider::Package::Yum - Multi" do
|
|
|
2132
2122
|
@node = Chef::Node.new
|
|
2133
2123
|
@events = Chef::EventDispatch::Dispatcher.new
|
|
2134
2124
|
@run_context = Chef::RunContext.new(@node, {}, @events)
|
|
2135
|
-
@new_resource = Chef::Resource::
|
|
2125
|
+
@new_resource = Chef::Resource::YumPackage.new(%w{cups vim})
|
|
2136
2126
|
@status = double("Status", :exitstatus => 0)
|
|
2137
2127
|
@yum_cache = double(
|
|
2138
2128
|
"Chef::Provider::Yum::YumCache",
|
|
@@ -2153,6 +2143,14 @@ describe "Chef::Provider::Package::Yum - Multi" do
|
|
|
2153
2143
|
@pid = double("PID")
|
|
2154
2144
|
end
|
|
2155
2145
|
|
|
2146
|
+
describe "when evaluating the correctness of the resource" do
|
|
2147
|
+
it "raises an error if the array lengths of package name, arch, and version do not match up" do
|
|
2148
|
+
allow(@new_resource).to receive(:version).and_return(["1.1"])
|
|
2149
|
+
allow(@new_resource).to receive(:arch).and_return(%w{x86_64 i386 i686})
|
|
2150
|
+
expect { @provider.check_resource_semantics! }.to raise_error(Chef::Exceptions::InvalidResourceSpecification)
|
|
2151
|
+
end
|
|
2152
|
+
end
|
|
2153
|
+
|
|
2156
2154
|
describe "when loading the current system state" do
|
|
2157
2155
|
it "should create a current resource with the name of the new_resource" do
|
|
2158
2156
|
@provider.load_current_resource
|
|
@@ -2194,7 +2192,7 @@ describe "Chef::Provider::Package::Yum - Multi" do
|
|
|
2194
2192
|
|
|
2195
2193
|
describe "when version constraint in package_name" do
|
|
2196
2194
|
it "should set package_version if no existing package_name is found and new_package_name is available" do
|
|
2197
|
-
@new_resource = Chef::Resource::
|
|
2195
|
+
@new_resource = Chef::Resource::YumPackage.new(["cups = 1.2.4-11.18.el5_2.3", "emacs = 24.4"])
|
|
2198
2196
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
2199
2197
|
allow(@yum_cache).to receive(:package_available?) { |pkg| %w{cups emacs}.include?(pkg) ? true : false }
|
|
2200
2198
|
allow(@yum_cache).to receive(:candidate_version) do |pkg|
|
|
@@ -2212,7 +2210,8 @@ describe "Chef::Provider::Package::Yum - Multi" do
|
|
|
2212
2210
|
end
|
|
2213
2211
|
end
|
|
2214
2212
|
expect(Chef::Log).to receive(:debug).exactly(2).times.with(%r{matched 1 package,})
|
|
2215
|
-
expect(Chef::Log).to receive(:debug).exactly(1).times.with(%r{candidate version:
|
|
2213
|
+
expect(Chef::Log).to receive(:debug).exactly(1).times.with(%r{candidate version: 1.2.4-11.18.el5_2.3})
|
|
2214
|
+
expect(Chef::Log).to receive(:debug).exactly(1).times.with(%r{candidate version: 24.4})
|
|
2216
2215
|
expect(Chef::Log).to receive(:debug).at_least(2).times.with(%r{checking yum info})
|
|
2217
2216
|
@provider.load_current_resource
|
|
2218
2217
|
expect(@provider.new_resource.package_name).to eq(%w{cups emacs})
|
|
@@ -2235,9 +2234,18 @@ describe "Chef::Provider::Package::Yum - Multi" do
|
|
|
2235
2234
|
@provider.install_package(%w{cups vim}, ["1.2.4-11.19.el5", "1.0"])
|
|
2236
2235
|
end
|
|
2237
2236
|
|
|
2237
|
+
it "should not run yum install with nil package name" do
|
|
2238
|
+
@provider.load_current_resource
|
|
2239
|
+
allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
|
|
2240
|
+
expect(@provider).to receive(:yum_command).with(
|
|
2241
|
+
"-d0 -e0 -y install cups-1.2.4-11.19.el5"
|
|
2242
|
+
)
|
|
2243
|
+
@provider.install_package(["cups", nil], ["1.2.4-11.19.el5", nil])
|
|
2244
|
+
end
|
|
2245
|
+
|
|
2238
2246
|
it "should run yum install with the package name, version and arch" do
|
|
2239
2247
|
@provider.load_current_resource
|
|
2240
|
-
allow(@new_resource).to receive(:arch).and_return(
|
|
2248
|
+
allow(@new_resource).to receive(:arch).and_return(%w{i386 i386})
|
|
2241
2249
|
allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
|
|
2242
2250
|
expect(@provider).to receive(:yum_command).with(
|
|
2243
2251
|
"-d0 -e0 -y install cups-1.2.4-11.19.el5.i386 vim-1.0.i386"
|
|
@@ -2253,12 +2261,12 @@ describe "Chef::Provider::Package::Yum - Multi" do
|
|
|
2253
2261
|
expect(@provider).to receive(:yum_command).with(
|
|
2254
2262
|
"-d0 -e0 -y --disablerepo epmd install cups-1.2.4-11.19.el5 vim-1.0"
|
|
2255
2263
|
)
|
|
2256
|
-
|
|
2264
|
+
@new_resource.options("--disablerepo epmd")
|
|
2257
2265
|
@provider.install_package(%w{cups vim}, ["1.2.4-11.19.el5", "1.0"])
|
|
2258
2266
|
end
|
|
2259
2267
|
|
|
2260
2268
|
it "should run yum install with the package name and version when name has arch" do
|
|
2261
|
-
@new_resource = Chef::Resource::
|
|
2269
|
+
@new_resource = Chef::Resource::YumPackage.new(["cups.x86_64", "vim"])
|
|
2262
2270
|
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
|
|
2263
2271
|
allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
|
|
2264
2272
|
|