chef 16.10.17-universal-mingw32 → 17.1.35-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (694) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -21
  3. data/README.md +1 -1
  4. data/Rakefile +13 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +11 -24
  7. data/distro/ruby_bin_folder/AMD64/Chef.PowerShell.Wrapper.dll +0 -0
  8. data/distro/ruby_bin_folder/AMD64/Chef.PowerShell.dll +0 -0
  9. data/distro/ruby_bin_folder/AMD64/Newtonsoft.Json.dll +0 -0
  10. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.PowerShell.Wrapper.Core.dll +0 -0
  11. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.dll +0 -0
  12. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.pdb +0 -0
  13. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.NETCore.App.deps.json +153 -149
  14. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Diagnostics.dll +0 -0
  15. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Management.dll +0 -0
  16. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Utility.dll +0 -0
  17. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.ConsoleHost.dll +0 -0
  18. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.CoreCLR.Eventing.dll +0 -0
  19. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.MarkdownRender.dll +0 -0
  20. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Security.dll +0 -0
  21. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Management.dll +0 -0
  22. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Runtime.dll +0 -0
  23. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Newtonsoft.Json.dll +0 -0
  24. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.Messages.dll +0 -0
  25. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.dll +0 -0
  26. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Drawing.Common.dll +0 -0
  27. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Management.Automation.dll +0 -0
  28. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Pkcs.dll +0 -0
  29. data/distro/ruby_bin_folder/x86/Chef.PowerShell.dll +0 -0
  30. data/distro/ruby_bin_folder/x86/Chef.Powershell.Wrapper.dll +0 -0
  31. data/distro/ruby_bin_folder/x86/Newtonsoft.Json.dll +0 -0
  32. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.PowerShell.Wrapper.Core.dll +0 -0
  33. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.dll +0 -0
  34. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.pdb +0 -0
  35. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.NETCore.App.deps.json +153 -149
  36. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Diagnostics.dll +0 -0
  37. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Management.dll +0 -0
  38. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Utility.dll +0 -0
  39. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.ConsoleHost.dll +0 -0
  40. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.CoreCLR.Eventing.dll +0 -0
  41. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.MarkdownRender.dll +0 -0
  42. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Security.dll +0 -0
  43. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Management.dll +0 -0
  44. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Runtime.dll +0 -0
  45. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Newtonsoft.Json.dll +0 -0
  46. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.Messages.dll +0 -0
  47. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.dll +0 -0
  48. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Drawing.Common.dll +0 -0
  49. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Management.Automation.dll +0 -0
  50. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Pkcs.dll +0 -0
  51. data/lib/chef/application/base.rb +1 -1
  52. data/lib/chef/applications.rb +0 -1
  53. data/lib/chef/chef_fs/command_line.rb +5 -2
  54. data/lib/chef/chef_fs/file_pattern.rb +2 -2
  55. data/lib/chef/chef_fs/file_system.rb +9 -10
  56. data/lib/chef/client.rb +2 -2
  57. data/lib/chef/compliance/default_attributes.rb +11 -6
  58. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  59. data/lib/chef/compliance/reporter/automate.rb +17 -7
  60. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  61. data/lib/chef/compliance/reporter/cli.rb +77 -0
  62. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  63. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  64. data/lib/chef/compliance/runner.rb +71 -28
  65. data/lib/chef/cookbook/cookbook_version_loader.rb +3 -3
  66. data/lib/chef/cookbook/gem_installer.rb +5 -1
  67. data/lib/chef/cookbook/synchronizer.rb +3 -5
  68. data/lib/chef/cookbook_loader.rb +2 -4
  69. data/lib/chef/cookbook_uploader.rb +0 -1
  70. data/lib/chef/data_bag_item.rb +11 -2
  71. data/lib/chef/delayed_evaluator.rb +4 -0
  72. data/lib/chef/deprecated.rb +4 -0
  73. data/lib/chef/dsl/chef_vault.rb +6 -6
  74. data/lib/chef/dsl/declare_resource.rb +5 -10
  75. data/lib/chef/dsl/reboot_pending.rb +1 -2
  76. data/lib/chef/formatters/doc.rb +2 -1
  77. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  78. data/lib/chef/group.rb +75 -0
  79. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  80. data/lib/chef/node.rb +1 -1
  81. data/lib/chef/node/attribute.rb +6 -4
  82. data/lib/chef/node/immutable_collections.rb +13 -0
  83. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  84. data/lib/chef/org.rb +3 -2
  85. data/lib/chef/property.rb +18 -0
  86. data/lib/chef/provider.rb +1 -1
  87. data/lib/chef/provider/cron.rb +1 -1
  88. data/lib/chef/provider/directory.rb +6 -6
  89. data/lib/chef/provider/execute.rb +2 -1
  90. data/lib/chef/provider/file.rb +2 -2
  91. data/lib/chef/provider/git.rb +5 -7
  92. data/lib/chef/provider/group/groupadd.rb +3 -3
  93. data/lib/chef/provider/group/groupmod.rb +3 -3
  94. data/lib/chef/provider/group/pw.rb +3 -3
  95. data/lib/chef/provider/ifconfig.rb +2 -2
  96. data/lib/chef/provider/link.rb +3 -3
  97. data/lib/chef/provider/mount.rb +12 -7
  98. data/lib/chef/provider/mount/aix.rb +3 -3
  99. data/lib/chef/provider/mount/mount.rb +5 -5
  100. data/lib/chef/provider/mount/windows.rb +1 -1
  101. data/lib/chef/provider/package.rb +17 -21
  102. data/lib/chef/provider/package/apt.rb +27 -1
  103. data/lib/chef/provider/package/deb.rb +3 -3
  104. data/lib/chef/provider/package/dnf/dnf_helper.py +16 -11
  105. data/lib/chef/provider/package/dnf/python_helper.rb +9 -8
  106. data/lib/chef/provider/package/portage.rb +2 -2
  107. data/lib/chef/provider/package/rubygems.rb +11 -17
  108. data/lib/chef/provider/package/windows.rb +2 -4
  109. data/lib/chef/provider/package/yum.rb +1 -4
  110. data/lib/chef/provider/package/yum/python_helper.rb +15 -10
  111. data/lib/chef/provider/package/yum/yum_helper.py +51 -63
  112. data/lib/chef/provider/registry_key.rb +1 -1
  113. data/lib/chef/provider/route.rb +2 -2
  114. data/lib/chef/provider/service.rb +6 -6
  115. data/lib/chef/provider/service/aixinit.rb +1 -1
  116. data/lib/chef/provider/service/debian.rb +1 -1
  117. data/lib/chef/provider/service/freebsd.rb +15 -21
  118. data/lib/chef/provider/service/macosx.rb +7 -7
  119. data/lib/chef/provider/service/systemd.rb +43 -14
  120. data/lib/chef/provider/service/upstart.rb +2 -13
  121. data/lib/chef/provider/service/windows.rb +12 -12
  122. data/lib/chef/provider/subversion.rb +10 -12
  123. data/lib/chef/provider/systemd_unit.rb +36 -10
  124. data/lib/chef/provider/template/content.rb +3 -7
  125. data/lib/chef/provider/user.rb +2 -2
  126. data/lib/chef/provider/user/dscl.rb +1 -1
  127. data/lib/chef/provider/user/mac.rb +17 -20
  128. data/lib/chef/provider/user/pw.rb +1 -1
  129. data/lib/chef/provider/user/windows.rb +1 -1
  130. data/lib/chef/provider/windows_script.rb +1 -1
  131. data/lib/chef/provider/zypper_repository.rb +2 -2
  132. data/lib/chef/providers.rb +0 -1
  133. data/lib/chef/resource.rb +6 -7
  134. data/lib/chef/resource/alternatives.rb +6 -6
  135. data/lib/chef/resource/apt_package.rb +1 -1
  136. data/lib/chef/resource/apt_preference.rb +2 -2
  137. data/lib/chef/resource/apt_repository.rb +6 -6
  138. data/lib/chef/resource/apt_update.rb +3 -2
  139. data/lib/chef/resource/archive_file.rb +2 -3
  140. data/lib/chef/resource/breakpoint.rb +1 -1
  141. data/lib/chef/resource/build_essential.rb +2 -6
  142. data/lib/chef/resource/chef_client_config.rb +2 -2
  143. data/lib/chef/resource/chef_client_cron.rb +5 -5
  144. data/lib/chef/resource/chef_client_launchd.rb +4 -4
  145. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  146. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  147. data/lib/chef/resource/chef_handler.rb +3 -7
  148. data/lib/chef/resource/chef_sleep.rb +1 -1
  149. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  150. data/lib/chef/resource/chocolatey_config.rb +2 -6
  151. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  152. data/lib/chef/resource/chocolatey_source.rb +4 -10
  153. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  154. data/lib/chef/resource/cron_access.rb +2 -4
  155. data/lib/chef/resource/dmg_package.rb +6 -10
  156. data/lib/chef/resource/dpkg_package.rb +1 -1
  157. data/lib/chef/resource/execute.rb +8 -3
  158. data/lib/chef/resource/file.rb +1 -1
  159. data/lib/chef/resource/group.rb +2 -2
  160. data/lib/chef/resource/homebrew_cask.rb +2 -6
  161. data/lib/chef/resource/homebrew_tap.rb +2 -6
  162. data/lib/chef/resource/hostname.rb +21 -17
  163. data/lib/chef/resource/http_request.rb +1 -1
  164. data/lib/chef/resource/inspec_waiver_file_entry.rb +155 -0
  165. data/lib/chef/resource/kernel_module.rb +6 -17
  166. data/lib/chef/resource/locale.rb +2 -3
  167. data/lib/chef/resource/lwrp_base.rb +19 -0
  168. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  169. data/lib/chef/resource/mdadm.rb +53 -7
  170. data/lib/chef/resource/mount.rb +2 -1
  171. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  172. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  173. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  174. data/lib/chef/resource/plist.rb +7 -7
  175. data/lib/chef/resource/powershell_script.rb +1 -1
  176. data/lib/chef/resource/remote_file.rb +3 -3
  177. data/lib/chef/resource/rhsm_errata.rb +16 -1
  178. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  179. data/lib/chef/resource/rhsm_register.rb +12 -6
  180. data/lib/chef/resource/rhsm_repo.rb +2 -6
  181. data/lib/chef/resource/rhsm_subscription.rb +2 -6
  182. data/lib/chef/resource/scm/git.rb +1 -1
  183. data/lib/chef/resource/sudo.rb +6 -6
  184. data/lib/chef/resource/sysctl.rb +2 -6
  185. data/lib/chef/resource/systemd_unit.rb +2 -2
  186. data/lib/chef/resource/template.rb +1 -1
  187. data/lib/chef/resource/timezone.rb +1 -3
  188. data/lib/chef/resource/user/mac_user.rb +1 -1
  189. data/lib/chef/resource/user_ulimit.rb +2 -2
  190. data/lib/chef/resource/windows_ad_join.rb +2 -6
  191. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  192. data/lib/chef/resource/windows_auto_run.rb +2 -5
  193. data/lib/chef/resource/windows_certificate.rb +207 -73
  194. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  195. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  196. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  197. data/lib/chef/resource/windows_dns_record.rb +2 -6
  198. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  199. data/lib/chef/resource/windows_env.rb +6 -5
  200. data/lib/chef/resource/windows_feature.rb +3 -9
  201. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  202. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  203. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  204. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  205. data/lib/chef/resource/windows_font.rb +3 -5
  206. data/lib/chef/resource/windows_pagefile.rb +4 -8
  207. data/lib/chef/resource/windows_path.rb +4 -4
  208. data/lib/chef/resource/windows_printer.rb +4 -4
  209. data/lib/chef/resource/windows_printer_port.rb +6 -6
  210. data/lib/chef/resource/windows_security_policy.rb +56 -40
  211. data/lib/chef/resource/windows_share.rb +14 -21
  212. data/lib/chef/resource/windows_shortcut.rb +4 -6
  213. data/lib/chef/resource/windows_task.rb +18 -6
  214. data/lib/chef/resource/windows_uac.rb +1 -1
  215. data/lib/chef/resource/windows_user_privilege.rb +4 -4
  216. data/lib/chef/resource/windows_workgroup.rb +1 -2
  217. data/lib/chef/resource_builder.rb +8 -2
  218. data/lib/chef/resources.rb +1 -1
  219. data/lib/chef/run_lock.rb +1 -1
  220. data/lib/chef/runner.rb +1 -1
  221. data/lib/chef/shell/ext.rb +3 -3
  222. data/lib/chef/user.rb +0 -1
  223. data/lib/chef/user_v1.rb +3 -4
  224. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  225. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  226. data/lib/chef/version.rb +1 -1
  227. data/lib/chef/win32/api.rb +9 -2
  228. data/lib/chef/win32/registry.rb +4 -2
  229. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  230. data/spec/data/lwrp/resources/bar.rb +2 -0
  231. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  232. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  233. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  234. data/spec/data/lwrp/resources/foo.rb +2 -0
  235. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  236. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  237. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  238. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  239. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  240. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  241. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  242. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  243. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  244. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  245. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  246. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  247. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  248. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  249. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  250. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  251. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  252. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  253. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  254. data/spec/functional/resource/apt_package_spec.rb +1 -1
  255. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  256. data/spec/functional/resource/cron_spec.rb +1 -1
  257. data/spec/functional/resource/dnf_package_spec.rb +857 -534
  258. data/spec/functional/resource/group_spec.rb +1 -1
  259. data/spec/functional/resource/link_spec.rb +1 -1
  260. data/spec/functional/resource/registry_spec.rb +8 -8
  261. data/spec/functional/resource/remote_file_spec.rb +1 -1
  262. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  263. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  264. data/spec/functional/resource/windows_env_spec.rb +2 -2
  265. data/spec/functional/resource/yum_package_spec.rb +495 -428
  266. data/spec/functional/version_spec.rb +1 -1
  267. data/spec/functional/win32/registry_spec.rb +1 -1
  268. data/spec/integration/client/client_spec.rb +5 -22
  269. data/spec/integration/client/exit_code_spec.rb +1 -1
  270. data/spec/integration/client/ipv6_spec.rb +1 -1
  271. data/spec/integration/compliance/compliance_spec.rb +3 -2
  272. data/spec/integration/ohai/ohai_spec.rb +7 -6
  273. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  274. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  275. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  276. data/spec/integration/recipes/notifies_spec.rb +15 -1
  277. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  278. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  279. data/spec/integration/recipes/unified_mode_spec.rb +71 -1
  280. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  281. data/spec/spec_helper.rb +14 -13
  282. data/spec/support/chef_helpers.rb +1 -17
  283. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  284. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  285. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  286. data/spec/support/matchers/leak.rb +7 -9
  287. data/spec/support/platform_helpers.rb +5 -8
  288. data/spec/support/shared/functional/execute_resource.rb +1 -1
  289. data/spec/support/shared/integration/integration_helper.rb +0 -1
  290. data/spec/support/shared/unit/provider/file.rb +15 -1
  291. data/spec/support/shared/unit/script_resource.rb +2 -2
  292. data/spec/unit/application/solo_spec.rb +2 -2
  293. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  294. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
  295. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  296. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  297. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  298. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  299. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  300. data/spec/unit/compliance/runner_spec.rb +85 -10
  301. data/spec/unit/data_bag_item_spec.rb +1 -6
  302. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  303. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  304. data/spec/unit/lwrp_spec.rb +1 -1
  305. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  306. data/spec/unit/node/attribute_spec.rb +1 -1
  307. data/spec/unit/node_spec.rb +78 -0
  308. data/spec/unit/org_group_spec.rb +45 -0
  309. data/spec/unit/property_spec.rb +23 -22
  310. data/spec/unit/provider/cron_spec.rb +1 -1
  311. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  312. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  313. data/spec/unit/provider/group/pw_spec.rb +2 -2
  314. data/spec/unit/provider/group_spec.rb +1 -1
  315. data/spec/unit/provider/link_spec.rb +1 -1
  316. data/spec/unit/provider/mount/mount_spec.rb +51 -0
  317. data/spec/unit/provider/package/apt_spec.rb +84 -18
  318. data/spec/unit/provider/package/deb_spec.rb +3 -3
  319. data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -0
  320. data/spec/unit/provider/package/rubygems_spec.rb +21 -33
  321. data/spec/unit/provider/package/yum/python_helper_spec.rb +1 -0
  322. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  323. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  324. data/spec/unit/provider/service/macosx_spec.rb +5 -5
  325. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  326. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  327. data/spec/unit/provider/service/windows_spec.rb +2 -2
  328. data/spec/unit/provider/subversion_spec.rb +2 -2
  329. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  330. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  331. data/spec/unit/provider_spec.rb +0 -8
  332. data/spec/unit/resource/chef_client_cron_spec.rb +8 -8
  333. data/spec/unit/resource/inspec_waiver_file_entry_spec.rb +80 -0
  334. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  335. data/spec/unit/resource/windows_task_spec.rb +1 -1
  336. data/spec/unit/user_spec.rb +1 -1
  337. data/spec/unit/user_v1_spec.rb +6 -4
  338. data/tasks/rspec.rb +9 -6
  339. metadata +23 -528
  340. data/bin/knife +0 -24
  341. data/lib/chef/application/knife.rb +0 -234
  342. data/lib/chef/application/windows_service.rb +0 -338
  343. data/lib/chef/application/windows_service_manager.rb +0 -205
  344. data/lib/chef/chef_fs/knife.rb +0 -160
  345. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  346. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  347. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  348. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  349. data/lib/chef/knife.rb +0 -665
  350. data/lib/chef/knife/acl_add.rb +0 -57
  351. data/lib/chef/knife/acl_base.rb +0 -183
  352. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  353. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  354. data/lib/chef/knife/acl_remove.rb +0 -62
  355. data/lib/chef/knife/acl_show.rb +0 -56
  356. data/lib/chef/knife/bootstrap.rb +0 -1192
  357. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  358. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  359. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  360. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  361. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  362. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  363. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  364. data/lib/chef/knife/client_create.rb +0 -101
  365. data/lib/chef/knife/client_delete.rb +0 -62
  366. data/lib/chef/knife/client_edit.rb +0 -52
  367. data/lib/chef/knife/client_key_create.rb +0 -73
  368. data/lib/chef/knife/client_key_delete.rb +0 -80
  369. data/lib/chef/knife/client_key_edit.rb +0 -83
  370. data/lib/chef/knife/client_key_list.rb +0 -73
  371. data/lib/chef/knife/client_key_show.rb +0 -80
  372. data/lib/chef/knife/client_list.rb +0 -41
  373. data/lib/chef/knife/client_reregister.rb +0 -58
  374. data/lib/chef/knife/client_show.rb +0 -48
  375. data/lib/chef/knife/config_get.rb +0 -39
  376. data/lib/chef/knife/config_get_profile.rb +0 -37
  377. data/lib/chef/knife/config_list.rb +0 -139
  378. data/lib/chef/knife/config_list_profiles.rb +0 -37
  379. data/lib/chef/knife/config_show.rb +0 -127
  380. data/lib/chef/knife/config_use.rb +0 -61
  381. data/lib/chef/knife/config_use_profile.rb +0 -47
  382. data/lib/chef/knife/configure.rb +0 -150
  383. data/lib/chef/knife/configure_client.rb +0 -48
  384. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  385. data/lib/chef/knife/cookbook_delete.rb +0 -151
  386. data/lib/chef/knife/cookbook_download.rb +0 -142
  387. data/lib/chef/knife/cookbook_list.rb +0 -47
  388. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  389. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  390. data/lib/chef/knife/cookbook_show.rb +0 -98
  391. data/lib/chef/knife/cookbook_upload.rb +0 -292
  392. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  393. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  394. data/lib/chef/knife/core/formatting_options.rb +0 -49
  395. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  396. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  397. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  398. data/lib/chef/knife/core/node_editor.rb +0 -130
  399. data/lib/chef/knife/core/node_presenter.rb +0 -133
  400. data/lib/chef/knife/core/object_loader.rb +0 -115
  401. data/lib/chef/knife/core/status_presenter.rb +0 -147
  402. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  403. data/lib/chef/knife/core/text_formatter.rb +0 -85
  404. data/lib/chef/knife/core/ui.rb +0 -338
  405. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -406
  406. data/lib/chef/knife/data_bag_create.rb +0 -81
  407. data/lib/chef/knife/data_bag_delete.rb +0 -49
  408. data/lib/chef/knife/data_bag_edit.rb +0 -74
  409. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  410. data/lib/chef/knife/data_bag_list.rb +0 -42
  411. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  412. data/lib/chef/knife/data_bag_show.rb +0 -69
  413. data/lib/chef/knife/delete.rb +0 -125
  414. data/lib/chef/knife/deps.rb +0 -156
  415. data/lib/chef/knife/diff.rb +0 -83
  416. data/lib/chef/knife/download.rb +0 -84
  417. data/lib/chef/knife/edit.rb +0 -88
  418. data/lib/chef/knife/environment_compare.rb +0 -128
  419. data/lib/chef/knife/environment_create.rb +0 -52
  420. data/lib/chef/knife/environment_delete.rb +0 -44
  421. data/lib/chef/knife/environment_edit.rb +0 -44
  422. data/lib/chef/knife/environment_from_file.rb +0 -84
  423. data/lib/chef/knife/environment_list.rb +0 -41
  424. data/lib/chef/knife/environment_show.rb +0 -47
  425. data/lib/chef/knife/exec.rb +0 -99
  426. data/lib/chef/knife/group_add.rb +0 -55
  427. data/lib/chef/knife/group_create.rb +0 -49
  428. data/lib/chef/knife/group_destroy.rb +0 -53
  429. data/lib/chef/knife/group_list.rb +0 -43
  430. data/lib/chef/knife/group_remove.rb +0 -56
  431. data/lib/chef/knife/group_show.rb +0 -49
  432. data/lib/chef/knife/key_create.rb +0 -112
  433. data/lib/chef/knife/key_create_base.rb +0 -50
  434. data/lib/chef/knife/key_delete.rb +0 -55
  435. data/lib/chef/knife/key_edit.rb +0 -118
  436. data/lib/chef/knife/key_edit_base.rb +0 -55
  437. data/lib/chef/knife/key_list.rb +0 -90
  438. data/lib/chef/knife/key_list_base.rb +0 -45
  439. data/lib/chef/knife/key_show.rb +0 -53
  440. data/lib/chef/knife/list.rb +0 -177
  441. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  442. data/lib/chef/knife/node_create.rb +0 -47
  443. data/lib/chef/knife/node_delete.rb +0 -46
  444. data/lib/chef/knife/node_edit.rb +0 -70
  445. data/lib/chef/knife/node_environment_set.rb +0 -53
  446. data/lib/chef/knife/node_from_file.rb +0 -51
  447. data/lib/chef/knife/node_list.rb +0 -44
  448. data/lib/chef/knife/node_policy_set.rb +0 -79
  449. data/lib/chef/knife/node_run_list_add.rb +0 -104
  450. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  451. data/lib/chef/knife/node_run_list_set.rb +0 -66
  452. data/lib/chef/knife/node_show.rb +0 -63
  453. data/lib/chef/knife/null.rb +0 -12
  454. data/lib/chef/knife/raw.rb +0 -123
  455. data/lib/chef/knife/recipe_list.rb +0 -32
  456. data/lib/chef/knife/rehash.rb +0 -50
  457. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  458. data/lib/chef/knife/role_create.rb +0 -53
  459. data/lib/chef/knife/role_delete.rb +0 -46
  460. data/lib/chef/knife/role_edit.rb +0 -45
  461. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  462. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  463. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  464. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  465. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  466. data/lib/chef/knife/role_from_file.rb +0 -51
  467. data/lib/chef/knife/role_list.rb +0 -42
  468. data/lib/chef/knife/role_run_list_add.rb +0 -87
  469. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  470. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  471. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  472. data/lib/chef/knife/role_run_list_set.rb +0 -69
  473. data/lib/chef/knife/role_show.rb +0 -48
  474. data/lib/chef/knife/search.rb +0 -194
  475. data/lib/chef/knife/serve.rb +0 -65
  476. data/lib/chef/knife/show.rb +0 -72
  477. data/lib/chef/knife/ssh.rb +0 -645
  478. data/lib/chef/knife/ssl_check.rb +0 -284
  479. data/lib/chef/knife/ssl_fetch.rb +0 -161
  480. data/lib/chef/knife/status.rb +0 -95
  481. data/lib/chef/knife/supermarket_download.rb +0 -121
  482. data/lib/chef/knife/supermarket_install.rb +0 -192
  483. data/lib/chef/knife/supermarket_list.rb +0 -76
  484. data/lib/chef/knife/supermarket_search.rb +0 -53
  485. data/lib/chef/knife/supermarket_share.rb +0 -166
  486. data/lib/chef/knife/supermarket_show.rb +0 -66
  487. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  488. data/lib/chef/knife/tag_create.rb +0 -52
  489. data/lib/chef/knife/tag_delete.rb +0 -60
  490. data/lib/chef/knife/tag_list.rb +0 -47
  491. data/lib/chef/knife/upload.rb +0 -86
  492. data/lib/chef/knife/user_create.rb +0 -107
  493. data/lib/chef/knife/user_delete.rb +0 -44
  494. data/lib/chef/knife/user_dissociate.rb +0 -42
  495. data/lib/chef/knife/user_edit.rb +0 -52
  496. data/lib/chef/knife/user_invite_add.rb +0 -43
  497. data/lib/chef/knife/user_invite_list.rb +0 -34
  498. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  499. data/lib/chef/knife/user_key_create.rb +0 -73
  500. data/lib/chef/knife/user_key_delete.rb +0 -80
  501. data/lib/chef/knife/user_key_edit.rb +0 -83
  502. data/lib/chef/knife/user_key_list.rb +0 -73
  503. data/lib/chef/knife/user_key_show.rb +0 -80
  504. data/lib/chef/knife/user_list.rb +0 -42
  505. data/lib/chef/knife/user_reregister.rb +0 -59
  506. data/lib/chef/knife/user_show.rb +0 -48
  507. data/lib/chef/knife/xargs.rb +0 -282
  508. data/lib/chef/knife/yaml_convert.rb +0 -91
  509. data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +0 -79
  510. data/lib/chef/provider/package/yum/simplejson/__init__.py +0 -318
  511. data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
  512. data/lib/chef/provider/package/yum/simplejson/decoder.py +0 -354
  513. data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
  514. data/lib/chef/provider/package/yum/simplejson/encoder.py +0 -440
  515. data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
  516. data/lib/chef/provider/package/yum/simplejson/scanner.py +0 -65
  517. data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
  518. data/lib/chef/provider/package/yum/simplejson/tool.py +0 -37
  519. data/lib/chef/resource/user/dscl_user.rb +0 -35
  520. data/spec/functional/knife/configure_spec.rb +0 -33
  521. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  522. data/spec/functional/knife/exec_spec.rb +0 -55
  523. data/spec/functional/knife/rehash_spec.rb +0 -39
  524. data/spec/functional/knife/smoke_test.rb +0 -42
  525. data/spec/functional/knife/ssh_spec.rb +0 -352
  526. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  527. data/spec/functional/resource/windows_service_spec.rb +0 -105
  528. data/spec/functional/win32/service_manager_spec.rb +0 -220
  529. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  530. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  531. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  532. data/spec/integration/knife/chefignore_spec.rb +0 -301
  533. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  534. data/spec/integration/knife/client_create_spec.rb +0 -70
  535. data/spec/integration/knife/client_delete_spec.rb +0 -64
  536. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  537. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  538. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  539. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  540. data/spec/integration/knife/client_list_spec.rb +0 -49
  541. data/spec/integration/knife/client_show_spec.rb +0 -37
  542. data/spec/integration/knife/common_options_spec.rb +0 -174
  543. data/spec/integration/knife/config_list_spec.rb +0 -220
  544. data/spec/integration/knife/config_show_spec.rb +0 -192
  545. data/spec/integration/knife/config_use_spec.rb +0 -198
  546. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  547. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  548. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  549. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  550. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  551. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  552. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  553. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  554. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  555. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  556. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  557. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  558. data/spec/integration/knife/delete_spec.rb +0 -1018
  559. data/spec/integration/knife/deps_spec.rb +0 -703
  560. data/spec/integration/knife/diff_spec.rb +0 -605
  561. data/spec/integration/knife/download_spec.rb +0 -1336
  562. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  563. data/spec/integration/knife/environment_create_spec.rb +0 -41
  564. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  565. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  566. data/spec/integration/knife/environment_list_spec.rb +0 -42
  567. data/spec/integration/knife/environment_show_spec.rb +0 -77
  568. data/spec/integration/knife/list_spec.rb +0 -1060
  569. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  570. data/spec/integration/knife/node_create_spec.rb +0 -47
  571. data/spec/integration/knife/node_delete_spec.rb +0 -48
  572. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  573. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  574. data/spec/integration/knife/node_list_spec.rb +0 -45
  575. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  576. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  577. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  578. data/spec/integration/knife/node_show_spec.rb +0 -36
  579. data/spec/integration/knife/raw_spec.rb +0 -297
  580. data/spec/integration/knife/redirection_spec.rb +0 -64
  581. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  582. data/spec/integration/knife/role_create_spec.rb +0 -41
  583. data/spec/integration/knife/role_delete_spec.rb +0 -48
  584. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  585. data/spec/integration/knife/role_list_spec.rb +0 -45
  586. data/spec/integration/knife/role_show_spec.rb +0 -51
  587. data/spec/integration/knife/search_node_spec.rb +0 -40
  588. data/spec/integration/knife/serve_spec.rb +0 -92
  589. data/spec/integration/knife/show_spec.rb +0 -197
  590. data/spec/integration/knife/upload_spec.rb +0 -1617
  591. data/spec/support/shared/functional/win32_service.rb +0 -57
  592. data/spec/unit/application/knife_spec.rb +0 -241
  593. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  594. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  595. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  596. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  597. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  598. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  599. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  600. data/spec/unit/knife/client_create_spec.rb +0 -169
  601. data/spec/unit/knife/client_delete_spec.rb +0 -99
  602. data/spec/unit/knife/client_edit_spec.rb +0 -53
  603. data/spec/unit/knife/client_list_spec.rb +0 -34
  604. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  605. data/spec/unit/knife/client_show_spec.rb +0 -52
  606. data/spec/unit/knife/configure_client_spec.rb +0 -81
  607. data/spec/unit/knife/configure_spec.rb +0 -190
  608. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  609. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  610. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  611. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  612. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  613. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  614. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  615. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  616. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  617. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  618. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  619. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  620. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  621. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  622. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  623. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  624. data/spec/unit/knife/core/ui_spec.rb +0 -656
  625. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  626. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  627. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  628. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  629. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  630. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  631. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  632. data/spec/unit/knife/environment_create_spec.rb +0 -91
  633. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  634. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  635. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  636. data/spec/unit/knife/environment_list_spec.rb +0 -54
  637. data/spec/unit/knife/environment_show_spec.rb +0 -52
  638. data/spec/unit/knife/key_create_spec.rb +0 -223
  639. data/spec/unit/knife/key_delete_spec.rb +0 -133
  640. data/spec/unit/knife/key_edit_spec.rb +0 -264
  641. data/spec/unit/knife/key_helper.rb +0 -74
  642. data/spec/unit/knife/key_list_spec.rb +0 -216
  643. data/spec/unit/knife/key_show_spec.rb +0 -126
  644. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  645. data/spec/unit/knife/node_delete_spec.rb +0 -77
  646. data/spec/unit/knife/node_edit_spec.rb +0 -116
  647. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  648. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  649. data/spec/unit/knife/node_list_spec.rb +0 -62
  650. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  651. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  652. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  653. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  654. data/spec/unit/knife/node_show_spec.rb +0 -65
  655. data/spec/unit/knife/raw_spec.rb +0 -43
  656. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  657. data/spec/unit/knife/role_create_spec.rb +0 -80
  658. data/spec/unit/knife/role_delete_spec.rb +0 -67
  659. data/spec/unit/knife/role_edit_spec.rb +0 -77
  660. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  661. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  662. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  663. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  664. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  665. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  666. data/spec/unit/knife/role_list_spec.rb +0 -54
  667. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  668. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  669. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  670. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  671. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  672. data/spec/unit/knife/role_show_spec.rb +0 -59
  673. data/spec/unit/knife/ssh_spec.rb +0 -403
  674. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  675. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  676. data/spec/unit/knife/status_spec.rb +0 -112
  677. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  678. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  679. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  680. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  681. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  682. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  683. data/spec/unit/knife/tag_create_spec.rb +0 -23
  684. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  685. data/spec/unit/knife/tag_list_spec.rb +0 -23
  686. data/spec/unit/knife/user_create_spec.rb +0 -184
  687. data/spec/unit/knife/user_delete_spec.rb +0 -46
  688. data/spec/unit/knife/user_edit_spec.rb +0 -48
  689. data/spec/unit/knife/user_list_spec.rb +0 -36
  690. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  691. data/spec/unit/knife/user_show_spec.rb +0 -46
  692. data/spec/unit/knife_spec.rb +0 -634
  693. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  694. data/spec/unit/windows_service_spec.rb +0 -118
