chef 12.18.31 → 13.0.118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (611) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -11
  3. data/README.md +13 -13
  4. data/Rakefile +1 -19
  5. data/VERSION +1 -1
  6. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
  7. data/acceptance/Gemfile +8 -5
  8. data/acceptance/Gemfile.lock +90 -81
  9. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
  10. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
  11. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
  12. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
  13. data/chef-universal-mingw32.gemspec +2 -3
  14. data/chef.gemspec +8 -7
  15. data/lib/chef/api_client.rb +8 -15
  16. data/lib/chef/api_client_v1.rb +9 -11
  17. data/lib/chef/application/apply.rb +8 -10
  18. data/lib/chef/application/client.rb +1 -1
  19. data/lib/chef/application/exit_code.rb +11 -82
  20. data/lib/chef/application/knife.rb +2 -2
  21. data/lib/chef/application/solo.rb +0 -1
  22. data/lib/chef/application/windows_service.rb +36 -37
  23. data/lib/chef/application/windows_service_manager.rb +1 -1
  24. data/lib/chef/application.rb +15 -25
  25. data/lib/chef/audit/audit_event_proxy.rb +2 -2
  26. data/lib/chef/audit/control_group_data.rb +1 -1
  27. data/lib/chef/blacklist.rb +81 -0
  28. data/lib/chef/chef_class.rb +1 -0
  29. data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
  30. data/lib/chef/chef_fs/command_line.rb +15 -16
  31. data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
  32. data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
  33. data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
  34. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  35. data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
  36. data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
  37. data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
  38. data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
  39. data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
  40. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
  41. data/lib/chef/chef_fs/file_pattern.rb +2 -2
  42. data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
  43. data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
  44. data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +18 -32
  45. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
  46. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
  47. data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
  48. data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
  49. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
  50. data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
  51. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
  52. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
  53. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
  54. data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
  55. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
  56. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
  57. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
  58. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
  59. data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
  60. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
  61. data/lib/chef/chef_fs/file_system.rb +1 -1
  62. data/lib/chef/chef_fs/parallelizer.rb +9 -11
  63. data/lib/chef/client.rb +47 -11
  64. data/lib/chef/config_fetcher.rb +4 -4
  65. data/lib/chef/constants.rb +1 -1
  66. data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
  67. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  68. data/lib/chef/cookbook/gem_installer.rb +10 -6
  69. data/lib/chef/cookbook/manifest_v0.rb +68 -0
  70. data/lib/chef/cookbook/manifest_v2.rb +41 -0
  71. data/lib/chef/cookbook/metadata.rb +25 -134
  72. data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
  73. data/lib/chef/cookbook/synchronizer.rb +24 -21
  74. data/lib/chef/cookbook/syntax_check.rb +1 -1
  75. data/lib/chef/cookbook_manifest.rb +91 -65
  76. data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
  77. data/lib/chef/cookbook_uploader.rb +1 -1
  78. data/lib/chef/cookbook_version.rb +69 -157
  79. data/lib/chef/data_bag.rb +1 -7
  80. data/lib/chef/data_bag_item.rb +5 -10
  81. data/lib/chef/data_collector/messages.rb +2 -0
  82. data/lib/chef/data_collector/resource_report.rb +32 -4
  83. data/lib/chef/data_collector.rb +3 -4
  84. data/lib/chef/decorator/unchain.rb +0 -16
  85. data/lib/chef/decorator.rb +1 -1
  86. data/lib/chef/deprecated.rb +53 -19
  87. data/lib/chef/dsl/audit.rb +2 -2
  88. data/lib/chef/dsl/declare_resource.rb +11 -17
  89. data/lib/chef/dsl/platform_introspection.rb +29 -31
  90. data/lib/chef/dsl/reboot_pending.rb +1 -1
  91. data/lib/chef/dsl/recipe.rb +1 -4
  92. data/lib/chef/dsl/resources.rb +4 -13
  93. data/lib/chef/encrypted_data_bag_item.rb +2 -2
  94. data/lib/chef/environment.rb +9 -16
  95. data/lib/chef/event_dispatch/base.rb +16 -0
  96. data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
  97. data/lib/chef/exceptions.rb +6 -10
  98. data/lib/chef/file_access_control/unix.rb +14 -14
  99. data/lib/chef/file_access_control/windows.rb +1 -1
  100. data/lib/chef/formatters/error_description.rb +18 -1
  101. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
  102. data/lib/chef/formatters/error_mapper.rb +6 -6
  103. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
  104. data/lib/chef/http/api_versions.rb +54 -0
  105. data/lib/chef/http/authenticator.rb +15 -6
  106. data/lib/chef/http/json_output.rb +4 -1
  107. data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
  108. data/lib/chef/http/validate_content_length.rb +2 -2
  109. data/lib/chef/http.rb +39 -0
  110. data/lib/chef/json_compat.rb +7 -103
  111. data/lib/chef/key.rb +5 -10
  112. data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
  113. data/lib/chef/knife/bootstrap.rb +6 -0
  114. data/lib/chef/knife/configure.rb +1 -3
  115. data/lib/chef/knife/configure_client.rb +1 -3
  116. data/lib/chef/knife/cookbook_create.rb +1 -434
  117. data/lib/chef/knife/cookbook_download.rb +3 -4
  118. data/lib/chef/knife/cookbook_show.rb +7 -3
  119. data/lib/chef/knife/cookbook_site_install.rb +2 -2
  120. data/lib/chef/knife/core/bootstrap_context.rb +8 -7
  121. data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
  122. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  123. data/lib/chef/knife/core/status_presenter.rb +1 -1
  124. data/lib/chef/knife/core/subcommand_loader.rb +2 -32
  125. data/lib/chef/knife/core/ui.rb +20 -27
  126. data/lib/chef/knife/data_bag_create.rb +6 -4
  127. data/lib/chef/knife/data_bag_secret_options.rb +1 -1
  128. data/lib/chef/knife/deps.rb +32 -34
  129. data/lib/chef/knife/edit.rb +1 -1
  130. data/lib/chef/knife/help.rb +1 -1
  131. data/lib/chef/knife/list.rb +1 -1
  132. data/lib/chef/knife/search.rb +9 -20
  133. data/lib/chef/knife/ssh.rb +62 -36
  134. data/lib/chef/knife/ssl_check.rb +1 -1
  135. data/lib/chef/knife/user_delete.rb +1 -1
  136. data/lib/chef/knife/xargs.rb +1 -1
  137. data/lib/chef/knife.rb +6 -7
  138. data/lib/chef/mash.rb +1 -1
  139. data/lib/chef/mixin/create_path.rb +3 -5
  140. data/lib/chef/mixin/from_file.rb +2 -2
  141. data/lib/chef/mixin/get_source_from_package.rb +2 -2
  142. data/lib/chef/mixin/notifying_block.rb +7 -9
  143. data/lib/chef/mixin/params_validate.rb +9 -8
  144. data/lib/chef/mixin/path_sanity.rb +17 -19
  145. data/lib/chef/mixin/securable.rb +1 -1
  146. data/lib/chef/mixin/shell_out.rb +33 -29
  147. data/lib/chef/mixin/unformatter.rb +2 -2
  148. data/lib/chef/mixin/uris.rb +4 -6
  149. data/lib/chef/mixin/versioned_api.rb +84 -0
  150. data/lib/chef/mixin/which.rb +25 -8
  151. data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
  152. data/lib/chef/mixin/xml_escape.rb +3 -5
  153. data/lib/chef/mixins.rb +0 -1
  154. data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
  155. data/lib/chef/node/attribute.rb +9 -32
  156. data/lib/chef/node/attribute_collections.rb +1 -19
  157. data/lib/chef/node/common_api.rb +5 -7
  158. data/lib/chef/node/immutable_collections.rb +42 -38
  159. data/lib/chef/node/mixin/immutablize_array.rb +1 -1
  160. data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
  161. data/lib/chef/node.rb +21 -20
  162. data/lib/chef/node_map.rb +2 -5
  163. data/lib/chef/org.rb +10 -17
  164. data/lib/chef/platform/provider_mapping.rb +2 -169
  165. data/lib/chef/platform/query_helpers.rb +1 -1
  166. data/lib/chef/platform/rebooter.rb +1 -2
  167. data/lib/chef/policy_builder/expand_node_object.rb +3 -29
  168. data/lib/chef/policy_builder/policyfile.rb +8 -6
  169. data/lib/chef/property.rb +66 -80
  170. data/lib/chef/provider/apt_repository.rb +6 -10
  171. data/lib/chef/provider/apt_update.rb +1 -7
  172. data/lib/chef/provider/batch.rb +1 -1
  173. data/lib/chef/provider/breakpoint.rb +2 -2
  174. data/lib/chef/provider/cookbook_file.rb +3 -9
  175. data/lib/chef/provider/cron.rb +42 -60
  176. data/lib/chef/provider/deploy/revision.rb +3 -5
  177. data/lib/chef/provider/deploy.rb +82 -88
  178. data/lib/chef/provider/directory.rb +33 -37
  179. data/lib/chef/provider/dsc_resource.rb +23 -11
  180. data/lib/chef/provider/dsc_script.rb +1 -5
  181. data/lib/chef/provider/env/windows.rb +5 -1
  182. data/lib/chef/provider/env.rb +32 -30
  183. data/lib/chef/provider/erl_call.rb +15 -47
  184. data/lib/chef/provider/execute.rb +7 -8
  185. data/lib/chef/provider/file.rb +49 -61
  186. data/lib/chef/provider/git.rb +56 -60
  187. data/lib/chef/provider/group.rb +1 -7
  188. data/lib/chef/provider/http_request.rb +37 -41
  189. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  190. data/lib/chef/provider/ifconfig.rb +0 -6
  191. data/lib/chef/provider/launchd.rb +6 -2
  192. data/lib/chef/provider/link.rb +51 -55
  193. data/lib/chef/provider/log.rb +3 -7
  194. data/lib/chef/provider/lwrp_base.rb +0 -9
  195. data/lib/chef/provider/mdadm.rb +25 -33
  196. data/lib/chef/provider/mount/aix.rb +2 -2
  197. data/lib/chef/provider/mount/mount.rb +2 -2
  198. data/lib/chef/provider/mount.rb +1 -5
  199. data/lib/chef/provider/noop.rb +1 -1
  200. data/lib/chef/provider/ohai.rb +1 -7
  201. data/lib/chef/provider/osx_profile.rb +24 -29
  202. data/lib/chef/provider/package/aix.rb +55 -53
  203. data/lib/chef/provider/package/apt.rb +15 -13
  204. data/lib/chef/provider/package/cab.rb +48 -20
  205. data/lib/chef/provider/package/chocolatey.rb +9 -10
  206. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  207. data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
  208. data/lib/chef/provider/package/dnf/version.rb +1 -1
  209. data/lib/chef/provider/package/dnf.rb +21 -19
  210. data/lib/chef/provider/package/dpkg.rb +8 -9
  211. data/lib/chef/provider/package/freebsd/base.rb +10 -10
  212. data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
  213. data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
  214. data/lib/chef/provider/package/freebsd/port.rb +7 -7
  215. data/lib/chef/provider/package/homebrew.rb +11 -10
  216. data/lib/chef/provider/package/ips.rb +18 -24
  217. data/lib/chef/provider/package/macports.rb +23 -23
  218. data/lib/chef/provider/package/msu.rb +11 -12
  219. data/lib/chef/provider/package/openbsd.rb +25 -22
  220. data/lib/chef/provider/package/pacman.rb +16 -17
  221. data/lib/chef/provider/package/paludis.rb +26 -27
  222. data/lib/chef/provider/package/portage.rb +22 -23
  223. data/lib/chef/provider/package/powershell.rb +17 -17
  224. data/lib/chef/provider/package/rpm.rb +25 -26
  225. data/lib/chef/provider/package/rubygems.rb +64 -62
  226. data/lib/chef/provider/package/smartos.rb +16 -16
  227. data/lib/chef/provider/package/solaris.rb +44 -45
  228. data/lib/chef/provider/package/windows/exe.rb +6 -6
  229. data/lib/chef/provider/package/windows/msi.rb +7 -7
  230. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
  231. data/lib/chef/provider/package/windows.rb +3 -3
  232. data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
  233. data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
  234. data/lib/chef/provider/package/yum.rb +319 -269
  235. data/lib/chef/provider/package/zypper.rb +10 -20
  236. data/lib/chef/provider/package.rb +71 -63
  237. data/lib/chef/provider/powershell_script.rb +15 -7
  238. data/lib/chef/provider/reboot.rb +10 -14
  239. data/lib/chef/provider/registry_key.rb +39 -43
  240. data/lib/chef/provider/remote_directory.rb +3 -15
  241. data/lib/chef/provider/remote_file.rb +3 -9
  242. data/lib/chef/provider/route.rb +1 -7
  243. data/lib/chef/provider/ruby_block.rb +4 -8
  244. data/lib/chef/provider/script.rb +42 -6
  245. data/lib/chef/provider/service/aix.rb +1 -5
  246. data/lib/chef/provider/service/debian.rb +15 -21
  247. data/lib/chef/provider/service/freebsd.rb +0 -1
  248. data/lib/chef/provider/service/gentoo.rb +0 -1
  249. data/lib/chef/provider/service/init.rb +0 -1
  250. data/lib/chef/provider/service/insserv.rb +2 -2
  251. data/lib/chef/provider/service/openbsd.rb +0 -1
  252. data/lib/chef/provider/service/redhat.rb +2 -2
  253. data/lib/chef/provider/service/simple.rb +0 -5
  254. data/lib/chef/provider/service/solaris.rb +5 -4
  255. data/lib/chef/provider/service/systemd.rb +1 -1
  256. data/lib/chef/provider/service/upstart.rb +10 -12
  257. data/lib/chef/provider/service/windows.rb +1 -5
  258. data/lib/chef/provider/service.rb +51 -58
  259. data/lib/chef/provider/subversion.rb +40 -46
  260. data/lib/chef/provider/systemd_unit.rb +2 -0
  261. data/lib/chef/provider/template/content.rb +24 -1
  262. data/lib/chef/provider/template.rb +3 -9
  263. data/lib/chef/provider/user/dscl.rb +3 -3
  264. data/lib/chef/provider/user/linux.rb +6 -5
  265. data/lib/chef/provider/user/pw.rb +4 -10
  266. data/lib/chef/provider/user/solaris.rb +2 -2
  267. data/lib/chef/provider/user/useradd.rb +5 -5
  268. data/lib/chef/provider/user.rb +43 -59
  269. data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
  270. data/lib/chef/provider/windows_task.rb +418 -0
  271. data/lib/chef/provider/yum_repository.rb +3 -6
  272. data/lib/chef/provider.rb +63 -115
  273. data/lib/chef/provider_resolver.rb +8 -34
  274. data/lib/chef/providers.rb +1 -1
  275. data/lib/chef/recipe.rb +9 -1
  276. data/lib/chef/resource/action_class.rb +13 -17
  277. data/lib/chef/resource/apt_repository.rb +0 -1
  278. data/lib/chef/resource/apt_update.rb +3 -1
  279. data/lib/chef/resource/chef_gem.rb +4 -11
  280. data/lib/chef/resource/chocolatey_package.rb +4 -1
  281. data/lib/chef/resource/dnf_package.rb +6 -3
  282. data/lib/chef/resource/dsc_resource.rb +9 -1
  283. data/lib/chef/resource/execute.rb +66 -19
  284. data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
  285. data/lib/chef/resource/file/verification.rb +2 -7
  286. data/lib/chef/resource/freebsd_package.rb +1 -1
  287. data/lib/chef/resource/gem_package.rb +16 -2
  288. data/lib/chef/resource/launchd.rb +3 -3
  289. data/lib/chef/resource/lwrp_base.rb +0 -2
  290. data/lib/chef/resource/mount.rb +5 -12
  291. data/lib/chef/resource/package.rb +2 -2
  292. data/lib/chef/resource/powershell_script.rb +1 -1
  293. data/lib/chef/resource/registry_key.rb +1 -1
  294. data/lib/chef/resource/script.rb +8 -34
  295. data/lib/chef/resource/service.rb +15 -13
  296. data/lib/chef/resource/systemd_unit.rb +5 -0
  297. data/lib/chef/resource/user/aix_user.rb +1 -1
  298. data/lib/chef/resource/user/dscl_user.rb +1 -1
  299. data/lib/chef/resource/user/linux_user.rb +1 -10
  300. data/lib/chef/resource/user/pw_user.rb +1 -1
  301. data/lib/chef/resource/user/solaris_user.rb +1 -1
  302. data/lib/chef/resource/user/windows_user.rb +1 -1
  303. data/lib/chef/resource/user.rb +1 -19
  304. data/lib/chef/resource/windows_package.rb +4 -1
  305. data/lib/chef/resource/windows_task.rb +237 -0
  306. data/lib/chef/resource/yum_package.rb +13 -4
  307. data/lib/chef/resource/yum_repository.rb +0 -1
  308. data/lib/chef/resource/zypper_package.rb +2 -0
  309. data/lib/chef/resource.rb +90 -202
  310. data/lib/chef/resource_builder.rb +1 -65
  311. data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
  312. data/lib/chef/resource_collection/resource_list.rb +6 -0
  313. data/lib/chef/resource_collection/resource_set.rb +44 -17
  314. data/lib/chef/resource_collection.rb +10 -0
  315. data/lib/chef/resource_reporter.rb +1 -1
  316. data/lib/chef/resource_resolver.rb +1 -25
  317. data/lib/chef/resources.rb +1 -1
  318. data/lib/chef/role.rb +0 -6
  319. data/lib/chef/run_context/cookbook_compiler.rb +49 -5
  320. data/lib/chef/run_context.rb +4 -25
  321. data/lib/chef/run_list/run_list_item.rb +1 -1
  322. data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
  323. data/lib/chef/search/query.rb +26 -31
  324. data/lib/chef/server_api.rb +2 -0
  325. data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
  326. data/lib/chef/shell/ext.rb +3 -3
  327. data/lib/chef/shell/shell_session.rb +14 -4
  328. data/lib/chef/shell.rb +32 -7
  329. data/lib/chef/user.rb +9 -16
  330. data/lib/chef/user_v1.rb +9 -16
  331. data/lib/chef/util/diff.rb +1 -1
  332. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  333. data/lib/chef/util/selinux.rb +1 -1
  334. data/lib/chef/util/windows/net_group.rb +18 -30
  335. data/lib/chef/util/windows/net_use.rb +7 -11
  336. data/lib/chef/util/windows/net_user.rb +12 -18
  337. data/lib/chef/util/windows/volume.rb +9 -15
  338. data/lib/chef/version.rb +1 -1
  339. data/lib/chef/version_class.rb +1 -1
  340. data/lib/chef/win32/api/file.rb +25 -31
  341. data/lib/chef/win32/api/installer.rb +2 -2
  342. data/lib/chef/win32/api.rb +4 -6
  343. data/lib/chef/win32/file.rb +4 -6
  344. data/lib/chef/win32/registry.rb +9 -9
  345. data/lib/chef/win32/security/acl.rb +2 -2
  346. data/lib/chef/win32/security/sid.rb +5 -0
  347. data/lib/chef/win32/security.rb +2 -2
  348. data/lib/chef/win32/unicode.rb +2 -2
  349. data/lib/chef/win32/version.rb +1 -1
  350. data/lib/chef.rb +1 -2
  351. data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
  352. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  353. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  354. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  355. data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
  356. data/spec/data/lwrp/resources/buck_passer.rb +5 -0
  357. data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
  358. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
  359. data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
  360. data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
  361. data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
  362. data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
  363. data/spec/data/prefer_metadata_json/metadata.json +51 -0
  364. data/spec/data/prefer_metadata_json/metadata.rb +6 -0
  365. data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
  366. data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
  367. data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
  368. data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
  369. data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
  370. data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
  371. data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
  372. data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
  373. data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
  374. data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
  375. data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
  376. data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
  377. data/spec/data/shef-config.rb +11 -10
  378. data/spec/functional/knife/ssh_spec.rb +34 -6
  379. data/spec/functional/rebooter_spec.rb +1 -0
  380. data/spec/functional/resource/bash_spec.rb +11 -45
  381. data/spec/functional/resource/batch_spec.rb +5 -1
  382. data/spec/functional/resource/cron_spec.rb +2 -2
  383. data/spec/functional/resource/dsc_script_spec.rb +2 -4
  384. data/spec/functional/resource/execute_spec.rb +17 -0
  385. data/spec/functional/resource/link_spec.rb +3 -3
  386. data/spec/functional/resource/template_spec.rb +33 -0
  387. data/spec/functional/resource/user/dscl_spec.rb +2 -4
  388. data/spec/functional/root_alias_spec.rb +78 -0
  389. data/spec/functional/shell_spec.rb +38 -40
  390. data/spec/integration/client/client_spec.rb +109 -16
  391. data/spec/integration/client/exit_code_spec.rb +1 -105
  392. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
  393. data/spec/integration/knife/cookbook_download_spec.rb +0 -24
  394. data/spec/integration/knife/cookbook_show_spec.rb +12 -23
  395. data/spec/integration/knife/deps_spec.rb +5 -9
  396. data/spec/integration/knife/search_node_spec.rb +39 -0
  397. data/spec/integration/knife/serve_spec.rb +58 -22
  398. data/spec/integration/knife/upload_spec.rb +3 -11
  399. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
  400. data/spec/integration/recipes/notifies_spec.rb +60 -0
  401. data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
  402. data/spec/integration/recipes/resource_action_spec.rb +37 -30
  403. data/spec/spec_helper.rb +7 -0
  404. data/spec/support/chef_helpers.rb +5 -7
  405. data/spec/support/platform_helpers.rb +10 -3
  406. data/spec/support/platforms/prof/gc.rb +4 -6
  407. data/spec/support/shared/context/client.rb +9 -2
  408. data/spec/support/shared/functional/execute_resource.rb +150 -0
  409. data/spec/support/shared/functional/windows_script.rb +74 -4
  410. data/spec/support/shared/integration/knife_support.rb +1 -1
  411. data/spec/support/shared/unit/execute_resource.rb +37 -9
  412. data/spec/support/shared/unit/provider/file.rb +10 -0
  413. data/spec/support/shared/unit/script_resource.rb +1 -9
  414. data/spec/unit/application/exit_code_spec.rb +4 -89
  415. data/spec/unit/application_spec.rb +39 -29
  416. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
  417. data/spec/unit/client_spec.rb +72 -31
  418. data/spec/unit/config_fetcher_spec.rb +2 -2
  419. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
  420. data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
  421. data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
  422. data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
  423. data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
  424. data/spec/unit/cookbook/metadata_spec.rb +29 -108
  425. data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
  426. data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
  427. data/spec/unit/cookbook_loader_spec.rb +17 -19
  428. data/spec/unit/cookbook_manifest_spec.rb +12 -44
  429. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
  430. data/spec/unit/cookbook_spec.rb +10 -14
  431. data/spec/unit/cookbook_uploader_spec.rb +1 -1
  432. data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
  433. data/spec/unit/cookbook_version_spec.rb +19 -128
  434. data/spec/unit/data_bag_item_spec.rb +4 -0
  435. data/spec/unit/data_collector/messages_spec.rb +137 -0
  436. data/spec/unit/data_collector/resource_report_spec.rb +145 -0
  437. data/spec/unit/deprecation_spec.rb +0 -14
  438. data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
  439. data/spec/unit/formatters/error_description_spec.rb +52 -7
  440. data/spec/unit/http/api_versions_spec.rb +79 -0
  441. data/spec/unit/http/authenticator_spec.rb +20 -0
  442. data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
  443. data/spec/unit/json_compat_spec.rb +0 -32
  444. data/spec/unit/knife/bootstrap_spec.rb +34 -0
  445. data/spec/unit/knife/configure_client_spec.rb +0 -2
  446. data/spec/unit/knife/cookbook_create_spec.rb +1 -220
  447. data/spec/unit/knife/cookbook_download_spec.rb +46 -28
  448. data/spec/unit/knife/cookbook_show_spec.rb +42 -9
  449. data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
  450. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
  451. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
  452. data/spec/unit/knife/core/ui_spec.rb +21 -11
  453. data/spec/unit/knife/data_bag_create_spec.rb +65 -45
  454. data/spec/unit/knife/ssh_spec.rb +34 -36
  455. data/spec/unit/knife_spec.rb +2 -2
  456. data/spec/unit/lwrp_spec.rb +38 -127
  457. data/spec/unit/mixin/path_sanity_spec.rb +7 -7
  458. data/spec/unit/mixin/shell_out_spec.rb +18 -84
  459. data/spec/unit/mixin/versioned_api_spec.rb +128 -0
  460. data/spec/unit/mixin/which.rb +160 -0
  461. data/spec/unit/node/attribute_spec.rb +65 -33
  462. data/spec/unit/node/immutable_collections_spec.rb +104 -1
  463. data/spec/unit/node_map_spec.rb +1 -23
  464. data/spec/unit/node_spec.rb +81 -98
  465. data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
  466. data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
  467. data/spec/unit/property/validation_spec.rb +51 -69
  468. data/spec/unit/property_spec.rb +105 -125
  469. data/spec/unit/provider/apt_repository_spec.rb +33 -27
  470. data/spec/unit/provider/cron_spec.rb +15 -39
  471. data/spec/unit/provider/deploy_spec.rb +1 -1
  472. data/spec/unit/provider/directory_spec.rb +10 -0
  473. data/spec/unit/provider/dsc_resource_spec.rb +175 -0
  474. data/spec/unit/provider/erl_call_spec.rb +5 -13
  475. data/spec/unit/provider/execute_spec.rb +3 -14
  476. data/spec/unit/provider/launchd_spec.rb +2 -2
  477. data/spec/unit/provider/package/aix_spec.rb +22 -22
  478. data/spec/unit/provider/package/apt_spec.rb +37 -27
  479. data/spec/unit/provider/package/cab_spec.rb +59 -5
  480. data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
  481. data/spec/unit/provider/package/dpkg_spec.rb +16 -16
  482. data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
  483. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
  484. data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
  485. data/spec/unit/provider/package/homebrew_spec.rb +9 -9
  486. data/spec/unit/provider/package/ips_spec.rb +37 -31
  487. data/spec/unit/provider/package/macports_spec.rb +10 -10
  488. data/spec/unit/provider/package/openbsd_spec.rb +10 -10
  489. data/spec/unit/provider/package/pacman_spec.rb +6 -6
  490. data/spec/unit/provider/package/paludis_spec.rb +7 -7
  491. data/spec/unit/provider/package/portage_spec.rb +6 -7
  492. data/spec/unit/provider/package/rpm_spec.rb +23 -23
  493. data/spec/unit/provider/package/rubygems_spec.rb +135 -46
  494. data/spec/unit/provider/package/solaris_spec.rb +15 -15
  495. data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
  496. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
  497. data/spec/unit/provider/package/windows_spec.rb +2 -1
  498. data/spec/unit/provider/package/yum_spec.rb +58 -50
  499. data/spec/unit/provider/package/zypper_spec.rb +54 -97
  500. data/spec/unit/provider/package_spec.rb +8 -0
  501. data/spec/unit/provider/powershell_script_spec.rb +14 -4
  502. data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
  503. data/spec/unit/provider/route_spec.rb +7 -1
  504. data/spec/unit/provider/script_spec.rb +49 -6
  505. data/spec/unit/provider/service/debian_service_spec.rb +14 -20
  506. data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
  507. data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
  508. data/spec/unit/provider/subversion_spec.rb +2 -2
  509. data/spec/unit/provider/user/linux_spec.rb +5 -43
  510. data/spec/unit/provider/user/pw_spec.rb +7 -27
  511. data/spec/unit/provider/windows_task_spec.rb +392 -0
  512. data/spec/unit/provider_resolver_spec.rb +0 -1
  513. data/spec/unit/provider_spec.rb +10 -3
  514. data/spec/unit/recipe_spec.rb +3 -172
  515. data/spec/unit/resource/chef_gem_spec.rb +16 -62
  516. data/spec/unit/resource/conditional_spec.rb +4 -4
  517. data/spec/unit/resource/cookbook_file_spec.rb +2 -2
  518. data/spec/unit/resource/cron_spec.rb +1 -1
  519. data/spec/unit/resource/deploy_spec.rb +4 -4
  520. data/spec/unit/resource/directory_spec.rb +2 -2
  521. data/spec/unit/resource/dsc_resource_spec.rb +6 -0
  522. data/spec/unit/resource/env_spec.rb +1 -1
  523. data/spec/unit/resource/execute_spec.rb +215 -1
  524. data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
  525. data/spec/unit/resource/file/verification_spec.rb +8 -14
  526. data/spec/unit/resource/file_spec.rb +3 -3
  527. data/spec/unit/resource/freebsd_package_spec.rb +2 -2
  528. data/spec/unit/resource/group_spec.rb +2 -2
  529. data/spec/unit/resource/ifconfig_spec.rb +1 -1
  530. data/spec/unit/resource/link_spec.rb +2 -2
  531. data/spec/unit/resource/mdadm_spec.rb +1 -1
  532. data/spec/unit/resource/mount_spec.rb +3 -3
  533. data/spec/unit/resource/ohai_spec.rb +1 -1
  534. data/spec/unit/resource/package_spec.rb +14 -4
  535. data/spec/unit/resource/registry_key_spec.rb +2 -2
  536. data/spec/unit/resource/remote_directory_spec.rb +2 -2
  537. data/spec/unit/resource/remote_file_spec.rb +2 -2
  538. data/spec/unit/resource/route_spec.rb +1 -1
  539. data/spec/unit/resource/scm_spec.rb +2 -2
  540. data/spec/unit/resource/script_spec.rb +1 -1
  541. data/spec/unit/resource/service_spec.rb +25 -5
  542. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  543. data/spec/unit/resource/template_spec.rb +2 -2
  544. data/spec/unit/resource/user_spec.rb +6 -6
  545. data/spec/unit/resource/windows_task_spec.rb +213 -0
  546. data/spec/unit/resource/yum_package_spec.rb +42 -1
  547. data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
  548. data/spec/unit/resource_collection_spec.rb +4 -3
  549. data/spec/unit/resource_reporter_spec.rb +6 -6
  550. data/spec/unit/resource_spec.rb +55 -71
  551. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
  552. data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
  553. data/spec/unit/runner_spec.rb +10 -28
  554. data/spec/unit/search/query_spec.rb +32 -34
  555. data/spec/unit/server_api_versions_spec.rb +44 -0
  556. data/spec/unit/shell/shell_session_spec.rb +33 -2
  557. data/spec/unit/util/selinux_spec.rb +3 -14
  558. data/spec/unit/win32/error_spec.rb +67 -0
  559. data/spec/unit/win32/security_spec.rb +66 -0
  560. data/tasks/bundle.rb +36 -52
  561. data/tasks/changelog.rb +1 -1
  562. data/tasks/dependencies.rb +54 -52
  563. data/tasks/version.rb +41 -0
  564. metadata +91 -76
  565. data/lib/chef/deprecation/mixin/template.rb +0 -48
  566. data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
  567. data/lib/chef/deprecation/provider/file.rb +0 -198
  568. data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
  569. data/lib/chef/deprecation/provider/remote_file.rb +0 -85
  570. data/lib/chef/deprecation/provider/template.rb +0 -63
  571. data/lib/chef/dsl/method_missing.rb +0 -75
  572. data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
  573. data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
  574. data/lib/chef/mixin/command/unix.rb +0 -220
  575. data/lib/chef/mixin/command/windows.rb +0 -71
  576. data/lib/chef/mixin/command.rb +0 -194
  577. data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
  578. data/lib/chef/provider/package/easy_install.rb +0 -135
  579. data/lib/chef/rest.rb +0 -210
  580. data/lib/chef/shell_out.rb +0 -13
  581. data/lib/chef/tasks/chef_repo.rake +0 -200
  582. data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
  583. data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
  584. data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
  585. data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
  586. data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
  587. data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
  588. data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
  589. data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
  590. data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
  591. data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
  592. data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
  593. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
  594. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
  595. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
  596. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
  597. data/spec/functional/rest_spec.rb +0 -95
  598. data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
  599. data/spec/unit/lib_backcompat_spec.rb +0 -34
  600. data/spec/unit/mixin/command_spec.rb +0 -107
  601. data/spec/unit/platform_spec.rb +0 -242
  602. data/spec/unit/provider/package/easy_install_spec.rb +0 -114
  603. data/spec/unit/resource/easy_install_package_spec.rb +0 -39
  604. data/spec/unit/rest/auth_credentials_spec.rb +0 -292
  605. data/spec/unit/rest_spec.rb +0 -753
  606. data/spec/unit/shell_out_spec.rb +0 -18
  607. data/tasks/bin/bundle-platform +0 -20
  608. data/tasks/bin/bundle-platform.bat +0 -2
  609. data/tasks/bin/bundler_patch.rb +0 -27
  610. data/tasks/bin/gem-version-diff +0 -37
  611. data/tasks/bundle_util.rb +0 -110
