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