@@ -72,7 +72,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
72
72
  end
73
73
 
74
74
  def windows_domain_user?(user_name)
75
- domain, user = user_name.split('\\')
75
+ domain, user = user_name.split("\\")
76
76
 
77
77
  if user && domain != "."
78
78
  computer_name = ENV["computername"]
@@ -84,7 +84,7 @@ describe Chef::Resource::Link do
84
84
  end
85
85
 
86
86
  def canonicalize(path)
87
- windows? ? path.tr("/", '\\') : path
87
+ windows? ? path.tr("/", "\\") : path
88
88
  end
89
89
 
90
90
  def symlink(a, b)
@@ -127,12 +127,12 @@ describe Chef::Resource::RegistryKey, :windows_only, broken: true do
127
127
  @new_resource.cookbook_version(@cookbook_version)
128
128
  end
129
129
 
130
- after (:all) do
130
+ after(:all) do
131
131
  clean_registry
132
132
  end
133
133
 
134
134
  context "when action is create" do
135
- before (:all) do
135
+ before(:all) do
136
136
  reset_registry
137
137
  end
138
138
  it "creates registry key, value if the key is missing" do
@@ -290,7 +290,7 @@ describe Chef::Resource::RegistryKey, :windows_only, broken: true do
290
290
  end
291
291
 