@@ -7,25 +7,25 @@ class Chef
7
7
  provides :macports_package
8
8
 
9
9
  def load_current_resource
10
- @current_resource = Chef::Resource::Package.new(@new_resource.name)
11
- @current_resource.package_name(@new_resource.package_name)
10
+ @current_resource = Chef::Resource::Package.new(new_resource.name)
11
+ current_resource.package_name(new_resource.package_name)
12
12
 
13
- @current_resource.version(current_installed_version)
14
- Chef::Log.debug("#{@new_resource} current version is #{@current_resource.version}") if @current_resource.version
13
+ current_resource.version(current_installed_version)
14
+ Chef::Log.debug("#{new_resource} current version is #{current_resource.version}") if current_resource.version
15
15
 
16
16
  @candidate_version = macports_candidate_version
17
17
 
18
- if !@new_resource.version && !@candidate_version
19
- raise Chef::Exceptions::Package, "Could not get a candidate version for this package -- #{@new_resource.name} does not seem to be a valid package!"
18
+ if !new_resource.version && !@candidate_version
19
+ raise Chef::Exceptions::Package, "Could not get a candidate version for this package -- #{new_resource.name} does not seem to be a valid package!"
20
20
  end
21
21
 
22
- Chef::Log.debug("#{@new_resource} candidate version is #{@candidate_version}") if @candidate_version
22
+ Chef::Log.debug("#{new_resource} candidate version is #{@candidate_version}") if @candidate_version
23
23
 
