chef 13.12.14-universal-mingw32 → 14.0.190-universal-mingw32

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 (747) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +151 -0
  3. data/Gemfile +12 -9
  4. data/README.md +34 -32
  5. data/Rakefile +22 -18
  6. data/VERSION +1 -0
  7. data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +33 -0
  8. data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +272 -0
  9. data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +57 -0
  10. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +68 -0
  11. data/acceptance/.shared/kitchen_acceptance/metadata.rb +1 -0
  12. data/acceptance/Gemfile +19 -0
  13. data/acceptance/Gemfile.lock +266 -0
  14. data/acceptance/README.md +137 -0
  15. data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +2 -0
  16. data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +3 -0
  17. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
  18. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
  19. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
  20. data/acceptance/basics/.kitchen.yml +4 -0
  21. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +19 -0
  22. data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +6 -0
  23. data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +8 -0
  24. data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +2 -0
  25. data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +3 -0
  26. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +2 -0
  27. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +2 -0
  28. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +2 -0
  29. data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +16 -0
  30. data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +3 -0
  31. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +101 -0
  32. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +3 -0
  33. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +4 -0
  34. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +4 -0
  35. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +2 -0
  36. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +4 -0
  37. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +2 -0
  38. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +7 -0
  39. data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +44 -0
  40. data/acceptance/data-collector/.kitchen.yml +9 -0
  41. data/acceptance/data-collector/Berksfile +3 -0
  42. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +208 -0
  43. data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +8 -0
  44. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +2 -0
  45. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +1 -0
  46. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
  47. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
  48. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +61 -0
  49. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +2 -0
  50. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +43 -0
  51. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +41 -0
  52. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +3 -0
  53. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
  54. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
  55. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
  56. data/acceptance/top-cookbooks/.gitignore +1 -0
  57. data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +6 -0
  58. data/acceptance/top-cookbooks/.kitchen.iis.yml +4 -0
  59. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +7 -0
  60. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +7 -0
  61. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +7 -0
  62. data/acceptance/top-cookbooks/.kitchen.powershell.yml +4 -0
  63. data/acceptance/top-cookbooks/.kitchen.sql_server.yml +5 -0
  64. data/acceptance/top-cookbooks/.kitchen.winbox.yml +8 -0
  65. data/acceptance/top-cookbooks/.kitchen.windows.yml +38 -0
  66. data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +2 -0
  67. data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +2 -0
  68. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
  69. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
  70. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
  71. data/acceptance/trivial/.kitchen.yml +7 -0
  72. data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +5 -0
  73. data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +2 -0
  74. data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +2 -0
  75. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
  76. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
  77. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
  78. data/acceptance/windows-service/.kitchen.yml +7 -0
  79. data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +58 -0
  80. data/chef-universal-mingw32.gemspec +2 -2
  81. data/chef.gemspec +10 -10
  82. data/distro/powershell/chef/Chef.PowerShell.dll +0 -0
  83. data/distro/powershell/chef/Newtonsoft.Json.dll +0 -0
  84. data/lib/chef/api_client.rb +1 -1
  85. data/lib/chef/api_client/registration.rb +10 -2
  86. data/lib/chef/api_client_v1.rb +7 -6
  87. data/lib/chef/application.rb +75 -46
  88. data/lib/chef/application/client.rb +17 -19
  89. data/lib/chef/application/solo.rb +13 -16
  90. data/lib/chef/application/windows_service.rb +5 -5
  91. data/lib/chef/audit/audit_event_proxy.rb +1 -1
  92. data/lib/chef/audit/audit_reporter.rb +12 -12
  93. data/lib/chef/audit/runner.rb +2 -2
  94. data/lib/chef/chef_fs/chef_fs_data_store.rb +17 -31
  95. data/lib/chef/chef_fs/command_line.rb +9 -9
  96. data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +1 -1
  97. data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +1 -1
  98. data/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb +1 -1
  99. data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +2 -2
  100. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +2 -2
  101. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
  102. data/lib/chef/chef_fs/file_system/repository/base_file.rb +2 -2
  103. data/lib/chef/chef_fs/file_system_cache.rb +1 -1
  104. data/lib/chef/chef_fs/path_utils.rb +2 -2
  105. data/lib/chef/client.rb +61 -41
  106. data/lib/chef/config.rb +1 -2
  107. data/lib/chef/config_fetcher.rb +1 -1
  108. data/lib/chef/cookbook/chefignore.rb +2 -2
  109. data/lib/chef/cookbook/cookbook_collection.rb +2 -2
  110. data/lib/chef/cookbook/cookbook_version_loader.rb +0 -1
  111. data/lib/chef/cookbook/gem_installer.rb +4 -4
  112. data/lib/chef/cookbook/manifest_v2.rb +1 -1
  113. data/lib/chef/cookbook/metadata.rb +2 -3
  114. data/lib/chef/cookbook/remote_file_vendor.rb +4 -4
  115. data/lib/chef/cookbook/synchronizer.rb +2 -2
  116. data/lib/chef/cookbook/syntax_check.rb +4 -4
  117. data/lib/chef/cookbook_loader.rb +10 -2
  118. data/lib/chef/cookbook_site_streaming_uploader.rb +4 -4
  119. data/lib/chef/cookbook_uploader.rb +2 -3
  120. data/lib/chef/cookbook_version.rb +5 -11
  121. data/lib/chef/data_bag.rb +1 -3
  122. data/lib/chef/data_bag_item.rb +1 -7
  123. data/lib/chef/data_collector.rb +111 -35
  124. data/lib/chef/data_collector/messages.rb +2 -2
  125. data/lib/chef/data_collector/messages/helpers.rb +2 -4
  126. data/lib/chef/deprecated.rb +0 -4
  127. data/lib/chef/dsl/data_query.rb +1 -5
  128. data/lib/chef/dsl/include_attribute.rb +3 -7
  129. data/lib/chef/dsl/include_recipe.rb +1 -5
  130. data/lib/chef/dsl/platform_introspection.rb +9 -13
  131. data/lib/chef/dsl/reboot_pending.rb +1 -8
  132. data/lib/chef/dsl/recipe.rb +2 -12
  133. data/lib/chef/dsl/universal.rb +3 -3
  134. data/lib/chef/environment.rb +2 -4
  135. data/lib/chef/event_dispatch/dsl.rb +2 -2
  136. data/lib/chef/exceptions.rb +1 -1
  137. data/lib/chef/file_access_control/unix.rb +14 -14
  138. data/lib/chef/file_content_management/content_base.rb +3 -1
  139. data/lib/chef/file_content_management/deploy/cp.rb +2 -2
  140. data/lib/chef/file_content_management/deploy/mv_unix.rb +4 -4
  141. data/lib/chef/file_content_management/deploy/mv_windows.rb +1 -1
  142. data/lib/chef/file_content_management/tempfile.rb +1 -1
  143. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +3 -3
  144. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +3 -1
  145. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +2 -2
  146. data/lib/chef/handler.rb +1 -3
  147. data/lib/chef/handler/json_file.rb +1 -2
  148. data/lib/chef/http.rb +23 -11
  149. data/lib/chef/http/auth_credentials.rb +1 -1
  150. data/lib/chef/http/basic_client.rb +16 -17
  151. data/lib/chef/http/decompressor.rb +6 -6
  152. data/lib/chef/http/http_request.rb +5 -5
  153. data/lib/chef/http/json_output.rb +2 -2
  154. data/lib/chef/http/socketless_chef_zero_client.rb +2 -2
  155. data/lib/chef/http/validate_content_length.rb +5 -5
  156. data/lib/chef/knife.rb +1 -1
  157. data/lib/chef/knife/bootstrap.rb +12 -37
  158. data/lib/chef/knife/bootstrap/templates/chef-full.erb +7 -1
  159. data/lib/chef/knife/client_reregister.rb +1 -1
  160. data/lib/chef/knife/configure.rb +1 -3
  161. data/lib/chef/knife/cookbook_download.rb +2 -2
  162. data/lib/chef/knife/cookbook_metadata.rb +3 -3
  163. data/lib/chef/knife/cookbook_site_install.rb +2 -2
  164. data/lib/chef/knife/cookbook_site_share.rb +5 -5
  165. data/lib/chef/knife/cookbook_test.rb +2 -2
  166. data/lib/chef/knife/cookbook_upload.rb +2 -2
  167. data/lib/chef/knife/core/status_presenter.rb +22 -17
  168. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  169. data/lib/chef/knife/deps.rb +1 -1
  170. data/lib/chef/knife/environment_compare.rb +4 -4
  171. data/lib/chef/knife/exec.rb +3 -3
  172. data/lib/chef/knife/list.rb +1 -1
  173. data/lib/chef/knife/node_policy_set.rb +79 -0
  174. data/lib/chef/knife/osc_user_reregister.rb +1 -1
  175. data/lib/chef/knife/ssh.rb +35 -22
  176. data/lib/chef/knife/ssl_check.rb +3 -3
  177. data/lib/chef/knife/ssl_fetch.rb +1 -1
  178. data/lib/chef/knife/user_reregister.rb +1 -1
  179. data/lib/chef/knife/xargs.rb +1 -1
  180. data/lib/chef/mixin/api_version_request_handling.rb +2 -4
  181. data/lib/chef/mixin/create_path.rb +1 -1
  182. data/lib/chef/mixin/deprecation.rb +14 -14
  183. data/lib/chef/mixin/from_file.rb +5 -0
  184. data/lib/chef/mixin/get_source_from_package.rb +2 -2
  185. data/lib/chef/mixin/homebrew_user.rb +13 -2
  186. data/lib/chef/mixin/openssl_helper.rb +119 -0
  187. data/lib/chef/mixin/params_validate.rb +2 -8
  188. data/lib/chef/mixin/powershell_exec.rb +105 -0
  189. data/lib/chef/mixin/provides.rb +3 -2
  190. data/lib/chef/mixin/securable.rb +1 -5
  191. data/lib/chef/mixin/shell_out.rb +2 -2
  192. data/lib/chef/mixin/template.rb +1 -3
  193. data/lib/chef/mixin/user_context.rb +6 -3
  194. data/lib/chef/mixin/why_run.rb +6 -11
  195. data/lib/chef/monkey_patches/net_http.rb +7 -7
  196. data/lib/chef/monologger.rb +2 -86
  197. data/lib/chef/node.rb +30 -20
  198. data/lib/chef/node/attribute.rb +1 -6
  199. data/lib/chef/node/attribute_collections.rb +2 -2
  200. data/lib/chef/node/immutable_collections.rb +1 -1
  201. data/lib/chef/node/mixin/immutablize_array.rb +110 -3
  202. data/lib/chef/node/mixin/immutablize_hash.rb +111 -5
  203. data/lib/chef/node_map.rb +5 -23
  204. data/lib/chef/platform/query_helpers.rb +0 -12
  205. data/lib/chef/policy_builder/dynamic.rb +1 -1
  206. data/lib/chef/policy_builder/expand_node_object.rb +1 -1
  207. data/lib/chef/policy_builder/policyfile.rb +17 -1
  208. data/lib/chef/powershell.rb +55 -0
  209. data/lib/chef/property.rb +12 -34
  210. data/lib/chef/provider.rb +16 -39
  211. data/lib/chef/provider/apt_preference.rb +3 -3
  212. data/lib/chef/provider/apt_repository.rb +116 -34
  213. data/lib/chef/provider/batch.rb +1 -1
  214. data/lib/chef/provider/cookbook_file/content.rb +1 -1
  215. data/lib/chef/provider/cron.rb +10 -10
  216. data/lib/chef/provider/cron/unix.rb +3 -3
  217. data/lib/chef/provider/directory.rb +3 -3
  218. data/lib/chef/provider/dsc_resource.rb +4 -4
  219. data/lib/chef/provider/dsc_script.rb +4 -4
  220. data/lib/chef/provider/execute.rb +9 -5
  221. data/lib/chef/provider/file.rb +12 -12
  222. data/lib/chef/provider/git.rb +14 -14
  223. data/lib/chef/provider/group.rb +6 -6
  224. data/lib/chef/provider/group/aix.rb +1 -1
  225. data/lib/chef/provider/group/dscl.rb +4 -4
  226. data/lib/chef/provider/group/groupadd.rb +4 -4
  227. data/lib/chef/provider/group/groupmod.rb +3 -3
  228. data/lib/chef/provider/group/pw.rb +4 -4
  229. data/lib/chef/provider/group/windows.rb +2 -2
  230. data/lib/chef/provider/http_request.rb +12 -12
  231. data/lib/chef/provider/ifconfig.rb +6 -6
  232. data/lib/chef/provider/ifconfig/aix.rb +1 -1
  233. data/lib/chef/provider/ifconfig/debian.rb +3 -5
  234. data/lib/chef/provider/launchd.rb +1 -1
  235. data/lib/chef/provider/link.rb +6 -6
  236. data/lib/chef/provider/log.rb +1 -1
  237. data/lib/chef/provider/lwrp_base.rb +2 -2
  238. data/lib/chef/provider/mdadm.rb +10 -10
  239. data/lib/chef/provider/mount.rb +12 -12
  240. data/lib/chef/provider/mount/aix.rb +20 -21
  241. data/lib/chef/provider/mount/mount.rb +20 -15
  242. data/lib/chef/provider/mount/solaris.rb +6 -6
  243. data/lib/chef/provider/mount/windows.rb +7 -7
  244. data/lib/chef/provider/noop.rb +1 -1
  245. data/lib/chef/provider/ohai.rb +1 -1
  246. data/lib/chef/provider/osx_profile.rb +8 -8
  247. data/lib/chef/provider/package.rb +56 -42
  248. data/lib/chef/provider/package/apt.rb +24 -14
  249. data/lib/chef/provider/package/{aix.rb → bff.rb} +12 -12
  250. data/lib/chef/provider/package/cab.rb +3 -3
  251. data/lib/chef/provider/package/chocolatey.rb +1 -9
  252. data/lib/chef/provider/package/dnf/python_helper.rb +6 -6
  253. data/lib/chef/provider/package/dpkg.rb +9 -9
  254. data/lib/chef/provider/package/freebsd/base.rb +2 -2
  255. data/lib/chef/provider/package/freebsd/pkg.rb +2 -2
  256. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
  257. data/lib/chef/provider/package/homebrew.rb +3 -3
  258. data/lib/chef/provider/package/ips.rb +2 -2
  259. data/lib/chef/provider/package/macports.rb +3 -3
  260. data/lib/chef/provider/package/msu.rb +2 -2
  261. data/lib/chef/provider/package/openbsd.rb +3 -3
  262. data/lib/chef/provider/package/pacman.rb +3 -3
  263. data/lib/chef/provider/package/paludis.rb +2 -2
  264. data/lib/chef/provider/package/portage.rb +27 -33
  265. data/lib/chef/provider/package/powershell.rb +24 -9
  266. data/lib/chef/provider/package/rpm.rb +5 -6
  267. data/lib/chef/provider/package/rubygems.rb +32 -28
  268. data/lib/chef/provider/package/smartos.rb +6 -6
  269. data/lib/chef/provider/package/solaris.rb +10 -10
  270. data/lib/chef/provider/package/windows.rb +6 -15
  271. data/lib/chef/provider/package/windows/exe.rb +6 -4
  272. data/lib/chef/provider/package/windows/msi.rb +8 -6
  273. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -6
  274. data/lib/chef/provider/package/yum.rb +167 -398
  275. data/lib/chef/provider/package/yum/python_helper.rb +221 -0
  276. data/lib/chef/provider/package/yum/rpm_utils.rb +10 -1
  277. data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +79 -0
  278. data/lib/chef/provider/package/yum/simplejson/__init__.py +318 -0
  279. data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
  280. data/lib/chef/provider/package/yum/simplejson/decoder.py +354 -0
  281. data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
  282. data/lib/chef/provider/package/yum/simplejson/encoder.py +440 -0
  283. data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
  284. data/lib/chef/provider/package/yum/simplejson/scanner.py +65 -0
  285. data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
  286. data/lib/chef/provider/package/yum/simplejson/tool.py +37 -0
  287. data/lib/chef/provider/package/yum/version.rb +56 -0
  288. data/lib/chef/provider/package/yum/yum_cache.rb +33 -316
  289. data/lib/chef/provider/package/yum/yum_helper.py +198 -0
  290. data/lib/chef/provider/package/zypper.rb +9 -13
  291. data/lib/chef/provider/powershell_script.rb +3 -3
  292. data/lib/chef/provider/reboot.rb +3 -3
  293. data/lib/chef/provider/registry_key.rb +16 -4
  294. data/lib/chef/provider/remote_directory.rb +1 -3
  295. data/lib/chef/provider/remote_file/cache_control_data.rb +1 -1
  296. data/lib/chef/provider/remote_file/content.rb +4 -4
  297. data/lib/chef/provider/remote_file/http.rb +5 -3
  298. data/lib/chef/provider/remote_file/local_file.rb +1 -1
  299. data/lib/chef/provider/remote_file/network_file.rb +2 -2
  300. data/lib/chef/provider/route.rb +12 -11
  301. data/lib/chef/provider/ruby_block.rb +1 -1
  302. data/lib/chef/provider/script.rb +2 -2
  303. data/lib/chef/provider/service.rb +14 -14
  304. data/lib/chef/provider/service/aix.rb +3 -3
  305. data/lib/chef/provider/service/aixinit.rb +2 -2
  306. data/lib/chef/provider/service/debian.rb +5 -5
  307. data/lib/chef/provider/service/freebsd.rb +3 -3
  308. data/lib/chef/provider/service/gentoo.rb +2 -2
  309. data/lib/chef/provider/service/macosx.rb +8 -8
  310. data/lib/chef/provider/service/openbsd.rb +1 -1
  311. data/lib/chef/provider/service/simple.rb +7 -7
  312. data/lib/chef/provider/service/systemd.rb +4 -4
  313. data/lib/chef/provider/service/upstart.rb +10 -9
  314. data/lib/chef/provider/service/windows.rb +245 -70
  315. data/lib/chef/provider/subversion.rb +8 -8
  316. data/lib/chef/provider/systemd_unit.rb +25 -6
  317. data/lib/chef/provider/user.rb +10 -10
  318. data/lib/chef/provider/user/aix.rb +3 -3
  319. data/lib/chef/provider/user/dscl.rb +2 -2
  320. data/lib/chef/provider/user/pw.rb +4 -4
  321. data/lib/chef/provider/user/solaris.rb +1 -1
  322. data/lib/chef/provider/user/useradd.rb +3 -3
  323. data/lib/chef/provider/user/windows.rb +4 -4
  324. data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
  325. data/lib/chef/provider/{env.rb → windows_env.rb} +55 -19
  326. data/lib/chef/provider/windows_task.rb +27 -27
  327. data/lib/chef/provider/zypper_repository.rb +7 -7
  328. data/lib/chef/provider_resolver.rb +4 -4
  329. data/lib/chef/providers.rb +2 -9
  330. data/lib/chef/resource.rb +19 -13
  331. data/lib/chef/resource/action_class.rb +2 -2
  332. data/lib/chef/resource/apt_package.rb +10 -4
  333. data/lib/chef/resource/apt_preference.rb +20 -7
  334. data/lib/chef/resource/apt_repository.rb +21 -12
  335. data/lib/chef/resource/apt_update.rb +3 -3
  336. data/lib/chef/resource/bash.rb +6 -4
  337. data/lib/chef/resource/batch.rb +8 -6
  338. data/lib/chef/resource/bff_package.rb +8 -5
  339. data/lib/chef/resource/breakpoint.rb +9 -6
  340. data/lib/chef/resource/build_essential.rb +139 -0
  341. data/lib/chef/resource/cab_package.rb +5 -4
  342. data/lib/chef/resource/chef_gem.rb +1 -1
  343. data/lib/chef/resource/chef_handler.rb +130 -0
  344. data/lib/chef/resource/chocolatey_package.rb +6 -6
  345. data/lib/chef/resource/cookbook_file.rb +12 -9
  346. data/lib/chef/resource/cron.rb +14 -75
  347. data/lib/chef/resource/csh.rb +6 -4
  348. data/lib/chef/resource/directory.rb +7 -4
  349. data/lib/chef/resource/dmg_package.rb +161 -0
  350. data/lib/chef/resource/dnf_package.rb +10 -7
  351. data/lib/chef/resource/dpkg_package.rb +5 -3
  352. data/lib/chef/resource/dsc_resource.rb +11 -28
  353. data/lib/chef/resource/dsc_script.rb +14 -37
  354. data/lib/chef/resource/execute.rb +15 -78
  355. data/lib/chef/resource/file.rb +6 -5
  356. data/lib/chef/resource/file/verification.rb +5 -1
  357. data/lib/chef/resource/freebsd_package.rb +2 -1
  358. data/lib/chef/resource/gem_package.rb +6 -3
  359. data/lib/chef/resource/git.rb +4 -15
  360. data/lib/chef/resource/group.rb +7 -46
  361. data/lib/chef/resource/homebrew_cask.rb +98 -0
  362. data/lib/chef/resource/homebrew_package.rb +3 -3
  363. data/lib/chef/resource/homebrew_tap.rb +86 -0
  364. data/lib/chef/resource/hostname.rb +249 -0
  365. data/lib/chef/resource/http_request.rb +8 -22
  366. data/lib/chef/resource/ifconfig.rb +3 -2
  367. data/lib/chef/resource/ips_package.rb +4 -3
  368. data/lib/chef/resource/ksh.rb +7 -6
  369. data/lib/chef/resource/launchd.rb +4 -4
  370. data/lib/chef/resource/link.rb +18 -56
  371. data/lib/chef/resource/log.rb +6 -8
  372. data/lib/chef/resource/lwrp_base.rb +4 -5
  373. data/lib/chef/resource/macos_userdefaults.rb +133 -0
  374. data/lib/chef/resource/macosx_service.rb +7 -23
  375. data/lib/chef/resource/macports_package.rb +2 -1
  376. data/lib/chef/resource/mdadm.rb +13 -84
  377. data/lib/chef/resource/mount.rb +21 -127
  378. data/lib/chef/resource/msu_package.rb +4 -4
  379. data/lib/chef/resource/ohai.rb +5 -3
  380. data/lib/chef/resource/ohai_hint.rb +93 -0
  381. data/lib/chef/resource/openbsd_package.rb +3 -3
  382. data/lib/chef/resource/openssl_dhparam.rb +80 -0
  383. data/lib/chef/resource/openssl_rsa_private_key.rb +93 -0
  384. data/lib/chef/resource/openssl_rsa_public_key.rb +73 -0
  385. data/lib/chef/resource/osx_profile.rb +9 -10
  386. data/lib/chef/resource/package.rb +8 -6
  387. data/lib/chef/resource/pacman_package.rb +3 -2
  388. data/lib/chef/resource/paludis_package.rb +4 -4
  389. data/lib/chef/resource/perl.rb +6 -4
  390. data/lib/chef/resource/portage_package.rb +3 -6
  391. data/lib/chef/resource/powershell_package.rb +9 -13
  392. data/lib/chef/resource/powershell_script.rb +9 -8
  393. data/lib/chef/resource/python.rb +5 -4
  394. data/lib/chef/resource/reboot.rb +8 -9
  395. data/lib/chef/resource/registry_key.rb +9 -19
  396. data/lib/chef/resource/remote_directory.rb +5 -3
  397. data/lib/chef/resource/remote_file.rb +11 -50
  398. data/lib/chef/resource/resource_notification.rb +2 -2
  399. data/lib/chef/resource/rhsm_errata.rb +44 -0
  400. data/lib/chef/resource/rhsm_errata_level.rb +51 -0
  401. data/lib/chef/resource/rhsm_register.rb +162 -0
  402. data/lib/chef/resource/rhsm_repo.rb +62 -0
  403. data/lib/chef/resource/rhsm_subscription.rb +95 -0
  404. data/lib/chef/resource/route.rb +3 -1
  405. data/lib/chef/resource/rpm_package.rb +3 -3
  406. data/lib/chef/resource/ruby.rb +6 -4
  407. data/lib/chef/resource/ruby_block.rb +6 -17
  408. data/lib/chef/resource/scm.rb +14 -146
  409. data/lib/chef/resource/script.rb +7 -5
  410. data/lib/chef/resource/service.rb +2 -1
  411. data/lib/chef/resource/smartos_package.rb +4 -3
  412. data/lib/chef/resource/solaris_package.rb +3 -2
  413. data/lib/chef/resource/subversion.rb +20 -4
  414. data/lib/chef/resource/sudo.rb +231 -0
  415. data/lib/chef/resource/support/sudoer.erb +18 -0
  416. data/lib/chef/resource/swap_file.rb +209 -0
  417. data/lib/chef/resource/sysctl.rb +111 -0
  418. data/lib/chef/resource/systemd_unit.rb +6 -5
  419. data/lib/chef/resource/template.rb +6 -27
  420. data/lib/chef/resource/windows_ad_join.rb +92 -0
  421. data/lib/chef/resource/windows_auto_run.rb +87 -0
  422. data/lib/chef/resource/{env.rb → windows_env.rb} +11 -5
  423. data/lib/chef/resource/windows_feature.rb +95 -0
  424. data/lib/chef/resource/windows_feature_dism.rb +226 -0
  425. data/lib/chef/resource/windows_feature_powershell.rb +256 -0
  426. data/lib/chef/resource/windows_font.rb +127 -0
  427. data/lib/chef/resource/windows_package.rb +5 -3
  428. data/lib/chef/resource/windows_pagefile.rb +206 -0
  429. data/lib/chef/resource/windows_path.rb +3 -3
  430. data/lib/chef/resource/windows_printer.rb +148 -0
  431. data/lib/chef/resource/windows_printer_port.rb +136 -0
  432. data/lib/chef/resource/windows_service.rb +79 -38
  433. data/lib/chef/resource/windows_shortcut.rb +79 -0
  434. data/lib/chef/resource/windows_task.rb +5 -5
  435. data/lib/chef/resource/yum_package.rb +8 -2
  436. data/lib/chef/resource/yum_repository.rb +12 -5
  437. data/lib/chef/resource/zypper_package.rb +5 -3
  438. data/lib/chef/resource/zypper_repository.rb +17 -12
  439. data/lib/chef/resource_inspector.rb +89 -0
  440. data/lib/chef/resource_reporter.rb +5 -6
  441. data/lib/chef/resource_resolver.rb +4 -4
  442. data/lib/chef/resources.rb +31 -6
  443. data/lib/chef/role.rb +1 -3
  444. data/lib/chef/run_context.rb +21 -12
  445. data/lib/chef/run_context/cookbook_compiler.rb +18 -9
  446. data/lib/chef/search/query.rb +1 -2
  447. data/lib/chef/shell.rb +0 -1
  448. data/lib/chef/shell/model_wrapper.rb +1 -1
  449. data/lib/chef/shell/shell_session.rb +4 -3
  450. data/lib/chef/util/diff.rb +2 -2
  451. data/lib/chef/util/dsc/configuration_generator.rb +1 -1
  452. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  453. data/lib/chef/util/dsc/local_configuration_manager.rb +4 -4
  454. data/lib/chef/util/selinux.rb +1 -1
  455. data/lib/chef/util/windows/logon_session.rb +5 -2
  456. data/lib/chef/util/windows/net_user.rb +2 -2
  457. data/lib/chef/util/windows/volume.rb +0 -4
  458. data/lib/chef/version.rb +1 -1
  459. data/lib/chef/win32/api/error.rb +2 -2
  460. data/lib/chef/win32/api/net.rb +1 -1
  461. data/lib/chef/win32/api/security.rb +11 -0
  462. data/lib/chef/win32/eventlog.rb +2 -2
  463. data/lib/chef/win32/mutex.rb +1 -1
  464. data/lib/chef/win32/registry.rb +17 -17
  465. data/lib/chef/win32/security.rb +34 -12
  466. data/lib/chef/win32/security/sid.rb +1 -2
  467. data/lib/chef/win32/version.rb +2 -15
  468. data/lib/chef/win32_service_constants.rb +143 -0
  469. data/spec/data/mixin/invalid_data.rb +3 -0
  470. data/spec/data/mixin/real_data.rb +2 -0
  471. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.aarch64.rpm +0 -0
  472. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.i686.rpm +0 -0
  473. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64.rpm +0 -0
  474. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64le.rpm +0 -0
  475. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.s390x.rpm +0 -0
  476. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.src.rpm +0 -0
  477. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.x86_64.rpm +0 -0
  478. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.aarch64.rpm +0 -0
  479. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.i686.rpm +0 -0
  480. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64.rpm +0 -0
  481. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64le.rpm +0 -0
  482. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.s390x.rpm +0 -0
  483. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.src.rpm +0 -0
  484. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.x86_64.rpm +0 -0
  485. data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
  486. data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
  487. data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
  488. data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
  489. data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
  490. data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
  491. data/spec/functional/assets/yumrepo/repodata/filelists.xml.gz +0 -0
  492. data/spec/functional/assets/yumrepo/repodata/other.xml.gz +0 -0
  493. data/spec/functional/assets/yumrepo/repodata/primary.xml.gz +0 -0
  494. data/spec/functional/assets/yumrepo/repodata/repomd.xml +19 -53
  495. data/spec/functional/event_loggers/windows_eventlog_spec.rb +2 -2
  496. data/spec/functional/http/simple_spec.rb +6 -6
  497. data/spec/functional/mixin/from_file_spec.rb +82 -0
  498. data/spec/functional/notifications_spec.rb +1 -1
  499. data/spec/functional/resource/{package_spec.rb → apt_package_spec.rb} +4 -4
  500. data/spec/functional/resource/dnf_package_spec.rb +115 -115
  501. data/spec/functional/resource/ifconfig_spec.rb +1 -2
  502. data/spec/functional/resource/link_spec.rb +9 -13
  503. data/spec/functional/resource/powershell_script_spec.rb +0 -2
  504. data/spec/functional/resource/registry_spec.rb +3 -3
  505. data/spec/functional/resource/remote_file_spec.rb +4 -4
  506. data/spec/functional/resource/user/windows_spec.rb +3 -1
  507. data/spec/functional/resource/windows_env_spec.rb +285 -0
  508. data/spec/functional/resource/windows_task_spec.rb +303 -2
  509. data/spec/functional/resource/yum_package_spec.rb +949 -0
  510. data/spec/functional/root_alias_spec.rb +1 -1
  511. data/spec/functional/win32/security_spec.rb +60 -7
  512. data/spec/functional/win32/versions_spec.rb +7 -9
  513. data/spec/integration/client/client_spec.rb +99 -7
  514. data/spec/integration/knife/chef_fs_data_store_spec.rb +23 -4
  515. data/spec/integration/recipes/recipe_dsl_spec.rb +26 -26
  516. data/spec/integration/recipes/resource_action_spec.rb +25 -120
  517. data/spec/spec_helper.rb +10 -2
  518. data/spec/support/lib/chef/resource/one_two_three_four.rb +0 -2
  519. data/spec/support/lib/chef/resource/zen_master.rb +1 -3
  520. data/spec/support/mock/constant.rb +1 -1
  521. data/spec/support/platform_helpers.rb +24 -7
  522. data/spec/support/shared/context/client.rb +13 -10
  523. data/spec/support/shared/examples/client.rb +50 -0
  524. data/spec/support/shared/functional/file_resource.rb +1 -1
  525. data/spec/support/shared/functional/securable_resource.rb +2 -2
  526. data/spec/support/shared/integration/knife_support.rb +5 -0
  527. data/spec/unit/application/client_spec.rb +39 -13
  528. data/spec/unit/application/solo_spec.rb +1 -8
  529. data/spec/unit/application_spec.rb +66 -2
  530. data/spec/unit/audit/audit_event_proxy_spec.rb +1 -1
  531. data/spec/unit/audit/audit_reporter_spec.rb +16 -16
  532. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  533. data/spec/unit/client_spec.rb +3 -4
  534. data/spec/unit/cookbook/metadata_spec.rb +1 -1
  535. data/spec/unit/cookbook_loader_spec.rb +6 -6
  536. data/spec/unit/cookbook_manifest_spec.rb +2 -2
  537. data/spec/unit/cookbook_version_file_specificity_spec.rb +5 -25
  538. data/spec/unit/data_collector/messages/helpers_spec.rb +9 -0
  539. data/spec/unit/data_collector/resource_report_spec.rb +3 -3
  540. data/spec/unit/data_collector_spec.rb +135 -1
  541. data/spec/unit/dsl/reboot_pending_spec.rb +0 -13
  542. data/spec/unit/dsl/recipe_spec.rb +0 -13
  543. data/spec/unit/environment_spec.rb +2 -2
  544. data/spec/unit/exceptions_spec.rb +1 -1
  545. data/spec/unit/http/validate_content_length_spec.rb +5 -5
  546. data/spec/unit/knife/bootstrap_spec.rb +11 -15
  547. data/spec/unit/knife/configure_spec.rb +1 -2
  548. data/spec/unit/knife/cookbook_test_spec.rb +2 -2
  549. data/spec/unit/knife/core/gem_glob_loader_spec.rb +2 -2
  550. data/spec/unit/knife/core/node_editor_spec.rb +6 -6
  551. data/spec/unit/knife/environment_compare_spec.rb +3 -3
  552. data/spec/unit/knife/node_edit_spec.rb +3 -1
  553. data/spec/unit/knife/node_policy_set_spec.rb +122 -0
  554. data/spec/unit/knife/osc_user_reregister_spec.rb +1 -1
  555. data/spec/unit/knife/osc_user_show_spec.rb +1 -1
  556. data/spec/unit/knife/ssh_spec.rb +18 -0
  557. data/spec/unit/log/syslog_spec.rb +2 -4
  558. data/spec/unit/log/winevt_spec.rb +2 -3
  559. data/spec/unit/lwrp_spec.rb +4 -4
  560. data/spec/unit/mixin/homebrew_user_spec.rb +1 -5
  561. data/spec/unit/mixin/openssl_helper_spec.rb +252 -0
  562. data/spec/unit/mixin/powershell_exec_spec.rb +43 -0
  563. data/spec/unit/node/attribute_spec.rb +3 -3
  564. data/spec/unit/node/immutable_collections_spec.rb +11 -1
  565. data/spec/unit/node_map_spec.rb +2 -2
  566. data/spec/unit/node_spec.rb +11 -16
  567. data/spec/unit/platform/query_helpers_spec.rb +0 -13
  568. data/spec/unit/policy_builder/policyfile_spec.rb +79 -2
  569. data/spec/unit/property/validation_spec.rb +51 -4
  570. data/spec/unit/provider/apt_repository_spec.rb +97 -32
  571. data/spec/unit/provider/cookbook_file_spec.rb +2 -1
  572. data/spec/unit/provider/cron/unix_spec.rb +8 -3
  573. data/spec/unit/provider/cron_spec.rb +27 -32
  574. data/spec/unit/provider/file_spec.rb +2 -1
  575. data/spec/unit/provider/group/dscl_spec.rb +7 -8
  576. data/spec/unit/provider/group/gpasswd_spec.rb +5 -2
  577. data/spec/unit/provider/group/groupmod_spec.rb +6 -3
  578. data/spec/unit/provider/group/pw_spec.rb +5 -2
  579. data/spec/unit/provider/link_spec.rb +6 -4
  580. data/spec/unit/provider/log_spec.rb +18 -13
  581. data/spec/unit/provider/mount/aix_spec.rb +1 -9
  582. data/spec/unit/provider/mount/mount_spec.rb +22 -0
  583. data/spec/unit/provider/osx_profile_spec.rb +3 -3
  584. data/spec/unit/provider/package/apt_spec.rb +431 -411
  585. data/spec/unit/provider/package/{aix_spec.rb → bff_spec.rb} +7 -5
  586. data/spec/unit/provider/package/chocolatey_spec.rb +0 -13
  587. data/spec/unit/provider/package/homebrew_spec.rb +2 -1
  588. data/spec/unit/provider/package/portage_spec.rb +11 -147
  589. data/spec/unit/provider/package/powershell_spec.rb +208 -57
  590. data/spec/unit/provider/package/rubygems_spec.rb +11 -2
  591. data/spec/unit/provider/package/windows_spec.rb +0 -19
  592. data/spec/unit/provider/package/yum/python_helper_spec.rb +29 -0
  593. data/spec/unit/provider/package/yum/yum_cache_spec.rb +86 -4
  594. data/spec/unit/provider/package/zypper_spec.rb +8 -0
  595. data/spec/unit/provider/package_spec.rb +47 -20
  596. data/spec/unit/provider/registry_key_spec.rb +7 -1
  597. data/spec/unit/provider/remote_directory_spec.rb +1 -1
  598. data/spec/unit/provider/remote_file_spec.rb +2 -1
  599. data/spec/unit/provider/service/macosx_spec.rb +4 -2
  600. data/spec/unit/provider/service/systemd_service_spec.rb +2 -10
  601. data/spec/unit/provider/service/windows_spec.rb +447 -30
  602. data/spec/unit/provider/systemd_unit_spec.rb +50 -13
  603. data/spec/unit/provider/template_spec.rb +2 -4
  604. data/spec/unit/provider/user/windows_spec.rb +3 -0
  605. data/spec/unit/provider/{env_spec.rb → windows_env_spec.rb} +102 -12
  606. data/spec/unit/provider/zypper_repository_spec.rb +4 -2
  607. data/spec/unit/provider_resolver_spec.rb +23 -38
  608. data/spec/unit/recipe_spec.rb +4 -4
  609. data/spec/unit/resource/apt_package_spec.rb +4 -0
  610. data/spec/unit/resource/apt_preference_spec.rb +0 -5
  611. data/spec/unit/resource/apt_repository_spec.rb +35 -10
  612. data/spec/unit/resource/apt_update_spec.rb +0 -5
  613. data/spec/unit/resource/bash_spec.rb +2 -3
  614. data/spec/unit/resource/batch_spec.rb +1 -4
  615. data/spec/unit/resource/{timestamped_deploy_spec.rb → build_essential_spec.rb} +10 -11
  616. data/spec/unit/resource/cab_package_spec.rb +1 -3
  617. data/{lib/chef/mixin/language_include_attribute.rb → spec/unit/resource/chef_handler_spec.rb} +13 -12
  618. data/spec/unit/resource/chocolatey_package_spec.rb +1 -3
  619. data/spec/unit/resource/cron_spec.rb +0 -5
  620. data/spec/unit/resource/csh_spec.rb +2 -3
  621. data/spec/unit/resource/directory_spec.rb +1 -6
  622. data/{lib/chef/resource/deploy_revision.rb → spec/unit/resource/dmg_package_spec.rb} +14 -10
  623. data/spec/unit/resource/dnf_package_spec.rb +20 -26
  624. data/spec/unit/resource/file_spec.rb +1 -1
  625. data/spec/unit/resource/freebsd_package_spec.rb +22 -23
  626. data/spec/unit/resource/gem_package_spec.rb +3 -5
  627. data/spec/unit/resource/git_spec.rb +1 -2
  628. data/spec/unit/resource/group_spec.rb +0 -5
  629. data/spec/unit/resource/homebrew_cask_spec.rb +35 -0
  630. data/spec/unit/resource/homebrew_package_spec.rb +4 -0
  631. data/spec/unit/resource/homebrew_tap_spec.rb +39 -0
  632. data/spec/unit/resource/hostname_spec.rb +43 -0
  633. data/spec/unit/resource/http_request_spec.rb +0 -5
  634. data/spec/unit/resource/ips_package_spec.rb +4 -0
  635. data/spec/unit/resource/ksh_spec.rb +2 -3
  636. data/spec/unit/resource/launchd_spec.rb +0 -5
  637. data/spec/unit/resource/link_spec.rb +1 -6
  638. data/spec/unit/resource/log_spec.rb +0 -5
  639. data/spec/unit/resource/macos_user_defaults_spec.rb +45 -0
  640. data/spec/unit/resource/mdadm_spec.rb +0 -5
  641. data/spec/unit/resource/mount_spec.rb +1 -6
  642. data/spec/unit/resource/msu_package_spec.rb +1 -3
  643. data/spec/unit/resource/ohai_hint_spec.rb +43 -0
  644. data/spec/unit/resource/ohai_spec.rb +0 -5
  645. data/spec/unit/resource/openbsd_package_spec.rb +8 -12
  646. data/spec/unit/resource/openssl_dhparam.rb +51 -0
  647. data/spec/unit/resource/openssl_rsa_private_key_spec.rb +59 -0
  648. data/spec/unit/resource/openssl_rsa_public_key_spec.rb +39 -0
  649. data/spec/unit/resource/osx_profile_spec.rb +0 -5
  650. data/spec/unit/resource/package_spec.rb +0 -5
  651. data/spec/unit/resource/perl_spec.rb +2 -3
  652. data/spec/unit/resource/portage_package_spec.rb +3 -7
  653. data/spec/unit/resource/powershell_package_spec.rb +11 -4
  654. data/spec/unit/resource/python_spec.rb +0 -5
  655. data/spec/unit/resource/reboot_spec.rb +0 -5
  656. data/spec/unit/resource/registry_key_spec.rb +5 -6
  657. data/spec/unit/resource/remote_directory_spec.rb +0 -5
  658. data/spec/unit/resource/remote_file_spec.rb +1 -5
  659. data/spec/unit/resource/rhsm_errata_level_spec.rb +46 -0
  660. data/{lib/chef/mixin/language_include_recipe.rb → spec/unit/resource/rhsm_errata_spec.rb} +14 -10
  661. data/spec/unit/resource/rhsm_register_spec.rb +199 -0
  662. data/spec/unit/resource/rhsm_repo_spec.rb +59 -0
  663. data/spec/unit/resource/rhsm_subscription_spec.rb +93 -0
  664. data/spec/unit/resource/route_spec.rb +1 -6
  665. data/spec/unit/resource/rpm_package_spec.rb +4 -0
  666. data/spec/unit/resource/ruby_block_spec.rb +0 -5
  667. data/spec/unit/resource/ruby_spec.rb +0 -5
  668. data/spec/unit/resource/scm_spec.rb +0 -15
  669. data/spec/unit/resource/service_spec.rb +0 -5
  670. data/spec/unit/resource/subversion_spec.rb +12 -0
  671. data/spec/unit/resource/sudo_spec.rb +92 -0
  672. data/spec/unit/resource/swap_file_spec.rb +40 -0
  673. data/spec/unit/resource/sysctl_spec.rb +56 -0
  674. data/spec/unit/resource/systemd_unit_spec.rb +5 -7
  675. data/spec/unit/resource/template_spec.rb +1 -3
  676. data/spec/unit/resource/user_spec.rb +0 -5
  677. data/spec/unit/resource/windows_ad_join.rb +45 -0
  678. data/spec/unit/resource/windows_auto_run_spec.rb +50 -0
  679. data/spec/unit/resource/{env_spec.rb → windows_env_spec.rb} +19 -21
  680. data/spec/unit/resource/windows_feature.rb +41 -0
  681. data/spec/unit/resource/windows_feature_dism.rb +51 -0
  682. data/spec/unit/resource/windows_feature_powershell.rb +51 -0
  683. data/spec/unit/resource/windows_font_spec.rb +44 -0
  684. data/spec/unit/resource/windows_package_spec.rb +2 -2
  685. data/spec/unit/resource/windows_pagefile_spec.rb +45 -0
  686. data/spec/unit/resource/windows_printer_port_spec.rb +45 -0
  687. data/spec/unit/resource/windows_printer_spec.rb +45 -0
  688. data/spec/unit/resource/windows_service_spec.rb +25 -4
  689. data/spec/unit/resource/windows_shortcut_spec.rb +39 -0
  690. data/spec/unit/resource/windows_task_spec.rb +0 -5
  691. data/spec/unit/resource/yum_repository_spec.rb +4 -0
  692. data/spec/unit/resource/zypper_repository_spec.rb +4 -0
  693. data/spec/unit/resource_inspector_spec.rb +60 -0
  694. data/spec/unit/resource_reporter_spec.rb +2 -2
  695. data/spec/unit/resource_spec.rb +0 -5
  696. data/spec/unit/shell/shell_session_spec.rb +0 -1
  697. data/spec/unit/user_spec.rb +1 -1
  698. data/spec/unit/util/windows/logon_session_spec.rb +2 -1
  699. data/spec/unit/win32/security_spec.rb +44 -1
  700. data/spec/unit/windows_service_spec.rb +4 -2
  701. data/tasks/announce.rb +1 -1
  702. data/tasks/cbgb.rb +84 -0
  703. data/tasks/dependencies.rb +38 -2
  704. data/tasks/maintainers.rb +7 -7
  705. data/tasks/rspec.rb +2 -2
  706. data/tasks/templates/prerelease.md.erb +2 -11
  707. data/tasks/templates/release.md.erb +1 -9
  708. metadata +225 -96
  709. data/lib/chef/knife/help.rb +0 -101
  710. data/lib/chef/knife/help_topics.rb +0 -4
  711. data/lib/chef/knife/index_rebuild.rb +0 -133
  712. data/lib/chef/mixin/language.rb +0 -48
  713. data/lib/chef/mixin/recipe_definition_dsl_core.rb +0 -35
  714. data/lib/chef/provider/deploy.rb +0 -470
  715. data/lib/chef/provider/deploy/revision.rb +0 -107
  716. data/lib/chef/provider/deploy/timestamped.rb +0 -34
  717. data/lib/chef/provider/env/windows.rb +0 -76
  718. data/lib/chef/provider/erl_call.rb +0 -76
  719. data/lib/chef/provider/package/yum/yum-dump.py +0 -307
  720. data/lib/chef/resource/deploy.rb +0 -449
  721. data/lib/chef/resource/erl_call.rb +0 -90
  722. data/lib/chef/resource/timestamped_deploy.rb +0 -26
  723. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.i686.rpm +0 -0
  724. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.src.rpm +0 -0
  725. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.x86_64.rpm +0 -0
  726. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.i686.rpm +0 -0
  727. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.src.rpm +0 -0
  728. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.x86_64.rpm +0 -0
  729. data/spec/functional/assets/yumrepo/repodata/313329137b55fd333b2dc66394a6661a2befa6cc535d8460d92a4a78a9c581f0-primary.sqlite.bz2 +0 -0
  730. data/spec/functional/assets/yumrepo/repodata/31ac4db5d5ac593728fcc26aef82b7b93c4cc4dbec843786b1845b939b658553-other.xml.gz +0 -0
  731. data/spec/functional/assets/yumrepo/repodata/4ac40fa3c6728c1401318e2e20a997436624e83dcf7a5f952b851ef422637773-filelists.sqlite.bz2 +0 -0
  732. data/spec/functional/assets/yumrepo/repodata/66391e53f0510b98b3f0b79f40ba1048026d9a1ef20905d9c40ba6f5411f3243-primary.xml.gz +0 -0
  733. data/spec/functional/assets/yumrepo/repodata/8b34697595fcc87928e12d24644dda9462c3857bd932861e28bc77ae1f31be16-filelists.xml.gz +0 -0
  734. data/spec/functional/assets/yumrepo/repodata/b97cca3fe14bcf06c52be4449b6108f7731239ff221111dcce8aada5467f60dc-other.sqlite.bz2 +0 -0
  735. data/spec/functional/resource/deploy_revision_spec.rb +0 -881
  736. data/spec/functional/resource/env_spec.rb +0 -192
  737. data/spec/unit/knife/index_rebuild_spec.rb +0 -125
  738. data/spec/unit/knife/knife_help.rb +0 -92
  739. data/spec/unit/provider/deploy/revision_spec.rb +0 -110
  740. data/spec/unit/provider/deploy/timestamped_spec.rb +0 -40
  741. data/spec/unit/provider/deploy_spec.rb +0 -641
  742. data/spec/unit/provider/env/windows_spec.rb +0 -103
  743. data/spec/unit/provider/erl_call_spec.rb +0 -77
  744. data/spec/unit/provider/package/yum_spec.rb +0 -2294
  745. data/spec/unit/resource/deploy_revision_spec.rb +0 -42
  746. data/spec/unit/resource/deploy_spec.rb +0 -283
  747. data/spec/unit/resource/erl_call_spec.rb +0 -81