292
292
  context "while running in whyrun mode" do
293
- before (:each) do
293
+ before(:each) do
294
294
  Chef::Config[:why_run] = true
295
295
  end
296
296
 
@@ -342,7 +342,7 @@ describe Chef::Resource::RegistryKey, :windows_only, broken: true do
342
342
  end
343
343
 
344
344
  context "when action is create_if_missing" do
345
- before (:all) do
345
+ before(:all) do
346
346
  reset_registry
347
347
  end
348
348
 
@@ -454,7 +454,7 @@ describe Chef::Resource::RegistryKey, :windows_only, broken: true do
454
454
  end
455
455
 
456
456
  context "while running in whyrun mode" do
457
- before (:each) do
457
+ before(:each) do
458
458
  Chef::Config[:why_run] = true
459
459
  end
460
460
 
@@ -576,7 +576,7 @@ describe Chef::Resource::RegistryKey, :windows_only, broken: true do
576
576
  end
577
577
 
578
578
  context "while running in whyrun mode" do
579
- before (:each) do
579
+ before(:each) do
580
580
  Chef::Config[:why_run] = true
581
581
  end
582
582
  it "does nothing if the action is delete" do
@@ -591,7 +591,7 @@ describe Chef::Resource::RegistryKey, :windows_only, broken: true do
591
591
  end
592
592
 
593
593
  context "when the action is delete_key" do
594
- before (:all) do
594
+ before(:all) do
595
595
  reset_registry
596
596
  create_deletable_keys
597
597
  end
@@ -653,7 +653,7 @@ describe Chef::Resource::RegistryKey, :windows_only, broken: true do
653
653
  expect(@report["total_res_count"]).to eq("1")
654
654
  end
655
655
  context "while running in whyrun mode" do
656
- before (:each) do
656
+ before(:each) do
657
657
  Chef::Config[:why_run] = true
658
658
  end
659
659
 
@@ -155,7 +155,7 @@ describe Chef::Resource::RemoteFile do
155
155
  before do