24
- @current_resource
24
+ current_resource
25
25
  end
26
26
 
27
27
  def current_installed_version
28
- command = "port installed #{@new_resource.package_name}"
28
+ command = [ "port", "installed", new_resource.package_name ]
29
29
  output = get_response_from_command(command)
30
30
 
31
31
  response = nil
@@ -37,7 +37,7 @@ class Chef
37
37
  end
38
38
 
39
39
  def macports_candidate_version
40
- command = "port info --version #{@new_resource.package_name}"
40
+ command = [ "port", "info", "--version", new_resource.package_name ]
41
41
  output = get_response_from_command(command)
42
42
 
43
43
  match = output.match(/^version: (.+)$/)
@@ -46,37 +46,37 @@ class Chef
46
46
  end
47
47
 
48
48
  def install_package(name, version)
49
- unless @current_resource.version == version
50
- command = "port#{expand_options(@new_resource.options)} install #{name}"
51
- command << " @#{version}" if version && !version.empty?
52
- shell_out_with_timeout!(command)
49
+ unless current_resource.version == version
50
+ command = [ "port", options, "install", name ]
51
+ command << "@#{version}" if version && !version.empty?
52
+ shell_out_compact_timeout!(command)
53
53
  end
54
54
  end
55
55
 
56
56
  def purge_package(name, version)
