chef 16.18.30 → 17.10.163
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 +24 -33
- data/README.md +1 -1
- data/Rakefile +4 -4
- data/chef-universal-mingw32.gemspec +3 -3
- data/chef.gemspec +25 -30
- data/lib/chef/action_collection.rb +6 -26
- data/lib/chef/api_client.rb +1 -1
- data/lib/chef/application/base.rb +28 -3
- data/lib/chef/application/exit_code.rb +7 -21
- data/lib/chef/application.rb +3 -1
- data/lib/chef/applications.rb +0 -1
- data/lib/chef/chef_fs/command_line.rb +5 -2
- data/lib/chef/chef_fs/file_pattern.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system.rb +9 -10
- data/lib/chef/chef_fs/path_utils.rb +1 -1
- data/lib/chef/client.rb +10 -20
- data/lib/chef/compliance/default_attributes.rb +20 -7
- data/lib/chef/compliance/fetcher/automate.rb +0 -7
- data/lib/chef/compliance/input.rb +115 -0
- data/lib/chef/compliance/input_collection.rb +139 -0
- data/lib/chef/compliance/profile.rb +122 -0
- data/lib/chef/compliance/profile_collection.rb +109 -0
- data/lib/chef/compliance/reporter/automate.rb +18 -8
- data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
- data/lib/chef/compliance/reporter/cli.rb +77 -0
- data/lib/chef/compliance/reporter/compliance_enforcer.rb +5 -1
- data/lib/chef/compliance/reporter/json_file.rb +8 -1
- data/lib/chef/compliance/runner.rb +177 -37
- data/lib/chef/compliance/waiver.rb +115 -0
- data/lib/chef/compliance/waiver_collection.rb +143 -0
- data/lib/chef/cookbook/cookbook_version_loader.rb +3 -3
- data/lib/chef/cookbook/synchronizer.rb +3 -5
- data/lib/chef/cookbook/syntax_check.rb +1 -1
- data/lib/chef/cookbook_loader.rb +2 -4
- data/lib/chef/cookbook_uploader.rb +1 -2
- data/lib/chef/cookbook_version.rb +1 -1
- data/lib/chef/data_bag_item.rb +11 -2
- data/lib/chef/data_collector.rb +0 -1
- data/lib/chef/delayed_evaluator.rb +4 -0
- data/lib/chef/deprecated.rb +6 -2
- data/lib/chef/dsl/chef_vault.rb +6 -6
- data/lib/chef/{knife/group_list.rb → dsl/compliance.rb} +11 -16
- data/lib/chef/dsl/declare_resource.rb +5 -10
- data/lib/chef/{knife/client_show.rb → dsl/reader_helpers.rb} +24 -21
- data/lib/chef/dsl/reboot_pending.rb +2 -3
- data/lib/chef/dsl/recipe.rb +4 -2
- data/lib/chef/{knife/data_bag_list.rb → dsl/render_helpers.rb} +19 -17
- data/lib/chef/dsl/secret.rb +170 -0
- data/lib/chef/dsl/toml.rb +116 -0
- data/lib/chef/dsl/universal.rb +7 -0
- data/lib/chef/dsl.rb +1 -0
- data/lib/chef/event_dispatch/base.rb +46 -3
- data/lib/chef/exceptions.rb +30 -0
- data/lib/chef/formatters/doc.rb +62 -14
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
- data/lib/chef/formatters/minimal.rb +6 -5
- data/lib/chef/group.rb +75 -0
- data/lib/chef/handler/slow_report.rb +66 -0
- data/lib/chef/handler.rb +46 -8
- data/lib/chef/http/basic_client.rb +15 -7
- data/lib/chef/http/ssl_policies.rb +3 -3
- data/lib/chef/http.rb +7 -3
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/mixin/get_source_from_package.rb +1 -1
- data/lib/chef/mixin/homebrew_user.rb +15 -5
- data/lib/chef/mixin/openssl_helper.rb +17 -13
- data/lib/chef/mixin/powershell_exec.rb +27 -7
- data/lib/chef/mixin/properties.rb +6 -0
- data/lib/chef/mixin/why_run.rb +8 -2
- data/lib/chef/node/attribute.rb +6 -4
- data/lib/chef/node/immutable_collections.rb +13 -0
- data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
- data/lib/chef/node.rb +1 -1
- data/lib/chef/org.rb +3 -2
- data/lib/chef/platform/query_helpers.rb +2 -2
- data/lib/chef/policy_builder/expand_node_object.rb +1 -2
- data/lib/chef/policy_builder/policyfile.rb +84 -46
- data/lib/chef/powershell.rb +8 -6
- data/lib/chef/property.rb +18 -0
- data/lib/chef/provider/cron.rb +7 -4
- data/lib/chef/provider/directory.rb +8 -8
- data/lib/chef/provider/execute.rb +3 -2
- data/lib/chef/provider/file.rb +5 -3
- data/lib/chef/provider/git.rb +6 -8
- data/lib/chef/provider/group/groupadd.rb +3 -3
- data/lib/chef/provider/group/groupmod.rb +3 -3
- data/lib/chef/provider/group/pw.rb +3 -3
- data/lib/chef/provider/ifconfig/debian.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/launchd.rb +6 -6
- data/lib/chef/provider/link.rb +5 -5
- data/lib/chef/provider/lwrp_base.rb +1 -1
- data/lib/chef/provider/mount/aix.rb +3 -3
- data/lib/chef/provider/mount/linux.rb +16 -2
- data/lib/chef/provider/mount/mount.rb +6 -6
- data/lib/chef/provider/mount/windows.rb +1 -1
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/package/apt.rb +27 -1
- data/lib/chef/provider/package/chocolatey.rb +14 -1
- data/lib/chef/provider/package/deb.rb +3 -3
- data/lib/chef/provider/package/dnf/dnf_helper.py +12 -11
- data/lib/chef/provider/package/dnf/python_helper.rb +9 -8
- data/lib/chef/provider/package/dnf.rb +1 -1
- data/lib/chef/provider/package/habitat.rb +168 -0
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +13 -10
- data/lib/chef/provider/package/rubygems.rb +15 -21
- data/lib/chef/provider/package/windows.rb +2 -4
- data/lib/chef/provider/package/yum/python_helper.rb +109 -35
- data/lib/chef/provider/package/yum/yum_helper.py +42 -60
- data/lib/chef/provider/package/yum.rb +40 -16
- data/lib/chef/provider/package/zypper.rb +7 -0
- data/lib/chef/provider/package.rb +80 -49
- data/lib/chef/provider/registry_key.rb +4 -3
- data/lib/chef/provider/remote_file/http.rb +1 -1
- data/lib/chef/provider/route.rb +2 -2
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/freebsd.rb +15 -21
- data/lib/chef/provider/service/macosx.rb +4 -4
- data/lib/chef/provider/service/systemd.rb +43 -14
- data/lib/chef/provider/service/upstart.rb +2 -13
- data/lib/chef/provider/service/windows.rb +16 -16
- data/lib/chef/provider/service.rb +6 -6
- data/lib/chef/provider/subversion.rb +18 -20
- data/lib/chef/provider/support/yum_repo.erb +1 -1
- data/lib/chef/provider/support/zypper_repo.erb +4 -2
- data/lib/chef/provider/systemd_unit.rb +53 -26
- data/lib/chef/provider/template/content.rb +2 -6
- data/lib/chef/provider/template.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +1 -1
- data/lib/chef/provider/user/mac.rb +23 -26
- data/lib/chef/provider/user/pw.rb +1 -1
- data/lib/chef/provider/user/windows.rb +3 -3
- data/lib/chef/provider/user.rb +7 -3
- data/lib/chef/provider/windows_script.rb +1 -1
- data/lib/chef/provider/yum_repository.rb +27 -43
- data/lib/chef/provider/zypper_repository.rb +31 -35
- data/lib/chef/provider.rb +32 -4
- data/lib/chef/provider_resolver.rb +8 -2
- data/lib/chef/providers.rb +1 -2
- data/lib/chef/pwsh.rb +3 -2
- data/lib/chef/resource/alternatives.rb +6 -6
- data/lib/chef/resource/apt_package.rb +3 -3
- data/lib/chef/resource/apt_preference.rb +2 -2
- data/lib/chef/resource/apt_repository.rb +6 -6
- data/lib/chef/resource/apt_update.rb +5 -4
- data/lib/chef/resource/archive_file.rb +19 -17
- data/lib/chef/resource/breakpoint.rb +1 -1
- data/lib/chef/resource/build_essential.rb +2 -6
- data/lib/chef/resource/chef_client_config.rb +38 -6
- data/lib/chef/resource/chef_client_cron.rb +5 -5
- data/lib/chef/resource/chef_client_launchd.rb +7 -7
- data/lib/chef/resource/chef_client_scheduled_task.rb +61 -18
- data/lib/chef/resource/chef_client_systemd_timer.rb +6 -6
- data/lib/chef/resource/chef_client_trusted_certificate.rb +2 -2
- data/lib/chef/resource/chef_handler.rb +3 -7
- data/lib/chef/resource/chef_sleep.rb +1 -1
- data/lib/chef/resource/chef_vault_secret.rb +5 -10
- data/lib/chef/resource/chocolatey_config.rb +16 -20
- data/lib/chef/resource/chocolatey_feature.rb +3 -7
- data/lib/chef/resource/chocolatey_package.rb +3 -3
- data/lib/chef/resource/chocolatey_source.rb +28 -12
- data/lib/chef/resource/cron/_cron_shared.rb +2 -2
- data/lib/chef/resource/cron/cron.rb +75 -1
- data/lib/chef/resource/cron/cron_d.rb +5 -6
- data/lib/chef/resource/cron_access.rb +2 -4
- data/lib/chef/resource/directory.rb +1 -1
- data/lib/chef/resource/dmg_package.rb +6 -10
- data/lib/chef/resource/dnf_package.rb +4 -6
- data/lib/chef/resource/dpkg_package.rb +6 -1
- data/lib/chef/resource/dsc_resource.rb +1 -1
- data/lib/chef/resource/execute.rb +14 -12
- data/lib/chef/resource/file/verification/json.rb +50 -0
- data/lib/chef/resource/{user/dscl_user.rb → file/verification/yaml.rb} +26 -9
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/gem_package.rb +2 -1
- data/lib/chef/resource/group.rb +6 -6
- data/lib/chef/{knife/recipe_list.rb → resource/habitat/_habitat_shared.rb} +13 -17
- data/lib/chef/resource/habitat/habitat_package.rb +129 -0
- data/lib/chef/resource/habitat/habitat_sup.rb +329 -0
- data/lib/chef/resource/habitat/habitat_sup_systemd.rb +67 -0
- data/lib/chef/resource/habitat/habitat_sup_windows.rb +90 -0
- data/lib/chef/resource/habitat_config.rb +107 -0
- data/lib/chef/resource/habitat_install.rb +247 -0
- data/lib/chef/resource/habitat_service.rb +451 -0
- data/lib/chef/resource/habitat_user_toml.rb +92 -0
- data/lib/chef/resource/homebrew_cask.rb +10 -10
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +9 -16
- data/lib/chef/resource/homebrew_update.rb +2 -2
- data/lib/chef/resource/hostname.rb +68 -22
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/inspec_input.rb +127 -0
- data/lib/chef/resource/inspec_waiver.rb +184 -0
- data/lib/chef/resource/inspec_waiver_file_entry.rb +156 -0
- data/lib/chef/resource/kernel_module.rb +32 -18
- data/lib/chef/resource/launchd.rb +5 -8
- data/lib/chef/resource/locale.rb +7 -5
- data/lib/chef/resource/lwrp_base.rb +20 -1
- data/lib/chef/resource/macos_userdefaults.rb +54 -144
- data/lib/chef/resource/mdadm.rb +53 -7
- data/lib/chef/resource/mount.rb +2 -1
- data/lib/chef/resource/ohai_hint.rb +2 -6
- data/lib/chef/resource/openbsd_package.rb +17 -0
- data/lib/chef/resource/openssl_dhparam.rb +1 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +3 -5
- data/lib/chef/resource/openssl_ec_public_key.rb +1 -3
- data/lib/chef/resource/openssl_rsa_private_key.rb +2 -4
- data/lib/chef/resource/openssl_rsa_public_key.rb +1 -3
- data/lib/chef/resource/openssl_x509_certificate.rb +4 -7
- data/lib/chef/resource/openssl_x509_crl.rb +1 -3
- data/lib/chef/resource/openssl_x509_request.rb +1 -3
- data/lib/chef/resource/osx_profile.rb +3 -3
- data/lib/chef/resource/plist.rb +8 -8
- data/lib/chef/resource/powershell_package_source.rb +235 -73
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/reboot.rb +38 -9
- data/lib/chef/resource/registry_key.rb +36 -48
- data/lib/chef/resource/remote_directory.rb +2 -2
- data/lib/chef/resource/remote_file.rb +103 -7
- data/lib/chef/resource/rhsm_errata.rb +16 -3
- data/lib/chef/resource/rhsm_errata_level.rb +11 -6
- data/lib/chef/resource/rhsm_register.rb +42 -3
- data/lib/chef/resource/rhsm_repo.rb +17 -6
- data/lib/chef/resource/rhsm_subscription.rb +2 -6
- data/lib/chef/resource/ruby_block.rb +100 -0
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/scm/subversion.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +4 -7
- data/lib/chef/resource/sudo.rb +8 -12
- data/lib/chef/resource/support/HabService.dll.config.erb +19 -0
- data/lib/chef/resource/support/client.erb +11 -1
- data/lib/chef/resource/support/sup.toml.erb +179 -0
- data/lib/chef/resource/swap_file.rb +2 -6
- data/lib/chef/resource/sysctl.rb +2 -6
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +3 -5
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user_ulimit.rb +2 -2
- data/lib/chef/resource/windows_ad_join.rb +2 -6
- data/lib/chef/resource/windows_audit_policy.rb +2 -2
- data/lib/chef/resource/windows_auto_run.rb +3 -6
- data/lib/chef/resource/windows_certificate.rb +235 -90
- data/lib/chef/resource/windows_defender.rb +163 -0
- data/lib/chef/resource/windows_defender_exclusion.rb +125 -0
- data/lib/chef/resource/windows_dfs_folder.rb +2 -6
- data/lib/chef/resource/windows_dfs_namespace.rb +4 -8
- data/lib/chef/resource/windows_dfs_server.rb +1 -3
- data/lib/chef/resource/windows_dns_record.rb +2 -6
- data/lib/chef/resource/windows_dns_zone.rb +2 -6
- data/lib/chef/resource/windows_env.rb +6 -5
- data/lib/chef/resource/windows_feature.rb +3 -9
- data/lib/chef/resource/windows_feature_dism.rb +3 -9
- data/lib/chef/resource/windows_feature_powershell.rb +11 -12
- data/lib/chef/resource/windows_firewall_profile.rb +4 -4
- data/lib/chef/resource/windows_firewall_rule.rb +20 -9
- data/lib/chef/resource/windows_font.rb +3 -5
- data/lib/chef/resource/windows_pagefile.rb +111 -69
- data/lib/chef/resource/windows_path.rb +4 -4
- data/lib/chef/resource/windows_printer.rb +80 -61
- data/lib/chef/resource/windows_printer_port.rb +49 -66
- data/lib/chef/resource/windows_security_policy.rb +10 -10
- data/lib/chef/resource/windows_share.rb +14 -21
- data/lib/chef/resource/windows_shortcut.rb +4 -6
- data/lib/chef/resource/windows_task.rb +44 -17
- data/lib/chef/resource/windows_uac.rb +3 -5
- data/lib/chef/resource/windows_update_settings.rb +259 -0
- data/lib/chef/resource/windows_workgroup.rb +3 -4
- data/lib/chef/resource/yum_package.rb +11 -15
- data/lib/chef/resource/zypper_package.rb +4 -4
- data/lib/chef/resource/zypper_repository.rb +28 -8
- data/lib/chef/resource.rb +24 -27
- data/lib/chef/resource_builder.rb +8 -2
- data/lib/chef/resource_inspector.rb +6 -2
- data/lib/chef/resource_reporter.rb +1 -2
- data/lib/chef/resources.rb +15 -2
- data/lib/chef/run_context/cookbook_compiler.rb +112 -28
- data/lib/chef/run_context.rb +47 -1
- data/lib/chef/run_lock.rb +2 -2
- data/lib/chef/runner.rb +1 -1
- data/lib/chef/secret_fetcher/akeyless_vault.rb +57 -0
- data/lib/chef/secret_fetcher/aws_secrets_manager.rb +65 -0
- data/lib/chef/secret_fetcher/azure_key_vault.rb +134 -0
- data/lib/chef/secret_fetcher/base.rb +76 -0
- data/lib/chef/secret_fetcher/example.rb +46 -0
- data/lib/chef/secret_fetcher/hashi_vault.rb +134 -0
- data/lib/chef/secret_fetcher.rb +60 -0
- data/lib/chef/user.rb +0 -1
- data/lib/chef/user_v1.rb +3 -4
- data/lib/chef/util/dsc/configuration_generator.rb +2 -1
- data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +1 -1
- data/lib/chef/win32/registry.rb +4 -2
- data/spec/data/archive_file/test_archive.tar.gz +0 -0
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
- data/spec/data/lwrp/resources/bar.rb +2 -0
- data/spec/data/lwrp/resources/buck_passer.rb +1 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
- data/spec/data/lwrp/resources/foo.rb +2 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
- data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
- data/spec/data/lwrp_override/resources/foo.rb +1 -0
- data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
- data/spec/data/rubygems.org/sexp_processor-info +49 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/data/trusted_certs/example.crt +29 -20
- data/spec/data/trusted_certs/example_no_cn.crt +30 -34
- data/spec/data/trusted_certs/opscode.pem +33 -54
- data/spec/functional/assets/yumrepo/repodata/01a3b-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/401dc-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/5dc1e-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/6bf96-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/7c365-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/dabe2-primary.xml.gz +0 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +3 -3
- data/spec/functional/dsl/registry_helper_spec.rb +2 -2
- data/spec/functional/mixin/from_file_spec.rb +1 -1
- data/spec/functional/resource/aixinit_service_spec.rb +7 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -1
- data/spec/functional/resource/archive_file_spec.rb +88 -0
- data/spec/functional/resource/chocolatey_package_spec.rb +41 -20
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/dnf_package_spec.rb +997 -645
- data/spec/functional/resource/dpkg_package_spec.rb +16 -0
- data/spec/functional/resource/dsc_script_spec.rb +5 -5
- data/spec/functional/resource/group_spec.rb +39 -19
- data/spec/functional/resource/link_spec.rb +1 -1
- data/spec/functional/resource/macos_userdefaults_spec.rb +139 -0
- data/spec/functional/resource/powershell_package_source_spec.rb +5 -6
- data/spec/functional/resource/registry_spec.rb +89 -89
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/functional/resource/template_spec.rb +1 -1
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +122 -37
- data/spec/functional/resource/windows_env_spec.rb +2 -2
- data/spec/functional/resource/windows_font_spec.rb +1 -2
- data/spec/functional/resource/windows_hostname_spec.rb +91 -0
- data/spec/functional/resource/windows_pagefile_spec.rb +125 -0
- data/spec/functional/resource/yum_package_spec.rb +1197 -451
- data/spec/functional/resource/zypper_package_spec.rb +17 -0
- data/spec/functional/shell_spec.rb +1 -0
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +12 -9
- data/spec/integration/client/client_spec.rb +37 -23
- data/spec/integration/client/exit_code_spec.rb +1 -1
- data/spec/integration/client/fips_spec.rb +9 -1
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/client/open_ssl_spec.rb +20 -0
- data/spec/integration/compliance/compliance_spec.rb +62 -1
- data/spec/integration/ohai/ohai_spec.rb +7 -6
- data/spec/integration/recipes/accumulator_spec.rb +13 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
- data/spec/integration/recipes/lwrp_spec.rb +3 -1
- data/spec/integration/recipes/notifies_spec.rb +15 -1
- data/spec/integration/recipes/notifying_block_spec.rb +2 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +10 -10
- data/spec/integration/recipes/resource_action_spec.rb +6 -6
- data/spec/integration/recipes/unified_mode_spec.rb +71 -1
- data/spec/integration/recipes/use_partial_spec.rb +4 -1
- data/spec/spec_helper.rb +20 -18
- data/spec/support/chef_helpers.rb +1 -17
- data/spec/support/lib/chef/resource/with_state.rb +0 -1
- data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
- data/spec/support/lib/chef/resource/zen_master.rb +0 -1
- data/spec/support/matchers/leak.rb +7 -9
- data/spec/support/platform_helpers.rb +14 -13
- data/spec/support/ruby_installer.rb +51 -0
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +2 -2
- data/spec/support/shared/functional/http.rb +9 -9
- data/spec/support/shared/integration/integration_helper.rb +0 -1
- data/spec/support/shared/unit/provider/file.rb +3 -9
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +1 -1
- data/spec/support/shared/unit/script_resource.rb +2 -2
- data/spec/unit/application/base_spec.rb +40 -0
- data/spec/unit/application/solo_spec.rb +2 -2
- data/spec/unit/chef_fs/diff_spec.rb +1 -1
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
- data/spec/unit/chef_fs/file_system_spec.rb +1 -1
- data/spec/unit/client_spec.rb +0 -16
- data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
- data/spec/unit/compliance/input_spec.rb +104 -0
- data/spec/unit/compliance/profile_spec.rb +120 -0
- data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
- data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +21 -1
- data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +4 -3
- data/spec/unit/compliance/runner_spec.rb +137 -6
- data/spec/unit/compliance/waiver_spec.rb +104 -0
- data/spec/unit/data_bag_item_spec.rb +1 -6
- data/spec/unit/dsl/reboot_pending_spec.rb +3 -3
- data/spec/unit/dsl/registry_helper_spec.rb +7 -7
- data/spec/unit/dsl/render_helpers_spec.rb +102 -0
- data/spec/unit/dsl/secret_spec.rb +175 -0
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/formatters/doc_spec.rb +1 -1
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
- data/spec/unit/handler_spec.rb +8 -2
- data/spec/unit/http/basic_client_spec.rb +30 -0
- data/spec/unit/http_spec.rb +8 -2
- data/spec/unit/lwrp_spec.rb +3 -3
- data/spec/unit/mixin/default_paths_spec.rb +1 -1
- data/spec/unit/mixin/homebrew_user_spec.rb +30 -7
- data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -3
- data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
- data/spec/unit/mixin/powershell_out_spec.rb +2 -2
- data/spec/unit/mixin/securable_spec.rb +3 -3
- data/spec/unit/mixin/why_run_spec.rb +53 -0
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/node_spec.rb +78 -0
- data/spec/unit/org_group_spec.rb +45 -0
- data/spec/unit/platform/query_helpers_spec.rb +5 -5
- data/spec/unit/policy_builder/dynamic_spec.rb +0 -5
- data/spec/unit/policy_builder/policyfile_spec.rb +133 -55
- data/spec/unit/property_spec.rb +23 -22
- data/spec/unit/provider/apt_update_spec.rb +3 -1
- data/spec/unit/provider/cron_spec.rb +46 -1
- data/spec/unit/provider/dsc_script_spec.rb +8 -8
- data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
- data/spec/unit/provider/group/groupadd_spec.rb +1 -0
- data/spec/unit/provider/group/groupmod_spec.rb +2 -2
- data/spec/unit/provider/group/pw_spec.rb +2 -2
- data/spec/unit/provider/group/usermod_spec.rb +4 -4
- data/spec/unit/provider/group_spec.rb +1 -1
- data/spec/unit/provider/ifconfig/aix_spec.rb +14 -14
- data/spec/unit/provider/ifconfig/debian_spec.rb +1 -1
- data/spec/unit/provider/ifconfig/redhat_spec.rb +1 -1
- data/spec/unit/provider/ifconfig_spec.rb +5 -3
- data/spec/unit/provider/link_spec.rb +14 -8
- data/spec/unit/provider/mount/aix_spec.rb +1 -1
- data/spec/unit/provider/mount/linux_spec.rb +16 -3
- data/spec/unit/provider/package/apt_spec.rb +84 -18
- data/spec/unit/provider/package/bff_spec.rb +1 -0
- data/spec/unit/provider/package/chocolatey_spec.rb +20 -3
- data/spec/unit/provider/package/deb_spec.rb +3 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -0
- data/spec/unit/provider/package/powershell_spec.rb +114 -114
- data/spec/unit/provider/package/rubygems_spec.rb +27 -36
- data/spec/unit/provider/package/solaris_spec.rb +1 -0
- data/spec/unit/provider/package/windows_spec.rb +1 -1
- data/spec/unit/provider/package/yum/python_helper_spec.rb +1 -0
- data/spec/unit/provider/registry_key_spec.rb +4 -4
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +3 -3
- data/spec/unit/provider/remote_file/http_spec.rb +10 -0
- data/spec/unit/provider/service/arch_service_spec.rb +3 -2
- data/spec/unit/provider/service/debian_service_spec.rb +2 -0
- data/spec/unit/provider/service/gentoo_service_spec.rb +3 -2
- data/spec/unit/provider/service/macosx_spec.rb +3 -2
- data/spec/unit/provider/service/redhat_spec.rb +4 -1
- data/spec/unit/provider/service/simple_service_spec.rb +6 -4
- data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -32
- data/spec/unit/provider/service/windows_spec.rb +7 -7
- data/spec/unit/provider/subversion_spec.rb +6 -6
- data/spec/unit/provider/systemd_unit_spec.rb +79 -60
- data/spec/unit/provider/template_spec.rb +2 -2
- data/spec/unit/provider/user/linux_spec.rb +55 -0
- data/spec/unit/provider/user/solaris_spec.rb +1 -1
- data/spec/unit/provider/user_spec.rb +2 -0
- data/spec/unit/provider/windows_env_spec.rb +1 -1
- data/spec/unit/provider/zypper_repository_spec.rb +6 -13
- data/spec/unit/provider_spec.rb +23 -8
- data/spec/unit/resource/archive_file_spec.rb +400 -2
- data/spec/unit/resource/chef_client_config_spec.rb +8 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +69 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +1 -1
- data/spec/unit/resource/chocolatey_config_spec.rb +1 -1
- data/spec/unit/resource/chocolatey_feature_spec.rb +1 -1
- data/spec/unit/resource/chocolatey_source_spec.rb +1 -1
- data/spec/unit/resource/conditional_spec.rb +4 -4
- data/spec/unit/resource/dpkg_package_spec.rb +12 -0
- data/spec/unit/resource/file/verification/json_spec.rb +72 -0
- data/spec/unit/resource/file/verification/yaml_spec.rb +67 -0
- data/spec/unit/resource/inspec_input_spec.rb +300 -0
- data/spec/unit/resource/inspec_waiver_file_entry_spec.rb +80 -0
- data/spec/unit/resource/inspec_waiver_spec.rb +312 -0
- data/spec/unit/resource/kernel_module_spec.rb +2 -1
- data/spec/unit/resource/macos_user_defaults_spec.rb +36 -96
- data/spec/unit/resource/powershell_package_source_spec.rb +63 -62
- data/spec/unit/resource/powershell_script_spec.rb +2 -2
- data/spec/unit/resource/registry_key_spec.rb +10 -10
- data/spec/unit/resource/rhsm_register_spec.rb +42 -0
- data/spec/unit/resource/windows_auto_run_spec.rb +1 -1
- data/spec/unit/resource/windows_defender_exclusion_spec.rb +62 -0
- data/spec/unit/resource/windows_defender_spec.rb +71 -0
- data/spec/unit/resource/windows_feature_powershell_spec.rb +1 -1
- data/spec/unit/resource/windows_firewall_rule_spec.rb +14 -9
- data/spec/unit/resource/windows_pagefile_spec.rb +4 -9
- data/spec/unit/resource/windows_task_spec.rb +4 -4
- data/spec/unit/resource/windows_update_settings_spec.rb +64 -0
- data/spec/unit/resource/zypper_repository_spec.rb +1 -1
- data/spec/unit/resource_reporter_spec.rb +2 -2
- data/spec/unit/resource_spec.rb +56 -23
- data/spec/unit/run_context_spec.rb +16 -0
- data/spec/unit/secret_fetcher/akeyless_vault_spec.rb +37 -0
- data/spec/unit/secret_fetcher/aws_secrets_manager_spec.rb +70 -0
- data/spec/unit/secret_fetcher/azure_key_vault_spec.rb +149 -0
- data/spec/unit/secret_fetcher/hashi_vault_spec.rb +126 -0
- data/spec/unit/secret_fetcher_spec.rb +82 -0
- data/spec/unit/user_spec.rb +1 -1
- data/spec/unit/user_v1_spec.rb +6 -4
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
- data/spec/unit/win32/registry_spec.rb +3 -3
- data/tasks/rspec.rb +10 -6
- metadata +181 -532
- data/bin/knife +0 -24
- data/lib/chef/application/knife.rb +0 -234
- data/lib/chef/application/windows_service.rb +0 -338
- data/lib/chef/application/windows_service_manager.rb +0 -205
- data/lib/chef/chef_fs/knife.rb +0 -160
- data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
- data/lib/chef/chef_fs/parallelizer.rb +0 -102
- data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
- data/lib/chef/knife/acl_add.rb +0 -57
- data/lib/chef/knife/acl_base.rb +0 -183
- data/lib/chef/knife/acl_bulk_add.rb +0 -78
- data/lib/chef/knife/acl_bulk_remove.rb +0 -83
- data/lib/chef/knife/acl_remove.rb +0 -62
- data/lib/chef/knife/acl_show.rb +0 -56
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
- data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
- data/lib/chef/knife/bootstrap/templates/README.md +0 -11
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
- data/lib/chef/knife/bootstrap.rb +0 -1192
- data/lib/chef/knife/client_bulk_delete.rb +0 -104
- data/lib/chef/knife/client_create.rb +0 -101
- data/lib/chef/knife/client_delete.rb +0 -62
- data/lib/chef/knife/client_edit.rb +0 -52
- data/lib/chef/knife/client_key_create.rb +0 -73
- data/lib/chef/knife/client_key_delete.rb +0 -80
- data/lib/chef/knife/client_key_edit.rb +0 -83
- data/lib/chef/knife/client_key_list.rb +0 -73
- data/lib/chef/knife/client_key_show.rb +0 -80
- data/lib/chef/knife/client_list.rb +0 -41
- data/lib/chef/knife/client_reregister.rb +0 -58
- data/lib/chef/knife/config_get.rb +0 -39
- data/lib/chef/knife/config_get_profile.rb +0 -37
- data/lib/chef/knife/config_list.rb +0 -139
- data/lib/chef/knife/config_list_profiles.rb +0 -37
- data/lib/chef/knife/config_show.rb +0 -127
- data/lib/chef/knife/config_use.rb +0 -61
- data/lib/chef/knife/config_use_profile.rb +0 -47
- data/lib/chef/knife/configure.rb +0 -150
- data/lib/chef/knife/configure_client.rb +0 -48
- data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
- data/lib/chef/knife/cookbook_delete.rb +0 -151
- data/lib/chef/knife/cookbook_download.rb +0 -142
- data/lib/chef/knife/cookbook_list.rb +0 -47
- data/lib/chef/knife/cookbook_metadata.rb +0 -106
- data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
- data/lib/chef/knife/cookbook_show.rb +0 -98
- data/lib/chef/knife/cookbook_upload.rb +0 -292
- data/lib/chef/knife/core/bootstrap_context.rb +0 -264
- data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
- data/lib/chef/knife/core/formatting_options.rb +0 -49
- data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
- data/lib/chef/knife/core/generic_presenter.rb +0 -232
- data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
- data/lib/chef/knife/core/node_editor.rb +0 -130
- data/lib/chef/knife/core/node_presenter.rb +0 -133
- data/lib/chef/knife/core/object_loader.rb +0 -115
- data/lib/chef/knife/core/status_presenter.rb +0 -147
- data/lib/chef/knife/core/subcommand_loader.rb +0 -203
- data/lib/chef/knife/core/text_formatter.rb +0 -85
- data/lib/chef/knife/core/ui.rb +0 -338
- data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
- data/lib/chef/knife/data_bag_create.rb +0 -81
- data/lib/chef/knife/data_bag_delete.rb +0 -49
- data/lib/chef/knife/data_bag_edit.rb +0 -74
- data/lib/chef/knife/data_bag_from_file.rb +0 -113
- data/lib/chef/knife/data_bag_secret_options.rb +0 -122
- data/lib/chef/knife/data_bag_show.rb +0 -69
- data/lib/chef/knife/delete.rb +0 -125
- data/lib/chef/knife/deps.rb +0 -156
- data/lib/chef/knife/diff.rb +0 -83
- data/lib/chef/knife/download.rb +0 -84
- data/lib/chef/knife/edit.rb +0 -88
- data/lib/chef/knife/environment_compare.rb +0 -128
- data/lib/chef/knife/environment_create.rb +0 -52
- data/lib/chef/knife/environment_delete.rb +0 -44
- data/lib/chef/knife/environment_edit.rb +0 -44
- data/lib/chef/knife/environment_from_file.rb +0 -84
- data/lib/chef/knife/environment_list.rb +0 -41
- data/lib/chef/knife/environment_show.rb +0 -47
- data/lib/chef/knife/exec.rb +0 -99
- data/lib/chef/knife/group_add.rb +0 -55
- data/lib/chef/knife/group_create.rb +0 -49
- data/lib/chef/knife/group_destroy.rb +0 -53
- data/lib/chef/knife/group_remove.rb +0 -56
- data/lib/chef/knife/group_show.rb +0 -49
- data/lib/chef/knife/key_create.rb +0 -112
- data/lib/chef/knife/key_create_base.rb +0 -50
- data/lib/chef/knife/key_delete.rb +0 -55
- data/lib/chef/knife/key_edit.rb +0 -118
- data/lib/chef/knife/key_edit_base.rb +0 -55
- data/lib/chef/knife/key_list.rb +0 -90
- data/lib/chef/knife/key_list_base.rb +0 -45
- data/lib/chef/knife/key_show.rb +0 -53
- data/lib/chef/knife/list.rb +0 -177
- data/lib/chef/knife/node_bulk_delete.rb +0 -75
- data/lib/chef/knife/node_create.rb +0 -47
- data/lib/chef/knife/node_delete.rb +0 -46
- data/lib/chef/knife/node_edit.rb +0 -70
- data/lib/chef/knife/node_environment_set.rb +0 -53
- data/lib/chef/knife/node_from_file.rb +0 -51
- data/lib/chef/knife/node_list.rb +0 -44
- data/lib/chef/knife/node_policy_set.rb +0 -79
- data/lib/chef/knife/node_run_list_add.rb +0 -104
- data/lib/chef/knife/node_run_list_remove.rb +0 -67
- data/lib/chef/knife/node_run_list_set.rb +0 -66
- data/lib/chef/knife/node_show.rb +0 -63
- data/lib/chef/knife/null.rb +0 -12
- data/lib/chef/knife/raw.rb +0 -123
- data/lib/chef/knife/rehash.rb +0 -50
- data/lib/chef/knife/role_bulk_delete.rb +0 -66
- data/lib/chef/knife/role_create.rb +0 -53
- data/lib/chef/knife/role_delete.rb +0 -46
- data/lib/chef/knife/role_edit.rb +0 -45
- data/lib/chef/knife/role_env_run_list_add.rb +0 -87
- data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
- data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
- data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
- data/lib/chef/knife/role_env_run_list_set.rb +0 -70
- data/lib/chef/knife/role_from_file.rb +0 -51
- data/lib/chef/knife/role_list.rb +0 -42
- data/lib/chef/knife/role_run_list_add.rb +0 -87
- data/lib/chef/knife/role_run_list_clear.rb +0 -55
- data/lib/chef/knife/role_run_list_remove.rb +0 -56
- data/lib/chef/knife/role_run_list_replace.rb +0 -60
- data/lib/chef/knife/role_run_list_set.rb +0 -69
- data/lib/chef/knife/role_show.rb +0 -48
- data/lib/chef/knife/search.rb +0 -194
- data/lib/chef/knife/serve.rb +0 -65
- data/lib/chef/knife/show.rb +0 -72
- data/lib/chef/knife/ssh.rb +0 -645
- data/lib/chef/knife/ssl_check.rb +0 -284
- data/lib/chef/knife/ssl_fetch.rb +0 -161
- data/lib/chef/knife/status.rb +0 -95
- data/lib/chef/knife/supermarket_download.rb +0 -121
- data/lib/chef/knife/supermarket_install.rb +0 -192
- data/lib/chef/knife/supermarket_list.rb +0 -76
- data/lib/chef/knife/supermarket_search.rb +0 -53
- data/lib/chef/knife/supermarket_share.rb +0 -166
- data/lib/chef/knife/supermarket_show.rb +0 -66
- data/lib/chef/knife/supermarket_unshare.rb +0 -61
- data/lib/chef/knife/tag_create.rb +0 -52
- data/lib/chef/knife/tag_delete.rb +0 -60
- data/lib/chef/knife/tag_list.rb +0 -47
- data/lib/chef/knife/upload.rb +0 -86
- data/lib/chef/knife/user_create.rb +0 -107
- data/lib/chef/knife/user_delete.rb +0 -44
- data/lib/chef/knife/user_dissociate.rb +0 -42
- data/lib/chef/knife/user_edit.rb +0 -52
- data/lib/chef/knife/user_invite_add.rb +0 -43
- data/lib/chef/knife/user_invite_list.rb +0 -34
- data/lib/chef/knife/user_invite_rescind.rb +0 -63
- data/lib/chef/knife/user_key_create.rb +0 -73
- data/lib/chef/knife/user_key_delete.rb +0 -80
- data/lib/chef/knife/user_key_edit.rb +0 -83
- data/lib/chef/knife/user_key_list.rb +0 -73
- data/lib/chef/knife/user_key_show.rb +0 -80
- data/lib/chef/knife/user_list.rb +0 -42
- data/lib/chef/knife/user_reregister.rb +0 -59
- data/lib/chef/knife/user_show.rb +0 -48
- data/lib/chef/knife/xargs.rb +0 -282
- data/lib/chef/knife/yaml_convert.rb +0 -91
- data/lib/chef/knife.rb +0 -665
- data/lib/chef/provider/group/suse.rb +0 -82
- data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +0 -79
- data/lib/chef/provider/package/yum/simplejson/__init__.py +0 -318
- data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/decoder.py +0 -354
- data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/encoder.py +0 -440
- data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/scanner.py +0 -65
- data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
- data/lib/chef/provider/package/yum/simplejson/tool.py +0 -37
- data/spec/functional/knife/configure_spec.rb +0 -33
- data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
- data/spec/functional/knife/exec_spec.rb +0 -55
- data/spec/functional/knife/rehash_spec.rb +0 -39
- data/spec/functional/knife/smoke_test.rb +0 -42
- data/spec/functional/knife/ssh_spec.rb +0 -352
- data/spec/functional/resource/user/dscl_spec.rb +0 -188
- data/spec/functional/resource/windows_service_spec.rb +0 -105
- data/spec/functional/win32/service_manager_spec.rb +0 -220
- data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
- data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
- data/spec/integration/knife/chefignore_spec.rb +0 -301
- data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
- data/spec/integration/knife/client_create_spec.rb +0 -70
- data/spec/integration/knife/client_delete_spec.rb +0 -64
- data/spec/integration/knife/client_key_create_spec.rb +0 -66
- data/spec/integration/knife/client_key_delete_spec.rb +0 -43
- data/spec/integration/knife/client_key_list_spec.rb +0 -61
- data/spec/integration/knife/client_key_show_spec.rb +0 -45
- data/spec/integration/knife/client_list_spec.rb +0 -49
- data/spec/integration/knife/client_show_spec.rb +0 -37
- data/spec/integration/knife/common_options_spec.rb +0 -174
- data/spec/integration/knife/config_list_spec.rb +0 -220
- data/spec/integration/knife/config_show_spec.rb +0 -192
- data/spec/integration/knife/config_use_spec.rb +0 -198
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
- data/spec/integration/knife/cookbook_download_spec.rb +0 -72
- data/spec/integration/knife/cookbook_list_spec.rb +0 -55
- data/spec/integration/knife/cookbook_show_spec.rb +0 -149
- data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
- data/spec/integration/knife/data_bag_create_spec.rb +0 -125
- data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
- data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
- data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
- data/spec/integration/knife/data_bag_list_spec.rb +0 -44
- data/spec/integration/knife/data_bag_show_spec.rb +0 -95
- data/spec/integration/knife/delete_spec.rb +0 -1018
- data/spec/integration/knife/deps_spec.rb +0 -703
- data/spec/integration/knife/diff_spec.rb +0 -605
- data/spec/integration/knife/download_spec.rb +0 -1336
- data/spec/integration/knife/environment_compare_spec.rb +0 -75
- data/spec/integration/knife/environment_create_spec.rb +0 -41
- data/spec/integration/knife/environment_delete_spec.rb +0 -37
- data/spec/integration/knife/environment_from_file_spec.rb +0 -116
- data/spec/integration/knife/environment_list_spec.rb +0 -42
- data/spec/integration/knife/environment_show_spec.rb +0 -77
- data/spec/integration/knife/list_spec.rb +0 -1060
- data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
- data/spec/integration/knife/node_create_spec.rb +0 -47
- data/spec/integration/knife/node_delete_spec.rb +0 -48
- data/spec/integration/knife/node_environment_set_spec.rb +0 -46
- data/spec/integration/knife/node_from_file_spec.rb +0 -59
- data/spec/integration/knife/node_list_spec.rb +0 -45
- data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
- data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
- data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
- data/spec/integration/knife/node_show_spec.rb +0 -36
- data/spec/integration/knife/raw_spec.rb +0 -297
- data/spec/integration/knife/redirection_spec.rb +0 -64
- data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
- data/spec/integration/knife/role_create_spec.rb +0 -41
- data/spec/integration/knife/role_delete_spec.rb +0 -48
- data/spec/integration/knife/role_from_file_spec.rb +0 -96
- data/spec/integration/knife/role_list_spec.rb +0 -45
- data/spec/integration/knife/role_show_spec.rb +0 -51
- data/spec/integration/knife/search_node_spec.rb +0 -40
- data/spec/integration/knife/serve_spec.rb +0 -92
- data/spec/integration/knife/show_spec.rb +0 -197
- data/spec/integration/knife/upload_spec.rb +0 -1616
- data/spec/support/shared/functional/win32_service.rb +0 -57
- data/spec/unit/application/knife_spec.rb +0 -241
- data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
- data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
- data/spec/unit/knife/bootstrap_spec.rb +0 -2220
- data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
- data/spec/unit/knife/client_create_spec.rb +0 -169
- data/spec/unit/knife/client_delete_spec.rb +0 -99
- data/spec/unit/knife/client_edit_spec.rb +0 -53
- data/spec/unit/knife/client_list_spec.rb +0 -34
- data/spec/unit/knife/client_reregister_spec.rb +0 -62
- data/spec/unit/knife/client_show_spec.rb +0 -52
- data/spec/unit/knife/configure_client_spec.rb +0 -81
- data/spec/unit/knife/configure_spec.rb +0 -190
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
- data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
- data/spec/unit/knife/cookbook_download_spec.rb +0 -255
- data/spec/unit/knife/cookbook_list_spec.rb +0 -88
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
- data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
- data/spec/unit/knife/cookbook_show_spec.rb +0 -253
- data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
- data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
- data/spec/unit/knife/core/node_editor_spec.rb +0 -211
- data/spec/unit/knife/core/object_loader_spec.rb +0 -81
- data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
- data/spec/unit/knife/core/ui_spec.rb +0 -656
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
- data/spec/unit/knife/data_bag_create_spec.rb +0 -175
- data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
- data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
- data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
- data/spec/unit/knife/data_bag_show_spec.rb +0 -139
- data/spec/unit/knife/environment_compare_spec.rb +0 -112
- data/spec/unit/knife/environment_create_spec.rb +0 -91
- data/spec/unit/knife/environment_delete_spec.rb +0 -71
- data/spec/unit/knife/environment_edit_spec.rb +0 -79
- data/spec/unit/knife/environment_from_file_spec.rb +0 -90
- data/spec/unit/knife/environment_list_spec.rb +0 -54
- data/spec/unit/knife/environment_show_spec.rb +0 -52
- data/spec/unit/knife/key_create_spec.rb +0 -223
- data/spec/unit/knife/key_delete_spec.rb +0 -133
- data/spec/unit/knife/key_edit_spec.rb +0 -264
- data/spec/unit/knife/key_helper.rb +0 -74
- data/spec/unit/knife/key_list_spec.rb +0 -216
- data/spec/unit/knife/key_show_spec.rb +0 -126
- data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
- data/spec/unit/knife/node_delete_spec.rb +0 -77
- data/spec/unit/knife/node_edit_spec.rb +0 -116
- data/spec/unit/knife/node_environment_set_spec.rb +0 -61
- data/spec/unit/knife/node_from_file_spec.rb +0 -59
- data/spec/unit/knife/node_list_spec.rb +0 -62
- data/spec/unit/knife/node_policy_set_spec.rb +0 -122
- data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
- data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
- data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
- data/spec/unit/knife/node_show_spec.rb +0 -65
- data/spec/unit/knife/raw_spec.rb +0 -43
- data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
- data/spec/unit/knife/role_create_spec.rb +0 -80
- data/spec/unit/knife/role_delete_spec.rb +0 -67
- data/spec/unit/knife/role_edit_spec.rb +0 -77
- data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
- data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
- data/spec/unit/knife/role_from_file_spec.rb +0 -69
- data/spec/unit/knife/role_list_spec.rb +0 -54
- data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
- data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
- data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
- data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
- data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
- data/spec/unit/knife/role_show_spec.rb +0 -59
- data/spec/unit/knife/ssh_spec.rb +0 -403
- data/spec/unit/knife/ssl_check_spec.rb +0 -256
- data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
- data/spec/unit/knife/status_spec.rb +0 -112
- data/spec/unit/knife/supermarket_download_spec.rb +0 -152
- data/spec/unit/knife/supermarket_install_spec.rb +0 -202
- data/spec/unit/knife/supermarket_list_spec.rb +0 -70
- data/spec/unit/knife/supermarket_search_spec.rb +0 -85
- data/spec/unit/knife/supermarket_share_spec.rb +0 -208
- data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
- data/spec/unit/knife/tag_create_spec.rb +0 -23
- data/spec/unit/knife/tag_delete_spec.rb +0 -25
- data/spec/unit/knife/tag_list_spec.rb +0 -23
- data/spec/unit/knife/user_create_spec.rb +0 -184
- data/spec/unit/knife/user_delete_spec.rb +0 -46
- data/spec/unit/knife/user_edit_spec.rb +0 -48
- data/spec/unit/knife/user_list_spec.rb +0 -36
- data/spec/unit/knife/user_reregister_spec.rb +0 -56
- data/spec/unit/knife/user_show_spec.rb +0 -46
- data/spec/unit/knife_spec.rb +0 -634
- data/spec/unit/provider/group/suse_spec.rb +0 -90
- data/spec/unit/provider/user/dscl_spec.rb +0 -699
- data/spec/unit/windows_service_spec.rb +0 -118
- /data/spec/functional/assets/chocolatey_feed/{test-A.1.0.nupkg → test-A.1.0.0.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-A.1.5.nupkg → test-A.1.5.0.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-A.2.0.nupkg → test-A.2.0.0.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-B.1.0.nupkg → test-B.1.0.0.nupkg} +0 -0
|
@@ -19,8 +19,9 @@ require "spec_helper"
|
|
|
19
19
|
require "chef/mixin/shell_out"
|
|
20
20
|
|
|
21
21
|
# run this test only for following platforms.
|
|
22
|
-
exclude_test = !(%w{rhel fedora amazon}.include?(
|
|
23
|
-
describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
22
|
+
exclude_test = !(%w{rhel fedora amazon}.include?(OHAI_SYSTEM[:platform_family]) && !File.exist?("/usr/bin/dnf"))
|
|
23
|
+
describe Chef::Resource::YumPackage, :requires_root, external: exclude_test, not_rhel6: true do
|
|
24
|
+
include RecipeDSLHelper
|
|
24
25
|
include Chef::Mixin::ShellOut
|
|
25
26
|
|
|
26
27
|
# NOTE: every single test here either needs to explicitly call flush_cache or needs to explicitly
|
|
@@ -38,11 +39,17 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
|
38
39
|
flush_cache
|
|
39
40
|
end
|
|
40
41
|
|
|
42
|
+
def expect_matching_installed_version(version)
|
|
43
|
+
expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(version)
|
|
44
|
+
end
|
|
45
|
+
|
|
41
46
|
before(:all) do
|
|
42
47
|
shell_out!("yum -y install yum-utils")
|
|
43
48
|
end
|
|
44
49
|
|
|
45
50
|
before(:each) do
|
|
51
|
+
# force errors to fail and not retry
|
|
52
|
+
ENV["YUM_HELPER_NO_RETRIES"] = "true"
|
|
46
53
|
File.open("/etc/yum.repos.d/chef-yum-localtesting.repo", "w+") do |f|
|
|
47
54
|
f.write <<~EOF
|
|
48
55
|
[chef-yum-localtesting]
|
|
@@ -58,6 +65,7 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
|
58
65
|
|
|
59
66
|
EOF
|
|
60
67
|
end
|
|
68
|
+
# ensure we don't have any stray chef_rpms installed
|
|
61
69
|
shell_out!("rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | grep chef_rpm | xargs -r rpm -e")
|
|
62
70
|
# next line is useful cleanup if you happen to have been testing both yum + dnf func tests on the same box and
|
|
63
71
|
# have some dnf garbage left around
|
|
@@ -69,580 +77,1038 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
|
69
77
|
FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
|
|
70
78
|
end
|
|
71
79
|
|
|
72
|
-
let(:
|
|
73
|
-
Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
let(:package_name) { "chef_rpm" }
|
|
77
|
-
let(:yum_package) do
|
|
78
|
-
r = Chef::Resource::YumPackage.new(package_name, run_context)
|
|
79
|
-
r.options("--nogpgcheck")
|
|
80
|
-
r
|
|
81
|
-
end
|
|
80
|
+
let(:default_options) { "--nogpgcheck --disablerepo=* --enablerepo=chef-yum-localtesting" }
|
|
82
81
|
|
|
83
82
|
def pkg_arch
|
|
84
|
-
|
|
83
|
+
OHAI_SYSTEM[:kernel][:machine]
|
|
85
84
|
end
|
|
86
85
|
|
|
87
86
|
describe ":install" do
|
|
88
87
|
context "vanilla use case" do
|
|
89
|
-
let(:package_name) { "chef_rpm" }
|
|
90
|
-
|
|
91
88
|
it "installs if the package is not installed" do
|
|
92
89
|
flush_cache
|
|
93
|
-
yum_package
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
yum_package "chef_rpm" do
|
|
91
|
+
options default_options
|
|
92
|
+
action :install
|
|
93
|
+
end.should_be_updated
|
|
94
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
96
95
|
end
|
|
97
96
|
|
|
98
97
|
it "does not install if the package is installed" do
|
|
99
98
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
100
|
-
yum_package
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
yum_package "chef_rpm" do
|
|
100
|
+
options default_options
|
|
101
|
+
action :install
|
|
102
|
+
end.should_not_be_updated
|
|
103
103
|
end
|
|
104
104
|
|
|
105
105
|
it "does not install twice" do
|
|
106
106
|
flush_cache
|
|
107
|
-
yum_package
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
yum_package "chef_rpm" do
|
|
108
|
+
options default_options
|
|
109
|
+
action :install
|
|
110
|
+
end.should_be_updated
|
|
111
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
112
|
+
yum_package "chef_rpm" do
|
|
113
|
+
options default_options
|
|
114
|
+
action :install
|
|
115
|
+
end.should_not_be_updated
|
|
116
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
113
117
|
end
|
|
114
118
|
|
|
115
119
|
it "does not install if the prior version package is installed" do
|
|
116
120
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
117
|
-
yum_package
|
|
118
|
-
|
|
119
|
-
|
|
121
|
+
yum_package "chef_rpm" do
|
|
122
|
+
options default_options
|
|
123
|
+
action :install
|
|
124
|
+
end.should_not_be_updated
|
|
125
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
120
126
|
end
|
|
121
127
|
|
|
122
128
|
it "does not install if the i686 package is installed", :intel_64bit do
|
|
123
129
|
skip "FIXME: do nothing, or install the #{pkg_arch} version?"
|
|
124
130
|
preinstall("chef_rpm-1.10-1.i686.rpm")
|
|
125
|
-
yum_package
|
|
126
|
-
|
|
127
|
-
|
|
131
|
+
yum_package "chef_rpm" do
|
|
132
|
+
options default_options
|
|
133
|
+
action :install
|
|
134
|
+
end.should_not_be_updated
|
|
135
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
|
|
128
136
|
end
|
|
129
137
|
|
|
130
138
|
it "does not install if the prior version i686 package is installed", :intel_64bit do
|
|
131
139
|
skip "FIXME: do nothing, or install the #{pkg_arch} version?"
|
|
132
140
|
preinstall("chef_rpm-1.2-1.i686.rpm")
|
|
133
|
-
yum_package
|
|
134
|
-
|
|
135
|
-
|
|
141
|
+
yum_package "chef_rpm" do
|
|
142
|
+
options default_options
|
|
143
|
+
action :install
|
|
144
|
+
end.should_not_be_updated
|
|
145
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.i686$")
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
context "expanded idempotency checks with version variants" do
|
|
150
|
+
|
|
151
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
152
|
+
# python helper periodically before every top level context to get more FDs.
|
|
153
|
+
before(:all) do
|
|
154
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# 0:1*-1 doesn't work on yum/el6
|
|
158
|
+
%w{1.10 1* 1.10-1 1*-1 1.10-* 1*-* 0:1* *:1.10-* *:1*-* 0:1.10 0:1.10-1}.each do |vstring|
|
|
159
|
+
it "installs the rpm when #{vstring} is in the package_name" do
|
|
160
|
+
flush_cache
|
|
161
|
+
yum_package "chef_rpm-#{vstring}" do
|
|
162
|
+
options default_options
|
|
163
|
+
action :install
|
|
164
|
+
end.should_be_updated
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
it "is idempotent when #{vstring} is in the package_name" do
|
|
168
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
169
|
+
yum_package "chef_rpm-#{vstring}" do
|
|
170
|
+
options default_options
|
|
171
|
+
action :install
|
|
172
|
+
end.should_not_be_updated
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
it "installs the rpm when #{vstring} is in the version property" do
|
|
176
|
+
flush_cache
|
|
177
|
+
yum_package "chef_rpm" do
|
|
178
|
+
options default_options
|
|
179
|
+
version vstring
|
|
180
|
+
action :install
|
|
181
|
+
end.should_be_updated
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
it "is idempotent when #{vstring} is in the version property" do
|
|
185
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
186
|
+
yum_package "chef_rpm" do
|
|
187
|
+
options default_options
|
|
188
|
+
version vstring
|
|
189
|
+
action :install
|
|
190
|
+
end.should_not_be_updated
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
it "upgrades the rpm when #{vstring} is in the package_name" do
|
|
194
|
+
flush_cache
|
|
195
|
+
yum_package "chef_rpm-#{vstring}" do
|
|
196
|
+
options default_options
|
|
197
|
+
action :upgrade
|
|
198
|
+
end.should_be_updated
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
it "is idempotent when #{vstring} is in the package_name" do
|
|
202
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
203
|
+
yum_package "chef_rpm-#{vstring}" do
|
|
204
|
+
options default_options
|
|
205
|
+
action :upgrade
|
|
206
|
+
end.should_not_be_updated
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
it "upgrades the rpm when #{vstring} is in the version property" do
|
|
210
|
+
flush_cache
|
|
211
|
+
yum_package "chef_rpm" do
|
|
212
|
+
options default_options
|
|
213
|
+
version vstring
|
|
214
|
+
action :upgrade
|
|
215
|
+
end.should_be_updated
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
it "is idempotent when #{vstring} is in the version property" do
|
|
219
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
220
|
+
yum_package "chef_rpm" do
|
|
221
|
+
options default_options
|
|
222
|
+
version vstring
|
|
223
|
+
action :upgrade
|
|
224
|
+
end.should_not_be_updated
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# 0:1*-1 doesn't work on yum/el6
|
|
229
|
+
%w{1.2 1* 1.2-1 1*-1 1.2-* 1*-* 0:1* *:1.2-* *:1*-* 0:1.2 0:1.2-1}.each do |vstring|
|
|
230
|
+
it "is idempotent when #{vstring} is in the version property and there is a candidate version" do
|
|
231
|
+
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
232
|
+
yum_package "chef_rpm" do
|
|
233
|
+
options default_options
|
|
234
|
+
version vstring
|
|
235
|
+
action :install
|
|
236
|
+
end.should_not_be_updated
|
|
237
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
# 0:1.2 0:1*-1 doesn't work on yum/el6
|
|
242
|
+
%w{1.2 1.2-1 1.2-* *:1.2-* 0:1.2-1}.each do |vstring|
|
|
243
|
+
it "is idempotent when #{vstring} is in the version property on upgrade and it doesn't match the candidate version" do
|
|
244
|
+
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
245
|
+
yum_package "chef_rpm" do
|
|
246
|
+
options default_options
|
|
247
|
+
version vstring
|
|
248
|
+
action :upgrade
|
|
249
|
+
end.should_not_be_updated
|
|
250
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
# 0:1.2-1 0:1.2 0:1*-1 doesn't work on yum/el6
|
|
255
|
+
%w{1* 1*-1 1*-* 0:1* *:1*-*}.each do |vstring|
|
|
256
|
+
it "upgrades when #{vstring} is in the version property on upgrade and it matches the candidate version" do
|
|
257
|
+
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
258
|
+
yum_package "chef_rpm" do
|
|
259
|
+
options default_options
|
|
260
|
+
version vstring
|
|
261
|
+
action :upgrade
|
|
262
|
+
end.should_be_updated
|
|
263
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
264
|
+
yum_package "chef_rpm" do
|
|
265
|
+
options default_options
|
|
266
|
+
version vstring
|
|
267
|
+
action :upgrade
|
|
268
|
+
end.should_not_be_updated
|
|
269
|
+
end
|
|
136
270
|
end
|
|
137
271
|
end
|
|
138
272
|
|
|
139
273
|
context "with versions or globs in the name" do
|
|
274
|
+
|
|
275
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
276
|
+
# python helper periodically before every top level context to get more FDs.
|
|
277
|
+
before(:all) do
|
|
278
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
279
|
+
end
|
|
280
|
+
|
|
140
281
|
it "works with a version" do
|
|
141
282
|
flush_cache
|
|
142
|
-
yum_package
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
283
|
+
yum_package "chef_rpm-1.10" do
|
|
284
|
+
options default_options
|
|
285
|
+
action :install
|
|
286
|
+
end.should_be_updated
|
|
287
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
288
|
+
yum_package "chef_rpm-1.10" do
|
|
289
|
+
options default_options
|
|
290
|
+
action :install
|
|
291
|
+
end.should_not_be_updated
|
|
146
292
|
end
|
|
147
293
|
|
|
148
294
|
it "works with an older version" do
|
|
149
295
|
flush_cache
|
|
150
|
-
yum_package
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
296
|
+
yum_package "chef_rpm-1.2" do
|
|
297
|
+
options default_options
|
|
298
|
+
action :install
|
|
299
|
+
end.should_be_updated
|
|
300
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
301
|
+
yum_package "chef_rpm-1.2" do
|
|
302
|
+
options default_options
|
|
303
|
+
action :install
|
|
304
|
+
end.should_not_be_updated
|
|
154
305
|
end
|
|
155
306
|
|
|
156
307
|
it "works with an evra" do
|
|
157
308
|
flush_cache
|
|
158
|
-
yum_package
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
309
|
+
yum_package "chef_rpm-0:1.2-1.#{pkg_arch}" do
|
|
310
|
+
options default_options
|
|
311
|
+
action :install
|
|
312
|
+
end.should_be_updated
|
|
313
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
314
|
+
yum_package "chef_rpm-0:1.2-1.#{pkg_arch}" do
|
|
315
|
+
options default_options
|
|
316
|
+
action :install
|
|
317
|
+
end.should_not_be_updated
|
|
162
318
|
end
|
|
163
319
|
|
|
164
320
|
it "works with version and release" do
|
|
165
321
|
flush_cache
|
|
166
|
-
yum_package
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
322
|
+
yum_package "chef_rpm-1.2-1" do
|
|
323
|
+
options default_options
|
|
324
|
+
action :install
|
|
325
|
+
end.should_be_updated
|
|
326
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
327
|
+
yum_package "chef_rpm-1.2-1" do
|
|
328
|
+
options default_options
|
|
329
|
+
action :install
|
|
330
|
+
end.should_not_be_updated
|
|
170
331
|
end
|
|
171
332
|
|
|
172
333
|
it "works with a version glob" do
|
|
173
334
|
flush_cache
|
|
174
|
-
yum_package
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
335
|
+
yum_package "chef_rpm-1*" do
|
|
336
|
+
options default_options
|
|
337
|
+
action :install
|
|
338
|
+
end.should_be_updated
|
|
339
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
340
|
+
yum_package "chef_rpm-1*" do
|
|
341
|
+
options default_options
|
|
342
|
+
action :install
|
|
343
|
+
end.should_not_be_updated
|
|
178
344
|
end
|
|
179
345
|
|
|
180
346
|
it "works with a name glob + version glob" do
|
|
181
347
|
flush_cache
|
|
182
|
-
yum_package
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
348
|
+
yum_package "chef_rp*-1*" do
|
|
349
|
+
options default_options
|
|
350
|
+
action :install
|
|
351
|
+
end.should_be_updated
|
|
352
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
353
|
+
yum_package "chef_rp*-1*" do
|
|
354
|
+
options default_options
|
|
355
|
+
action :install
|
|
356
|
+
end.should_not_be_updated
|
|
186
357
|
end
|
|
187
358
|
|
|
188
359
|
it "upgrades when the installed version does not match the version string" do
|
|
189
360
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
190
|
-
yum_package
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
361
|
+
yum_package "chef_rpm-1.10" do
|
|
362
|
+
options default_options
|
|
363
|
+
action :install
|
|
364
|
+
end.should_be_updated
|
|
365
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}")
|
|
366
|
+
yum_package "chef_rpm-1.10" do
|
|
367
|
+
options default_options
|
|
368
|
+
action :install
|
|
369
|
+
end.should_not_be_updated
|
|
194
370
|
end
|
|
195
371
|
|
|
196
372
|
it "downgrades when the installed version is higher than the package_name version" do
|
|
197
373
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
198
|
-
yum_package.
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
374
|
+
yum_package "chef_rpm-1.2" do
|
|
375
|
+
options default_options
|
|
376
|
+
action :install
|
|
377
|
+
end.should_be_updated
|
|
378
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
379
|
+
yum_package "chef_rpm-1.2" do
|
|
380
|
+
options default_options
|
|
381
|
+
action :install
|
|
382
|
+
end.should_not_be_updated
|
|
203
383
|
end
|
|
204
384
|
end
|
|
205
385
|
|
|
206
386
|
# version only matches the actual yum version, does not work with epoch or release or combined evr
|
|
207
387
|
context "with version property" do
|
|
388
|
+
|
|
389
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
390
|
+
# python helper periodically before every top level context to get more FDs.
|
|
391
|
+
before(:all) do
|
|
392
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
393
|
+
end
|
|
394
|
+
|
|
208
395
|
it "matches the full version" do
|
|
209
396
|
flush_cache
|
|
210
|
-
yum_package
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
397
|
+
yum_package "chef_rpm" do
|
|
398
|
+
options default_options
|
|
399
|
+
version "1.10"
|
|
400
|
+
action :install
|
|
401
|
+
end.should_be_updated
|
|
402
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
403
|
+
yum_package "chef_rpm" do
|
|
404
|
+
options default_options
|
|
405
|
+
version "1.10"
|
|
406
|
+
action :install
|
|
407
|
+
end.should_not_be_updated
|
|
215
408
|
end
|
|
216
409
|
|
|
217
410
|
it "matches with a glob" do
|
|
218
|
-
# we are unlikely to ever fix this. if you've found this comment you should use e.g. "tcpdump-4*" in
|
|
219
|
-
# the name field rather than trying to use a name of "tcpdump" and a version of "4*".
|
|
220
|
-
pending "this does not work, is not easily supported by the underlying yum libraries, but does work in the new dnf_package provider"
|
|
221
411
|
flush_cache
|
|
222
|
-
yum_package
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
412
|
+
yum_package "chef_rpm" do
|
|
413
|
+
options default_options
|
|
414
|
+
version "1*"
|
|
415
|
+
action :install
|
|
416
|
+
end.should_be_updated
|
|
417
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
418
|
+
yum_package "chef_rpm" do
|
|
419
|
+
options default_options
|
|
420
|
+
version "1*"
|
|
421
|
+
action :install
|
|
422
|
+
end.should_not_be_updated
|
|
227
423
|
end
|
|
228
424
|
|
|
229
425
|
it "matches the vr" do
|
|
230
426
|
flush_cache
|
|
231
|
-
yum_package
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
427
|
+
yum_package "chef_rpm" do
|
|
428
|
+
options default_options
|
|
429
|
+
version "1.10-1"
|
|
430
|
+
action :install
|
|
431
|
+
end.should_be_updated
|
|
432
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
433
|
+
yum_package "chef_rpm" do
|
|
434
|
+
options default_options
|
|
435
|
+
version "1.10-1"
|
|
436
|
+
action :install
|
|
437
|
+
end.should_not_be_updated
|
|
236
438
|
end
|
|
237
439
|
|
|
238
440
|
it "matches the evr" do
|
|
239
441
|
flush_cache
|
|
240
|
-
yum_package
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
442
|
+
yum_package "chef_rpm" do
|
|
443
|
+
options default_options
|
|
444
|
+
version "0:1.10-1"
|
|
445
|
+
action :install
|
|
446
|
+
end.should_be_updated
|
|
447
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
448
|
+
yum_package "chef_rpm" do
|
|
449
|
+
options default_options
|
|
450
|
+
version "0:1.10-1"
|
|
451
|
+
action :install
|
|
452
|
+
end.should_not_be_updated
|
|
245
453
|
end
|
|
246
454
|
|
|
247
455
|
it "matches with a vr glob" do
|
|
248
|
-
pending "doesn't work on command line either"
|
|
249
456
|
flush_cache
|
|
250
|
-
yum_package
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
457
|
+
yum_package "chef_rpm" do
|
|
458
|
+
options default_options
|
|
459
|
+
version "1.10-1*"
|
|
460
|
+
action :install
|
|
461
|
+
end.should_be_updated
|
|
462
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
463
|
+
yum_package "chef_rpm" do
|
|
464
|
+
options default_options
|
|
465
|
+
version "1.10-1*"
|
|
466
|
+
action :install
|
|
467
|
+
end.should_not_be_updated
|
|
255
468
|
end
|
|
256
469
|
|
|
257
470
|
it "matches with an evr glob" do
|
|
258
|
-
pending "doesn't work on command line either"
|
|
259
471
|
flush_cache
|
|
260
|
-
yum_package
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
472
|
+
yum_package "chef_rpm" do
|
|
473
|
+
options default_options
|
|
474
|
+
version "0:1.10-1*"
|
|
475
|
+
action :install
|
|
476
|
+
end.should_be_updated
|
|
477
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
478
|
+
yum_package "chef_rpm" do
|
|
479
|
+
options default_options
|
|
480
|
+
version "0:1.10-1*"
|
|
481
|
+
action :install
|
|
482
|
+
end.should_not_be_updated
|
|
265
483
|
end
|
|
266
484
|
end
|
|
267
485
|
|
|
268
486
|
context "downgrades" do
|
|
269
|
-
|
|
487
|
+
|
|
488
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
489
|
+
# python helper periodically before every top level context to get more FDs.
|
|
490
|
+
before(:all) do
|
|
491
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
492
|
+
end
|
|
493
|
+
|
|
494
|
+
it "downgrades the package when allow_downgrade is true" do
|
|
270
495
|
flush_cache
|
|
271
496
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
272
|
-
yum_package
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
497
|
+
yum_package "chef_rpm" do
|
|
498
|
+
options default_options
|
|
499
|
+
version "1.2-1"
|
|
500
|
+
action :install
|
|
501
|
+
end.should_be_updated
|
|
502
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
503
|
+
yum_package "chef_rpm" do
|
|
504
|
+
options default_options
|
|
505
|
+
version "1.2-1"
|
|
506
|
+
action :install
|
|
507
|
+
end.should_not_be_updated
|
|
508
|
+
end
|
|
509
|
+
|
|
510
|
+
it "does not downgrade the package when allow_downgrade is false" do
|
|
511
|
+
flush_cache
|
|
512
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
513
|
+
yum_package "chef_rpm" do
|
|
514
|
+
options default_options
|
|
515
|
+
allow_downgrade false
|
|
516
|
+
version "1.2-1"
|
|
517
|
+
action :install
|
|
518
|
+
end.should_not_be_updated
|
|
519
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
278
520
|
end
|
|
279
521
|
end
|
|
280
522
|
|
|
281
523
|
context "with arches", :intel_64bit do
|
|
524
|
+
|
|
525
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
526
|
+
# python helper periodically before every top level context to get more FDs.
|
|
527
|
+
before(:all) do
|
|
528
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
529
|
+
end
|
|
530
|
+
|
|
282
531
|
it "installs with 64-bit arch in the name" do
|
|
283
532
|
flush_cache
|
|
284
|
-
yum_package
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
533
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
534
|
+
options default_options
|
|
535
|
+
action :install
|
|
536
|
+
end.should_be_updated
|
|
537
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
538
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
539
|
+
options default_options
|
|
540
|
+
action :install
|
|
541
|
+
end.should_not_be_updated
|
|
288
542
|
end
|
|
289
543
|
|
|
290
544
|
it "installs with 32-bit arch in the name" do
|
|
291
545
|
flush_cache
|
|
292
|
-
yum_package
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
546
|
+
yum_package "chef_rpm.i686" do
|
|
547
|
+
options default_options
|
|
548
|
+
action :install
|
|
549
|
+
end.should_be_updated
|
|
550
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
|
|
551
|
+
yum_package "chef_rpm.i686" do
|
|
552
|
+
options default_options
|
|
553
|
+
action :install
|
|
554
|
+
end.should_not_be_updated
|
|
296
555
|
end
|
|
297
556
|
|
|
298
557
|
it "installs with 64-bit arch in the property" do
|
|
299
558
|
flush_cache
|
|
300
|
-
yum_package
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
559
|
+
yum_package "chef_rpm" do
|
|
560
|
+
options default_options
|
|
561
|
+
arch pkg_arch
|
|
562
|
+
action :install
|
|
563
|
+
end.should_be_updated
|
|
564
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
565
|
+
yum_package "chef_rpm" do
|
|
566
|
+
options default_options
|
|
567
|
+
arch pkg_arch
|
|
568
|
+
action :install
|
|
569
|
+
end.should_not_be_updated
|
|
305
570
|
end
|
|
306
571
|
|
|
307
572
|
it "installs with 32-bit arch in the property" do
|
|
308
573
|
flush_cache
|
|
309
|
-
yum_package
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
574
|
+
yum_package "chef_rpm" do
|
|
575
|
+
options default_options
|
|
576
|
+
arch "i686"
|
|
577
|
+
action :install
|
|
578
|
+
end.should_be_updated
|
|
579
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
|
|
580
|
+
yum_package "chef_rpm" do
|
|
581
|
+
options default_options
|
|
582
|
+
arch "i686"
|
|
583
|
+
action :install
|
|
584
|
+
end.should_not_be_updated
|
|
585
|
+
end
|
|
586
|
+
|
|
587
|
+
it "installs when the 32-bit arch is in the name and the version is in the property" do
|
|
588
|
+
flush_cache
|
|
589
|
+
yum_package "chef_rpm.i686" do
|
|
590
|
+
options default_options
|
|
591
|
+
version "1.10-1"
|
|
592
|
+
action :install
|
|
593
|
+
end.should_be_updated
|
|
594
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
|
|
595
|
+
yum_package "chef_rpm.i686" do
|
|
596
|
+
options default_options
|
|
597
|
+
version "1.10-1"
|
|
598
|
+
action :install
|
|
599
|
+
end.should_not_be_updated
|
|
600
|
+
end
|
|
601
|
+
|
|
602
|
+
it "installs when the 64-bit arch is in the name and the version is in the property" do
|
|
603
|
+
flush_cache
|
|
604
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
605
|
+
options default_options
|
|
606
|
+
version "1.10-1"
|
|
607
|
+
action :install
|
|
608
|
+
end.should_be_updated
|
|
609
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
610
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
611
|
+
options default_options
|
|
612
|
+
version "1.10-1"
|
|
613
|
+
action :install
|
|
614
|
+
end.should_not_be_updated
|
|
314
615
|
end
|
|
315
616
|
end
|
|
316
617
|
|
|
317
618
|
context "with constraints" do
|
|
619
|
+
|
|
620
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
621
|
+
# python helper periodically before every top level context to get more FDs.
|
|
622
|
+
before(:all) do
|
|
623
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
624
|
+
end
|
|
625
|
+
|
|
318
626
|
it "with nothing installed, it installs the latest version" do
|
|
319
627
|
flush_cache
|
|
320
|
-
yum_package
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
628
|
+
yum_package "chef_rpm >= 1.2" do
|
|
629
|
+
options default_options
|
|
630
|
+
action :install
|
|
631
|
+
end.should_be_updated
|
|
632
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
633
|
+
yum_package "chef_rpm >= 1.2" do
|
|
634
|
+
options default_options
|
|
635
|
+
action :install
|
|
636
|
+
end.should_not_be_updated
|
|
324
637
|
end
|
|
325
638
|
|
|
326
639
|
it "when it is met, it does nothing" do
|
|
327
640
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
328
|
-
yum_package
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
641
|
+
yum_package "chef_rpm >= 1.2" do
|
|
642
|
+
options default_options
|
|
643
|
+
action :install
|
|
644
|
+
end.should_not_be_updated
|
|
645
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
332
646
|
end
|
|
333
647
|
|
|
334
648
|
it "when it is met, it does nothing" do
|
|
335
649
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
336
|
-
yum_package
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
650
|
+
yum_package "chef_rpm >= 1.2" do
|
|
651
|
+
options default_options
|
|
652
|
+
action :install
|
|
653
|
+
end.should_not_be_updated
|
|
654
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
340
655
|
end
|
|
341
656
|
|
|
342
|
-
it "with nothing
|
|
657
|
+
it "with nothing installed, it installs the latest version" do
|
|
343
658
|
flush_cache
|
|
344
|
-
yum_package
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
659
|
+
yum_package "chef_rpm > 1.2" do
|
|
660
|
+
options default_options
|
|
661
|
+
action :install
|
|
662
|
+
end.should_be_updated
|
|
663
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
664
|
+
yum_package "chef_rpm > 1.2" do
|
|
665
|
+
options default_options
|
|
666
|
+
action :install
|
|
667
|
+
end.should_not_be_updated
|
|
348
668
|
end
|
|
349
669
|
|
|
350
670
|
it "when it is not met by an installed rpm, it upgrades" do
|
|
351
671
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
352
|
-
yum_package
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
672
|
+
yum_package "chef_rpm > 1.2" do
|
|
673
|
+
options default_options
|
|
674
|
+
action :install
|
|
675
|
+
end.should_be_updated
|
|
676
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
677
|
+
yum_package "chef_rpm > 1.2" do
|
|
678
|
+
options default_options
|
|
679
|
+
action :install
|
|
680
|
+
end.should_not_be_updated
|
|
356
681
|
end
|
|
357
682
|
|
|
358
683
|
it "with an equality constraint, when it is not met by an installed rpm, it upgrades" do
|
|
359
684
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
360
|
-
yum_package
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
685
|
+
yum_package "chef_rpm = 1.10" do
|
|
686
|
+
options default_options
|
|
687
|
+
action :install
|
|
688
|
+
end.should_be_updated
|
|
689
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
690
|
+
yum_package "chef_rpm = 1.10" do
|
|
691
|
+
options default_options
|
|
692
|
+
action :install
|
|
693
|
+
end.should_not_be_updated
|
|
364
694
|
end
|
|
365
695
|
|
|
366
696
|
it "with an equality constraint, when it is met by an installed rpm, it does nothing" do
|
|
367
697
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
368
|
-
yum_package
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
698
|
+
yum_package "chef_rpm = 1.2" do
|
|
699
|
+
options default_options
|
|
700
|
+
action :install
|
|
701
|
+
end.should_not_be_updated
|
|
702
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
372
703
|
end
|
|
373
704
|
|
|
374
705
|
it "when it is met by an installed rpm, it does nothing" do
|
|
375
706
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
376
|
-
yum_package
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
707
|
+
yum_package "chef_rpm > 1.2" do
|
|
708
|
+
options default_options
|
|
709
|
+
action :install
|
|
710
|
+
end.should_not_be_updated
|
|
711
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
380
712
|
end
|
|
381
713
|
|
|
382
|
-
it "when there is no solution to the
|
|
714
|
+
it "when there is no solution to the constraint" do
|
|
383
715
|
flush_cache
|
|
384
|
-
|
|
385
|
-
|
|
716
|
+
expect {
|
|
717
|
+
yum_package "chef_rpm > 2.0"
|
|
718
|
+
}.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
|
|
386
719
|
end
|
|
387
720
|
|
|
388
|
-
it "when there is no solution to the
|
|
721
|
+
it "when there is no solution to the constraint but an rpm is preinstalled" do
|
|
389
722
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
390
|
-
|
|
391
|
-
|
|
723
|
+
expect {
|
|
724
|
+
yum_package "chef_rpm > 2.0"
|
|
725
|
+
}.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
|
|
392
726
|
end
|
|
393
727
|
|
|
394
728
|
it "with a less than constraint, when nothing is installed, it installs" do
|
|
395
729
|
flush_cache
|
|
396
|
-
yum_package.
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
730
|
+
yum_package "chef_rpm < 1.10" do
|
|
731
|
+
options default_options
|
|
732
|
+
action :install
|
|
733
|
+
end.should_be_updated
|
|
734
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
735
|
+
yum_package "chef_rpm < 1.10" do
|
|
736
|
+
options default_options
|
|
737
|
+
action :install
|
|
738
|
+
end.should_not_be_updated
|
|
401
739
|
end
|
|
402
740
|
|
|
403
741
|
it "with a less than constraint, when the install version matches, it does nothing" do
|
|
404
742
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
405
|
-
yum_package.
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
743
|
+
yum_package "chef_rpm < 1.10" do
|
|
744
|
+
options default_options
|
|
745
|
+
action :install
|
|
746
|
+
end.should_not_be_updated
|
|
747
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
410
748
|
end
|
|
411
749
|
|
|
750
|
+
# literally no idea why this fails on our rhel6 tester and only that one box and only this one test
|
|
412
751
|
it "with a less than constraint, when the install version fails, it should downgrade" do
|
|
413
752
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
414
|
-
yum_package.
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
753
|
+
yum_package "chef_rpm < 1.10" do
|
|
754
|
+
options default_options
|
|
755
|
+
action :install
|
|
756
|
+
end.should_be_updated
|
|
757
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
758
|
+
yum_package "chef_rpm < 1.10" do
|
|
759
|
+
options default_options
|
|
760
|
+
action :install
|
|
761
|
+
end.should_not_be_updated
|
|
762
|
+
end
|
|
763
|
+
|
|
764
|
+
it "works with constraints in the version property" do
|
|
765
|
+
flush_cache
|
|
766
|
+
yum_package "chef_rpm" do
|
|
767
|
+
version ">= 1.10"
|
|
768
|
+
options default_options
|
|
769
|
+
action :install
|
|
770
|
+
end.should_be_updated
|
|
771
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
772
|
+
yum_package "chef_rpm" do
|
|
773
|
+
version ">= 1.10"
|
|
774
|
+
options default_options
|
|
775
|
+
action :install
|
|
776
|
+
end.should_not_be_updated
|
|
419
777
|
end
|
|
420
778
|
end
|
|
421
779
|
|
|
422
780
|
context "with source arguments" do
|
|
781
|
+
|
|
782
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
783
|
+
# python helper periodically before every top level context to get more FDs.
|
|
784
|
+
before(:all) do
|
|
785
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
786
|
+
end
|
|
787
|
+
|
|
423
788
|
it "raises an exception when the package does not exist" do
|
|
424
789
|
flush_cache
|
|
425
|
-
|
|
426
|
-
|
|
790
|
+
expect {
|
|
791
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/this-file-better-not-exist.rpm"
|
|
792
|
+
}.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
|
|
427
793
|
end
|
|
428
794
|
|
|
429
795
|
it "does not raise a hard exception in why-run mode when the package does not exist" do
|
|
430
796
|
Chef::Config[:why_run] = true
|
|
431
797
|
flush_cache
|
|
432
|
-
yum_package
|
|
433
|
-
|
|
434
|
-
|
|
798
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/this-file-better-not-exist.rpm" do
|
|
799
|
+
options default_options
|
|
800
|
+
action :install
|
|
801
|
+
end
|
|
435
802
|
end
|
|
436
803
|
|
|
437
804
|
it "installs the package when using the source argument" do
|
|
438
805
|
flush_cache
|
|
439
|
-
yum_package
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
806
|
+
yum_package "something" do
|
|
807
|
+
source("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
808
|
+
options default_options
|
|
809
|
+
package_name "somethingelse"
|
|
810
|
+
name "something"
|
|
811
|
+
action :install
|
|
812
|
+
end.should_be_updated
|
|
813
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
814
|
+
yum_package "something" do
|
|
815
|
+
source("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
816
|
+
options default_options
|
|
817
|
+
package_name "somethingelse"
|
|
818
|
+
name "something"
|
|
819
|
+
action :install
|
|
820
|
+
end.should_not_be_updated
|
|
445
821
|
end
|
|
446
822
|
|
|
447
823
|
it "installs the package when the name is a path to a file" do
|
|
448
824
|
flush_cache
|
|
449
|
-
yum_package
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
yum_package.version "1.2-1"
|
|
459
|
-
yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
460
|
-
yum_package.run_action(:install)
|
|
461
|
-
expect(yum_package.updated_by_last_action?).to be false
|
|
462
|
-
expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
825
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
826
|
+
options default_options
|
|
827
|
+
action :install
|
|
828
|
+
end.should_be_updated
|
|
829
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
830
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
831
|
+
options default_options
|
|
832
|
+
action :install
|
|
833
|
+
end.should_not_be_updated
|
|
463
834
|
end
|
|
464
835
|
|
|
465
836
|
it "downgrade on a local file with allow_downgrade true works" do
|
|
466
837
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
467
|
-
yum_package
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
838
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
839
|
+
options default_options
|
|
840
|
+
version "1.2-1"
|
|
841
|
+
action :install
|
|
842
|
+
end.should_be_updated
|
|
843
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
844
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
845
|
+
options default_options
|
|
846
|
+
version "1.2-1"
|
|
847
|
+
action :install
|
|
848
|
+
end.should_not_be_updated
|
|
849
|
+
end
|
|
850
|
+
|
|
851
|
+
it "downgrade on a local file with allow_downgrade false does not downgrade" do
|
|
852
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
853
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
854
|
+
options default_options
|
|
855
|
+
allow_downgrade false
|
|
856
|
+
version "1.2-1"
|
|
857
|
+
action :install
|
|
858
|
+
end.should_not_be_updated
|
|
859
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
473
860
|
end
|
|
474
861
|
|
|
475
862
|
it "does not downgrade the package with :install" do
|
|
476
863
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
477
|
-
yum_package
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
864
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
865
|
+
options default_options
|
|
866
|
+
action :install
|
|
867
|
+
end.should_not_be_updated
|
|
868
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
481
869
|
end
|
|
482
870
|
|
|
483
871
|
it "does not upgrade the package with :install" do
|
|
484
872
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
485
|
-
yum_package
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
873
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.10-1.#{pkg_arch}.rpm" do
|
|
874
|
+
options default_options
|
|
875
|
+
action :install
|
|
876
|
+
end.should_not_be_updated
|
|
877
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
489
878
|
end
|
|
490
879
|
|
|
491
880
|
it "is idempotent when the package is already installed" do
|
|
492
881
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
493
|
-
yum_package
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
882
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
883
|
+
options default_options
|
|
884
|
+
action :install
|
|
885
|
+
end.should_not_be_updated
|
|
886
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
497
887
|
end
|
|
498
888
|
|
|
499
889
|
it "is idempotent when the package is already installed and there is a version string" do
|
|
500
890
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
501
|
-
yum_package
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
it "is idempotent when the package is already installed and there is a version string with arch" do
|
|
509
|
-
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
510
|
-
yum_package.version "1.2-1.#{pkg_arch}"
|
|
511
|
-
yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
512
|
-
yum_package.run_action(:install)
|
|
513
|
-
expect(yum_package.updated_by_last_action?).to be false
|
|
514
|
-
expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
891
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
892
|
+
options default_options
|
|
893
|
+
version "1.2-1"
|
|
894
|
+
action :install
|
|
895
|
+
end.should_not_be_updated
|
|
896
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
515
897
|
end
|
|
516
898
|
end
|
|
517
899
|
|
|
518
900
|
context "with no available version" do
|
|
901
|
+
|
|
902
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
903
|
+
# python helper periodically before every top level context to get more FDs.
|
|
904
|
+
before(:all) do
|
|
905
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
906
|
+
end
|
|
907
|
+
|
|
519
908
|
it "works when a package is installed" do
|
|
520
909
|
FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
|
|
521
910
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
522
|
-
yum_package
|
|
523
|
-
|
|
524
|
-
|
|
911
|
+
yum_package "chef_rpm" do
|
|
912
|
+
options "--nogpgcheck"
|
|
913
|
+
action :install
|
|
914
|
+
end.should_not_be_updated
|
|
915
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
525
916
|
end
|
|
526
917
|
|
|
527
918
|
it "works with a local source" do
|
|
528
919
|
FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
|
|
529
920
|
flush_cache
|
|
530
|
-
yum_package
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
921
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
922
|
+
options "--nogpgcheck"
|
|
923
|
+
action :install
|
|
924
|
+
end.should_be_updated
|
|
925
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
926
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
927
|
+
options "--nogpgcheck"
|
|
928
|
+
action :install
|
|
929
|
+
end.should_not_be_updated
|
|
534
930
|
end
|
|
535
931
|
end
|
|
536
932
|
|
|
537
933
|
context "multipackage with arches", :intel_64bit do
|
|
934
|
+
|
|
935
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
936
|
+
# python helper periodically before every top level context to get more FDs.
|
|
937
|
+
before(:all) do
|
|
938
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
939
|
+
end
|
|
940
|
+
|
|
538
941
|
it "installs two rpms" do
|
|
539
942
|
flush_cache
|
|
540
|
-
yum_package
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
943
|
+
yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
|
|
944
|
+
options default_options
|
|
945
|
+
action :install
|
|
946
|
+
end.should_be_updated
|
|
947
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
|
|
948
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
|
|
949
|
+
yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
|
|
950
|
+
options default_options
|
|
951
|
+
action :install
|
|
952
|
+
end.should_not_be_updated
|
|
545
953
|
end
|
|
546
954
|
|
|
547
955
|
it "does nothing if both are installed" do
|
|
548
956
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm", "chef_rpm-1.10-1.i686.rpm")
|
|
549
957
|
flush_cache
|
|
550
|
-
yum_package
|
|
551
|
-
|
|
552
|
-
|
|
958
|
+
yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
|
|
959
|
+
options default_options
|
|
960
|
+
action :install
|
|
961
|
+
end.should_not_be_updated
|
|
553
962
|
end
|
|
554
963
|
|
|
555
964
|
it "installs the second rpm if the first is installed" do
|
|
556
965
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
557
|
-
yum_package
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
966
|
+
yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
|
|
967
|
+
options default_options
|
|
968
|
+
action :install
|
|
969
|
+
end.should_be_updated
|
|
970
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
|
|
971
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
|
|
972
|
+
yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
|
|
973
|
+
options default_options
|
|
974
|
+
action :install
|
|
975
|
+
end.should_not_be_updated
|
|
562
976
|
end
|
|
563
977
|
|
|
564
978
|
it "installs the first rpm if the second is installed" do
|
|
565
979
|
preinstall("chef_rpm-1.10-1.i686.rpm")
|
|
566
|
-
yum_package
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
980
|
+
yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
|
|
981
|
+
options default_options
|
|
982
|
+
action :install
|
|
983
|
+
end.should_be_updated
|
|
984
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
|
|
985
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
|
|
986
|
+
yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
|
|
987
|
+
options default_options
|
|
988
|
+
action :install
|
|
989
|
+
end.should_not_be_updated
|
|
571
990
|
end
|
|
572
991
|
|
|
573
992
|
# unlikely to work consistently correct, okay to deprecate the arch-array in favor of the arch in the name
|
|
574
993
|
it "installs two rpms with multi-arch" do
|
|
575
994
|
flush_cache
|
|
576
|
-
yum_package
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
995
|
+
yum_package %w{chef_rpm chef_rpm} do
|
|
996
|
+
options default_options
|
|
997
|
+
arch [pkg_arch, "i686"]
|
|
998
|
+
action :install
|
|
999
|
+
end.should_be_updated
|
|
1000
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
|
|
1001
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
|
|
1002
|
+
yum_package %w{chef_rpm chef_rpm} do
|
|
1003
|
+
options default_options
|
|
1004
|
+
arch [pkg_arch, "i686"]
|
|
1005
|
+
action :install
|
|
1006
|
+
end.should_not_be_updated
|
|
582
1007
|
end
|
|
583
1008
|
|
|
584
1009
|
# unlikely to work consistently correct, okay to deprecate the arch-array in favor of the arch in the name
|
|
585
1010
|
it "installs the second rpm if the first is installed (muti-arch)" do
|
|
586
1011
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
587
|
-
yum_package
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
1012
|
+
yum_package %w{chef_rpm chef_rpm} do
|
|
1013
|
+
options default_options
|
|
1014
|
+
arch [pkg_arch, "i686"]
|
|
1015
|
+
action :install
|
|
1016
|
+
end.should_be_updated
|
|
1017
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
|
|
1018
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
|
|
1019
|
+
yum_package %w{chef_rpm chef_rpm} do
|
|
1020
|
+
options default_options
|
|
1021
|
+
action :install
|
|
1022
|
+
end.should_not_be_updated
|
|
593
1023
|
end
|
|
594
1024
|
|
|
595
1025
|
# unlikely to work consistently correct, okay to deprecate the arch-array in favor of the arch in the name
|
|
596
1026
|
it "installs the first rpm if the second is installed (muti-arch)" do
|
|
597
1027
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
598
|
-
yum_package
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
1028
|
+
yum_package %w{chef_rpm chef_rpm} do
|
|
1029
|
+
options default_options
|
|
1030
|
+
arch [pkg_arch, "i686"]
|
|
1031
|
+
action :install
|
|
1032
|
+
end.should_be_updated
|
|
1033
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
|
|
1034
|
+
expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
|
|
1035
|
+
yum_package %w{chef_rpm chef_rpm} do
|
|
1036
|
+
options default_options
|
|
1037
|
+
action :install
|
|
1038
|
+
end.should_not_be_updated
|
|
604
1039
|
end
|
|
605
1040
|
|
|
606
1041
|
# unlikely to work consistently correct, okay to deprecate the arch-array in favor of the arch in the name
|
|
607
1042
|
it "does nothing if both are installed (muti-arch)" do
|
|
608
1043
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm", "chef_rpm-1.10-1.i686.rpm")
|
|
609
|
-
yum_package
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
1044
|
+
yum_package %w{chef_rpm chef_rpm} do
|
|
1045
|
+
options default_options
|
|
1046
|
+
arch [pkg_arch, "i686"]
|
|
1047
|
+
action :install
|
|
1048
|
+
end.should_not_be_updated
|
|
613
1049
|
end
|
|
614
1050
|
end
|
|
615
1051
|
|
|
616
1052
|
context "repo controls" do
|
|
1053
|
+
|
|
1054
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
1055
|
+
# python helper periodically before every top level context to get more FDs.
|
|
1056
|
+
before(:all) do
|
|
1057
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
1058
|
+
end
|
|
1059
|
+
|
|
617
1060
|
it "should fail with the repo disabled" do
|
|
618
1061
|
flush_cache
|
|
619
|
-
|
|
620
|
-
|
|
1062
|
+
expect {
|
|
1063
|
+
yum_package "chef_rpm" do
|
|
1064
|
+
options "--nogpgcheck --disablerepo=chef-yum-localtesting"
|
|
1065
|
+
action :install
|
|
1066
|
+
end
|
|
1067
|
+
}.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
|
|
621
1068
|
end
|
|
622
1069
|
|
|
623
1070
|
it "should work with disablerepo first" do
|
|
624
1071
|
flush_cache
|
|
625
|
-
yum_package
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
1072
|
+
yum_package "chef_rpm" do
|
|
1073
|
+
options ["--nogpgcheck", "--disablerepo=*", "--enablerepo=chef-yum-localtesting"]
|
|
1074
|
+
action :install
|
|
1075
|
+
end.should_be_updated
|
|
1076
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1077
|
+
yum_package "chef_rpm" do
|
|
1078
|
+
options ["--nogpgcheck", "--disablerepo=*", "--enablerepo=chef-yum-localtesting"]
|
|
1079
|
+
action :install
|
|
1080
|
+
end.should_not_be_updated
|
|
629
1081
|
end
|
|
630
1082
|
|
|
631
1083
|
it "should work to enable a disabled repo" do
|
|
632
1084
|
shell_out!("yum-config-manager --disable chef-yum-localtesting")
|
|
633
1085
|
flush_cache
|
|
634
|
-
expect {
|
|
1086
|
+
expect {
|
|
1087
|
+
yum_package "chef_rpm" do
|
|
1088
|
+
options "--nogpgcheck"
|
|
1089
|
+
action :install
|
|
1090
|
+
end
|
|
1091
|
+
}.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
|
|
635
1092
|
flush_cache
|
|
636
|
-
yum_package
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
1093
|
+
yum_package "chef_rpm" do
|
|
1094
|
+
options "--nogpgcheck --enablerepo=chef-yum-localtesting"
|
|
1095
|
+
action :install
|
|
1096
|
+
end.should_be_updated
|
|
1097
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1098
|
+
yum_package "chef_rpm" do
|
|
1099
|
+
options "--nogpgcheck --enablerepo=chef-yum-localtesting"
|
|
1100
|
+
action :install
|
|
1101
|
+
end.should_not_be_updated
|
|
640
1102
|
end
|
|
641
1103
|
|
|
642
1104
|
it "should work to disable a repo" do
|
|
643
1105
|
flush_cache
|
|
644
|
-
|
|
645
|
-
|
|
1106
|
+
expect {
|
|
1107
|
+
yum_package "chef_rpm" do
|
|
1108
|
+
options "--disablerepo=chef-yum-localtesting --enablerepo=chef-yum-empty"
|
|
1109
|
+
action :install
|
|
1110
|
+
end
|
|
1111
|
+
}.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
|
|
646
1112
|
end
|
|
647
1113
|
|
|
648
1114
|
it "when an idempotent install action is run, does not leave repos disabled" do
|
|
@@ -652,65 +1118,125 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
|
652
1118
|
# accomplishes both those goals (it would be easier if we had other rpms in this repo, but with
|
|
653
1119
|
# one rpm we need to do this).
|
|
654
1120
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
655
|
-
yum_package
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
1121
|
+
yum_package "chef_rpm" do
|
|
1122
|
+
options "--nogpgcheck --disablerepo=chef-yum-localtesting"
|
|
1123
|
+
action :upgrade
|
|
1124
|
+
end.should_not_be_updated
|
|
1125
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
659
1126
|
# now we're still using the same cache in the yum_helper.py cache and we test to see if the
|
|
660
1127
|
# repo that we temporarily disabled is enabled on this pass.
|
|
661
|
-
yum_package
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
1128
|
+
yum_package "chef_rpm-1.10-1.#{pkg_arch}" do
|
|
1129
|
+
options "--nogpgcheck"
|
|
1130
|
+
action :install
|
|
1131
|
+
end.should_be_updated
|
|
1132
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1133
|
+
yum_package "chef_rpm-1.10-1.#{pkg_arch}" do
|
|
1134
|
+
options "--nogpgcheck"
|
|
1135
|
+
action :install
|
|
1136
|
+
end.should_not_be_updated
|
|
666
1137
|
end
|
|
667
1138
|
end
|
|
668
1139
|
end
|
|
669
1140
|
|
|
670
1141
|
describe ":upgrade" do
|
|
671
1142
|
|
|
1143
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
1144
|
+
# python helper periodically before every top level context to get more FDs.
|
|
1145
|
+
before(:all) do
|
|
1146
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
1147
|
+
end
|
|
1148
|
+
|
|
1149
|
+
context "downgrades" do
|
|
1150
|
+
it "just works by default" do
|
|
1151
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
1152
|
+
yum_package "chef_rpm" do
|
|
1153
|
+
options default_options
|
|
1154
|
+
version "1.2"
|
|
1155
|
+
action :install
|
|
1156
|
+
end.should_be_updated
|
|
1157
|
+
expect(shell_out("rpm -q chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}")
|
|
1158
|
+
yum_package "chef_rpm" do
|
|
1159
|
+
options default_options
|
|
1160
|
+
version "1.2"
|
|
1161
|
+
action :install
|
|
1162
|
+
end.should_not_be_updated
|
|
1163
|
+
end
|
|
1164
|
+
end
|
|
1165
|
+
|
|
672
1166
|
context "with source arguments" do
|
|
673
1167
|
it "installs the package when using the source argument" do
|
|
674
1168
|
flush_cache
|
|
675
|
-
yum_package
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
1169
|
+
yum_package "something" do
|
|
1170
|
+
options default_options
|
|
1171
|
+
package_name "somethingelse"
|
|
1172
|
+
source("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
1173
|
+
action :upgrade
|
|
1174
|
+
end.should_be_updated
|
|
1175
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1176
|
+
yum_package "something" do
|
|
1177
|
+
options default_options
|
|
1178
|
+
package_name "somethingelse"
|
|
1179
|
+
source("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
1180
|
+
action :upgrade
|
|
1181
|
+
end.should_not_be_updated
|
|
681
1182
|
end
|
|
682
1183
|
|
|
683
1184
|
it "installs the package when the name is a path to a file" do
|
|
684
1185
|
flush_cache
|
|
685
|
-
yum_package
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
1186
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1187
|
+
options default_options
|
|
1188
|
+
action :upgrade
|
|
1189
|
+
end.should_be_updated
|
|
1190
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1191
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1192
|
+
options default_options
|
|
1193
|
+
action :upgrade
|
|
1194
|
+
end.should_not_be_updated
|
|
689
1195
|
end
|
|
690
1196
|
|
|
691
1197
|
it "downgrades the package when allow_downgrade is true" do
|
|
692
1198
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
693
|
-
yum_package.
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
1199
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1200
|
+
options default_options
|
|
1201
|
+
action :upgrade
|
|
1202
|
+
end.should_be_updated
|
|
1203
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1204
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1205
|
+
options default_options
|
|
1206
|
+
action :upgrade
|
|
1207
|
+
end.should_not_be_updated
|
|
1208
|
+
end
|
|
1209
|
+
|
|
1210
|
+
it "does not downgrade the package when allow_downgrade is false" do
|
|
1211
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
1212
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1213
|
+
options default_options
|
|
1214
|
+
allow_downgrade false
|
|
1215
|
+
action :upgrade
|
|
1216
|
+
end.should_not_be_updated
|
|
1217
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
698
1218
|
end
|
|
699
1219
|
|
|
700
1220
|
it "upgrades the package" do
|
|
701
1221
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
702
|
-
yum_package
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
1222
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.10-1.#{pkg_arch}.rpm" do
|
|
1223
|
+
options default_options
|
|
1224
|
+
action :upgrade
|
|
1225
|
+
end.should_be_updated
|
|
1226
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1227
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.10-1.#{pkg_arch}.rpm" do
|
|
1228
|
+
options default_options
|
|
1229
|
+
action :upgrade
|
|
1230
|
+
end.should_not_be_updated
|
|
706
1231
|
end
|
|
707
1232
|
|
|
708
1233
|
it "is idempotent when the package is already installed" do
|
|
709
1234
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
710
|
-
yum_package
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
1235
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1236
|
+
options default_options
|
|
1237
|
+
action :upgrade
|
|
1238
|
+
end.should_not_be_updated
|
|
1239
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
714
1240
|
end
|
|
715
1241
|
end
|
|
716
1242
|
|
|
@@ -718,204 +1244,389 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
|
718
1244
|
it "works when a package is installed" do
|
|
719
1245
|
FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
|
|
720
1246
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
721
|
-
yum_package
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
1247
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1248
|
+
options "--nogpgcheck"
|
|
1249
|
+
action :upgrade
|
|
1250
|
+
end.should_not_be_updated
|
|
1251
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
725
1252
|
end
|
|
726
1253
|
|
|
727
1254
|
it "works with a local source" do
|
|
728
1255
|
FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
|
|
729
1256
|
flush_cache
|
|
730
|
-
yum_package
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
1257
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1258
|
+
options "--nogpgcheck"
|
|
1259
|
+
action :upgrade
|
|
1260
|
+
end.should_be_updated
|
|
1261
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1262
|
+
yum_package "#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm" do
|
|
1263
|
+
options "--nogpgcheck"
|
|
1264
|
+
action :upgrade
|
|
1265
|
+
end.should_not_be_updated
|
|
734
1266
|
end
|
|
735
1267
|
end
|
|
736
1268
|
|
|
737
1269
|
context "version pinning" do
|
|
738
|
-
it "with
|
|
1270
|
+
it "with a full version pin it installs a later package" do
|
|
1271
|
+
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
1272
|
+
yum_package "chef_rpm" do
|
|
1273
|
+
options default_options
|
|
1274
|
+
version "1.10-1"
|
|
1275
|
+
action :upgrade
|
|
1276
|
+
end.should_be_updated
|
|
1277
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1278
|
+
yum_package "chef_rpm" do
|
|
1279
|
+
options default_options
|
|
1280
|
+
version "1.10-1"
|
|
1281
|
+
action :upgrade
|
|
1282
|
+
end.should_not_be_updated
|
|
1283
|
+
end
|
|
1284
|
+
|
|
1285
|
+
it "with a full version pin in the name it downgrades the package" do
|
|
1286
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
1287
|
+
yum_package "chef_rpm" do
|
|
1288
|
+
options default_options
|
|
1289
|
+
version "1.2-1"
|
|
1290
|
+
action :upgrade
|
|
1291
|
+
end.should_be_updated
|
|
1292
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1293
|
+
yum_package "chef_rpm" do
|
|
1294
|
+
options default_options
|
|
1295
|
+
version "1.2-1"
|
|
1296
|
+
action :upgrade
|
|
1297
|
+
end.should_not_be_updated
|
|
1298
|
+
end
|
|
1299
|
+
|
|
1300
|
+
it "with a partial (no release) version pin it installs a later package" do
|
|
1301
|
+
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
1302
|
+
yum_package "chef_rpm" do
|
|
1303
|
+
options default_options
|
|
1304
|
+
version "1.10"
|
|
1305
|
+
action :upgrade
|
|
1306
|
+
end.should_be_updated
|
|
1307
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1308
|
+
yum_package "chef_rpm" do
|
|
1309
|
+
options default_options
|
|
1310
|
+
version "1.10"
|
|
1311
|
+
action :upgrade
|
|
1312
|
+
end.should_not_be_updated
|
|
1313
|
+
end
|
|
1314
|
+
|
|
1315
|
+
it "with a partial (no release) version pin in the name it downgrades the package" do
|
|
1316
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
1317
|
+
yum_package "chef_rpm" do
|
|
1318
|
+
options default_options
|
|
1319
|
+
version("1.2")
|
|
1320
|
+
action :upgrade
|
|
1321
|
+
end.should_be_updated
|
|
1322
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1323
|
+
yum_package "chef_rpm" do
|
|
1324
|
+
options default_options
|
|
1325
|
+
version("1.2")
|
|
1326
|
+
action :upgrade
|
|
1327
|
+
end.should_not_be_updated
|
|
1328
|
+
end
|
|
1329
|
+
|
|
1330
|
+
it "with a full version pin it installs a later package" do
|
|
739
1331
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
740
|
-
yum_package
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
1332
|
+
yum_package "chef_rpm-1.10-1" do
|
|
1333
|
+
options default_options
|
|
1334
|
+
action :upgrade
|
|
1335
|
+
end.should_be_updated
|
|
1336
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1337
|
+
yum_package "chef_rpm-1.10-1" do
|
|
1338
|
+
options default_options
|
|
1339
|
+
action :upgrade
|
|
1340
|
+
end.should_not_be_updated
|
|
1341
|
+
end
|
|
1342
|
+
|
|
1343
|
+
it "with a full version pin in the name it downgrades the package" do
|
|
1344
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
1345
|
+
yum_package "chef_rpm-1.2-1" do
|
|
1346
|
+
options default_options
|
|
1347
|
+
action :upgrade
|
|
1348
|
+
end.should_be_updated
|
|
1349
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1350
|
+
yum_package "chef_rpm-1.2-1" do
|
|
1351
|
+
options default_options
|
|
1352
|
+
action :upgrade
|
|
1353
|
+
end.should_not_be_updated
|
|
1354
|
+
end
|
|
1355
|
+
|
|
1356
|
+
it "with a partial (no release) version pin it installs a later package" do
|
|
1357
|
+
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
1358
|
+
yum_package "chef_rpm-1.10" do
|
|
1359
|
+
options default_options
|
|
1360
|
+
action :upgrade
|
|
1361
|
+
end.should_be_updated
|
|
1362
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1363
|
+
yum_package "chef_rpm-1.10" do
|
|
1364
|
+
options default_options
|
|
1365
|
+
action :upgrade
|
|
1366
|
+
end.should_not_be_updated
|
|
1367
|
+
end
|
|
1368
|
+
|
|
1369
|
+
it "with a partial (no release) version pin in the name it downgrades the package" do
|
|
1370
|
+
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
1371
|
+
yum_package "chef_rpm-1.2" do
|
|
1372
|
+
options default_options
|
|
1373
|
+
action :upgrade
|
|
1374
|
+
end.should_be_updated
|
|
1375
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1376
|
+
yum_package "chef_rpm-1.2" do
|
|
1377
|
+
options default_options
|
|
1378
|
+
action :upgrade
|
|
1379
|
+
end.should_not_be_updated
|
|
744
1380
|
end
|
|
745
1381
|
|
|
746
1382
|
it "with a prco equality pin in the name it upgrades a prior package" do
|
|
747
1383
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
748
|
-
yum_package
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
yum_package.package_name("chef_rpm-1.2")
|
|
758
|
-
yum_package.run_action(:upgrade)
|
|
759
|
-
expect(yum_package.updated_by_last_action?).to be true
|
|
760
|
-
expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1384
|
+
yum_package "chef_rpm = 1.10" do
|
|
1385
|
+
options default_options
|
|
1386
|
+
action :upgrade
|
|
1387
|
+
end.should_be_updated
|
|
1388
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1389
|
+
yum_package "chef_rpm = 1.10" do
|
|
1390
|
+
options default_options
|
|
1391
|
+
action :upgrade
|
|
1392
|
+
end.should_not_be_updated
|
|
761
1393
|
end
|
|
762
1394
|
|
|
763
1395
|
it "with a prco equality pin in the name it downgrades a later package" do
|
|
764
1396
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
765
|
-
yum_package.
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
1397
|
+
yum_package "chef_rpm = 1.2" do
|
|
1398
|
+
options default_options
|
|
1399
|
+
action :upgrade
|
|
1400
|
+
end.should_be_updated
|
|
1401
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1402
|
+
yum_package "chef_rpm = 1.2" do
|
|
1403
|
+
options default_options
|
|
1404
|
+
action :upgrade
|
|
1405
|
+
end.should_not_be_updated
|
|
770
1406
|
end
|
|
771
1407
|
|
|
772
1408
|
it "with a > pin in the name and no rpm installed it installs" do
|
|
773
1409
|
flush_cache
|
|
774
|
-
yum_package
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
1410
|
+
yum_package "chef_rpm > 1.2" do
|
|
1411
|
+
options default_options
|
|
1412
|
+
action :upgrade
|
|
1413
|
+
end.should_be_updated
|
|
1414
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1415
|
+
yum_package "chef_rpm > 1.2" do
|
|
1416
|
+
options default_options
|
|
1417
|
+
action :upgrade
|
|
1418
|
+
end.should_not_be_updated
|
|
778
1419
|
end
|
|
779
1420
|
|
|
780
1421
|
it "with a < pin in the name and no rpm installed it installs" do
|
|
781
1422
|
flush_cache
|
|
782
|
-
yum_package
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
1423
|
+
yum_package "chef_rpm < 1.10" do
|
|
1424
|
+
options default_options
|
|
1425
|
+
action :upgrade
|
|
1426
|
+
end.should_be_updated
|
|
1427
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1428
|
+
yum_package "chef_rpm < 1.10" do
|
|
1429
|
+
options default_options
|
|
1430
|
+
action :upgrade
|
|
1431
|
+
end.should_not_be_updated
|
|
786
1432
|
end
|
|
787
1433
|
|
|
788
1434
|
it "with a > pin in the name and matching rpm installed it does nothing" do
|
|
789
1435
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
790
|
-
yum_package
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
1436
|
+
yum_package "chef_rpm > 1.2" do
|
|
1437
|
+
options default_options
|
|
1438
|
+
action :upgrade
|
|
1439
|
+
end.should_not_be_updated
|
|
1440
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
794
1441
|
end
|
|
795
1442
|
|
|
796
1443
|
it "with a < pin in the name and no rpm installed it installs" do
|
|
797
1444
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
798
|
-
yum_package
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
1445
|
+
yum_package "chef_rpm < 1.10" do
|
|
1446
|
+
options default_options
|
|
1447
|
+
action :upgrade
|
|
1448
|
+
end.should_not_be_updated
|
|
1449
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
802
1450
|
end
|
|
803
1451
|
|
|
804
1452
|
it "with a > pin in the name and non-matching rpm installed it upgrades" do
|
|
805
1453
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
806
|
-
yum_package
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
1454
|
+
yum_package "chef_rpm > 1.2" do
|
|
1455
|
+
options default_options
|
|
1456
|
+
action :upgrade
|
|
1457
|
+
end.should_be_updated
|
|
1458
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1459
|
+
yum_package "chef_rpm > 1.2" do
|
|
1460
|
+
options default_options
|
|
1461
|
+
action :upgrade
|
|
1462
|
+
end.should_not_be_updated
|
|
810
1463
|
end
|
|
811
1464
|
|
|
812
1465
|
it "with a < pin in the name and non-matching rpm installed it downgrades" do
|
|
813
1466
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
814
|
-
yum_package.
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
1467
|
+
yum_package "chef_rpm < 1.10" do
|
|
1468
|
+
options default_options
|
|
1469
|
+
action :upgrade
|
|
1470
|
+
end.should_be_updated
|
|
1471
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
|
|
1472
|
+
yum_package "chef_rpm < 1.10" do
|
|
1473
|
+
options default_options
|
|
1474
|
+
action :upgrade
|
|
1475
|
+
end.should_not_be_updated
|
|
819
1476
|
end
|
|
820
1477
|
end
|
|
821
1478
|
end
|
|
822
1479
|
|
|
823
1480
|
describe ":remove" do
|
|
1481
|
+
|
|
1482
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
1483
|
+
# python helper periodically before every top level context to get more FDs.
|
|
1484
|
+
before(:all) do
|
|
1485
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
1486
|
+
end
|
|
1487
|
+
|
|
824
1488
|
context "vanilla use case" do
|
|
825
|
-
let(:package_name) { "chef_rpm" }
|
|
826
1489
|
it "does nothing if the package is not installed" do
|
|
827
1490
|
flush_cache
|
|
828
|
-
yum_package
|
|
829
|
-
|
|
830
|
-
|
|
1491
|
+
yum_package "chef_rpm" do
|
|
1492
|
+
options default_options
|
|
1493
|
+
action :remove
|
|
1494
|
+
end.should_not_be_updated
|
|
1495
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
831
1496
|
end
|
|
832
1497
|
|
|
833
1498
|
it "removes the package if the package is installed" do
|
|
834
1499
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
835
|
-
yum_package
|
|
836
|
-
|
|
837
|
-
|
|
1500
|
+
yum_package "chef_rpm" do
|
|
1501
|
+
options default_options
|
|
1502
|
+
action :remove
|
|
1503
|
+
end.should_be_updated
|
|
1504
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
838
1505
|
end
|
|
839
1506
|
|
|
840
1507
|
it "does not remove the package twice" do
|
|
841
1508
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
842
|
-
yum_package
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
1509
|
+
yum_package "chef_rpm" do
|
|
1510
|
+
options default_options
|
|
1511
|
+
action :remove
|
|
1512
|
+
end.should_be_updated
|
|
1513
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
1514
|
+
yum_package "chef_rpm" do
|
|
1515
|
+
options default_options
|
|
1516
|
+
action :remove
|
|
1517
|
+
end.should_not_be_updated
|
|
1518
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
848
1519
|
end
|
|
849
1520
|
|
|
850
1521
|
it "removes the package if the prior version package is installed" do
|
|
851
1522
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
852
|
-
yum_package
|
|
853
|
-
|
|
854
|
-
|
|
1523
|
+
yum_package "chef_rpm" do
|
|
1524
|
+
options default_options
|
|
1525
|
+
action :remove
|
|
1526
|
+
end.should_be_updated
|
|
1527
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
1528
|
+
yum_package "chef_rpm" do
|
|
1529
|
+
options default_options
|
|
1530
|
+
action :remove
|
|
1531
|
+
end.should_not_be_updated
|
|
855
1532
|
end
|
|
856
1533
|
|
|
857
1534
|
it "removes the package if the i686 package is installed", :intel_64bit do
|
|
858
1535
|
skip "FIXME: should this be fixed or is the current behavior correct?"
|
|
859
1536
|
preinstall("chef_rpm-1.10-1.i686.rpm")
|
|
860
|
-
yum_package
|
|
861
|
-
|
|
862
|
-
|
|
1537
|
+
yum_package "chef_rpm" do
|
|
1538
|
+
options default_options
|
|
1539
|
+
action :remove
|
|
1540
|
+
end.should_be_updated
|
|
1541
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
1542
|
+
yum_package "chef_rpm" do
|
|
1543
|
+
options default_options
|
|
1544
|
+
action :remove
|
|
1545
|
+
end.should_not_be_updated
|
|
863
1546
|
end
|
|
864
1547
|
|
|
865
1548
|
it "removes the package if the prior version i686 package is installed", :intel_64bit do
|
|
866
1549
|
skip "FIXME: should this be fixed or is the current behavior correct?"
|
|
867
1550
|
preinstall("chef_rpm-1.2-1.i686.rpm")
|
|
868
|
-
yum_package
|
|
869
|
-
|
|
870
|
-
|
|
1551
|
+
yum_package "chef_rpm" do
|
|
1552
|
+
options default_options
|
|
1553
|
+
action :remove
|
|
1554
|
+
end.should_be_updated
|
|
1555
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
1556
|
+
yum_package "chef_rpm" do
|
|
1557
|
+
options default_options
|
|
1558
|
+
action :remove
|
|
1559
|
+
end.should_not_be_updated
|
|
871
1560
|
end
|
|
872
1561
|
end
|
|
873
1562
|
|
|
874
1563
|
context "with 64-bit arch", :intel_64bit do
|
|
875
|
-
let(:package_name) { "chef_rpm.#{pkg_arch}" }
|
|
876
1564
|
it "does nothing if the package is not installed" do
|
|
877
1565
|
flush_cache
|
|
878
|
-
yum_package
|
|
879
|
-
|
|
880
|
-
|
|
1566
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
1567
|
+
options default_options
|
|
1568
|
+
action :remove
|
|
1569
|
+
end.should_not_be_updated
|
|
1570
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
881
1571
|
end
|
|
882
1572
|
|
|
883
1573
|
it "removes the package if the package is installed" do
|
|
884
1574
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
|
|
885
|
-
yum_package
|
|
886
|
-
|
|
887
|
-
|
|
1575
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
1576
|
+
options default_options
|
|
1577
|
+
action :remove
|
|
1578
|
+
end.should_be_updated
|
|
1579
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
1580
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
1581
|
+
options default_options
|
|
1582
|
+
action :remove
|
|
1583
|
+
end.should_not_be_updated
|
|
888
1584
|
end
|
|
889
1585
|
|
|
890
1586
|
it "removes the package if the prior version package is installed" do
|
|
891
1587
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
892
|
-
yum_package
|
|
893
|
-
|
|
894
|
-
|
|
1588
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
1589
|
+
options default_options
|
|
1590
|
+
action :remove
|
|
1591
|
+
end.should_be_updated
|
|
1592
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
1593
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
1594
|
+
options default_options
|
|
1595
|
+
action :remove
|
|
1596
|
+
end.should_not_be_updated
|
|
895
1597
|
end
|
|
896
1598
|
|
|
897
1599
|
it "does nothing if the i686 package is installed" do
|
|
898
1600
|
preinstall("chef_rpm-1.10-1.i686.rpm")
|
|
899
|
-
yum_package
|
|
900
|
-
|
|
901
|
-
|
|
1601
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
1602
|
+
options default_options
|
|
1603
|
+
action :remove
|
|
1604
|
+
end.should_not_be_updated
|
|
1605
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
|
|
902
1606
|
end
|
|
903
1607
|
|
|
904
1608
|
it "does nothing if the prior version i686 package is installed" do
|
|
905
1609
|
preinstall("chef_rpm-1.2-1.i686.rpm")
|
|
906
|
-
yum_package
|
|
907
|
-
|
|
908
|
-
|
|
1610
|
+
yum_package "chef_rpm.#{pkg_arch}" do
|
|
1611
|
+
options default_options
|
|
1612
|
+
action :remove
|
|
1613
|
+
end.should_not_be_updated
|
|
1614
|
+
expect_matching_installed_version("^chef_rpm-1.2-1.i686$")
|
|
909
1615
|
end
|
|
910
1616
|
end
|
|
911
1617
|
|
|
912
1618
|
context "with 32-bit arch", :intel_64bit do
|
|
913
|
-
let(:package_name) { "chef_rpm.i686" }
|
|
914
1619
|
it "removes only the 32-bit arch if both are installed" do
|
|
915
1620
|
preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm", "chef_rpm-1.10-1.i686.rpm")
|
|
916
|
-
yum_package.
|
|
917
|
-
|
|
918
|
-
|
|
1621
|
+
yum_package "chef_rpm.i686" do
|
|
1622
|
+
options default_options
|
|
1623
|
+
action :remove
|
|
1624
|
+
end.should_be_updated
|
|
1625
|
+
expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
|
|
1626
|
+
yum_package "chef_rpm.i686" do
|
|
1627
|
+
options default_options
|
|
1628
|
+
action :remove
|
|
1629
|
+
end.should_not_be_updated
|
|
919
1630
|
end
|
|
920
1631
|
end
|
|
921
1632
|
|
|
@@ -923,14 +1634,27 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
|
923
1634
|
it "works when a package is installed" do
|
|
924
1635
|
FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
|
|
925
1636
|
preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
|
|
926
|
-
yum_package
|
|
927
|
-
|
|
928
|
-
|
|
1637
|
+
yum_package "chef_rpm" do
|
|
1638
|
+
options "--nogpgcheck"
|
|
1639
|
+
action :remove
|
|
1640
|
+
end.should_be_updated
|
|
1641
|
+
expect_matching_installed_version("^package chef_rpm is not installed$")
|
|
1642
|
+
yum_package "chef_rpm" do
|
|
1643
|
+
options "--nogpgcheck"
|
|
1644
|
+
action :remove
|
|
1645
|
+
end.should_not_be_updated
|
|
929
1646
|
end
|
|
930
1647
|
end
|
|
931
1648
|
end
|
|
932
1649
|
|
|
933
1650
|
describe ":lock and :unlock" do
|
|
1651
|
+
|
|
1652
|
+
# XXX: this is necessary for RHEL6 due to a file descriptor leak so we need to bounce the
|
|
1653
|
+
# python helper periodically before every top level context to get more FDs.
|
|
1654
|
+
before(:all) do
|
|
1655
|
+
Chef::Provider::Package::Yum::PythonHelper.instance.restart
|
|
1656
|
+
end
|
|
1657
|
+
|
|
934
1658
|
before(:all) do
|
|
935
1659
|
shell_out!("yum -y install yum-versionlock")
|
|
936
1660
|
end
|
|
@@ -941,53 +1665,75 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
|
941
1665
|
|
|
942
1666
|
it "locks an rpm" do
|
|
943
1667
|
flush_cache
|
|
944
|
-
yum_package
|
|
945
|
-
|
|
946
|
-
|
|
1668
|
+
yum_package "chef_rpm" do
|
|
1669
|
+
options default_options
|
|
1670
|
+
action :lock
|
|
1671
|
+
end.should_be_updated
|
|
947
1672
|
expect(shell_out("yum versionlock list").stdout.chomp).to match("^0:chef_rpm-")
|
|
1673
|
+
yum_package "chef_rpm" do
|
|
1674
|
+
options default_options
|
|
1675
|
+
action :lock
|
|
1676
|
+
end.should_not_be_updated
|
|
948
1677
|
end
|
|
949
1678
|
|
|
950
1679
|
it "does not lock if its already locked" do
|
|
951
1680
|
flush_cache
|
|
952
1681
|
shell_out!("yum versionlock add chef_rpm")
|
|
953
|
-
yum_package
|
|
954
|
-
|
|
955
|
-
|
|
1682
|
+
yum_package "chef_rpm" do
|
|
1683
|
+
options default_options
|
|
1684
|
+
action :lock
|
|
1685
|
+
end.should_not_be_updated
|
|
956
1686
|
expect(shell_out("yum versionlock list").stdout.chomp).to match("^0:chef_rpm-")
|
|
957
1687
|
end
|
|
958
1688
|
|
|
959
1689
|
it "unlocks an rpm" do
|
|
960
1690
|
flush_cache
|
|
961
1691
|
shell_out!("yum versionlock add chef_rpm")
|
|
962
|
-
yum_package
|
|
963
|
-
|
|
964
|
-
|
|
1692
|
+
yum_package "chef_rpm" do
|
|
1693
|
+
options default_options
|
|
1694
|
+
action :unlock
|
|
1695
|
+
end.should_be_updated
|
|
965
1696
|
expect(shell_out("yum versionlock list").stdout.chomp).not_to match("^0:chef_rpm-")
|
|
1697
|
+
yum_package "chef_rpm" do
|
|
1698
|
+
options default_options
|
|
1699
|
+
action :unlock
|
|
1700
|
+
end.should_not_be_updated
|
|
966
1701
|
end
|
|
967
1702
|
|
|
968
1703
|
it "does not unlock an already locked rpm" do
|
|
969
1704
|
flush_cache
|
|
970
|
-
yum_package
|
|
971
|
-
|
|
972
|
-
|
|
1705
|
+
yum_package "chef_rpm" do
|
|
1706
|
+
options default_options
|
|
1707
|
+
action :unlock
|
|
1708
|
+
end.should_not_be_updated
|
|
973
1709
|
expect(shell_out("yum versionlock list").stdout.chomp).not_to match("^0:chef_rpm-")
|
|
974
1710
|
end
|
|
975
1711
|
|
|
976
1712
|
it "check that we can lock based on provides" do
|
|
977
1713
|
flush_cache
|
|
978
|
-
yum_package
|
|
979
|
-
|
|
980
|
-
|
|
1714
|
+
yum_package "chef_rpm_provides" do
|
|
1715
|
+
options default_options
|
|
1716
|
+
action :lock
|
|
1717
|
+
end.should_be_updated
|
|
981
1718
|
expect(shell_out("yum versionlock list").stdout.chomp).to match("^0:chef_rpm-")
|
|
1719
|
+
yum_package "chef_rpm_provides" do
|
|
1720
|
+
options default_options
|
|
1721
|
+
action :lock
|
|
1722
|
+
end.should_not_be_updated
|
|
982
1723
|
end
|
|
983
1724
|
|
|
984
1725
|
it "check that we can unlock based on provides" do
|
|
985
1726
|
flush_cache
|
|
986
1727
|
shell_out!("yum versionlock add chef_rpm")
|
|
987
|
-
yum_package
|
|
988
|
-
|
|
989
|
-
|
|
1728
|
+
yum_package "chef_rpm_provides" do
|
|
1729
|
+
options default_options
|
|
1730
|
+
action :unlock
|
|
1731
|
+
end.should_be_updated
|
|
990
1732
|
expect(shell_out("yum versionlock list").stdout.chomp).not_to match("^0:chef_rpm-")
|
|
1733
|
+
yum_package "chef_rpm_provides" do
|
|
1734
|
+
options default_options
|
|
1735
|
+
action :unlock
|
|
1736
|
+
end.should_not_be_updated
|
|
991
1737
|
end
|
|
992
1738
|
end
|
|
993
1739
|
end
|