156
156
  shell_out("net.exe share #{smb_share_name} /delete")
157
157
  File.write(smb_file_local_path, smb_file_content )
158
- shell_out!("net.exe share #{smb_share_name}=\"#{smb_share_root_directory.tr("/", '\\')}\" /grant:\"authenticated users\",read")
158
+ shell_out!("net.exe share #{smb_share_name}=\"#{smb_share_root_directory.tr("/", "\\")}\" /grant:\"authenticated users\",read")
159
159
  end
160
160
 
161
161
  after do
@@ -19,9 +19,9 @@ require "spec_helper"
19
19
  require "chef/mixin/shell_out"
20
20
 
21
21
  metadata = {
22
- macos_gte_1014: true,
23
22
  requires_root: true,
24
- }
23
+ macos_only: true,
24
+ }
25
25
 
26
26
  describe "Chef::Resource::User with Chef::Provider::User::MacUser provider", metadata do
27
27
  include Chef::Mixin::ShellOut
@@ -22,26 +22,44 @@ require "chef/resource/windows_certificate"
22
22
  describe Chef::Resource::WindowsCertificate, :windows_only do
23
23
  include Chef::Mixin::PowershellExec
24
24
 
25
- def create_store
25
+ def create_store(store_location: "LocalMachine", store_name: store)
26
26
  powershell_exec <<~EOC
27
- New-Item -Path Cert:\\LocalMachine\\#{store}
27
+ New-Item -Path Cert:\\#{store_location}\\#{store_name}
28
28
  EOC
29
29
  end
30
30
 
31
- def delete_store
31
+ def delete_store(store_location: "LocalMachine", store_name: store)
32
32
  powershell_exec <<~EOC
33
- Remove-Item -Path Cert:\\LocalMachine\\#{store} -Recurse
33
+ Remove-Item -Path Cert:\\#{store_location}\\#{store_name} -Recurse
34
34
  EOC
35
35
  end
36
36
 
37
- def certificate_count
37
+ def certificate_count(store_location: "LocalMachine", store_name: store)
38
38
  powershell_exec(<<~EOC).result.to_i
39
- (Get-ChildItem -Force -Path Cert:\\LocalMachine\\#{store} | measure).Count
39
+ (Get-ChildItem -Force -Path Cert:\\#{store_location}\\#{store_name} | measure).Count
40
+ EOC
41
+ end
42
+
43
+ def list_certificates(store_location: "LocalMachine", store_name: store)
44
+ powershell_exec(<<~EOC)
45
+ Get-ChildItem -Force -Path Cert:\\#{store_location}\\#{store_name} -Recurse
46
+ EOC
47
+ end
48
+
49
+ def refresh_certstore(store_location: "LocalMachine")
50
+ powershell_exec(<<~EOC)
51
+ Get-ChildItem -Force -Path Cert:\\#{store_location} -Recurse
40
52
  EOC
41
53
  end
42
54
 
43
55
  let(:password) { "P@ssw0rd!" }
44
56
  let(:store) { "Chef-Functional-Test" }
57
+ let(:store_name) { "MY" }
58
+ let(:store_location) { "LocalMachine" }
59
+ let(:download_cert_url) { "https://testingchef.blob.core.windows.net/files/test.cer" }
60
+ let(:cert_output_path) { ::File.join(Chef::Config[:file_cache_path], "output.cer") }
61
+ let(:pfx_output_path) { ::File.join(Chef::Config[:file_cache_path], "output.pfx") }
62
+ let(:key_output_path) { ::File.join(Chef::Config[:file_cache_path], "output.key") }
45
63
  let(:cer_path) { File.join(CHEF_SPEC_DATA, "windows_certificates", "test.cer") }
46
64
  let(:base64_path) { File.join(CHEF_SPEC_DATA, "windows_certificates", "base64_test.cer") }
47
65
  let(:pem_path) { File.join(CHEF_SPEC_DATA, "windows_certificates", "test.pem") }
@@ -68,12 +86,16 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
68
86
  .and_return(true)
69
87
 
70
88
  create_store
89
+
71
90
  end
72
91
 
73
92
  after { delete_store }
74
93
 
75
94
  describe "action: create" do
76
95
  it "starts with no certificates" do
96
+ delete_store
97
+ create_store
98
+ foo = list_certificates
77
99
  expect(certificate_count).to eq(0)
78
100
  end
79
101
 
@@ -103,6 +125,14 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
103
125
  expect(resource).to be_updated_by_last_action
104
126
  end
105
127
 
128
+ it "can add a certificate from a valid url" do
129
+ resource.source = download_cert_url
130
+ resource.run_action(:create)
131
+
132
+ expect(certificate_count).to eq(1)
133
+ expect(resource).to be_updated_by_last_action
134
+ end
135
+
106
136
  it "can add a base64 encoded certificate idempotently" do
107
137
  resource.source = base64_path
108
138
  resource.run_action(:create)
@@ -157,9 +187,13 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
157
187
 
158
188
  expect { resource.run_action(:create) }.to raise_error(OpenSSL::PKCS12::PKCS12Error)
159
189
  end
190
+ after { delete_store }
160
191
  end
161
192
 
162
193
  describe "action: verify" do
194
+ before do
195
+ create_store
196
+ end
163
197
  it "fails with no certificates in the store" do
164
198
  expect(Chef::Log).to receive(:info).with("Certificate not found")
165
199
 
@@ -230,13 +264,13 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
230
264
  end
231
265
 
232
266
  describe "action: fetch" do
233
- it "does nothing with no certificates in the store" do
234
- expect(Chef::Log).not_to receive(:info)
235
-
236
- resource.source = tests_thumbprint
237
- resource.run_action(:fetch)
238
-
239
- expect(resource).not_to be_updated_by_last_action
267
+ context "with no certificate in the store" do
268
+ it "throws an error with no certificates in the store" do
269
+ expect(Chef::Log).not_to receive(:info)
270
+ resource.source = others_thumbprint
271
+ resource.output_path = cert_output_path
272
+ expect { resource.run_action :fetch }.to raise_error(ArgumentError)
273
+ end
240
274
  end
241
275
 
242
276
  context "with a certificate in the store" do
@@ -247,18 +281,10 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
247
281
 
248
282
  it "succeeds with a valid thumbprint" do
249
283
  resource.source = tests_thumbprint
250
-
251
- Dir.mktmpdir do |dir|
252
- path = File.join(dir, "test.pem")
253
- expect(Chef::Log).to receive(:info).with("Certificate export in #{path}")
254
-
255
- resource.cert_path = path
256
- resource.run_action(:fetch)
257
-
258
- expect(File.exist?(path)).to be_truthy
259
- end
260
-
261
- expect(resource).not_to be_updated_by_last_action
284
+ local_output_path = ::File.join(Chef::Config[:file_cache_path], "test.pem")
285
+ resource.output_path = local_output_path
286
+ resource.run_action(:fetch)
287
+ expect(File.exist?(local_output_path)).to be_truthy
262
288
  end
263
289
 
264
290
  it "fails with an invalid thumbprint" do
@@ -269,23 +295,54 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
269
295
  Dir.mktmpdir do |dir|
270
296
  path = File.join(dir, "test.pem")
271
297
 
272
- resource.cert_path = path
273
- resource.run_action(:fetch)
274
-
275
- expect(File.exist?(path)).to be_falsy
298
+ resource.output_path = path
299
+ expect { resource.run_action :fetch }.to raise_error(ArgumentError)
276
300
  end
277
301
 
278
- expect(resource).not_to be_updated_by_last_action
279
302
  end
280
303
  end
304
+
305
+ context "with a pfx/pkcs12 object in the store" do
306
+ before do
307
+ create_store
308
+ refresh_certstore
309
+ resource.source = pfx_path
310
+ resource.pfx_password = password
311
+ resource.exportable = true
312
+ resource.run_action(:create)
313
+ end
314
+
315
+ it "exports a PFX file with a valid thumbprint" do
316
+ resource.source = tests_thumbprint
317
+ resource.pfx_password = password
318
+ resource.output_path = pfx_output_path
319
+ resource.run_action(:fetch)
320
+ expect(File.exist?(pfx_output_path)).to be_truthy
321
+ end
322
+
323
+ it "exports a key file with a valid thumbprint" do
324
+ resource.source = tests_thumbprint
325
+ resource.pfx_password = password
326
+ resource.output_path = key_output_path
327
+ resource.run_action(:fetch)
328
+ expect(File.exist?(key_output_path)).to be_truthy
329
+ end
330
+
331
+ it "throws an exception when output_path is not specified" do
332
+ resource.source = tests_thumbprint
333
+ resource.pfx_password = password
334
+ expect { resource.run_action :fetch }.to raise_error(::Chef::Exceptions::ResourceNotFound)
335
+ end
336
+
337
+ after { delete_store }
338
+
339
+ end
281
340
  end
282
341
 
283
342
  describe "action: delete" do
284
- it "does nothing when attempting to delete a certificate that doesn't exist" do
285
- expect(Chef::Log).to receive(:debug).with("Certificate not found")
286
-
343
+ it "throws an argument error when attempting to delete a certificate that doesn't exist" do
287
344
  resource.source = tests_thumbprint
288
- resource.run_action(:delete)
345
+ expect { resource.run_action :delete }.to raise_error(ArgumentError)
289
346
  end
290
347
 
291
348
  it "deletes an existing certificate while leaving other certificates alone" do
@@ -303,7 +360,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
303
360
  expect(certificate_count).to eq(1)
304
361
  expect(resource).to be_updated_by_last_action
305
362
 
306
- resource.run_action(:delete)
363
+ expect { resource.run_action :delete }.to raise_error(ArgumentError)
307
364
  expect(certificate_count).to eq(1)
308
365
  expect(resource).not_to be_updated_by_last_action
309
366
 
@@ -38,7 +38,7 @@ describe Chef::Resource::WindowsEnv, :windows_only do
38
38
  if environment_variables && environment_variables.length > 0
39
39
  environment_variables.each do |env|
40
40
  env_obj = env.wmi_ole_object
41
- return env_obj if env_obj.username.split('\\').last.casecmp(test_resource.user) == 0
41
+ return env_obj if env_obj.username.split("\\").last.casecmp(test_resource.user) == 0
42
42
  end
43
43
  end
44
44
  nil
@@ -93,7 +93,7 @@ describe Chef::Resource::WindowsEnv, :windows_only do
93
93
  test_resource.value(env_value1)
94
94
  test_resource.user(env_user)
95
95
  test_resource.run_action(:create)
96
- expect(env_obj.username.split('\\').last.upcase).to eq(env_user)
96
+ expect(env_obj.username.split("\\").last.upcase).to eq(env_user)
97
97
  end
98
98
 
99
99
  context "when env variable exist with same name" do
@@ -19,8 +19,9 @@ require "spec_helper"
19
19
  require "chef/mixin/shell_out"
20
20
 
21
21
  # run this test only for following platforms.
22
- exclude_test = !(%w{rhel fedora amazon}.include?(ohai[:platform_family]) && !File.exist?("/usr/bin/dnf"))
22
+ exclude_test = !(%w{rhel fedora amazon}.include?(OHAI_SYSTEM[:platform_family]) && !File.exist?("/usr/bin/dnf"))
23
23
  describe Chef::Resource::YumPackage, :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
@@ -38,11 +39,17 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
38
39
  flush_cache
39
40
  end
40
41
 
42
+ def expect_matching_installed_version(version)
43
+ expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(version)
44
+ end
45
+
41
46
  before(:all) do
42
47
  shell_out!("yum -y install yum-utils")
43
48
  end
44
49
 
45
50
  before(:each) do
51
+ # force errors to fail and not retry
52
+ ENV["YUM_HELPER_NO_RETRIES"] = "true"
46
53
  File.open("/etc/yum.repos.d/chef-yum-localtesting.repo", "w+") do |f|
47
54
  f.write <<~EOF
48
55
  [chef-yum-localtesting]
@@ -52,6 +59,7 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
52
59
  gpgcheck=0
53
60
  EOF
54
61
  end
62
+ # ensure we don't have any stray chef_rpms installed
55
63
  shell_out!("rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | grep chef_rpm | xargs -r rpm -e")
56
64
  # next line is useful cleanup if you happen to have been testing both yum + dnf func tests on the same box and
57
65
  # have some dnf garbage left around
@@ -63,137 +71,133 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
63
71
  FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
64
72
  end
65
73
 
66
- let(:run_context) do
67
- Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
68
- end
69
-
70
- let(:package_name) { "chef_rpm" }
71
- let(:yum_package) do
72
- r = Chef::Resource::YumPackage.new(package_name, run_context)
73
- r.options("--nogpgcheck")
74
- r
75
- end
74
+ let(:default_options) { "--nogpgcheck --disablerepo=* --enablerepo=chef-yum-localtesting" }
76
75
 
77
76
  def pkg_arch
78
- ohai[:kernel][:machine]
77
+ OHAI_SYSTEM[:kernel][:machine]
79
78
  end
80
79
 
81
80
  describe ":install" do
82
81
  context "vanilla use case" do
83
- let(:package_name) { "chef_rpm" }
84
-
85
82
  it "installs if the package is not installed" do
86
83
  flush_cache
87
- yum_package.run_action(:install)
88
- expect(yum_package.updated_by_last_action?).to be true
89
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
84
+ yum_package("chef_rpm") do
85
+ options default_options
86
+ end.should_be_updated
87
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
90
88
  end
91
89
 
92
90
  it "does not install if the package is installed" do
93
91
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
94
- yum_package.run_action(:install)
95
- expect(yum_package.updated_by_last_action?).to be false
96
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
92
+ yum_package("chef_rpm") do
93
+ options default_options
94
+ end.should_not_be_updated
95
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
97
96
  end
98
97
 
99
98
  it "does not install twice" do
100
99
  flush_cache
101
- yum_package.run_action(:install)
102
- expect(yum_package.updated_by_last_action?).to be true
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}$")
104
- yum_package.run_action(:install)
105
- expect(yum_package.updated_by_last_action?).to be false
106
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
100
+ yum_package("chef_rpm") do
101
+ options default_options
102
+ end.should_be_updated
103
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
104
+ yum_package("chef_rpm") do
105
+ options default_options
106
+ end.should_not_be_updated
107
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
107
108
  end
108
109
 
109
110
  it "does not install if the prior version package is installed" do
110
111
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
111
- yum_package.run_action(:install)
112
- expect(yum_package.updated_by_last_action?).to be false
113
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
112
+ yum_package("chef_rpm") do
113
+ options default_options
114
+ end.should_not_be_updated
115
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
114
116
  end
115
117
 
116
118
  it "does not install if the i686 package is installed", :intel_64bit do
117
119
  skip "FIXME: do nothing, or install the #{pkg_arch} version?"
118
120
  preinstall("chef_rpm-1.10-1.i686.rpm")
119
- yum_package.run_action(:install)
120
- expect(yum_package.updated_by_last_action?).to be false
121
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.i686$")
121
+ yum_package("chef_rpm") do
122
+ options default_options
123
+ end.should_not_be_updated
124
+ expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
122
125
  end
123
126
 
124
127
  it "does not install if the prior version i686 package is installed", :intel_64bit do
125
128
  skip "FIXME: do nothing, or install the #{pkg_arch} version?"
126
129
  preinstall("chef_rpm-1.2-1.i686.rpm")
127
- yum_package.run_action(:install)
128
- expect(yum_package.updated_by_last_action?).to be false
129
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.i686$")
130
+ yum_package("chef_rpm") do
131
+ options default_options
132
+ end.should_not_be_updated
133
+ expect_matching_installed_version("^chef_rpm-1.2-1.i686$")
130
134
  end
131
135
  end
132
136
 
133
137
  context "with versions or globs in the name" do
134
138
  it "works with a version" do
135
139
  flush_cache
136
- yum_package.package_name("chef_rpm-1.10")
137
- yum_package.run_action(:install)
138
- expect(yum_package.updated_by_last_action?).to be true
139
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
140
+ yum_package("chef_rpm-1.10") do
141
+ options default_options
142
+ end.should_be_updated
143
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
140
144
  end
141
145
 
142
146
  it "works with an older version" do
143
147
  flush_cache
144
- yum_package.package_name("chef_rpm-1.2")
145
- yum_package.run_action(:install)
146
- expect(yum_package.updated_by_last_action?).to be true
147
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
148
+ yum_package("chef_rpm-1.2") do
149
+ options default_options
150
+ end.should_be_updated
151
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
148
152
  end
149
153
 
150
154
  it "works with an evra" do
151
155
  flush_cache
152
- yum_package.package_name("chef_rpm-0:1.2-1.#{pkg_arch}")
153
- yum_package.run_action(:install)
154
- expect(yum_package.updated_by_last_action?).to be true
155
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
156
+ yum_package("chef_rpm-0:1.2-1.#{pkg_arch}") do
157
+ options default_options
158
+ end.should_be_updated
159
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
156
160
  end
157
161
 
158
162
  it "works with version and release" do
159
163
  flush_cache
160
- yum_package.package_name("chef_rpm-1.2-1")
161
- yum_package.run_action(:install)
162
- expect(yum_package.updated_by_last_action?).to be true
163
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
164
+ yum_package("chef_rpm-1.2-1") do
165
+ options default_options
166
+ end.should_be_updated
167
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
164
168
  end
165
169
 
166
170
  it "works with a version glob" do
167
171
  flush_cache
168
- yum_package.package_name("chef_rpm-1*")
169
- yum_package.run_action(:install)
170
- expect(yum_package.updated_by_last_action?).to be true
171
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
172
+ yum_package("chef_rpm-1*") do
173
+ options default_options
174
+ end.should_be_updated
175
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
172
176
  end
173
177
 
174
178
  it "works with a name glob + version glob" do
175
179
  flush_cache
176
- yum_package.package_name("chef_rp*-1*")
177
- yum_package.run_action(:install)
178
- expect(yum_package.updated_by_last_action?).to be true
179
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
180
+ yum_package("chef_rp*-1*") do
181
+ options default_options
182
+ end.should_be_updated
183
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
180
184
  end
181
185
 
182
186
  it "upgrades when the installed version does not match the version string" do
183
187
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
184
- yum_package.package_name("chef_rpm-1.10")
185
- yum_package.run_action(:install)
186
- expect(yum_package.updated_by_last_action?).to be true
187
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}")
188
+ yum_package("chef_rpm-1.10") do
189
+ options default_options
190
+ end.should_be_updated
191
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}")
188
192
  end