57
- command = "port#{expand_options(@new_resource.options)} uninstall #{name}"
58
- command << " @#{version}" if version && !version.empty?
59
- shell_out_with_timeout!(command)
57
+ command = [ "port", options, "uninstall", name ]
58
+ command << "@#{version}" if version && !version.empty?
59
+ shell_out_compact_timeout!(command)
60
60
  end
61
61
 
62
62
  def remove_package(name, version)
63
- command = "port#{expand_options(@new_resource.options)} deactivate #{name}"
64
- command << " @#{version}" if version && !version.empty?
63
+ command = [ "port", options, "deactivate", name ]
64
+ command << "@#{version}" if version && !version.empty?
65
65
 
66
- shell_out_with_timeout!(command)
66
+ shell_out_compact_timeout!(command)
67
67
  end
68
68
 
69
69
  def upgrade_package(name, version)
70
70
  # Saving this to a variable -- weird rSpec behavior
71
71
  # happens otherwise...
72
- current_version = @current_resource.version
72
+ current_version = current_resource.version
73
73
 
74
74
  if current_version.nil? || current_version.empty?
75
75
  # Macports doesn't like when you upgrade a package
76
76
  # that hasn't been installed.
77
77
  install_package(name, version)
78
78
  elsif current_version != version
79
- shell_out_with_timeout!( "port#{expand_options(@new_resource.options)} upgrade #{name} @#{version}" )
79
+ shell_out_compact_timeout!( "port", options, "upgrade", name, "@#{version}" )
80
80
  end
