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
@@ -25,7 +25,8 @@ require "support/shared/unit/provider/file"
25
25
  describe Chef::Provider::CookbookFile do
26
26
  let(:node) { double("Chef::Node") }
27
27
  let(:events) { double("Chef::Events").as_null_object } # mock all the methods
28
- let(:run_context) { double("Chef::RunContext", :node => node, :events => events) }
28
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
29
+ let(:run_context) { double("Chef::RunContext", :node => node, :events => events, :logger => logger) }
29
30
  let(:enclosing_directory) do
30
31
  canonicalize_path(File.expand_path(File.join(CHEF_SPEC_DATA, "templates")))
31
32
  end
@@ -41,10 +41,15 @@ describe Chef::Provider::Cron::Unix do
41
41
  let(:exitstatus) { 0 }
42
42
  let(:shell_out) { double("Mixlib::ShellOut", :status => status, :stdout => stdout, :stderr => stderr) }
43
43
 
44
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
45
+
44
46
  it "is a Chef::Provider:Cron" do
45
47
  expect(provider).to be_a(Chef::Provider::Cron)
46
48
  end
47
49
 
50
+ before do
51
+ allow(run_context).to receive(:logger).and_return(logger)
52
+ end
48
53
  describe "read_crontab" do
49
54
  let(:stderr) { "" }
50
55
  let(:stdout) do
@@ -59,7 +64,7 @@ describe Chef::Provider::Cron::Unix do
59
64
  end
60
65
 
61
66
  before do
62
- allow(Chef::Log).to receive(:debug)
67
+ allow(logger).to receive(:trace)
63
68
  allow(shell_out).to receive(:format_for_exception).and_return("formatted command output")
64
69
  allow(provider).to receive(:shell_out).with("/usr/bin/crontab -l", :user => username).and_return(shell_out)
65
70
  end
@@ -83,7 +88,7 @@ describe Chef::Provider::Cron::Unix do
83
88
 
84
89
  it "logs the crontab output to debug" do
85
90
  provider.send(:read_crontab)
86
- expect(Chef::Log).to have_received(:debug).with("formatted command output")
91
+ expect(logger).to have_received(:trace).with("formatted command output")
87
92
  end
88
93
  end
89
94
 
@@ -98,7 +103,7 @@ describe Chef::Provider::Cron::Unix do
98
103
 
99
104
  it "logs the crontab output to debug" do
100
105
  provider.send(:read_crontab) rescue nil
101
- expect(Chef::Log).to have_received(:debug).with("formatted command output")
106
+ expect(logger).to have_received(:trace).with("formatted command output")
102
107
  end
103
108
  end
104
109
  end
@@ -19,16 +19,23 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Chef::Provider::Cron do
22
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
23
+
24
+ before do
25
+ @node = Chef::Node.new
26
+ @events = Chef::EventDispatch::Dispatcher.new
27
+ @run_context = Chef::RunContext.new(@node, {}, @events)
28
+ allow(@run_context).to receive(:logger).and_return(logger)
29
+
30
+ @new_resource = Chef::Resource::Cron.new("cronhole some stuff", @run_context)
31
+ @new_resource.user "root"
32
+ @new_resource.minute "30"
33
+ @new_resource.command "/bin/true"
34
+ @provider = Chef::Provider::Cron.new(@new_resource, @run_context)
35
+ end
36
+
22
37
  describe "when with special time string" do
23
38
  before do
24
- @node = Chef::Node.new
25
- @events = Chef::EventDispatch::Dispatcher.new
26
- @run_context = Chef::RunContext.new(@node, {}, @events)
27
-
28
- @new_resource = Chef::Resource::Cron.new("cronhole some stuff", @run_context)
29
- @new_resource.user "root"
30
- @new_resource.minute "30"
31
- @new_resource.command "/bin/true"
32
39
  @new_resource.time :reboot
33
40
  @provider = Chef::Provider::Cron.new(@new_resource, @run_context)
34
41
  end
@@ -113,7 +120,7 @@ CRONTAB
113
120
  end
114
121
 
115
122
  it "should report the match" do
116
- expect(Chef::Log).to receive(:debug).with("Found cron '#{@new_resource.name}'")
123
+ expect(logger).to receive(:trace).with("Found cron '#{@new_resource.name}'")
117
124
  @provider.load_current_resource
118
125
  end
119
126
 
@@ -141,18 +148,6 @@ CRONTAB
141
148
  end
142
149
  end
143
150
 