@@ -1,6 +1,5 @@
1
1
  #
2
- # Author::
3
- # Copyright:: Copyright 2009-2016, Chef Software Inc.
2
+ # Copyright:: Copyright 2009-2018, Chef Software Inc.
4
3
  # License:: Apache License, Version 2.0
5
4
  #
6
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +21,7 @@ class Chef
22
21
  class Provider
23
22
  class Mount
24
23
  class Aix < Chef::Provider::Mount::Mount
25
- provides :mount, platform: %w{aix}
24
+ provides :mount, platform: "aix"
26
25
 
27
26
  # Override for aix specific handling
28
27
  def initialize(new_resource, run_context)
@@ -41,11 +40,11 @@ class Chef
41
40
  enabled = false
42
41
 
43
42
  regex_arr = device_fstab_regex.split(":")
44
- if regex_arr.size.eql?(2)
43
+ if regex_arr.size == 2
45
44
  nodename = regex_arr[0]
46
- devicename = regex_arr[1]
45
+ devicename = regex_arr[1]
47
46
  else
48
- devicename = regex_arr[0]
47
+ devicename = regex_arr[0]
49
48
  end
50
49
  # lsfs o/p = #MountPoint:Device:Vfs:Nodename:Type:Size:Options:AutoMount:Acct