81
81
  end
82
82
 
@@ -84,7 +84,7 @@ class Chef
84
84
 
85
85
  def get_response_from_command(command)
86
86
  output = nil
87
- status = shell_out_with_timeout(command)
87
+ status = shell_out_compact_timeout(command)
88
88
  begin
89
89
  output = status.stdout
90
90
  rescue Exception
@@ -32,7 +32,6 @@ class Chef
32
32
  class Provider
33
33
  class Package
34
34
  class Msu < Chef::Provider::Package
35
- use_inline_resources
36
35
  include Chef::Mixin::ShellOut
37
36
  include Chef::Mixin::Uris
38
37
  include Chef::Mixin::Checksum
@@ -43,17 +42,17 @@ class Chef
43
42
  @current_resource = Chef::Resource::MsuPackage.new(new_resource.name)
44
43
 
45
44
  # download file if source is a url
46
- msu_file = uri_scheme?(new_resource.source) ? download_source_file : @new_resource.source
45
+ msu_file = uri_scheme?(new_resource.source) ? download_source_file : new_resource.source
47
46
 
48
47
  # temp directory where the contents of msu file get extracted
49
48
  @temp_directory = Dir.mktmpdir("chef")
50
49
  extract_msu_contents(msu_file, @temp_directory)
51
50
  @cab_files = read_cab_files_from_xml(@temp_directory)
52
51
 
53
- unless @cab_files.empty?
54
- current_resource.version(get_current_versions)
55
- else
52
+ if @cab_files.empty?
56
53
  raise Chef::Exceptions::Package, "Corrupt MSU package: MSU package XML does not contain any cab file"
54
+ else
55
+ current_resource.version(get_current_versions)
57
56
  end
58
57
  current_resource
59
58
  end
@@ -77,7 +76,7 @@ class Chef
77
76
  end
78
77
 
79
78
  def get_cab_package(cab_file)
80
- cab_resource = @new_resource
79
+ cab_resource = new_resource
81
80
  cab_resource.source = cab_file
82
81
  cab_pkg = Chef::Provider::Package::Cab.new(cab_resource, nil)
83
82
  end
@@ -105,9 +104,9 @@ class Chef
105
104
  end
106
105
 
107
106
  def install_package(name, version)
108
- #use cab_package resource to install the extracted cab packages
107
+ # use cab_package resource to install the extracted cab packages
109
108
  @cab_files.each do |cab_file|
110
- declare_resource(:cab_package, @new_resource.name) do
109
+ declare_resource(:cab_package, new_resource.name) do
111
110
  source cab_file
112
111
  action :install
113
112
  end
@@ -115,9 +114,9 @@ class Chef
115
114
  end
116
115
 
117
116
  def remove_package(name, version)
118
- #use cab_package provider to remove the extracted cab packages
117
+ # use cab_package provider to remove the extracted cab packages
119
118
  @cab_files.each do |cab_file|
120
- declare_resource(:cab_package, @new_resource.name) do
119
+ declare_resource(:cab_package, new_resource.name) do
121
120
  source cab_file
122
121
  action :remove
123
122
  end
@@ -141,7 +140,7 @@ class Chef
141
140
  raise Chef::Exceptions::Package, "Corrupt MSU package: MSU package doesn't contain any xml file"
142
141
  else
143
142
  # msu package contains only single xml file. So using xml_files.first is sufficient
144
- doc = ::File.open("#{xml_files.first}") { |f| REXML::Document.new f }
143
+ doc = ::File.open(xml_files.first.to_s) { |f| REXML::Document.new f }
145
144
  locations = doc.elements.each("unattend/servicing/package/source") { |element| puts element.attributes["location"] }