144
- before do
145
- @node = Chef::Node.new
146
- @events = Chef::EventDispatch::Dispatcher.new
147
- @run_context = Chef::RunContext.new(@node, {}, @events)
148
-
149
- @new_resource = Chef::Resource::Cron.new("cronhole some stuff", @run_context)
150
- @new_resource.user "root"
151
- @new_resource.minute "30"
152
- @new_resource.command "/bin/true"
153
- @provider = Chef::Provider::Cron.new(@new_resource, @run_context)
154
- end
155
-
156
151
  describe "when examining the current system state" do
157
152
  context "with no crontab for the user" do
158
153
  before :each do
@@ -166,7 +161,7 @@ CRONTAB
166
161
  end
167
162
 
168
163
  it "should report an empty crontab" do
169
- expect(Chef::Log).to receive(:debug).with("Cron empty for '#{@new_resource.user}'")
164
+ expect(logger).to receive(:trace).with("Cron empty for '#{@new_resource.user}'")
170
165
  @provider.load_current_resource
171
166
  end
172
167
  end
@@ -190,7 +185,7 @@ CRONTAB
190
185
  end
191
186
 
192
187
  it "should report no entry found" do
193
- expect(Chef::Log).to receive(:debug).with("Cron '#{@new_resource.name}' not found")
188
+ expect(logger).to receive(:trace).with("Cron '#{@new_resource.name}' not found")
194
189
  @provider.load_current_resource
195
190
  end
196
191
 
@@ -296,7 +291,7 @@ CRONTAB
296
291
  end
297
292
 
298
293
  it "should report the match" do
299
- expect(Chef::Log).to receive(:debug).with("Found cron '#{@new_resource.name}'")
294
+ expect(logger).to receive(:trace).with("Found cron '#{@new_resource.name}'")
300
295
  @provider.load_current_resource
301
296
  end
302
297
  end
@@ -332,7 +327,7 @@ CRONTAB
332
327
  end
333
328
 
334
329
  it "should report the match" do
335
- expect(Chef::Log).to receive(:debug).with("Found cron '#{@new_resource.name}'")
330
+ expect(logger).to receive(:trace).with("Found cron '#{@new_resource.name}'")
336
331
  @provider.load_current_resource
337
332
  end
338
333
  end
@@ -478,7 +473,7 @@ TEST=LOL
478
473
  end
479
474
 
480
475
  it "should log the action" do
481
- expect(Chef::Log).to receive(:info).with("cron[cronhole some stuff] added crontab entry")
476
+ expect(logger).to receive(:info).with("cron[cronhole some stuff] added crontab entry")
482
477
  @provider.run_action(:create)
483
478
  end
484
479
  end
@@ -540,7 +535,7 @@ TEST=LOL
540
535
  end
541
536
 
542
537
  it "should log the action" do
543
- expect(Chef::Log).to receive(:info).with("cron[cronhole some stuff] added crontab entry")
538
+ expect(logger).to receive(:info).with("cron[cronhole some stuff] added crontab entry")
544
539
  @provider.run_action(:create)
545
540
  end
546
541
  end
@@ -605,7 +600,7 @@ TEST=LOL
605
600
  end
606
601
 
607
602
  it "should log the action" do
608
- expect(Chef::Log).to receive(:info).with("cron[cronhole some stuff] updated crontab entry")
603
+ expect(logger).to receive(:info).with("cron[cronhole some stuff] updated crontab entry")
609
604
  @provider.run_action(:create)
610
605
  end
611
606
  end
@@ -719,8 +714,8 @@ CRONTAB
719
714
  end
720
715
 
721
716
  it "should log nothing changed" do
722
- expect(Chef::Log).to receive(:debug).with("Found cron '#{@new_resource.name}'")
723
- expect(Chef::Log).to receive(:debug).with("Skipping existing cron entry '#{@new_resource.name}'")
717
+ expect(logger).to receive(:trace).with("Found cron '#{@new_resource.name}'")
718
+ expect(logger).to receive(:trace).with("Skipping existing cron entry '#{@new_resource.name}'")
724
719
  @provider.run_action(:create)
725
720
  end
726
721
  end
@@ -739,7 +734,7 @@ CRONTAB
739
734
 
740
735
  it "should do nothing" do
741
736
  expect(@provider).not_to receive(:write_crontab)
742
- expect(Chef::Log).not_to receive(:info)
737
+ expect(logger).not_to receive(:info)
743
738
  @provider.run_action(:delete)
744
739
  end
745
740
 
@@ -806,7 +801,7 @@ FOO=test
806
801
  end
807
802
 
808
803
  it "should log the action" do