189
193
 
190
194
  it "downgrades when the installed version is higher than the package_name version" do
191
195
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
192
- yum_package.allow_downgrade true
193
- yum_package.package_name("chef_rpm-1.2")
194
- yum_package.run_action(:install)
195
- expect(yum_package.updated_by_last_action?).to be true
196
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
196
+ yum_package("chef_rpm-1.2") do
197
+ allow_downgrade true
198
+ options default_options
199
+ end.should_be_updated
200
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
197
201
  end
198
202
  end
199
203
 
@@ -201,11 +205,11 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
201
205
  context "with version property" do
202
206
  it "matches the full version" do
203
207
  flush_cache
204
- yum_package.package_name("chef_rpm")
205
- yum_package.version("1.10")
206
- yum_package.run_action(:install)
207
- expect(yum_package.updated_by_last_action?).to be true
208
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
208
+ yum_package("chef_rpm") do
209
+ options default_options
210
+ version("1.10")
211
+ end.should_be_updated
212
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
209
213
  end
210
214
 
211
215
  it "matches with a glob" do
@@ -213,49 +217,49 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
213
217
  # the name field rather than trying to use a name of "tcpdump" and a version of "4*".
214
218
  pending "this does not work, is not easily supported by the underlying yum libraries, but does work in the new dnf_package provider"
215
219
  flush_cache
216
- yum_package.package_name("chef_rpm")
217
- yum_package.version("1*")
218
- yum_package.run_action(:install)
219
- expect(yum_package.updated_by_last_action?).to be true
220
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
220
+ yum_package("chef_rpm") do
221
+ options default_options
222
+ version("1*")
223
+ end.should_be_updated
224
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
221
225
  end
222
226
 
223
227
  it "matches the vr" do
224
228
  flush_cache
225
- yum_package.package_name("chef_rpm")
226
- yum_package.version("1.10-1")
227
- yum_package.run_action(:install)
228
- expect(yum_package.updated_by_last_action?).to be true
229
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
229
+ yum_package("chef_rpm") do
230
+ options default_options
231
+ version("1.10-1")
232
+ end.should_be_updated
233
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
230
234
  end
231
235
 
232
236
  it "matches the evr" do
233
237
  flush_cache
234
- yum_package.package_name("chef_rpm")
235
- yum_package.version("0:1.10-1")
236
- yum_package.run_action(:install)
237
- expect(yum_package.updated_by_last_action?).to be true
238
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
238
+ yum_package("chef_rpm") do
239
+ options default_options
240
+ version("0:1.10-1")
241
+ end.should_be_updated
242
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
239
243
  end
240
244
 
241
245
  it "matches with a vr glob" do
242
246
  pending "doesn't work on command line either"
243
247
  flush_cache
244
- yum_package.package_name("chef_rpm")
245
- yum_package.version("1.10-1*")
246
- yum_package.run_action(:install)
247
- expect(yum_package.updated_by_last_action?).to be true
248
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
248
+ yum_package("chef_rpm") do
249
+ options default_options
250
+ version("1.10-1*")
251
+ end.should_be_updated
252
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
249
253
  end
250
254
 
251
255
  it "matches with an evr glob" do
252
256
  pending "doesn't work on command line either"
253
257
  flush_cache
254
- yum_package.package_name("chef_rpm")
255
- yum_package.version("0:1.10-1*")
256
- yum_package.run_action(:install)
257
- expect(yum_package.updated_by_last_action?).to be true
258
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
258
+ yum_package("chef_rpm") do
259
+ options default_options
260
+ version("0:1.10-1*")
261
+ end.should_be_updated
262
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
259
263
  end
260
264
  end
261
265
 
@@ -263,249 +267,257 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
263
267
  it "downgrades the package when allow_downgrade" do
264
268
  flush_cache
265
269
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
266
- yum_package.package_name("chef_rpm")
267
- yum_package.allow_downgrade true
268
- yum_package.version("1.2-1")
269
- yum_package.run_action(:install)
270
- expect(yum_package.updated_by_last_action?).to be true
271
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
270
+ yum_package("chef_rpm") do
271
+ options default_options
272
+ allow_downgrade true
273
+ version("1.2-1")
274
+ end.should_be_updated
275
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
272
276
  end
273
277
  end
274
278
 
275
279
  context "with arches", :intel_64bit do
276
280
  it "installs with 64-bit arch in the name" do
277
281
  flush_cache
278
- yum_package.package_name("chef_rpm.#{pkg_arch}")
279
- yum_package.run_action(:install)
280
- expect(yum_package.updated_by_last_action?).to be true
281
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
282
+ yum_package("chef_rpm.#{pkg_arch}") do
283
+ options default_options
284
+ end.should_be_updated
285
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
282
286
  end
283
287
 
284
288
  it "installs with 32-bit arch in the name" do
285
289
  flush_cache
286
- yum_package.package_name("chef_rpm.i686")
287
- yum_package.run_action(:install)
288
- expect(yum_package.updated_by_last_action?).to be true
289
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.i686$")
290
+ yum_package("chef_rpm.i686") do
291
+ options default_options
292
+ end.should_be_updated
293
+ expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
290
294
  end
291
295
 
292
296
  it "installs with 64-bit arch in the property" do
293
297
  flush_cache
294
- yum_package.package_name("chef_rpm")
295
- yum_package.arch((pkg_arch).to_s)
296
- yum_package.run_action(:install)
297
- expect(yum_package.updated_by_last_action?).to be true
298
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
298
+ yum_package("chef_rpm") do
299
+ options default_options
300
+ arch((pkg_arch).to_s)
301
+ end.should_be_updated
302
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
299
303
  end
300
304
 
301
305
  it "installs with 32-bit arch in the property" do
302
306
  flush_cache
303
- yum_package.package_name("chef_rpm")
304
- yum_package.arch("i686")
305
- yum_package.run_action(:install)
306
- expect(yum_package.updated_by_last_action?).to be true
307
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.i686$")
307
+ yum_package("chef_rpm") do
308
+ options default_options
309
+ arch("i686")
310
+ end.should_be_updated
311
+ expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
308
312
  end