51
50
  # search only for current mount point
@@ -58,7 +57,7 @@ class Chef
58
57
  enabled = true
59
58
  @current_resource.fstype($1)
60
59
  @current_resource.options($4)
61
- Chef::Log.debug("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
60
+ logger.trace("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
62
61
  next
63
62
  when /^#{Regexp.escape(@new_resource.mount_point)}:#{nodename}:(\S+)::(\S+)?:(\S+):(\S+):(\S+):(\S+)/
64
63
  # mount point entry with hostname or ipv4 address
@@ -66,7 +65,7 @@ class Chef
66
65
  @current_resource.fstype($1)
67
66
  @current_resource.options($4)
68
67
  @current_resource.device("")
69
- Chef::Log.debug("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
68
+ logger.trace("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
70
69
  next
71
70
  when /^#{Regexp.escape(@new_resource.mount_point)}:(\S+)?:(\S+):#{devicename}:(\S+)?:(\S+):(\S+):(\S+):(\S+)/
72
71
  # mount point entry with hostname or ipv4 address
@@ -74,12 +73,12 @@ class Chef
74
73
  @current_resource.fstype($2)
75
74
  @current_resource.options($5)
76
75
  @current_resource.device(devicename + "/")
77
- Chef::Log.debug("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
76
+ logger.trace("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
78
77
  next
79
78
  when /^#{Regexp.escape(@new_resource.mount_point)}:(.*?):(.*?):(.*?):(.*?):(.*?):(.*?):(.*?):(.*?)/
80
- if $3.split("=")[0].eql?("LABEL") || $1.split("=")[0].eql?("LABEL")
79
+ if $3.split("=")[0] == "LABEL" || $1.split("=")[0] == "LABEL"
81
80
  @current_resource.device_type("label")
82
- elsif $3.split("=")[0].eql?("UUID") || $1.split("=")[0].eql?("UUID")
81
+ elsif $3.split("=")[0] == "UUID" || $1.split("=")[0] == "UUID"
83
82
  @current_resource.device_type("uuid")
84
83
  else
85
84
  @current_resource.device_type("device")
@@ -87,10 +86,10 @@ class Chef
87
86
 
88
87
  if @current_resource.device_type != @new_resource.device_type
89
88
  enabled = true
90
- Chef::Log.debug("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
89
+ logger.trace("Found mount point #{@new_resource.mount_point} :: device_type #{@current_resource.device_type} in /etc/filesystems")
91
90
  else
92
91
  enabled = false
93
- Chef::Log.debug("Found conflicting mount point #{@new_resource.mount_point} in /etc/filesystems")
92
+ logger.trace("Found conflicting mount point #{@new_resource.mount_point} in /etc/filesystems")
94
93
  end
95
94
  end
96
95
 
@@ -110,10 +109,10 @@ class Chef
110
109
  case line
111
110
  when /#{search_device}\s+#{Regexp.escape(@new_resource.mount_point)}/
112
111
  mounted = true
113
- Chef::Log.debug("Special device #{device_logstring} mounted as #{@new_resource.mount_point}")
112
+ logger.trace("Special device #{device_logstring} mounted as #{@new_resource.mount_point}")
114
113
  when /^[\/\w]+\s+#{Regexp.escape(@new_resource.mount_point)}\s+/
115
114
  mounted = false
116
- Chef::Log.debug("Found conflicting mount point #{@new_resource.mount_point} in /etc/fstab")
115
+ logger.trace("Found conflicting mount point #{@new_resource.mount_point} in /etc/fstab")
117
116
  end
118
117
  end
119
118
  @current_resource.mounted(mounted)
@@ -138,9 +137,9 @@ class Chef
138
137
  end
139
138
  command << " #{@new_resource.mount_point}"
140
139
  shell_out!(command)
141
- Chef::Log.debug("#{@new_resource} is mounted at #{@new_resource.mount_point}")
140
+ logger.trace("#{@new_resource} is mounted at #{@new_resource.mount_point}")
142
141
  else
143
- Chef::Log.debug("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
142
+ logger.trace("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
144
143
  end
145
144
  end
146
145
 
@@ -154,7 +153,7 @@ class Chef
154
153
 
155
154
  def enable_fs
156
155
  if @current_resource.enabled && mount_options_unchanged?
157
- Chef::Log.debug("#{@new_resource} is already enabled - nothing to do")
156
+ logger.trace("#{@new_resource} is already enabled - nothing to do")
158
157
  return nil
159
158
  end
160
159
 
@@ -164,7 +163,7 @@ class Chef
164
163
  disable_fs
165
164
  end
166
165
  ::File.open("/etc/filesystems", "a") do |fstab|
167
- fstab.puts("\n\n#{@new_resource.mount_point}:")
166
+ fstab.puts("#{@new_resource.mount_point}:")
168
167
  if network_device?
169
168
  device_details = device_fstab.split(":")
170
169
  fstab.puts("\tdev\t\t= #{device_details[1]}")
@@ -175,7 +174,7 @@ class Chef
175
174
  fstab.puts("\tvfs\t\t= #{@new_resource.fstype}")
176
175
  fstab.puts("\tmount\t\t= false")
177
176
  fstab.puts "\toptions\t\t= #{@new_resource.options.join(',')}" unless @new_resource.options.nil? || @new_resource.options.empty?
178
- Chef::Log.debug("#{@new_resource} is enabled at #{@new_resource.mount_point}")
177
+ logger.trace("#{@new_resource} is enabled at #{@new_resource.mount_point}")
179
178
  end
180
179
  end
181
180
 
@@ -211,7 +210,7 @@ class Chef
211
210
  contents.each { |line| fstab.puts line }
212
211
  end
213
212
  else
214
- Chef::Log.debug("#{@new_resource} is not enabled - nothing to do")
213
+ logger.trace("#{@new_resource} is not enabled - nothing to do")
215
214
  end
216
215
  end
217
216
 
@@ -64,11 +64,11 @@ class Chef
64
64
  @current_resource.options($3)
65
65
  @current_resource.dump($4.to_i)
66
66
  @current_resource.pass($5.to_i)
67
- Chef::Log.debug("Found mount #{device_fstab} to #{@new_resource.mount_point} in /etc/fstab")
67
+ logger.trace("Found mount #{device_fstab} to #{@new_resource.mount_point} in /etc/fstab")
68
68
  next
69
69
  when /^[\/\w]+\s+#{Regexp.escape(@new_resource.mount_point)}\s+/
70
70
  enabled = false
71
- Chef::Log.debug("Found conflicting mount point #{@new_resource.mount_point} in /etc/fstab")
71
+ logger.trace("Found conflicting mount point #{@new_resource.mount_point} in /etc/fstab")
72
72
  end
73
73
  end
74
74
  @current_resource.enabled(enabled)
@@ -90,10 +90,10 @@ class Chef
90
90
  case line
91
91
  when /^#{device_mount_regex}\s+on\s+#{Regexp.escape(real_mount_point)}\s/
92
92
  mounted = true
93
- Chef::Log.debug("Special device #{device_logstring} mounted as #{real_mount_point}")
93
+ logger.trace("Special device #{device_logstring} mounted as #{real_mount_point}")
94
94
  when /^([\/\w])+\son\s#{Regexp.escape(real_mount_point)}\s+/
95
95
  mounted = false
96
- Chef::Log.debug("Special device #{$~[1]} mounted as #{real_mount_point}")
96
+ logger.trace("Special device #{$~[1]} mounted as #{real_mount_point}")
97
97
  end
98
98
  end
99
99
  @current_resource.mounted(mounted)
@@ -114,18 +114,18 @@ class Chef
114
114
  end
115
115
  command << " #{@new_resource.mount_point}"
116
116
  shell_out!(command)
117
- Chef::Log.debug("#{@new_resource} is mounted at #{@new_resource.mount_point}")
117
+ logger.trace("#{@new_resource} is mounted at #{@new_resource.mount_point}")
118
118
  else
119
- Chef::Log.debug("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
119
+ logger.trace("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
120
120
  end
121
121
  end
122
122
 
123
123
  def umount_fs
124
124
  if @current_resource.mounted
125
125
  shell_out!("umount #{@new_resource.mount_point}")
126
- Chef::Log.debug("#{@new_resource} is no longer mounted at #{@new_resource.mount_point}")
126
+ logger.trace("#{@new_resource} is no longer mounted at #{@new_resource.mount_point}")
127
127
  else
128
- Chef::Log.debug("#{@new_resource} is not mounted at #{@new_resource.mount_point}")
128
+ logger.trace("#{@new_resource} is not mounted at #{@new_resource.mount_point}")
129
129
  end
130
130
  end
131
131
 
@@ -137,19 +137,24 @@ class Chef
137
137
  if @current_resource.mounted && @new_resource.supports[:remount]
138
138
  shell_out!(remount_command)
139
139
  @new_resource.updated_by_last_action(true)
140
- Chef::Log.debug("#{@new_resource} is remounted at #{@new_resource.mount_point}")
140
+ logger.trace("#{@new_resource} is remounted at #{@new_resource.mount_point}")
141
141
  elsif @current_resource.mounted
142
142
  umount_fs
143
143
  sleep 1
144
144
  mount_fs
145
145
  else
146
- Chef::Log.debug("#{@new_resource} is not mounted at #{@new_resource.mount_point} - nothing to do")
146
+ logger.trace("#{@new_resource} is not mounted at #{@new_resource.mount_point} - nothing to do")
147
147
  end
148
148
  end
149
149
 
150
+ # Return appropriate default mount options according to the given os.
151
+ def default_mount_options
152
+ node[:os] == "linux" ? "defaults" : "rw"
153
+ end
154
+
150
155
  def enable_fs
151
156
  if @current_resource.enabled && mount_options_unchanged? && device_unchanged?
152
- Chef::Log.debug("#{@new_resource} is already enabled - nothing to do")
157
+ logger.trace("#{@new_resource} is already enabled - nothing to do")
153
158
  return nil
154
159
  end
155
160
 
@@ -159,8 +164,8 @@ class Chef
159
164
  disable_fs
160
165
  end
161
166
  ::File.open("/etc/fstab", "a") do |fstab|
162
- fstab.puts("#{device_fstab} #{@new_resource.mount_point} #{@new_resource.fstype} #{@new_resource.options.nil? ? "defaults" : @new_resource.options.join(",")} #{@new_resource.dump} #{@new_resource.pass}")
163
- Chef::Log.debug("#{@new_resource} is enabled at #{@new_resource.mount_point}")
167
+ fstab.puts("#{device_fstab} #{@new_resource.mount_point} #{@new_resource.fstype} #{@new_resource.options.nil? ? default_mount_options : @new_resource.options.join(",")} #{@new_resource.dump} #{@new_resource.pass}")
168
+ logger.trace("#{@new_resource} is enabled at #{@new_resource.mount_point}")
164
169
  end
165
170
  end
166
171
 
@@ -172,7 +177,7 @@ class Chef
172
177
  ::File.readlines("/etc/fstab").reverse_each do |line|
173
178
  if !found && line =~ /^#{device_fstab_regex}\s+#{Regexp.escape(@new_resource.mount_point)}\s/
174
179
  found = true
175
- Chef::Log.debug("#{@new_resource} is removed from fstab")
180
+ logger.trace("#{@new_resource} is removed from fstab")
176
181
  next
177
182
  else
178
183
  contents << line
@@ -183,7 +188,7 @@ class Chef
183
188
  contents.reverse_each { |line| fstab.puts line }
184
189
  end
185
190
  else
186
- Chef::Log.debug("#{@new_resource} is not enabled - nothing to do")
191
+ logger.trace("#{@new_resource} is not enabled - nothing to do")
187
192
  end
188
193
  end
189
194
 
@@ -112,7 +112,7 @@ class Chef
112
112
  else
113
113
  # this is likely some kind of internal error, since we should only call disable_fs when there
114
114
  # the filesystem we want to disable is enabled.
115
- Chef::Log.warn("#{new_resource} did not find the mountpoint to disable in the vfstab")
115
+ logger.warn("#{new_resource} did not find the mountpoint to disable in the vfstab")
116
116
  end
117
117
  end
118
118
 
@@ -153,10 +153,10 @@ class Chef
153
153
  shell_out!("mount -v").stdout.each_line do |line|
154
154
  case line
155
155
  when /^#{device_regex}\s+on\s+#{Regexp.escape(mount_point)}\s+/
156
- Chef::Log.debug("Special device #{device} is mounted as #{mount_point}")
156
+ logger.trace("Special device #{device} is mounted as #{mount_point}")
157
157
  mounted = true
158
158
  when /^([\/\w]+)\son\s#{Regexp.escape(mount_point)}\s+/
159
- Chef::Log.debug("Special device #{Regexp.last_match[1]} is mounted as #{mount_point}")
159
+ logger.trace("Special device #{Regexp.last_match[1]} is mounted as #{mount_point}")
160
160
  mounted = false
161
161
  end
162
162
  end
@@ -191,12 +191,12 @@ class Chef
191
191
  end
192
192
  end
193
193
  pass = (Regexp.last_match[2] == "-") ? 0 : Regexp.last_match[2].to_i
194
- Chef::Log.debug("Found mount #{device} to #{mount_point} in #{VFSTAB}")
194
+ logger.trace("Found mount #{device} to #{mount_point} in #{VFSTAB}")
195
195
  next
196
196
  when /^[-\/\w]+\s+[-\/\w]+\s+#{Regexp.escape(mount_point)}\s+/
197
197
  # if we find a mountpoint on top of our mountpoint, then we are not enabled
198
198
  enabled = false
199
- Chef::Log.debug("Found conflicting mount point #{mount_point} in #{VFSTAB}")
199
+ logger.trace("Found conflicting mount point #{mount_point} in #{VFSTAB}")
200
200
  end
201
201
  end
202
202
  [enabled, fstype, options, pass]
@@ -234,7 +234,7 @@ class Chef
234
234
  ::File.readlines(VFSTAB).reverse_each do |line|
235
235
  if !found && line =~ /^#{device_regex}\s+\S+\s+#{Regexp.escape(mount_point)}/
236
236
  found = true
237
- Chef::Log.debug("#{new_resource} is removed from vfstab")
237
+ logger.trace("#{new_resource} is removed from vfstab")
238
238
  next
239
239
  end
240
240
  contents << line
@@ -47,15 +47,15 @@ class Chef
47
47
 
48
48
  @current_resource = Chef::Resource::Mount.new(@new_resource.name)
49
49
  @current_resource.mount_point(@new_resource.mount_point)
50
- Chef::Log.debug("Checking for mount point #{@current_resource.mount_point}")
50
+ logger.trace("Checking for mount point #{@current_resource.mount_point}")
51
51
 
52
52
  begin
53
53
  @current_resource.device(@mount.device)
54
- Chef::Log.debug("#{@current_resource.device} mounted on #{@new_resource.mount_point}")
54
+ logger.trace("#{@current_resource.device} mounted on #{@new_resource.mount_point}")
55
55
  @current_resource.mounted(true)
56
56
  rescue ArgumentError => e
57
57
  @current_resource.mounted(false)
58
- Chef::Log.debug("#{@new_resource.mount_point} is not mounted: #{e.message}")
58
+ logger.trace("#{@new_resource.mount_point} is not mounted: #{e.message}")
59
59
  end
60
60
  end
61
61
 
@@ -65,18 +65,18 @@ class Chef
65
65
  :username => @new_resource.username,
66
66
  :domainname => @new_resource.domain,
67
67
  :password => @new_resource.password)
68
- Chef::Log.debug("#{@new_resource} is mounted at #{@new_resource.mount_point}")
68
+ logger.trace("#{@new_resource} is mounted at #{@new_resource.mount_point}")
69
69
  else
70
- Chef::Log.debug("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
70
+ logger.trace("#{@new_resource} is already mounted at #{@new_resource.mount_point}")
71
71
  end
72
72
  end
73
73
 
74
74
  def umount_fs
75
75
  if @current_resource.mounted
76
76
  @mount.delete
77
- Chef::Log.debug("#{@new_resource} is no longer mounted at #{@new_resource.mount_point}")
77
+ logger.trace("#{@new_resource} is no longer mounted at #{@new_resource.mount_point}")
78
78
  else
79
- Chef::Log.debug("#{@new_resource} is not mounted at #{@new_resource.mount_point}")
79
+ logger.trace("#{@new_resource} is not mounted at #{@new_resource.mount_point}")
80
80
  end
81
81
  end
82
82
 
@@ -27,7 +27,7 @@ class Chef
27
27
 
28
28
  def method_missing(method_sym, *arguments, &block)
29
29
  if method_sym.to_s =~ /^action_/
30
- Chef::Log.debug("NoOp-ing for #{method_sym}")
30
+ logger.trace("NoOp-ing for #{method_sym}")
31
31
  else
32
32
  super
33
33
  end
@@ -37,7 +37,7 @@ class Chef
37
37
  # the path are picked up by ohai.
38
38
  ohai.all_plugins new_resource.plugin
39
39
  node.automatic_attrs.merge! ohai.data
40
- Chef::Log.info("#{new_resource} reloaded")
40
+ logger.info("#{new_resource} reloaded")
41
41
  end
42
42
  end
43
43
  end
@@ -25,8 +25,8 @@ require "uuidtools"
25
25
  class Chef
26
26
  class Provider
27
27
  class OsxProfile < Chef::Provider
28
- provides :osx_profile, os: "darwin"
29
- provides :osx_config_profile, os: "darwin"
28
+ provides :osx_profile
29
+ provides :osx_config_profile
30
30
 
31
31
  def load_current_resource
32
32
  @current_resource = Chef::Resource::OsxProfile.new(new_resource.name)
@@ -188,15 +188,15 @@ class Chef
188
188
  end
189
189
 
190
190
  def install_profile(profile_path)
191
- cmd = "/usr/bin/profiles -I -F '#{profile_path}'"
192
- Chef::Log.debug("cmd: #{cmd}")
191
+ cmd = "profiles -I -F '#{profile_path}'"
192
+ logger.trace("cmd: #{cmd}")
193
193
  shellout_results = shell_out(cmd)
194
194
  shellout_results.exitstatus
195
195
  end
196
196
 
197
197
  def remove_profile
198
- cmd = "/usr/bin/profiles -R -p '#{@new_profile_identifier}'"
199
- Chef::Log.debug("cmd: #{cmd}")
198
+ cmd = "profiles -R -p '#{@new_profile_identifier}'"
199
+ logger.trace("cmd: #{cmd}")
200
200
  shellout_results = shell_out(cmd)
201
201
  shellout_results.exitstatus
202
202
  end
@@ -214,7 +214,7 @@ class Chef
214
214
  tempfile = generate_tempfile
215
215
  write_installed_profiles(tempfile)
216
216
  installed_profiles = read_plist(tempfile)
217
- Chef::Log.debug("Saved profiles to run_state")
217
+ logger.trace("Saved profiles to run_state")
218
218
  # Clean up the temp file as we do not need it anymore
219
219
  ::File.unlink(tempfile)
220
220
  installed_profiles
@@ -225,7 +225,7 @@ class Chef
225
225
  end
226
226
 
227
227
  def write_installed_profiles(tempfile)
228
- cmd = "/usr/bin/profiles -P -o '#{tempfile}'"
228
+ cmd = "profiles -P -o '#{tempfile}'"
229
229
  shell_out!(cmd)
230
230
  end
231
231
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
- # Copyright:: Copyright 2008-2017, Chef Software Inc.
3
+ # Copyright:: Copyright 2008-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -84,7 +84,7 @@ class Chef
84
84
 
85
85
  action :install do
86
86
  unless target_version_array.any?
87
- Chef::Log.debug("#{new_resource} is already installed - nothing to do")
87
+ logger.trace("#{new_resource} is already installed - nothing to do")
88
88
  return
89
89
  end
90
90
 
@@ -101,7 +101,7 @@ class Chef
101
101
  multipackage_api_adapter(package_names_for_targets, versions_for_targets) do |name, version|
102
102
  install_package(name, version)
103
103
  end
104
- Chef::Log.info("#{new_resource} installed #{package_names_for_targets} at #{versions_for_targets}")
104
+ logger.info("#{new_resource} installed #{package_names_for_targets} at #{versions_for_targets}")
105
105
  end
106
106
  end
107
107
 
@@ -119,7 +119,7 @@ class Chef
119
119
 
120
120
  action :upgrade do
121
121
  unless target_version_array.any?
122
- Chef::Log.debug("#{new_resource} no versions to upgrade - nothing to do")
122
+ logger.trace("#{new_resource} no versions to upgrade - nothing to do")
123
123
  return
124
124
  end
125
125
 
@@ -128,7 +128,7 @@ class Chef
128
128
  upgrade_package(name, version)
129
129
  end
130
130
  log_allow_downgrade = allow_downgrade ? "(allow_downgrade)" : ""
131
- Chef::Log.info("#{new_resource} upgraded#{log_allow_downgrade} #{package_names_for_targets} to #{versions_for_targets}")
131
+ logger.info("#{new_resource} upgraded#{log_allow_downgrade} #{package_names_for_targets} to #{versions_for_targets}")
132
132
  end
133
133
  end
134
134
 
@@ -154,10 +154,10 @@ class Chef
154
154
  multipackage_api_adapter(current_resource.package_name, new_resource.version) do |name, version|
155
155
  remove_package(name, version)
156
156
  end
157
- Chef::Log.info("#{new_resource} removed")
157
+ logger.info("#{new_resource} removed")
158
158
  end
159
159
  else
160
- Chef::Log.debug("#{new_resource} package does not exist - nothing to do")
160
+ logger.trace("#{new_resource} package does not exist - nothing to do")
161
161
  end
162
162
  end
163
163
 
@@ -189,19 +189,19 @@ class Chef
189
189
  multipackage_api_adapter(current_resource.package_name, new_resource.version) do |name, version|
190
190
  purge_package(name, version)
191
191
  end
192
- Chef::Log.info("#{new_resource} purged")
192
+ logger.info("#{new_resource} purged")
193
193
  end
194
194
  end
195
195
  end
196
196
 
197
197
  action :reconfig do
198
198
  if current_resource.version.nil?
199
- Chef::Log.debug("#{new_resource} is NOT installed - nothing to do")
199
+ logger.trace("#{new_resource} is NOT installed - nothing to do")
200
200
  return
201
201
  end
202
202
 
203
203
  unless new_resource.response_file
204
- Chef::Log.debug("#{new_resource} no response_file provided - nothing to do")
204
+ logger.trace("#{new_resource} no response_file provided - nothing to do")
205
205
  return
206
206
  end
207
207
 
@@ -212,41 +212,52 @@ class Chef
212
212
  reconfig_package(name, version)
213
213
 
214
214
  end
215
- Chef::Log.info("#{new_resource} reconfigured")
215
+ logger.info("#{new_resource} reconfigured")
216
216
  end
217
217
  else
218
- Chef::Log.debug("#{new_resource} preseeding has not changed - nothing to do")
218
+ logger.trace("#{new_resource} preseeding has not changed - nothing to do")
219
219
  end
220
220
  end
221
221
 
222
222
  def action_lock
223
- if package_locked(new_resource.name, new_resource.version) == false
223
+ packages_locked = if respond_to?(:packages_all_locked?, true)
224
+ packages_all_locked?(Array(new_resource.package_name), Array(new_resource.version))
225
+ else
226
+ package_locked(new_resource.package_name, new_resource.version)
227
+ end
228
+ unless packages_locked
224
229
  description = new_resource.version ? "version #{new_resource.version} of " : ""
225
230
  converge_by("lock #{description}package #{current_resource.package_name}") do
226
231
  multipackage_api_adapter(current_resource.package_name, new_resource.version) do |name, version|
227
232
  lock_package(name, version)
228
- Chef::Log.info("#{new_resource} locked")
233
+ logger.info("#{new_resource} locked")
229
234
  end
230
235
  end
231
236
  else
232
- Chef::Log.debug("#{new_resource} is already locked")
237
+ logger.trace("#{new_resource} is already locked")
233
238
  end
234
239
  end
235
240
 
236
241
  def action_unlock
237
- if package_locked(new_resource.name, new_resource.version) == true
242
+ packages_unlocked = if respond_to?(:packages_all_unlocked?, true)
243
+ packages_all_unlocked?(Array(new_resource.package_name), Array(new_resource.version))
244
+ else
245
+ !package_locked(new_resource.package_name, new_resource.version)
246
+ end
247
+ unless packages_unlocked
238
248
  description = new_resource.version ? "version #{new_resource.version} of " : ""
239
249
  converge_by("unlock #{description}package #{current_resource.package_name}") do
240
250
  multipackage_api_adapter(current_resource.package_name, new_resource.version) do |name, version|
241
251
  unlock_package(name, version)
242
- Chef::Log.info("#{new_resource} unlocked")
252
+ logger.info("#{new_resource} unlocked")
243
253
  end
244
254
  end
245
255
  else
246
- Chef::Log.debug("#{new_resource} is already unlocked")
256
+ logger.trace("#{new_resource} is already unlocked")
247
257
  end
248
258
  end
249
259
 
260
+ # for multipackage just implement packages_all_[un]locked? properly and omit implementing this API
250
261
  def package_locked(name, version)
251
262
  raise Chef::Exceptions::UnsupportedAction, "#{self} has no way to detect if package is locked"
252
263
  end
@@ -372,7 +383,7 @@ class Chef
372
383
  def get_preseed_file(name, version)
373
384
  resource = preseed_resource(name, version)
374
385
  resource.run_action(:create)
375
- Chef::Log.debug("#{new_resource} fetched preseed file to #{resource.path}")
386
+ logger.trace("#{new_resource} fetched preseed file to #{resource.path}")
376
387
 
377
388
  if resource.updated_by_last_action?
378
389
  resource.path
@@ -388,14 +399,14 @@ class Chef
388
399
  # The full path where the preseed file will be stored
389
400
  cache_seed_to = "#{file_cache_dir}/#{name}-#{version}.seed"
390
401
 
391
- Chef::Log.debug("#{new_resource} fetching preseed file to #{cache_seed_to}")
402
+ logger.trace("#{new_resource} fetching preseed file to #{cache_seed_to}")
392
403
 
393
404
  if template_available?(new_resource.response_file)
394
- Chef::Log.debug("#{new_resource} fetching preseed file via Template")
405
+ logger.trace("#{new_resource} fetching preseed file via Template")
395
406
  remote_file = Chef::Resource::Template.new(cache_seed_to, run_context)
396
407
  remote_file.variables(new_resource.response_file_variables)
397
408
  elsif cookbook_file_available?(new_resource.response_file)
398
- Chef::Log.debug("#{new_resource} fetching preseed file via cookbook_file")
409
+ logger.trace("#{new_resource} fetching preseed file via cookbook_file")
399
410
  remote_file = Chef::Resource::CookbookFile.new(cache_seed_to, run_context)
400
411
  else
401
412
  message = "No template or cookbook file found for response file #{new_resource.response_file}"
@@ -469,22 +480,22 @@ class Chef
469
480
  when :upgrade
470
481
  if version_equals?(current_version, new_version)
471
482
  # this is an odd use case
472
- Chef::Log.debug("#{new_resource} #{package_name} #{new_version} is already installed -- you are equality pinning with an :upgrade action, this may be deprecated in the future")
483
+ logger.trace("#{new_resource} #{package_name} #{new_version} is already installed -- you are equality pinning with an :upgrade action, this may be deprecated in the future")
473
484
  target_version_array.push(nil)
474
485
  elsif version_equals?(current_version, candidate_version)
475
- Chef::Log.debug("#{new_resource} #{package_name} #{candidate_version} is already installed")
486
+ logger.trace("#{new_resource} #{package_name} #{candidate_version} is already installed")
476
487
  target_version_array.push(nil)
477
488
  elsif candidate_version.nil?
478
- Chef::Log.debug("#{new_resource} #{package_name} has no candidate_version to upgrade to")
489
+ logger.trace("#{new_resource} #{package_name} has no candidate_version to upgrade to")
479
490
  target_version_array.push(nil)
480
491
  elsif current_version.nil?
481
- Chef::Log.debug("#{new_resource} has no existing installed version. Installing install #{candidate_version}")
492
+ logger.trace("#{new_resource} has no existing installed version. Installing install #{candidate_version}")
482
493
  target_version_array.push(candidate_version)
483
494
  elsif version_compare(current_version, candidate_version) == 1 && !allow_downgrade
484
- Chef::Log.debug("#{new_resource} #{package_name} has installed version #{current_version}, which is newer than available version #{candidate_version}. Skipping...)")
495
+ logger.trace("#{new_resource} #{package_name} has installed version #{current_version}, which is newer than available version #{candidate_version}. Skipping...)")
485
496
  target_version_array.push(nil)
486
497
  else
487
- Chef::Log.debug("#{new_resource} #{package_name} is out of date, will upgrade to #{candidate_version}")
498
+ logger.trace("#{new_resource} #{package_name} is out of date, will upgrade to #{candidate_version}")
488
499
  target_version_array.push(candidate_version)
489
500
  end
490
501
 
@@ -492,17 +503,17 @@ class Chef
492
503
 
493
504
  if new_version
494
505
  if version_requirement_satisfied?(current_version, new_version)
495
- Chef::Log.debug("#{new_resource} #{package_name} #{current_version} satisifies #{new_version} requirement")
506
+ logger.trace("#{new_resource} #{package_name} #{current_version} satisifies #{new_version} requirement")
496
507
  target_version_array.push(nil)
497
508
  else
498
- Chef::Log.debug("#{new_resource} #{package_name} #{current_version} needs updating to #{new_version}")
509
+ logger.trace("#{new_resource} #{package_name} #{current_version} needs updating to #{new_version}")
499
510
  target_version_array.push(new_version)
500
511
  end
501
512
  elsif current_version.nil?
502
- Chef::Log.debug("#{new_resource} #{package_name} not installed, installing #{candidate_version}")
513
+ logger.trace("#{new_resource} #{package_name} not installed, installing #{candidate_version}")
503
514
  target_version_array.push(candidate_version)
504
515
  else
505
- Chef::Log.debug("#{new_resource} #{package_name} #{current_version} already installed")
516
+ logger.trace("#{new_resource} #{package_name} #{current_version} already installed")
506
517
  target_version_array.push(nil)
507
518
  end
508
519
 
@@ -580,12 +591,12 @@ class Chef
580
591
 
581
592
  # @return [Boolean] if we're doing a multipackage install or not
582
593
  def multipackage?
583
- new_resource.package_name.is_a?(Array)
594
+ @multipackage_bool ||= new_resource.package_name.is_a?(Array)
584
595
  end
585
596
 
586
597
  # @return [Array] package_name(s) as an array
587
598
  def package_name_array
588
- [ new_resource.package_name ].flatten
599
+ @package_name_array ||= [ new_resource.package_name ].flatten
589
600
  end
590
601
 
591
602
  # @return [Array] candidate_version(s) as an array
@@ -597,12 +608,12 @@ class Chef
597
608
 
598
609
  # @return [Array] current_version(s) as an array
599
610
  def current_version_array
600
- [ current_resource.version ].flatten
611
+ @current_version_array ||= [ current_resource.version ].flatten
601
612
  end
602
613
 
603
614
  # @return [Array] new_version(s) as an array
604
615
  def new_version_array
605
- [ new_resource.version ].flatten.map { |v| v.to_s.empty? ? nil : v }
616
+ @new_version_array ||= [ new_resource.version ].flatten.map { |v| v.to_s.empty? ? nil : v }
606
617
  end
607
618
 
608
619
  # TIP: less error prone to simply always call resolved_source_array, even if you
@@ -610,11 +621,14 @@ class Chef
610
621
  #
611
622
  # @return [Array] new_resource.source as an array
612
623
  def source_array
613
- if new_resource.source.nil?
614
- package_name_array.map { nil }
615
- else
616
- [ new_resource.source ].flatten
617
- end
624
+ @source_array ||=
625
+ begin
626
+ if new_resource.source.nil?
627
+ package_name_array.map { nil }
628
+ else
629
+ [ new_resource.source ].flatten
630
+ end
631
+ end
618
632
  end
619
633
 
620
634
  # Helper to handle use_package_name_for_source to convert names into local packages to install.
@@ -627,7 +641,7 @@ class Chef
627
641
  package_name = package_name_array[i]
628
642
  # we require at least one '/' in the package_name to avoid [XXX_]package 'foo' breaking due to a random 'foo' file in cwd
629
643
  if use_package_name_for_source? && source.nil? && package_name.match(/#{::File::SEPARATOR}/) && ::File.exist?(package_name)
630
- Chef::Log.debug("No package source specified, but #{package_name} exists on filesystem, using #{package_name} as source.")
644
+ logger.trace("No package source specified, but #{package_name} exists on filesystem, using #{package_name} as source.")
631
645
  package_name
632
646
  else
633
647
  source