146
145
  locations.each do |loc|
147
146
  cab_files << msu_dir + "/" + loc.attribute("location").value.split("\\")[1]
@@ -154,7 +153,7 @@ class Chef
154
153
 
155
154
  def cleanup_after_converge
156
155
  # delete the temp directory where the contents of msu file are extracted
157
- FileUtils.rm_rf(@temp_directory) if Dir.exists?(@temp_directory)
156
+ FileUtils.rm_rf(@temp_directory) if Dir.exist?(@temp_directory)
158
157
  end
159
158
  end
160
159
  end
@@ -42,9 +42,9 @@ class Chef
42
42
  end
43
43
 
44
44
  def load_current_resource
45
- @current_resource.package_name(new_resource.package_name)
46
- @current_resource.version(installed_version)
47
- @current_resource
45
+ current_resource.package_name(new_resource.package_name)
46
+ current_resource.version(installed_version)
47
+ current_resource
48
48
  end
49
49
 
50
50
  def define_resource_requirements
@@ -68,11 +68,11 @@ class Chef
68
68
  end
69
69
 
70
70
  def install_package(name, version)
71
- unless @current_resource.version
71
+ unless current_resource.version
72
72
  if parts = name.match(/^(.+?)--(.+)/) # use double-dash for stems with flavors, see man page for pkg_add
73
73
  name = parts[1]
74
74
  end
75
- shell_out_with_timeout!("pkg_add -r #{name}#{version_string(version)}", :env => { "PKG_PATH" => pkg_path }).status
75
+ shell_out_compact_timeout!("pkg_add", "-r", package_string(name, version), env: { "PKG_PATH" => pkg_path }).status
76
76
  Chef::Log.debug("#{new_resource.package_name} installed")
77
77
  end
78
78
  end
@@ -81,18 +81,18 @@ class Chef
81
81
  if parts = name.match(/^(.+?)--(.+)/)
82
82
  name = parts[1]
83
83
  end
84
- shell_out_with_timeout!("pkg_delete #{name}#{version_string(version)}", :env => nil).status
84
+ shell_out_compact_timeout!("pkg_delete", package_string(name, version), env: nil).status
85
85
  end
86
86
 
87
87
  private
88
88
 
89
89
  def installed_version