309
313
  end
310
314
 
311
315
  context "with constraints" do
312
316
  it "with nothing installed, it installs the latest version" do
313
317
  flush_cache
314
- yum_package.package_name("chef_rpm >= 1.2")
315
- yum_package.run_action(:install)
316
- expect(yum_package.updated_by_last_action?).to be true
317
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
318
+ yum_package("chef_rpm >= 1.2") do
319
+ options default_options
320
+ end.should_be_updated
321
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
318
322
  end
319
323
 
320
324
  it "when it is met, it does nothing" do
321
325
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
322
- yum_package.package_name("chef_rpm >= 1.2")
323
- yum_package.run_action(:install)
324
- expect(yum_package.updated_by_last_action?).to be false
325
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
326
+ yum_package("chef_rpm >= 1.2") do
327
+ options default_options
328
+ end.should_not_be_updated
329
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
326
330
  end
327
331
 
328
332
  it "when it is met, it does nothing" do
329
333
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
330
- yum_package.package_name("chef_rpm >= 1.2")
331
- yum_package.run_action(:install)
332
- expect(yum_package.updated_by_last_action?).to be false
333
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
334
+ yum_package("chef_rpm >= 1.2") do
335
+ options default_options
336
+ end.should_not_be_updated
337
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
334
338
  end
335
339
 
336
340
  it "with nothing intalled, it installs the latest version" do
337
341
  flush_cache
338
- yum_package.package_name("chef_rpm > 1.2")
339
- yum_package.run_action(:install)
340
- expect(yum_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
+ yum_package("chef_rpm > 1.2") do
343
+ options default_options
344
+ end.should_be_updated
345
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
342
346
  end
343
347
 
344
348
  it "when it is not met by an installed rpm, it upgrades" do
345
349
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
346
- yum_package.package_name("chef_rpm > 1.2")
347
- yum_package.run_action(:install)
348
- expect(yum_package.updated_by_last_action?).to be true
349
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
350
+ yum_package("chef_rpm > 1.2") do
351
+ options default_options
352
+ end.should_be_updated
353
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
350
354
  end
351
355
 
352
356
  it "with an equality constraint, when it is not met by an installed rpm, it upgrades" do
353
357
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
354
- yum_package.package_name("chef_rpm = 1.10")
355
- yum_package.run_action(:install)
356
- expect(yum_package.updated_by_last_action?).to be true
357
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
358
+ yum_package("chef_rpm = 1.10") do
359
+ options default_options
360
+ end.should_be_updated
361
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
358
362
  end
359
363
 
360
364
  it "with an equality constraint, when it is met by an installed rpm, it does nothing" do
361
365
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
362
- yum_package.package_name("chef_rpm = 1.2")
363
- yum_package.run_action(:install)
364
- expect(yum_package.updated_by_last_action?).to be false
365
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
366
+ yum_package("chef_rpm = 1.2") do
367
+ options default_options
368
+ end.should_not_be_updated
369
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
366
370
  end
367
371
 
368
372
  it "when it is met by an installed rpm, it does nothing" do
369
373
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
370
- yum_package.package_name("chef_rpm > 1.2")
371
- yum_package.run_action(:install)
372
- expect(yum_package.updated_by_last_action?).to be false
373
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
374
+ yum_package("chef_rpm > 1.2") do
375
+ options default_options
376
+ end.should_not_be_updated
377
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
374
378
  end
375
379
 
376
- it "when there is no solution to the contraint" do
380
+ it "when there is no solution to the constraint" do
377
381
  flush_cache
378
- yum_package.package_name("chef_rpm > 2.0")
379
- expect { yum_package.run_action(:install) }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
382
+ expect {
383
+ yum_package("chef_rpm > 2.0") do
384
+ options default_options
385
+ end
386
+ }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
380
387
  end
381
388
 
382
- it "when there is no solution to the contraint but an rpm is preinstalled" do
389
+ it "when there is no solution to the constraint but an rpm is preinstalled" do
383
390
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
384
- yum_package.package_name("chef_rpm > 2.0")
385
- expect { yum_package.run_action(:install) }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
391
+ expect {
392
+ yum_package("chef_rpm > 2.0") do
393
+ options default_options
394
+ end
395
+ }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
386
396
  end
387
397
 
388
398
  it "with a less than constraint, when nothing is installed, it installs" do
389
399
  flush_cache
390
- yum_package.allow_downgrade true
391
- yum_package.package_name("chef_rpm < 1.10")
392
- yum_package.run_action(:install)
393
- expect(yum_package.updated_by_last_action?).to be true
394
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
400
+ yum_package("chef_rpm < 1.10") do
401
+ allow_downgrade true
402
+ options default_options
403
+ end.should_be_updated
404
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
395
405
  end
396
406
 
397
407
  it "with a less than constraint, when the install version matches, it does nothing" do
398
408
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
399
- yum_package.allow_downgrade true
400
- yum_package.package_name("chef_rpm < 1.10")
401
- yum_package.run_action(:install)
402
- expect(yum_package.updated_by_last_action?).to be false
403
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
409
+ yum_package("chef_rpm < 1.10") do
410
+ allow_downgrade true
411
+ options default_options
412
+ end.should_not_be_updated
413
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
404
414
  end
405
415
 
406
416
  it "with a less than constraint, when the install version fails, it should downgrade" do
407
417
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
408
- yum_package.allow_downgrade true
409
- yum_package.package_name("chef_rpm < 1.10")
410
- yum_package.run_action(:install)
411
- expect(yum_package.updated_by_last_action?).to be true
412
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
418
+ yum_package("chef_rpm < 1.10") do
419
+ allow_downgrade true
420
+ options default_options
421
+ end.should_be_updated
422
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
413
423
  end
414
424
  end
415
425
 
416
426
  context "with source arguments" do
417
427
  it "raises an exception when the package does not exist" do
418
428
  flush_cache
419
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/this-file-better-not-exist.rpm")
420
- expect { yum_package.run_action(:install) }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
429
+ expect {
430
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/this-file-better-not-exist.rpm") do
431
+ options default_options
432
+ end
433
+ }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
421
434
  end
422
435
 
423
436
  it "does not raise a hard exception in why-run mode when the package does not exist" do
424
437
  Chef::Config[:why_run] = true
425
438
  flush_cache
426
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/this-file-better-not-exist.rpm")
427
- yum_package.run_action(:install)
428
- expect { yum_package.run_action(:install) }.not_to raise_error
439
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/this-file-better-not-exist.rpm") do
440
+ options default_options
441
+ end
429
442
  end
430
443
 
431
444
  it "installs the package when using the source argument" do
432
445
  flush_cache
433
- yum_package.name "something"
434
- yum_package.package_name "somethingelse"
435
- yum_package.source("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
436
- yum_package.run_action(:install)
437
- expect(yum_package.updated_by_last_action?).to be true
438
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
446
+ yum_package "something" do
447
+ package_name "somethingelse"
448
+ source("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
449
+ end.should_be_updated
450
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
439
451
  end
440
452
 
441
453
  it "installs the package when the name is a path to a file" do
442
454
  flush_cache
443
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
444
- yum_package.run_action(:install)
445
- expect(yum_package.updated_by_last_action?).to be true
446
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
455
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
456
+ options default_options
457
+ end.should_be_updated
458
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
447
459
  end
448
460
 
449
461
  it "downgrade on a local file is ignored when allow_downgrade is false" do
450
462
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
451
- yum_package.allow_downgrade false
452
- yum_package.version "1.2-1"
453
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
454
- yum_package.run_action(:install)
455
- expect(yum_package.updated_by_last_action?).to be false
456
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
463
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
464
+ allow_downgrade false
465
+ version "1.2-1"
466
+ options default_options
467
+ end.should_not_be_updated
468
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
457
469
  end
458
470
 
459
471
  it "downgrade on a local file with allow_downgrade true works" do
460
472
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
461
- yum_package.version "1.2-1"
462
- yum_package.allow_downgrade true
463
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
464
- yum_package.run_action(:install)
465
- expect(yum_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.2-1.#{pkg_arch}$")
473
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
474
+ version "1.2-1"
475
+ allow_downgrade true
476
+ options default_options
477
+ end.should_be_updated
478
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
467
479
  end
468
480
 
469
481
  it "does not downgrade the package with :install" do
470
482
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
471
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
472
- yum_package.run_action(:install)
473
- expect(yum_package.updated_by_last_action?).to be false
474
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
483
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
484
+ options default_options
485
+ end.should_not_be_updated
486
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
475
487
  end
476
488
 
477
489
  it "does not upgrade the package with :install" do
478
490
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
479
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.10-1.#{pkg_arch}.rpm")
480
- yum_package.run_action(:install)
481
- expect(yum_package.updated_by_last_action?).to be false
482
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
491
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.10-1.#{pkg_arch}.rpm") do
492
+ options default_options
493
+ end.should_not_be_updated
494
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
483
495
  end
484
496
 
485
497
  it "is idempotent when the package is already installed" do
486
498
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
487
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
488
- yum_package.run_action(:install)
489
- expect(yum_package.updated_by_last_action?).to be false
490
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
499
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
500
+ options default_options
501
+ end.should_not_be_updated
502
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
491
503
  end
492
504
 
493
505
  it "is idempotent when the package is already installed and there is a version string" do
494
506
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
495
- yum_package.version "1.2-1"
496
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
497
- yum_package.run_action(:install)
498
- expect(yum_package.updated_by_last_action?).to be false
499
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
507
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
508
+ version "1.2-1"
509
+ options default_options
510
+ end.should_not_be_updated
511
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
500
512
  end
501
513
 
502
514
  it "is idempotent when the package is already installed and there is a version string with arch" do
503
515
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
504
- yum_package.version "1.2-1.#{pkg_arch}"
505
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
506
- yum_package.run_action(:install)
507
- expect(yum_package.updated_by_last_action?).to be false
508
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
516
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
517
+ version "1.2-1.#{pkg_arch}"
518
+ options default_options
519
+ end.should_not_be_updated
520
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
509
521
  end
510
522
  end
511
523
 
@@ -513,124 +525,132 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
513
525
  it "works when a package is installed" do
514
526
  FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
515
527
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
516
- yum_package.run_action(:install)
517
- expect(yum_package.updated_by_last_action?).to be false
518
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
528
+ yum_package "chef_rpm" do
529
+ options "--nogpgcheck"
530
+ end.should_not_be_updated
531
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
519
532
  end
520
533
 
521
534
  it "works with a local source" do
522
535
  FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
523
536
  flush_cache
524
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
525
- yum_package.run_action(:install)
526
- expect(yum_package.updated_by_last_action?).to be true
527
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
537
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
538
+ options "--nogpgcheck"
539
+ end.should_be_updated
540
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
528
541
  end
529
542
  end
530
543
 
531
544
  context "multipackage with arches", :intel_64bit do
532
545
  it "installs two rpms" do
533
546
  flush_cache
534
- yum_package.package_name([ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] )
535
- yum_package.run_action(:install)
536
- expect(yum_package.updated_by_last_action?).to be true
537
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.#{pkg_arch}$/)
538
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.i686$/)
547
+ yum_package([ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] ) do
548
+ options default_options
549
+ end.should_be_updated
550
+ expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
551
+ expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
539
552
  end
540
553
 
541
554
  it "does nothing if both are installed" do
542
555
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm", "chef_rpm-1.10-1.i686.rpm")
543
556
  flush_cache
544
- yum_package.package_name([ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] )
545
- yum_package.run_action(:install)
546
- expect(yum_package.updated_by_last_action?).to be false
557
+ yum_package([ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] ) do
558
+ options default_options
559
+ end.should_not_be_updated
547
560
  end
548
561
 
549
562
  it "installs the second rpm if the first is installed" do
550
563
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
551
- yum_package.package_name([ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] )
552
- yum_package.run_action(:install)
553
- expect(yum_package.updated_by_last_action?).to be true
554
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.#{pkg_arch}$/)
555
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.i686$/)
564
+ yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
565
+ options default_options
566
+ end.should_be_updated
567
+ expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
568
+ expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
556
569
  end
557
570
 
558
571
  it "installs the first rpm if the second is installed" do
559
572
  preinstall("chef_rpm-1.10-1.i686.rpm")
560
- yum_package.package_name([ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] )
561
- yum_package.run_action(:install)
562
- expect(yum_package.updated_by_last_action?).to be true
563
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.#{pkg_arch}$/)
564
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.i686$/)
573
+ yum_package [ "chef_rpm.#{pkg_arch}", "chef_rpm.i686" ] do
574
+ options default_options
575
+ end.should_be_updated
576
+ expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
577
+ expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
565
578
  end
566
579
 
567
580
  # unlikely to work consistently correct, okay to deprecate the arch-array in favor of the arch in the name
568
581
  it "installs two rpms with multi-arch" do
569
582
  flush_cache
570
- yum_package.package_name(%w{chef_rpm chef_rpm} )
571
- yum_package.arch([pkg_arch, "i686"])
572
- yum_package.run_action(:install)
573
- expect(yum_package.updated_by_last_action?).to be true
574
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.#{pkg_arch}$/)
575
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.i686$/)
583
+ yum_package %w{chef_rpm chef_rpm} do
584
+ options default_options
585
+ arch [pkg_arch, "i686"]
586
+ end.should_be_updated
587
+ expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
588
+ expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
576
589
  end