809
- expect(Chef::Log).to receive(:info).with("#{@new_resource} deleted crontab entry")
804
+ expect(logger).to receive(:info).with("#{@new_resource} deleted crontab entry")
810
805
  @provider.run_action(:delete)
811
806
  end
812
807
  end
@@ -34,7 +34,8 @@ describe Chef::Provider::File do
34
34
 
35
35
  let(:node) { double("Chef::Node") }
36
36
  let(:events) { double("Chef::Events").as_null_object } # mock all the methods
37
- let(:run_context) { double("Chef::RunContext", :node => node, :events => events) }
37
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
38
+ let(:run_context) { double("Chef::RunContext", :node => node, :events => events, :logger => logger) }
38
39
  let(:enclosing_directory) do
39
40
  canonicalize_path(File.expand_path(File.join(CHEF_SPEC_DATA, "templates")))
40
41
  end
@@ -19,10 +19,13 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Chef::Provider::Group::Dscl do
22
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
23
+
22
24
  before do
23
25
  @node = Chef::Node.new
24
26
  @events = Chef::EventDispatch::Dispatcher.new
25
27
  @run_context = Chef::RunContext.new(@node, {}, @events)
28
+ allow(@run_context).to receive(:logger).and_return(logger)
26
29
  @new_resource = Chef::Resource::Group.new("aj")
27
30
  @current_resource = Chef::Resource::Group.new("aj")
28
31
  @provider = Chef::Provider::Group::Dscl.new(@new_resource, @run_context)
@@ -45,8 +48,7 @@ describe Chef::Provider::Group::Dscl do
45
48
 
46
49
  describe "safe_dscl" do
47
50
  before do
48
- @node = Chef::Node.new
49
- @provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
51
+ @provider = Chef::Provider::Group::Dscl.new(@new_resource, @run_context)
50
52
  allow(@provider).to receive(:dscl).and_return(["cmd", @status, "stdout", "stderr"])
51
53
  end
52
54
 
@@ -93,8 +95,7 @@ describe Chef::Provider::Group::Dscl do
93
95
 
94
96
  describe "get_free_gid" do
95
97
  before do
96
- @node = Chef::Node.new
97
- @provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
98
+ @provider = Chef::Provider::Group::Dscl.new(@new_resource, @run_context)
98
99
  allow(@provider).to receive(:safe_dscl).and_return("\naj 200\njt 201\n")
99
100
  end
100
101
 
@@ -115,8 +116,6 @@ describe Chef::Provider::Group::Dscl do
115
116
 
116
117
  describe "gid_used?" do
117
118
  before do