90
- if parts = new_resource.package_name.match(/^(.+?)--(.+)/)
91
- name = parts[1]
92
- else
93
- name = new_resource.package_name
94
- end
95
- pkg_info = shell_out_with_timeout!("pkg_info -e \"#{name}->0\"", :env => nil, :returns => [0, 1])
90
+ name = if parts = new_resource.package_name.match(/^(.+?)--(.+)/)
91
+ parts[1]
92
+ else
93
+ new_resource.package_name
94
+ end
95
+ pkg_info = shell_out_compact_timeout!("pkg_info", "-e", "#{name}->0", env: nil, returns: [0, 1])
96
96
  result = pkg_info.stdout[/^inst:#{Regexp.escape(name)}-(.+?)\s/, 1]
97
97
  Chef::Log.debug("installed_version of '#{new_resource.package_name}' is '#{result}'")
98
98
  result
@@ -101,12 +101,12 @@ class Chef
101
101
  def candidate_version
102
102
  @candidate_version ||= begin
103
103
  results = []
104
- shell_out_with_timeout!("pkg_info -I \"#{new_resource.package_name}#{version_string(new_resource.version)}\"", :env => nil, :returns => [0, 1]).stdout.each_line do |line|
105
- if parts = new_resource.package_name.match(/^(.+?)--(.+)/)
106
- results << line[/^#{Regexp.escape(parts[1])}-(.+?)\s/, 1]
107
- else
108
- results << line[/^#{Regexp.escape(new_resource.package_name)}-(.+?)\s/, 1]
109
- end
104
+ shell_out_compact_timeout!("pkg_info", "-I", package_string(new_resource.package_name, new_resource.version), env: nil, returns: [0, 1]).stdout.each_line do |line|
105
+ results << if parts = new_resource.package_name.match(/^(.+?)--(.+)/)
106
+ line[/^#{Regexp.escape(parts[1])}-(.+?)\s/, 1]
107
+ else
108
+ line[/^#{Regexp.escape(new_resource.package_name)}-(.+?)\s/, 1]
109
+ end
110
110
  end
111
111
  results = results.reject(&:nil?)
112
112
  Chef::Log.debug("Candidate versions of '#{new_resource.package_name}' are '#{results}'")
@@ -121,13 +121,16 @@ class Chef
121
121
  end
122
122
  end
123
123
 
124
- def version_string(version)
125
- ver = ""
126
- ver += "-#{version}" if version
124
+ def package_string(name, version)
125
+ if version
126
+ "#{name}-#{version}"
127
+ else
128
+ name
129
+ end
127
130
  end
128
131
 
129
132
  def pkg_path
130
- ENV["PKG_PATH"] || "http://ftp.OpenBSD.org/pub/#{node["kernel"]["name"]}/#{node["kernel"]["release"]}/packages/#{node["kernel"]["machine"]}/"
133
+ ENV["PKG_PATH"] || "http://ftp.OpenBSD.org/pub/#{node['kernel']['name']}/#{node['kernel']['release']}/packages/#{node['kernel']['machine']}/"
131
134
  end
132
135
 
133
136
  end
@@ -17,7 +17,6 @@
17
17
  #
18
18
 
19
19
  require "chef/provider/package"
20
- require "chef/mixin/command"
21
20
  require "chef/resource/package"
22
21
 
23
22
  class Chef
@@ -29,16 +28,16 @@ class Chef
29
28
  provides :pacman_package, os: "linux"
30
29
 
31
30
  def load_current_resource
32
- @current_resource = Chef::Resource::Package.new(@new_resource.name)
33
- @current_resource.package_name(@new_resource.package_name)
31
+ @current_resource = Chef::Resource::Package.new(new_resource.name)
32
+ current_resource.package_name(new_resource.package_name)
34
33
 
35
- Chef::Log.debug("#{@new_resource} checking pacman for #{@new_resource.package_name}")
36
- status = shell_out_with_timeout("pacman -Qi #{@new_resource.package_name}")
34
+ Chef::Log.debug("#{new_resource} checking pacman for #{new_resource.package_name}")
35
+ status = shell_out_compact_timeout("pacman", "-Qi", new_resource.package_name)
37
36
  status.stdout.each_line do |line|
38
37
  case line
39
38
  when /^Version(\s?)*: (.+)$/
40
- Chef::Log.debug("#{@new_resource} current version is #{$2}")
41
- @current_resource.version($2)
39
+ Chef::Log.debug("#{new_resource} current version is #{$2}")
40
+ current_resource.version($2)
42
41
  end
43
42
  end
44
43
 
@@ -46,7 +45,7 @@ class Chef
46
45
  raise Chef::Exceptions::Package, "pacman failed - #{status.inspect}!"
47
46
  end
48
47
 
49
- @current_resource
48
+ current_resource
50
49
  end
51
50
 
52
51
  def candidate_version
@@ -54,20 +53,20 @@ class Chef
54
53
 
55
54
  repos = %w{extra core community}
56
55
 
57
- if ::File.exists?("/etc/pacman.conf")
56
+ if ::File.exist?("/etc/pacman.conf")
58
57
  pacman = ::File.read("/etc/pacman.conf")
59
58
  repos = pacman.scan(/\[(.+)\]/).flatten
60
59
  end
61
60
 
62
61
  package_repos = repos.map { |r| Regexp.escape(r) }.join("|")
63
62
 
64
- status = shell_out_with_timeout("pacman -Sl")
63
+ status = shell_out_compact_timeout("pacman", "-Sl")
65
64
  status.stdout.each_line do |line|
66
65
  case line
67
- when /^(#{package_repos}) #{Regexp.escape(@new_resource.package_name)} (.+)$/
68
- # $2 contains a string like "4.4.0-1" or "3.10-4 [installed]"
69
- # simply split by space and use first token
70
- @candidate_version = $2.split(" ").first
66
+ when /^(#{package_repos}) #{Regexp.escape(new_resource.package_name)} (.+)$/
67
+ # $2 contains a string like "4.4.0-1" or "3.10-4 [installed]"
68
+ # simply split by space and use first token
69
+ @candidate_version = $2.split(" ").first
71
70
  end
72
71
  end
73
72
 
@@ -76,14 +75,14 @@ class Chef
76
75
  end
77
76
 
78
77
  unless @candidate_version
79
- raise Chef::Exceptions::Package, "pacman does not have a version of package #{@new_resource.package_name}"
78
+ raise Chef::Exceptions::Package, "pacman does not have a version of package #{new_resource.package_name}"
80
79
  end
81
80
 
82
81
  @candidate_version
83
82
  end
84
83
 
85
84
  def install_package(name, version)
86
- shell_out_with_timeout!( "pacman --sync --noconfirm --noprogressbar#{expand_options(@new_resource.options)} #{name}" )
85
+ shell_out_compact_timeout!( "pacman", "--sync", "--noconfirm", "--noprogressbar", options, name)
87
86
  end
88
87
 
89
88
  def upgrade_package(name, version)
@@ -91,7 +90,7 @@ class Chef
91
90
  end
92
91
 
93
92
  def remove_package(name, version)
94
- shell_out_with_timeout!( "pacman --remove --noconfirm --noprogressbar#{expand_options(@new_resource.options)} #{name}" )
93
+ shell_out_compact_timeout!( "pacman", "--remove", "--noconfirm", "--noprogressbar", options, name )
95
94
  end
96
95
 
97
96
  def purge_package(name, version)
@@ -28,38 +28,37 @@ class Chef
28
28
  provides :paludis_package, os: "linux"
29
29
 
30
30
  def load_current_resource
31
- @current_resource = Chef::Resource::Package.new(@new_resource.package_name)
32
- @current_resource.package_name(@new_resource.package_name)
31
+ @current_resource = Chef::Resource::Package.new(new_resource.package_name)
32
+ current_resource.package_name(new_resource.package_name)
33
33
 
34
- Chef::Log.debug("Checking package status for #{@new_resource.package_name}")
34
+ Chef::Log.debug("Checking package status for #{new_resource.package_name}")
35
35
  installed = false
36
36
  re = Regexp.new("(.*)[[:blank:]](.*)[[:blank:]](.*)$")
37
37
 
38
- shell_out!("cave -L warning print-ids -M none -m \"#{@new_resource.package_name}\" -f \"%c/%p %v %r\n\"").stdout.each_line do |line|
38
+ shell_out_compact!("cave", "-L", "warning", "print-ids", "-M", "none", "-m", new_resource.package_name, "-f", "%c/%p %v %r\n").stdout.each_line do |line|
39
39
  res = re.match(line)
40
- unless res.nil?
41
- case res[3]
42
- when "accounts", "installed-accounts"
43
- next
44
- when "installed"
45
- installed = true
46
- @current_resource.version(res[2])
47
- else
48
- @candidate_version = res[2]
49
- end
40
+ next if res.nil?
41
+ case res[3]
42
+ when "accounts", "installed-accounts"
43
+ next
44
+ when "installed"
45
+ installed = true
46
+ current_resource.version(res[2])
47
+ else
48
+ @candidate_version = res[2]
50
49
  end
51
50
  end
52
51
 
53
- @current_resource
52
+ current_resource
54
53
  end
55
54
 
56
55
  def install_package(name, version)
57
- if version
58
- pkg = "=#{name}-#{version}"
59
- else
60
- pkg = "#{@new_resource.package_name}"
61
- end
62
- shell_out!("cave -L warning resolve -x#{expand_options(@new_resource.options)} \"#{pkg}\"", :timeout => @new_resource.timeout)
56
+ pkg = if version
57
+ "=#{name}-#{version}"
58
+ else
59
+ new_resource.package_name.to_s
60
+ end
61
+ shell_out_compact_timeout!("cave", "-L", "warning", "resolve", "-x", options, pkg)
63
62
  end
64
63
 
65
64
  def upgrade_package(name, version)
@@ -67,13 +66,13 @@ class Chef
67
66
  end
68
67
 
69
68
  def remove_package(name, version)
70
- if version
71
- pkg = "=#{@new_resource.package_name}-#{version}"
72
- else
73
- pkg = "#{@new_resource.package_name}"
74
- end
69
+ pkg = if version
70
+ "=#{new_resource.package_name}-#{version}"
71
+ else
72
+ new_resource.package_name.to_s
73
+ end
75
74
 
76
- shell_out!("cave -L warning uninstall -x#{expand_options(@new_resource.options)} \"#{pkg}\"")
75
+ shell_out_compact!("cave", "-L", "warning", "uninstall", "-x", options, pkg)
77
76
  end
78
77
 
79
78
  def purge_package(name, version)
@@ -17,7 +17,6 @@
17
17
  #
18
18
 
19
19
  require "chef/provider/package"
20
- require "chef/mixin/command"
21
20
  require "chef/resource/package"
22
21
  require "chef/util/path_helper"
23
22
 
@@ -32,14 +31,14 @@ class Chef
32
31
  PACKAGE_NAME_PATTERN = %r{(?:([^/]+)/)?([^/]+)}
33
32
 
34
33
  def load_current_resource
35
- @current_resource = Chef::Resource::Package.new(@new_resource.name)
36
- @current_resource.package_name(@new_resource.package_name)
34
+ @current_resource = Chef::Resource::Package.new(new_resource.name)
35
+ current_resource.package_name(new_resource.package_name)
37
36
 
38
- category, pkg = %r{^#{PACKAGE_NAME_PATTERN}$}.match(@new_resource.package_name)[1, 2]
37
+ category, pkg = /^#{PACKAGE_NAME_PATTERN}$/.match(new_resource.package_name)[1, 2]
39
38
 
40
39
  globsafe_category = category ? Chef::Util::PathHelper.escape_glob_dir(category) : nil
41
40
  globsafe_pkg = Chef::Util::PathHelper.escape_glob_dir(pkg)
42
- possibilities = Dir["/var/db/pkg/#{globsafe_category || "*"}/#{globsafe_pkg}-*"].map { |d| d.sub(%r{/var/db/pkg/}, "") }
41
+ possibilities = Dir["/var/db/pkg/#{globsafe_category || '*'}/#{globsafe_pkg}-*"].map { |d| d.sub(%r{/var/db/pkg/}, "") }
43
42
  versions = possibilities.map do |entry|
44
43
  if entry =~ %r{[^/]+/#{Regexp.escape(pkg)}\-(\d[\.\d]*[a-z]?((_(alpha|beta|pre|rc|p)\d*)*)?(-r\d+)?)}
45
44
  [$&, $1]
@@ -47,17 +46,17 @@ class Chef
47
46
  end.compact
48
47
 
49
48
  if versions.size > 1
50
- atoms = versions.map { |v| v.first }.sort
49
+ atoms = versions.map(&:first).sort
51
50
  categories = atoms.map { |v| v.split("/")[0] }.uniq
52
51
  if !category && categories.size > 1
53
- raise Chef::Exceptions::Package, "Multiple packages found for #{@new_resource.package_name}: #{atoms.join(" ")}. Specify a category."
52
+ raise Chef::Exceptions::Package, "Multiple packages found for #{new_resource.package_name}: #{atoms.join(' ')}. Specify a category."
54
53
  end
55
54
  elsif versions.size == 1
56
- @current_resource.version(versions.first.last)
57
- Chef::Log.debug("#{@new_resource} current version #{$1}")
55
+ current_resource.version(versions.first.last)
56
+ Chef::Log.debug("#{new_resource} current version #{$1}")
58
57
  end
59
58
 
60
- @current_resource
59
+ current_resource
61
60
  end
62
61
 
63
62
  def parse_emerge(package, txt)
@@ -67,25 +66,25 @@ class Chef
67
66
  txt.each_line do |line|
68
67
  if line =~ /\*\s+#{PACKAGE_NAME_PATTERN}/
69
68
  found_package_name = $&.delete("*").strip
70
- if package =~ /\// #the category is specified
69
+ if package =~ /\// # the category is specified
71
70
  if found_package_name == package
72
71
  availables[found_package_name] = nil
73
72
  end
74
- else #the category is not specified
73
+ else # the category is not specified
75
74
  if found_package_name.split("/").last == package
76
75
  availables[found_package_name] = nil
77
76
  end
78
77
  end
79
78
  end
80
79
 
81
- if line =~ /Latest version available: (.*)/ && availables.has_key?(found_package_name)
80
+ if line =~ /Latest version available: (.*)/ && availables.key?(found_package_name)
82
81
  availables[found_package_name] = $1.strip
83
82
  end
84
83
  end
85
84
 
86
85
  if availables.size > 1
87
86
  # shouldn't happen if a category is specified so just use `package`
88
- raise Chef::Exceptions::Package, "Multiple emerge results found for #{package}: #{availables.keys.join(" ")}. Specify a category."
87
+ raise Chef::Exceptions::Package, "Multiple emerge results found for #{package}: #{availables.keys.join(' ')}. Specify a category."
89
88
  end
90
89
 
91
90
  availables.values.first
@@ -94,8 +93,8 @@ class Chef
94
93
  def candidate_version
95
94
  return @candidate_version if @candidate_version
96
95
 
97
- status = shell_out("emerge --color n --nospinner --search #{@new_resource.package_name.split('/').last}")
98
- available, installed = parse_emerge(@new_resource.package_name, status.stdout)
96
+ status = shell_out_compact("emerge", "--color", "n", "--nospinner", "--search", new_resource.package_name.split("/").last)
97
+ available, installed = parse_emerge(new_resource.package_name, status.stdout)
99
98
  @candidate_version = available
100
99
 
101
100
  unless status.exitstatus == 0
@@ -113,7 +112,7 @@ class Chef
113
112
  pkg = "~#{name}-#{$1}"
114
113
  end
115
114
 
116
- shell_out!( "emerge -g --color n --nospinner --quiet#{expand_options(@new_resource.options)} #{pkg}" )
115
+ shell_out_compact!( "emerge", "-g", "--color", "n", "--nospinner", "--quiet", options, pkg )
117
116
  end
118
117
 
119
118
  def upgrade_package(name, version)
@@ -121,13 +120,13 @@ class Chef
121
120
  end
122
121
 
123
122
  def remove_package(name, version)
124
- if version
125
- pkg = "=#{@new_resource.package_name}-#{version}"
126
- else
127
- pkg = "#{@new_resource.package_name}"
128
- end
123
+ pkg = if version
124
+ "=#{new_resource.package_name}-#{version}"
125
+ else
126
+ new_resource.package_name.to_s
127
+ end
129
128
 
130
- shell_out!( "emerge --unmerge --color n --nospinner --quiet#{expand_options(@new_resource.options)} #{pkg}" )
129
+ shell_out_compact!( "emerge", "--unmerge", "--color", "n", "--nospinner", "--quiet", options, pkg )
131
130
  end
132
131
 
133
132
  def purge_package(name, version)
@@ -36,13 +36,13 @@ class Chef
36
36
 
37
37
  def define_resource_requirements
38
38
  super
39
- if powershell_out("$PSVersionTable.PSVersion.Major").stdout.strip().to_i < 5
39
+ if powershell_out("$PSVersionTable.PSVersion.Major").stdout.strip.to_i < 5
40
40
  raise "Minimum installed Powershell Version required is 5"
41
41
  end
42
42
  requirements.assert(:install) do |a|
43
43
  a.assertion { candidates_exist_for_all_uninstalled? }
44
- a.failure_message(Chef::Exceptions::Package, "No candidate version available for #{packages_missing_candidates.join(", ")}")
45
- a.whyrun("Assuming a repository that offers #{packages_missing_candidates.join(", ")} would have been configured")
44
+ a.failure_message(Chef::Exceptions::Package, "No candidate version available for #{packages_missing_candidates.join(', ')}")
45
+ a.whyrun("Assuming a repository that offers #{packages_missing_candidates.join(', ')} would have been configured")
46
46
  end
47
47
  end
48
48
 
@@ -53,7 +53,7 @@ class Chef
53
53
  # Installs the package specified with the version passed else latest version will be installed
54
54
  def install_package(names, versions)
55
55
  names.each_with_index do |name, index|
56
- powershell_out("Install-Package '#{name}' -Force -ForceBootstrap -RequiredVersion #{versions[index]}", { :timeout => @new_resource.timeout })
56
+ powershell_out("Install-Package '#{name}' -Force -ForceBootstrap -RequiredVersion #{versions[index]}", timeout: new_resource.timeout)
57
57
  end
58
58
  end
59
59
 
@@ -61,12 +61,12 @@ class Chef
61
61
  def remove_package(names, versions)
62
62
  names.each_with_index do |name, index|
63
63
  if versions && !versions[index].nil?
64
- powershell_out( "Uninstall-Package '#{name}' -Force -ForceBootstrap -RequiredVersion #{versions[index]}", { :timeout => @new_resource.timeout })
64
+ powershell_out( "Uninstall-Package '#{name}' -Force -ForceBootstrap -RequiredVersion #{versions[index]}", timeout: new_resource.timeout)
65
65
  else
66
66
  version = "0"
67
67
  until version.empty?
68
- version = powershell_out( "(Uninstall-Package '#{name}' -Force -ForceBootstrap | select version | Format-Table -HideTableHeaders | Out-String).Trim()", { :timeout => @new_resource.timeout }).stdout.strip()
69
- if !version.empty?
68
+ version = powershell_out( "(Uninstall-Package '#{name}' -Force -ForceBootstrap | select version | Format-Table -HideTableHeaders | Out-String).Trim()", timeout: new_resource.timeout).stdout.strip
69
+ unless version.empty?
70
70
  Chef::Log.info("Removed package '#{name}' with version #{version}")
71
71
  end
72
72
  end
@@ -78,11 +78,11 @@ class Chef
78
78
  def build_candidate_versions
79
79
  versions = []
80
80
  new_resource.package_name.each_with_index do |name, index|
81
- if new_resource.version && !new_resource.version[index].nil?
82
- version = powershell_out("(Find-Package '#{name}' -RequiredVersion #{new_resource.version[index]} -ForceBootstrap -Force | select version | Format-Table -HideTableHeaders | Out-String).Trim()", { :timeout => @new_resource.timeout }).stdout.strip()
83
- else
84
- version = powershell_out("(Find-Package '#{name}' -ForceBootstrap -Force | select version | Format-Table -HideTableHeaders | Out-String).Trim()", { :timeout => @new_resource.timeout }).stdout.strip()
85
- end
81
+ version = if new_resource.version && !new_resource.version[index].nil?
82
+ powershell_out("(Find-Package '#{name}' -RequiredVersion #{new_resource.version[index]} -ForceBootstrap -Force | select version | Format-Table -HideTableHeaders | Out-String).Trim()", timeout: new_resource.timeout).stdout.strip
83
+ else
84
+ powershell_out("(Find-Package '#{name}' -ForceBootstrap -Force | select version | Format-Table -HideTableHeaders | Out-String).Trim()", timeout: new_resource.timeout).stdout.strip
85
+ end
86
86
  if version.empty?
87
87
  version = nil
88
88
  end
@@ -95,11 +95,11 @@ class Chef
95
95
  def build_current_versions
96
96
  version_list = []
97
97
  new_resource.package_name.each_with_index do |name, index|
98
- if new_resource.version && !new_resource.version[index].nil?
99
- version = powershell_out("(Get-Package -Name '#{name}' -RequiredVersion #{new_resource.version[index]} -ForceBootstrap -Force | select version | Format-Table -HideTableHeaders | Out-String).Trim()", { :timeout => @new_resource.timeout }).stdout.strip()
100
- else
101
- version = powershell_out("(Get-Package -Name '#{name}' -ForceBootstrap -Force | select version | Format-Table -HideTableHeaders | Out-String).Trim()", { :timeout => @new_resource.timeout }).stdout.strip()
102
- end
98
+ version = if new_resource.version && !new_resource.version[index].nil?
99
+ powershell_out("(Get-Package -Name '#{name}' -RequiredVersion #{new_resource.version[index]} -ForceBootstrap -Force | select version | Format-Table -HideTableHeaders | Out-String).Trim()", timeout: new_resource.timeout).stdout.strip
100
+ else
101
+ powershell_out("(Get-Package -Name '#{name}' -ForceBootstrap -Force | select version | Format-Table -HideTableHeaders | Out-String).Trim()", timeout: new_resource.timeout).stdout.strip
102
+ end
103
103
  if version.empty?
104
104
  version = nil
105
105
  end