577
590
 
578
591
  # unlikely to work consistently correct, okay to deprecate the arch-array in favor of the arch in the name
579
592
  it "installs the second rpm if the first is installed (muti-arch)" do
580
593
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
581
- yum_package.package_name(%w{chef_rpm chef_rpm} )
582
- yum_package.arch([pkg_arch, "i686"])
583
- yum_package.run_action(:install)
584
- expect(yum_package.updated_by_last_action?).to be true
585
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.#{pkg_arch}$/)
586
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.i686$/)
594
+ yum_package %w{chef_rpm chef_rpm} do
595
+ options default_options
596
+ arch [pkg_arch, "i686"]
597
+ end.should_be_updated
598
+ expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
599
+ expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
587
600
  end
588
601
 
589
602
  # unlikely to work consistently correct, okay to deprecate the arch-array in favor of the arch in the name
590
603
  it "installs the first rpm if the second is installed (muti-arch)" do
591
604
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
592
- yum_package.package_name(%w{chef_rpm chef_rpm} )
593
- yum_package.arch([pkg_arch, "i686"])
594
- yum_package.run_action(:install)
595
- expect(yum_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.10-1.#{pkg_arch}$/)
597
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match(/^chef_rpm-1.10-1.i686$/)
605
+ yum_package %w{chef_rpm chef_rpm} do
606
+ options default_options
607
+ arch [pkg_arch, "i686"]
608
+ end.should_be_updated
609
+ expect_matching_installed_version(/^chef_rpm-1.10-1.#{pkg_arch}$/)
610
+ expect_matching_installed_version(/^chef_rpm-1.10-1.i686$/)
598
611
  end
599
612
 
600
613
  # unlikely to work consistently correct, okay to deprecate the arch-array in favor of the arch in the name
601
614
  it "does nothing if both are installed (muti-arch)" do
602
615
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm", "chef_rpm-1.10-1.i686.rpm")
603
- yum_package.package_name(%w{chef_rpm chef_rpm} )
604
- yum_package.arch([pkg_arch, "i686"])
605
- yum_package.run_action(:install)
606
- expect(yum_package.updated_by_last_action?).to be false
616
+ yum_package %w{chef_rpm chef_rpm} do
617
+ options default_options
618
+ arch [pkg_arch, "i686"]
619
+ end.should_not_be_updated
607
620
  end
608
621
  end
609
622
 
610
623
  context "repo controls" do
611
624
  it "should fail with the repo disabled" do
612
625
  flush_cache
613
- yum_package.options("--disablerepo=chef-yum-localtesting")
614
- expect { yum_package.run_action(:install) }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
626
+ expect {
627
+ yum_package "chef_rpm" do
628
+ options "--nogpgcheck --disablerepo=chef-yum-localtesting"
629
+ end
630
+ }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
615
631
  end
616
632
 
617
633
  it "should work with disablerepo first" do
618
634
  flush_cache
619
- yum_package.options(["--disablerepo=*", "--enablerepo=chef-yum-localtesting"])
620
- yum_package.run_action(:install)
621
- expect(yum_package.updated_by_last_action?).to be true
622
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
635
+ yum_package "chef_rpm" do
636
+ options "--nogpgcheck --disablerepo=* --enablerepo=chef-yum-localtesting"
637
+ end.should_be_updated
638
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
623
639
  end
624
640
 
625
641
  it "should work to enable a disabled repo" do
626
642
  shell_out!("yum-config-manager --disable chef-yum-localtesting")
627
643
  flush_cache
628
- expect { yum_package.run_action(:install) }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
644
+ expect {
645
+ yum_package "chef_rpm" do
646
+ options "--nogpgcheck"
647
+ end
648
+ }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
629
649
  flush_cache
630
- yum_package.options("--enablerepo=chef-yum-localtesting")
631
- yum_package.run_action(:install)
632
- expect(yum_package.updated_by_last_action?).to be true
633
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
650
+ yum_package "chef_rpm" do
651
+ options "--nogpgcheck --enablerepo=chef-yum-localtesting"
652
+ end.should_be_updated
653
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
634
654
  end
635
655
 
636
656
  it "when an idempotent install action is run, does not leave repos disabled" do
@@ -640,17 +660,17 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
640
660
  # accomplishes both those goals (it would be easier if we had other rpms in this repo, but with
641
661
  # one rpm we need to do this).
642
662
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
643
- yum_package.options("--disablerepo=chef-yum-localtesting")
644
- yum_package.run_action(:upgrade)
645
- expect(yum_package.updated_by_last_action?).to be false
646
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
663
+ yum_package "chef_rpm" do
664
+ options "--nogpgcheck --disablerepo=chef-yum-localtesting"
665
+ action :upgrade
666
+ end.should_not_be_updated
667
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
647
668
  # now we're still using the same cache in the yum_helper.py cache and we test to see if the
648
669
  # repo that we temporarily disabled is enabled on this pass.
649
- yum_package.package_name("chef_rpm-1.10-1.#{pkg_arch}")
650
- yum_package.options(nil)
651
- yum_package.run_action(:install)
652
- expect(yum_package.updated_by_last_action?).to be true
653
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
670
+ yum_package("chef_rpm-1.10-1.#{pkg_arch}") do
671
+ options "--nogpgcheck"
672
+ end.should_be_updated
673
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
654
674
  end
655
675
  end
656
676
  end
@@ -660,45 +680,49 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
660
680
  context "with source arguments" do
661
681
  it "installs the package when using the source argument" do
662
682
  flush_cache
663
- yum_package.name "something"
664
- yum_package.package_name "somethingelse"
665
- yum_package.source("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
666
- yum_package.run_action(:upgrade)
667
- expect(yum_package.updated_by_last_action?).to be true
668
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
683
+ yum_package "something" do
684
+ package_name "somethingelse"
685
+ source("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
686
+ action :upgrade
687
+ end.should_be_updated
688
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
669
689
  end
670
690
 
671
691
  it "installs the package when the name is a path to a file" do
672
692
  flush_cache
673
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
674
- yum_package.run_action(:upgrade)
675
- expect(yum_package.updated_by_last_action?).to be true
676
- 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
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
694
+ options default_options
695
+ action :upgrade
696
+ end.should_be_updated
697
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
677
698
  end
678
699
 
679
700
  it "downgrades the package when allow_downgrade is true" do
680
701
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
681
- yum_package.allow_downgrade true
682
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
683
- yum_package.run_action(:upgrade)
684
- expect(yum_package.updated_by_last_action?).to be true
685
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
702
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
703
+ allow_downgrade true
704
+ options default_options
705
+ action :upgrade
706
+ end.should_be_updated
707
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
686
708
  end
687
709
 
688
710
  it "upgrades the package" do
689
711
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
690
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.10-1.#{pkg_arch}.rpm")
691
- yum_package.run_action(:upgrade)
692
- expect(yum_package.updated_by_last_action?).to be true
693
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
712
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.10-1.#{pkg_arch}.rpm") do
713
+ options default_options
714
+ action :upgrade
715
+ end.should_be_updated
716
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
694
717
  end
695
718
 
696
719
  it "is idempotent when the package is already installed" do
697
720
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
698
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
699
- yum_package.run_action(:upgrade)
700
- expect(yum_package.updated_by_last_action?).to be false
701
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
721
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
722
+ options default_options
723
+ action :upgrade
724
+ end.should_not_be_updated
725
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
702
726
  end
703
727
  end
704
728
 
@@ -706,204 +730,239 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
706
730
  it "works when a package is installed" do
707
731
  FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
708
732
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
709
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
710
- yum_package.run_action(:upgrade)
711
- expect(yum_package.updated_by_last_action?).to be false
712
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
733
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
734
+ options "--nogpgcheck"
735
+ action :upgrade
736
+ end.should_not_be_updated
737
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
713
738
  end
714
739
 
715
740
  it "works with a local source" do
716
741
  FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
717
742
  flush_cache
718
- yum_package.package_name("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm")
719
- yum_package.run_action(:upgrade)
720
- expect(yum_package.updated_by_last_action?).to be true
721
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
743
+ yum_package("#{CHEF_SPEC_ASSETS}/yumrepo/chef_rpm-1.2-1.#{pkg_arch}.rpm") do
744
+ options "--nogpgcheck"
745
+ action :upgrade
746
+ end.should_be_updated
747
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
722
748
  end
723
749
  end
724
750
 
725
751
  context "version pinning" do
726
752
  it "with an equality pin in the name it upgrades a prior package" do
727
753
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
728
- yum_package.package_name("chef_rpm-1.10")
729
- yum_package.run_action(:upgrade)
730
- expect(yum_package.updated_by_last_action?).to be true
731
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
754
+ yum_package("chef_rpm-1.10") do
755
+ options default_options
756
+ action :upgrade
757
+ end.should_be_updated
758
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
732
759
  end
733
760
 
734
761
  it "with a prco equality pin in the name it upgrades a prior package" do
735
762
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
736
- yum_package.package_name("chef_rpm == 1.10")
737
- yum_package.run_action(:upgrade)
738
- expect(yum_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}$")
763
+ yum_package("chef_rpm == 1.10") do
764
+ options default_options
765
+ action :upgrade
766
+ end.should_be_updated
767
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
740
768
  end
741
769
 
742
770
  it "with an equality pin in the name it downgrades a later package" do
743
771
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
744
- yum_package.allow_downgrade true
745
- yum_package.package_name("chef_rpm-1.2")
746
- yum_package.run_action(:upgrade)
747
- expect(yum_package.updated_by_last_action?).to be true
748
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
772
+ yum_package("chef_rpm-1.2") do
773
+ allow_downgrade true
774
+ options default_options
775
+ action :upgrade
776
+ end.should_be_updated
777
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
749
778
  end
750
779
 
751
780
  it "with a prco equality pin in the name it downgrades a later package" do
752
781
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
753
- yum_package.allow_downgrade true
754
- yum_package.package_name("chef_rpm == 1.2")
755
- yum_package.run_action(:upgrade)
756
- expect(yum_package.updated_by_last_action?).to be true
757
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
782
+ yum_package("chef_rpm == 1.2") do
783
+ allow_downgrade true
784
+ options default_options
785
+ action :upgrade
786
+ end.should_be_updated
787
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
758
788
  end
759
789
 
760
790
  it "with a > pin in the name and no rpm installed it installs" do
761
791
  flush_cache
762
- yum_package.package_name("chef_rpm > 1.2")
763
- yum_package.run_action(:upgrade)
764
- expect(yum_package.updated_by_last_action?).to be true
765
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
792
+ yum_package("chef_rpm > 1.2") do
793
+ options default_options
794
+ action :upgrade
795
+ end.should_be_updated
796
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
766
797
  end
767
798
 
768
799
  it "with a < pin in the name and no rpm installed it installs" do
769
800
  flush_cache
770
- yum_package.package_name("chef_rpm < 1.10")
771
- yum_package.run_action(:upgrade)
772
- expect(yum_package.updated_by_last_action?).to be true
773
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
801
+ yum_package("chef_rpm < 1.10") do
802
+ options default_options
803
+ action :upgrade
804
+ end.should_be_updated
805
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
774
806
  end
775
807
 
776
808
  it "with a > pin in the name and matching rpm installed it does nothing" do
777
809
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
778
- yum_package.package_name("chef_rpm > 1.2")
779
- yum_package.run_action(:upgrade)
780
- expect(yum_package.updated_by_last_action?).to be false
781
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
810
+ yum_package("chef_rpm > 1.2") do
811
+ options default_options
812
+ action :upgrade
813
+ end.should_not_be_updated
814
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
782
815
  end
783
816
 
784
817
  it "with a < pin in the name and no rpm installed it installs" do
785
818
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
786
- yum_package.package_name("chef_rpm < 1.10")
787
- yum_package.run_action(:upgrade)
788
- expect(yum_package.updated_by_last_action?).to be false
789
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
819
+ yum_package("chef_rpm < 1.10") do
820
+ options default_options
821
+ action :upgrade
822
+ end.should_not_be_updated
823
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
790
824
  end
791
825
 
792
826
  it "with a > pin in the name and non-matching rpm installed it upgrades" do
793
827
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
794
- yum_package.package_name("chef_rpm > 1.2")
795
- yum_package.run_action(:upgrade)
796
- expect(yum_package.updated_by_last_action?).to be true
797
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
828
+ yum_package("chef_rpm > 1.2") do
829
+ options default_options
830
+ action :upgrade
831
+ end.should_be_updated
832
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
798
833
  end
799
834
 
800
835
  it "with a < pin in the name and non-matching rpm installed it downgrades" do
801
836
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
802
- yum_package.allow_downgrade true
803
- yum_package.package_name("chef_rpm < 1.10")
804
- yum_package.run_action(:upgrade)
805
- expect(yum_package.updated_by_last_action?).to be true
806
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
837
+ yum_package("chef_rpm < 1.10") do
838
+ allow_downgrade true
839
+ options default_options
840
+ action :upgrade
841
+ end.should_be_updated
842
+ expect_matching_installed_version("^chef_rpm-1.2-1.#{pkg_arch}$")
807
843
  end
808
844
  end
809
845
  end
810
846
 
811
847
  describe ":remove" do
812
848
  context "vanilla use case" do
813
- let(:package_name) { "chef_rpm" }
814
849
  it "does nothing if the package is not installed" do
815
850
  flush_cache
816
- yum_package.run_action(:remove)
817
- expect(yum_package.updated_by_last_action?).to be false
818
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
851
+ yum_package "chef_rpm" do
852
+ options default_options
853
+ action :remove
854
+ end.should_not_be_updated
855
+ expect_matching_installed_version("^package chef_rpm is not installed$")
819
856
  end
820
857
 
821
858
  it "removes the package if the package is installed" do
822
859
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
823
- yum_package.run_action(:remove)
824
- expect(yum_package.updated_by_last_action?).to be true
825
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
860
+ yum_package "chef_rpm" do
861
+ options default_options
862
+ action :remove
863
+ end.should_be_updated
864
+ expect_matching_installed_version("^package chef_rpm is not installed$")
826
865
  end
827
866
 
828
867
  it "does not remove the package twice" do
829
868
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
830
- yum_package.run_action(:remove)
831
- expect(yum_package.updated_by_last_action?).to be true
832
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
833
- yum_package.run_action(:remove)
834
- expect(yum_package.updated_by_last_action?).to be false
835
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
869
+ yum_package "chef_rpm" do
870
+ options default_options
871
+ action :remove
872
+ end.should_be_updated
873
+ expect_matching_installed_version("^package chef_rpm is not installed$")
874
+ yum_package "chef_rpm" do
875
+ options default_options
876
+ action :remove
877
+ end.should_not_be_updated
878
+ expect_matching_installed_version("^package chef_rpm is not installed$")
836
879
  end
837
880
 
838
881
  it "removes the package if the prior version package is installed" do
839
882
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
840
- yum_package.run_action(:remove)
841
- expect(yum_package.updated_by_last_action?).to be true
842
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
883
+ yum_package "chef_rpm" do
884
+ options default_options
885
+ action :remove
886
+ end.should_be_updated
887
+ expect_matching_installed_version("^package chef_rpm is not installed$")
843
888
  end
844
889
 
845
890
  it "removes the package if the i686 package is installed", :intel_64bit do
846
891
  skip "FIXME: should this be fixed or is the current behavior correct?"
847
892
  preinstall("chef_rpm-1.10-1.i686.rpm")
848
- yum_package.run_action(:remove)
849
- expect(yum_package.updated_by_last_action?).to be true
850
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
893
+ yum_package "chef_rpm" do
894
+ options default_options
895
+ action :remove
896
+ end.should_be_updated
897
+ expect_matching_installed_version("^package chef_rpm is not installed$")
851
898
  end
852
899
 
853
900
  it "removes the package if the prior version i686 package is installed", :intel_64bit do
854
901
  skip "FIXME: should this be fixed or is the current behavior correct?"
855
902
  preinstall("chef_rpm-1.2-1.i686.rpm")
856
- yum_package.run_action(:remove)
857
- expect(yum_package.updated_by_last_action?).to be true
858
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
903
+ yum_package "chef_rpm" do
904
+ options default_options
905
+ action :remove
906
+ end.should_be_updated
907
+ expect_matching_installed_version("^package chef_rpm is not installed$")
859
908
  end
860
909
  end
861
910
 
862
911
  context "with 64-bit arch", :intel_64bit do
863
- let(:package_name) { "chef_rpm.#{pkg_arch}" }
864
912
  it "does nothing if the package is not installed" do
865
913
  flush_cache
866
- yum_package.run_action(:remove)
867
- expect(yum_package.updated_by_last_action?).to be false
868
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
914
+ yum_package "chef_rpm.#{pkg_arch}" do
915
+ options default_options
916
+ action :remove
917
+ end.should_not_be_updated
918
+ expect_matching_installed_version("^package chef_rpm is not installed$")
869
919
  end
870
920
 
871
921
  it "removes the package if the package is installed" do
872
922
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
873
- yum_package.run_action(:remove)
874
- expect(yum_package.updated_by_last_action?).to be true
875
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
923
+ yum_package "chef_rpm.#{pkg_arch}" do
924
+ options default_options
925
+ action :remove
926
+ end.should_be_updated
927
+ expect_matching_installed_version("^package chef_rpm is not installed$")
876
928
  end
877
929
 
878
930
  it "removes the package if the prior version package is installed" do
879
931
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
880
- yum_package.run_action(:remove)
881
- expect(yum_package.updated_by_last_action?).to be true
882
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
932
+ yum_package "chef_rpm.#{pkg_arch}" do
933
+ options default_options
934
+ action :remove
935
+ end.should_be_updated
936
+ expect_matching_installed_version("^package chef_rpm is not installed$")
883
937
  end
884
938
 
885
939
  it "does nothing if the i686 package is installed" do
886
940
  preinstall("chef_rpm-1.10-1.i686.rpm")
887
- yum_package.run_action(:remove)
888
- expect(yum_package.updated_by_last_action?).to be false
889
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.i686$")
941
+ yum_package "chef_rpm.#{pkg_arch}" do
942
+ options default_options
943
+ action :remove
944
+ end.should_not_be_updated
945
+ expect_matching_installed_version("^chef_rpm-1.10-1.i686$")
890
946
  end
891
947
 
892
948
  it "does nothing if the prior version i686 package is installed" do
893
949
  preinstall("chef_rpm-1.2-1.i686.rpm")
894
- yum_package.run_action(:remove)
895
- expect(yum_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.i686$")
950
+ yum_package "chef_rpm.#{pkg_arch}" do
951
+ options default_options
952
+ action :remove
953
+ end.should_not_be_updated
954
+ expect_matching_installed_version("^chef_rpm-1.2-1.i686$")
897
955
  end
898
956
  end
899
957
 
900
958
  context "with 32-bit arch", :intel_64bit do
901
- let(:package_name) { "chef_rpm.i686" }
902
959
  it "removes only the 32-bit arch if both are installed" do
903
960
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm", "chef_rpm-1.10-1.i686.rpm")
904
- yum_package.run_action(:remove)
905
- expect(yum_package.updated_by_last_action?).to be true
906
- expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
961
+ yum_package "chef_rpm.i686" do
962
+ options default_options
963
+ action :remove
964
+ end.should_be_updated
965
+ expect_matching_installed_version("^chef_rpm-1.10-1.#{pkg_arch}$")
907
966
  end
908
967
  end
909
968
 
@@ -911,9 +970,11 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
911
970
  it "works when a package is installed" do
912
971
  FileUtils.rm_f "/etc/yum.repos.d/chef-yum-localtesting.repo"
913
972
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
914
- yum_package.run_action(:remove)
915
- expect(yum_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("^package chef_rpm is not installed$")
973
+ yum_package "chef_rpm" do
974
+ options "--nogpgcheck"
975
+ action :remove
976
+ end.should_be_updated
977
+ expect_matching_installed_version("^package chef_rpm is not installed$")
917
978
  end
918
979
  end
919
980
  end
@@ -929,52 +990,58 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
929
990
 
930
991
  it "locks an rpm" do
931
992
  flush_cache
932
- yum_package.package_name("chef_rpm")
933
- yum_package.run_action(:lock)
934
- expect(yum_package.updated_by_last_action?).to be true
993
+ yum_package("chef_rpm") do
994
+ options default_options
995
+ action :lock
996
+ end.should_be_updated
935
997
  expect(shell_out("yum versionlock list").stdout.chomp).to match("^0:chef_rpm-")
936
998
  end
937
999
 
938
1000
  it "does not lock if its already locked" do
939
1001
  flush_cache
940
1002
  shell_out!("yum versionlock add chef_rpm")
941
- yum_package.package_name("chef_rpm")
942
- yum_package.run_action(:lock)
943
- expect(yum_package.updated_by_last_action?).to be false
1003
+ yum_package("chef_rpm") do
1004
+ options default_options
1005
+ action :lock
1006
+ end.should_not_be_updated
944
1007
  expect(shell_out("yum versionlock list").stdout.chomp).to match("^0:chef_rpm-")
945
1008
  end
946
1009
 
947
1010
  it "unlocks an rpm" do
948
1011
  flush_cache
949
1012
  shell_out!("yum versionlock add chef_rpm")
950
- yum_package.package_name("chef_rpm")
951
- yum_package.run_action(:unlock)
952
- expect(yum_package.updated_by_last_action?).to be true
1013
+ yum_package("chef_rpm") do
1014
+ options default_options
1015
+ action :unlock
1016
+ end.should_be_updated
953
1017
  expect(shell_out("yum versionlock list").stdout.chomp).not_to match("^0:chef_rpm-")
954
1018
  end
955
1019
 
956
1020
  it "does not unlock an already locked rpm" do
957
1021
  flush_cache
958
- yum_package.package_name("chef_rpm")
959
- yum_package.run_action(:unlock)
960
- expect(yum_package.updated_by_last_action?).to be false
1022
+ yum_package("chef_rpm") do
1023
+ options default_options
1024
+ action :unlock
1025
+ end.should_not_be_updated
961
1026
  expect(shell_out("yum versionlock list").stdout.chomp).not_to match("^0:chef_rpm-")
962
1027
  end
963
1028
 
964
1029
  it "check that we can lock based on provides" do
965
1030
  flush_cache
966
- yum_package.package_name("chef_rpm_provides")
967
- yum_package.run_action(:lock)
968
- expect(yum_package.updated_by_last_action?).to be true
1031
+ yum_package("chef_rpm_provides") do
1032
+ options default_options
1033
+ action :lock
1034
+ end.should_be_updated
969
1035
  expect(shell_out("yum versionlock list").stdout.chomp).to match("^0:chef_rpm-")
970
1036
  end
971
1037
 
972
1038
  it "check that we can unlock based on provides" do
973
1039
  flush_cache
974
1040
  shell_out!("yum versionlock add chef_rpm")
975
- yum_package.package_name("chef_rpm_provides")
976
- yum_package.run_action(:unlock)
977
- expect(yum_package.updated_by_last_action?).to be true
1041
+ yum_package("chef_rpm_provides") do
1042
+ options default_options
1043
+ action :unlock
1044
+ end.should_be_updated
978
1045
  expect(shell_out("yum versionlock list").stdout.chomp).not_to match("^0:chef_rpm-")
979
1046
  end
980
1047
  end