118
- @node = Chef::Node.new
119
- @provider = Chef::Provider::Group::Dscl.new(@node, @new_resource)
120
119
  allow(@provider).to receive(:safe_dscl).and_return(<<-eos
121
120
  someprogram somethingElse:gid = (
122
121
  500
@@ -197,7 +196,7 @@ describe Chef::Provider::Group::Dscl do
197
196
  end
198
197
 
199
198
  it "should log an appropriate message" do
200
- expect(Chef::Log).to receive(:debug).with("group[aj] removing group members all your base")
199
+ expect(logger).to receive(:trace).with("group[aj] removing group members all your base")
201
200
  @provider.set_members
202
201
  end
203
202
 
@@ -215,7 +214,7 @@ describe Chef::Provider::Group::Dscl do
215
214
  end
216
215
 
217
216
  it "should log an appropriate debug message" do
218
- expect(Chef::Log).to receive(:debug).with("group[aj] setting group members all, your, base")
217
+ expect(logger).to receive(:trace).with("group[aj] setting group members all, your, base")
219
218
  @provider.set_members
220
219
  end
221
220
 
@@ -19,10 +19,13 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
22
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
23
+
22
24
  before do
23
25
  @node = Chef::Node.new
24
26
  @events = Chef::EventDispatch::Dispatcher.new
25
27
  @run_context = Chef::RunContext.new(@node, {}, @events)
28
+ allow(@run_context).to receive(:logger).and_return(logger)
26
29
  @new_resource = Chef::Resource::Group.new("wheel")
27
30
  @new_resource.members %w{lobster rage fist}
28
31
  @new_resource.append false
@@ -65,7 +68,7 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
65
68
  end
66
69
 
67
70
  it "logs a message and sets group's members to 'none'" do
68
- expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: none")
71
+ expect(logger).to receive(:trace).with("group[wheel] setting group members to: none")
69
72
  expect(@provider).to receive(:shell_out!).with("gpasswd", "-M", "", "wheel")
70
73
  @provider.modify_group_members
71
74
  end
@@ -85,7 +88,7 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
85
88
 
86
89
  describe "when the resource specifies group members" do
87
90
  it "should log an appropriate debug message" do
88
- expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: lobster, rage, fist")
91
+ expect(logger).to receive(:trace).with("group[wheel] setting group members to: lobster, rage, fist")
89
92
  allow(@provider).to receive(:shell_out!)
90
93
  @provider.modify_group_members
91
94
  end
@@ -19,10 +19,13 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Chef::Provider::Group::Groupmod do
22
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
23
+
22
24
  before do
23
25
  @node = Chef::Node.new
24
26
  @events = Chef::EventDispatch::Dispatcher.new
25
27
  @run_context = Chef::RunContext.new(@node, {}, @events)
28
+ allow(@run_context).to receive(:logger).and_return(logger)
26
29
  @new_resource = Chef::Resource::Group.new("wheel")
27
30
  @new_resource.gid 123
28
31
  @new_resource.members %w{lobster rage fist}
@@ -61,7 +64,7 @@ describe Chef::Provider::Group::Groupmod do
61
64
  end
62
65
 
63
66
  it "logs a message and sets group's members to 'none', then removes existing group members" do
64
- expect(Chef::Log).to receive(:debug).with("group[wheel] setting group members to: none")
67
+ expect(logger).to receive(:trace).with("group[wheel] setting group members to: none")
65
68
  expect(@provider).to receive(:shell_out!).with("group", "mod", "-n", "wheel_bak", "wheel")
66
69
  expect(@provider).to receive(:shell_out!).with("group", "add", "-g", "123", "-o", "wheel")
67
70
  expect(@provider).to receive(:shell_out!).with("group", "del", "wheel_bak")
@@ -76,7 +79,7 @@ describe Chef::Provider::Group::Groupmod do
76
79
  end
77
80
 
78
81
  it "logs a message and does not modify group membership" do
79
- expect(Chef::Log).to receive(:debug).with("group[wheel] not changing group members, the group has no members to add")
82
+ expect(logger).to receive(:trace).with("group[wheel] not changing group members, the group has no members to add")
80
83
  expect(@provider).not_to receive(:shell_out!)
81
84
  @provider.manage_group
82
85
  end
@@ -89,7 +92,7 @@ describe Chef::Provider::Group::Groupmod do
89
92
  end
90
93
 
91
94
  it "updates group membership correctly" do
92
- allow(Chef::Log).to receive(:debug)
95
+ allow(logger).to receive(:trace)
93
96
  expect(@provider).to receive(:shell_out!).with("group", "mod", "-n", "wheel_bak", "wheel")
94
97
  expect(@provider).to receive(:shell_out!).with("user", "mod", "-G", "wheel", "lobster")
95
98
  expect(@provider).to receive(:shell_out!).with("group", "add", "-g", "123", "-o", "wheel")
@@ -19,10 +19,13 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Chef::Provider::Group::Pw do
22
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
23
+
22
24
  before do
23
25
  @node = Chef::Node.new
24
26
  @events = Chef::EventDispatch::Dispatcher.new
25
27
  @run_context = Chef::RunContext.new(@node, {}, @events)
28
+ allow(@run_context).to receive(:logger).and_return(logger)
26
29
 
27
30
  @new_resource = Chef::Resource::Group.new("wheel")
28
31
  @new_resource.gid 50
@@ -93,7 +96,7 @@ describe Chef::Provider::Group::Pw do
93
96
  end
94
97
 
95
98
  it "should log an appropriate message" do
96
- expect(Chef::Log).to receive(:debug).with("group[wheel] removing group members: all,your,base")
99
+ expect(logger).to receive(:trace).with("group[wheel] removing group members: all,your,base")
97
100
  @provider.set_members_options
98
101
  end
99
102
 
@@ -109,7 +112,7 @@ describe Chef::Provider::Group::Pw do
109
112
  end
110
113
 
111
114
  it "should log an appropriate debug message" do
112
- expect(Chef::Log).to receive(:debug).with("group[wheel] adding group members: all,your,base")
115
+ expect(logger).to receive(:trace).with("group[wheel] adding group members: all,your,base")
113
116
  @provider.set_members_options
114
117
  end
115
118
 
@@ -25,11 +25,13 @@ if Chef::Platform.windows?
25
25
  require "chef/win32/file" #probably need this in spec_helper
26
26
  end
27
27
 
28
- describe Chef::Resource::Link, :not_supported_on_win2k3 do
28
+ describe Chef::Resource::Link do
29
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
29
30
  let(:provider) do
30
31
  node = Chef::Node.new
31
32
  @events = Chef::EventDispatch::Dispatcher.new
32
33
  run_context = Chef::RunContext.new(node, {}, @events)
34
+ allow(run_context).to receive(:logger).and_return(logger)
33
35
  Chef::Provider::Link.new(new_resource, run_context)
34
36
  end
35
37
  let(:new_resource) do
@@ -270,7 +272,7 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
270
272
 
271
273
  it "invokes Dir.delete method to delete the link" do
272
274
  expect(::Dir).to receive(:delete).with(provider.new_resource.target_file)
273
- expect(Chef::Log).to receive(:info).with("#{provider.new_resource} deleted")
275
+ expect(logger).to receive(:info).with("#{provider.new_resource} deleted")
274
276
  provider.run_action(:delete)
275
277
  end
276
278
  end
@@ -283,7 +285,7 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
283
285
 
284
286
  it "invokes File.delete method to delete the link" do
285
287
  expect(::File).to receive(:delete).with(provider.new_resource.target_file)
286
- expect(Chef::Log).to receive(:info).with("#{provider.new_resource} deleted")
288
+ expect(logger).to receive(:info).with("#{provider.new_resource} deleted")
287
289
  provider.run_action(:delete)
288
290
  end
289
291
  end
@@ -296,7 +298,7 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
296
298
 
297
299
  it "invokes File.delete method to delete the link" do
298
300
  expect(::File).to receive(:delete).with(provider.new_resource.target_file)
299
- expect(Chef::Log).to receive(:info).with("#{provider.new_resource} deleted")
301
+ expect(logger).to receive(:info).with("#{provider.new_resource} deleted")
300
302
  provider.run_action(:delete)
301
303
  end
302
304
  end
@@ -32,44 +32,49 @@ describe Chef::Provider::Log::ChefLog do
32
32
 
33
33
  let(:provider) { Chef::Provider::Log::ChefLog.new(new_resource, run_context) }
34
34
 
35
- it "should write the string to the Chef::Log object at default level (info)" do
36
- expect(Chef::Log).to receive(:info).with(log_str).and_return(true)
35
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
36
+ before do
37
+ allow(run_context).to receive(:logger).and_return(logger)
38
+ end
39
+
40
+ it "should write the string to the logger object at default level (info)" do
41
+ expect(logger).to receive(:info).with(log_str).and_return(true)
37
42
  provider.run_action(:write)
38
43
  end
39
44
 
40
- it "should write the string to the Chef::Log object at debug level" do
45
+ it "should write the string to the logger object at debug level" do
41
46
  new_resource.level :debug
42
- expect(Chef::Log).to receive(:debug).with(log_str).and_return(true)
47
+ expect(logger).to receive(:debug).with(log_str).and_return(true)
43
48
  provider.run_action(:write)
44
49
  end
45
50
 
46
- it "should write the string to the Chef::Log object at info level" do
51
+ it "should write the string to the logger object at info level" do
47
52
  new_resource.level :info
48
- expect(Chef::Log).to receive(:info).with(log_str).and_return(true)
53
+ expect(logger).to receive(:info).with(log_str).and_return(true)
49
54
  provider.run_action(:write)
50
55
  end
51
56
 
52
- it "should write the string to the Chef::Log object at warn level" do
57
+ it "should write the string to the logger object at warn level" do
53
58
  new_resource.level :warn
54
- expect(Chef::Log).to receive(:warn).with(log_str).and_return(true)
59
+ expect(logger).to receive(:warn).with(log_str).and_return(true)
55
60
  provider.run_action(:write)
56
61
  end
57
62
 
58
- it "should write the string to the Chef::Log object at error level" do
63
+ it "should write the string to the logger object at error level" do
59
64
  new_resource.level :error
60
- expect(Chef::Log).to receive(:error).with(log_str).and_return(true)
65
+ expect(logger).to receive(:error).with(log_str).and_return(true)
61
66
  provider.run_action(:write)
62
67
  end
63
68
 
64
- it "should write the string to the Chef::Log object at fatal level" do
69
+ it "should write the string to the logger object at fatal level" do
65
70
  new_resource.level :fatal
66
- expect(Chef::Log).to receive(:fatal).with(log_str).and_return(true)
71
+ expect(logger).to receive(:fatal).with(log_str).and_return(true)
67
72
  provider.run_action(:write)
68
73
  end
69
74
 
70
75
  it "should print the string in why-run mode" do
71
76
  Chef::Config[:why_run] = true
72
- expect(Chef::Log).to receive(:info).with(log_str).and_return(true)
77
+ expect(logger).to receive(:info).with(log_str).and_return(true)
73
78
  provider.run_action(:write)
74
79
  end
75
80