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
@@ -33,8 +33,10 @@ require "ostruct"
33
33
  describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
34
34
  include GemspecBackcompatCreator
35
35
 
36
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
36
37
  before do
37
38
  @gem_env = Chef::Provider::Package::Rubygems::CurrentGemEnvironment.new
39
+ allow(@gem_env).to receive(:logger).and_return(logger)
38
40
  end
39
41
 
40
42
  it "determines the gem paths from the in memory rubygems" do
@@ -43,7 +45,10 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
43
45
 
44
46
  it "determines the installed versions of gems from Gem.source_index" do
45
47
  gems = [gemspec("rspec-core", Gem::Version.new("1.2.9")), gemspec("rspec-core", Gem::Version.new("1.3.0"))]
46
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.8.0")
48
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("2.7")
49
+ expect(Gem::Specification).to receive(:dirs).and_return(["/path/to/gems/specifications", "/another/path/to/gems/specifications"])
50
+ expect(Gem::Specification).to receive(:installed_stubs).with(["/path/to/gems/specifications", "/another/path/to/gems/specifications"], "rspec-core-*.gemspec").and_return(gems)
51
+ elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.8.0")
47
52
  expect(Gem::Specification).to receive(:find_all_by_name).with("rspec-core", Gem::Dependency.new("rspec-core").requirement).and_return(gems)
48
53
  else
49
54
  expect(Gem.source_index).to receive(:search).with(Gem::Dependency.new("rspec-core", nil)).and_return(gems)
@@ -219,7 +224,11 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
219
224
  it "determines the installed versions of gems from the source index" do
220
225
  gems = [gemspec("rspec", Gem::Version.new("1.2.9")), gemspec("rspec", Gem::Version.new("1.3.0"))]
221
226
  rspec_dep = Gem::Dependency.new("rspec", nil)
222
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.8.0")
227
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("2.7")
228
+ allow(@gem_env).to receive(:gem_specification).and_return(Gem::Specification)
229
+ expect(Gem::Specification).to receive(:dirs).and_return(["/path/to/gems/specifications", "/another/path/to/gems/specifications"])
230
+ expect(Gem::Specification).to receive(:installed_stubs).with(["/path/to/gems/specifications", "/another/path/to/gems/specifications"], "rspec-*.gemspec").and_return(gems)
231
+ elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.8.0")
223
232
  allow(@gem_env).to receive(:gem_specification).and_return(Gem::Specification)
224
233
  expect(@gem_env.gem_specification).to receive(:find_all_by_name).with(rspec_dep.name, rspec_dep.requirement).and_return(gems)
225
234
  else
@@ -394,25 +394,6 @@ describe Chef::Provider::Package::Windows, :windows_only do
394
394
  end
395
395
  end
396
396
  end
397
-
398
- context "a missing local file is given" do
399
- let(:resource_source) { "C:/a_missing_file.exe" }
400
- let(:installer_type) { nil }
401
- before do
402
- allow(::File).to receive(:exist?).with(provider.new_resource.source).and_return(false)
403
- provider.load_current_resource
404
- end
405
-
406
- it "raises a Package error" do
407
- expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
408
- end
409
-
410
- it "why_run mode doesn't raise an error" do
411
- Chef::Config[:why_run] = true
412
- expect { provider.run_action(:install) }.not_to raise_error
413
- Chef::Config[:why_run] = false
414
- end
415
- end
416
397
  end
417
398
 
418
399
  shared_context "valid checksum" do
@@ -0,0 +1,29 @@
1
+ #
2
+ # Copyright:: Copyright 2017-2017, Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ require "spec_helper"
19
+
20
+ # NOTE: most of the tests of this functionality are baked into the func tests for the yum package provider
21
+
22
+ describe Chef::Provider::Package::Yum::PythonHelper do
23
+ let(:helper) { Chef::Provider::Package::Yum::PythonHelper.instance }
24
+
25
+ it "propagates stacktraces on stderr from the forked subprocess", :rhel do
26
+ allow(helper).to receive(:yum_command).and_return("ruby -e 'raise \"your hands in the air\"'")
27
+ expect { helper.package_query(:whatprovides, "tcpdump") }.to raise_error(/your hands in the air/)
28
+ end
29
+ end
@@ -1,6 +1,5 @@
1
1
  #
2
- # Author:: Adam Jacob (<adam@chef.io>)
3
- # Copyright:: Copyright 2008-2016, Chef Software, Inc.
2
+ # Copyright:: Copyright 2018-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");
@@ -19,9 +18,92 @@
19
18
  require "spec_helper"
20
19
 
21
20
  describe Chef::Provider::Package::Yum::YumCache do
21
+ let(:yum_cache) { Chef::Provider::Package::Yum::YumCache.instance }
22
22
 
23
- it "can find yum-dump.py" do
24
- expect(File.exist?(Chef::Provider::Package::Yum::YumCache.instance.yum_dump_path)).to be true
23
+ let(:python_helper) { instance_double(Chef::Provider::Package::Yum::PythonHelper) }
24
+
25
+ def yum_version(name, version, arch)
26
+ Chef::Provider::Package::Yum::Version.new(name, version, arch)
27
+ end
28
+
29
+ before(:each) do
30
+ allow( yum_cache ).to receive(:python_helper).and_return(python_helper)
31
+ end
32
+
33
+ it "package_available? returns false if the helper reports the available version is nil" do
34
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", arch: nil).and_return( yum_version("foo", nil, nil) )
35
+ expect( yum_cache.package_available?("foo") ).to be false
36
+ end
37
+
38
+ it "package_available? returns true if the helper returns an available version" do
39
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", arch: nil).and_return( yum_version("foo", "1.2.3-1", "x86_64") )
40
+ expect( yum_cache.package_available?("foo") ).to be true
41
+ end
42
+
43
+ it "version_available? returns false if the helper reports the available version is nil" do
44
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", version: "1.2.3", arch: nil).and_return( yum_version("foo", nil, nil) )
45
+ expect( yum_cache.version_available?("foo", "1.2.3") ).to be false
46
+ end
47
+
48
+ it "version_available? returns true if the helper returns an available version" do
49
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", version: "1.2.3", arch: nil).and_return( yum_version("foo", "1.2.3-1", "x86_64") )
50
+ expect( yum_cache.version_available?("foo", "1.2.3") ).to be true
51
+ end
52
+
53
+ it "version_available? with an arch returns false if the helper reports the available version is nil" do
54
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", version: "1.2.3", arch: "x86_64").and_return( yum_version("foo", nil, nil) )
55
+ expect( yum_cache.version_available?("foo", "1.2.3", "x86_64") ).to be false
56
+ end
57
+
58
+ it "version_available? with an arch returns true if the helper returns an available version" do
59
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", version: "1.2.3", arch: "x86_64").and_return( yum_version("foo", "1.2.3-1", "x86_64") )
60
+ expect( yum_cache.version_available?("foo", "1.2.3", "x86_64") ).to be true
61
+ end
62
+
63
+ [ :refresh, :reload, :reload_installed, :reload_provides, :reset, :reset_installed ].each do |method|
64
+ it "restarts the python helper when #{method} is called" do
65
+ expect( python_helper ).to receive(:restart)
66
+ yum_cache.send(method)
67
+ end
68
+ end
69
+
70
+ it "installed_version? returns nil if the helper reports the installed version is nil" do
71
+ expect( python_helper ).to receive(:package_query).with(:whatinstalled, "foo", arch: nil).and_return( yum_version("foo", nil, nil) )
72
+ expect( yum_cache.installed_version("foo") ).to be nil
73
+ end
74
+
75
+ it "installed_version? returns version string if the helper returns an installed version" do
76
+ expect( python_helper ).to receive(:package_query).with(:whatinstalled, "foo", arch: nil).and_return( yum_version("foo", "1.2.3-1", "x86_64") )
77
+ expect( yum_cache.installed_version("foo") ).to eql("1.2.3-1.x86_64")
78
+ end
79
+
80
+ it "installed_version? returns nil if the helper reports the installed version is nil" do
81
+ expect( python_helper ).to receive(:package_query).with(:whatinstalled, "foo", arch: "x86_64").and_return( yum_version("foo", nil, nil) )
82
+ expect( yum_cache.installed_version("foo", "x86_64") ).to be nil
83
+ end
84
+
85
+ it "installed_version? returns version string if the helper returns an installed version" do
86
+ expect( python_helper ).to receive(:package_query).with(:whatinstalled, "foo", arch: "x86_64").and_return( yum_version("foo", "1.2.3-1", "x86_64") )
87
+ expect( yum_cache.installed_version("foo", "x86_64") ).to eql("1.2.3-1.x86_64")
88
+ end
89
+
90
+ it "available_version? returns nil if the helper reports the available version is nil" do
91
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", arch: nil).and_return( yum_version("foo", nil, nil) )
92
+ expect( yum_cache.available_version("foo") ).to be nil
93
+ end
94
+
95
+ it "available_version? returns version string if the helper returns an available version" do
96
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", arch: nil).and_return( yum_version("foo", "1.2.3-1", "x86_64") )
97
+ expect( yum_cache.available_version("foo") ).to eql("1.2.3-1.x86_64")
98
+ end
99
+
100
+ it "available_version? returns nil if the helper reports the available version is nil" do
101
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", arch: "x86_64").and_return( yum_version("foo", nil, nil) )
102
+ expect( yum_cache.available_version("foo", "x86_64") ).to be nil
25
103
  end
26
104
 
105
+ it "available_version? returns version string if the helper returns an available version" do
106
+ expect( python_helper ).to receive(:package_query).with(:whatavailable, "foo", arch: "x86_64").and_return( yum_version("foo", "1.2.3-1", "x86_64") )
107
+ expect( yum_cache.available_version("foo", "x86_64") ).to eql("1.2.3-1.x86_64")
108
+ end
27
109
  end
@@ -88,6 +88,14 @@ describe Chef::Provider::Package::Zypper do
88
88
  provider.load_current_resource
89
89
  end
90
90
 
91
+ it "should set the installed version if zypper info has one (zypper version >= 1.13.17)" do
92
+ status = double(:stdout => "Version : 1.0\nInstalled : Yes (automatically)\n", :exitstatus => 0)
93
+
94
+ allow(provider).to receive(:shell_out!).and_return(status)
95
+ expect(current_resource).to receive(:version).with(["1.0"]).and_return(true)
96
+ provider.load_current_resource
97
+ end
98
+
91
99
  it "should set the candidate version if zypper info has one (zypper version < 1.13.0)" do
92
100
  status = double(:stdout => "Version: 1.0\nInstalled: No\nStatus: out-of-date (version 0.9 installed)", :exitstatus => 0)
93
101
 
@@ -26,17 +26,24 @@ describe Chef::Provider::Package do
26
26
  node
27
27
  end
28
28
  let(:events) { Chef::EventDispatch::Dispatcher.new }
29
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
29
30
  let(:run_context) { Chef::RunContext.new(node, {}, events) }
30
- let(:new_resource) { Chef::Resource::Package.new("emacs") }
31
- let(:current_resource) { Chef::Resource::Package.new("emacs") }
31
+ let(:new_resource) { Chef::Resource::Package.new("install emacs") }
32
+ let(:current_resource) { Chef::Resource::Package.new("install emacs") }
32
33
  let(:candidate_version) { "1.0" }
33
34
  let(:provider) do
35
+ new_resource.package_name = "emacs"
36
+ current_resource.package_name = "emacs"
34
37
  provider = Chef::Provider::Package.new(new_resource, run_context)
35
38
  provider.current_resource = current_resource
36
39
  provider.candidate_version = candidate_version
37
40
  provider
38
41
  end
39
42
 
43
+ before do
44
+ allow(run_context).to receive(:logger).and_return(logger)
45
+ end
46
+
40
47
  describe "when installing a package" do
41
48
  before(:each) do
42
49
  provider.current_resource = current_resource
@@ -57,7 +64,7 @@ describe Chef::Provider::Package do
57
64
  it "should call preseed_package if a response_file is given" do
58
65
  new_resource.response_file("foo")
59
66
  expect(provider).to receive(:get_preseed_file).with(
60
- new_resource.name,
67
+ new_resource.package_name,
61
68
  provider.candidate_version
62
69
  ).and_return("/var/cache/preseed-test")
63
70
 
@@ -74,7 +81,7 @@ describe Chef::Provider::Package do
74
81
 
75
82
  it "should install the package at the candidate_version if it is not already installed" do
76
83
  expect(provider).to receive(:install_package).with(
77
- new_resource.name,
84
+ new_resource.package_name,
78
85
  provider.candidate_version
79
86
  ).and_return(true)
80
87
  provider.run_action(:install)
@@ -84,7 +91,7 @@ describe Chef::Provider::Package do
84
91
  it "should install the package at the version specified if it is not already installed" do
85
92
  new_resource.version("1.0")
86
93
  expect(provider).to receive(:install_package).with(
87
- new_resource.name,
94
+ new_resource.package_name,
88
95
  new_resource.version
89
96
  ).and_return(true)
90
97
  provider.run_action(:install)
@@ -95,7 +102,7 @@ describe Chef::Provider::Package do
95
102
  new_resource.version("1.0")
96
103
  allow(current_resource).to receive(:version).and_return("0.99")
97
104
  expect(provider).to receive(:install_package).with(
98
- new_resource.name,
105
+ new_resource.package_name,
99
106
  new_resource.version
100
107
  ).and_return(true)
101
108
  provider.run_action(:install)
@@ -143,7 +150,7 @@ describe Chef::Provider::Package do
143
150
 
144
151
  it "should upgrade the package if the current version is not the candidate version" do
145
152
  expect(provider).to receive(:upgrade_package).with(
146
- new_resource.name,
153
+ new_resource.package_name,
147
154
  provider.candidate_version
148
155
  ).and_return(true)
149
156
  provider.run_action(:upgrade)
@@ -164,7 +171,7 @@ describe Chef::Provider::Package do
164
171
 
165
172
  it "should print the word 'uninstalled' if there was no original version" do
166
173
  allow(current_resource).to receive(:version).and_return(nil)
167
- expect(Chef::Log).to receive(:info).with("package[emacs] upgraded emacs to 1.0")
174
+ expect(logger).to receive(:info).with("package[install emacs] upgraded emacs to 1.0")
168
175
  provider.run_action(:upgrade)
169
176
  expect(new_resource).to be_updated_by_last_action
170
177
  end
@@ -285,7 +292,7 @@ describe Chef::Provider::Package do
285
292
  expect(provider).to receive(:get_preseed_file).and_return("/var/cache/preseed-test")
286
293
  allow(provider).to receive(:preseed_package).and_return(true)
287
294
  allow(provider).to receive(:reconfig_package).and_return(true)
288
- expect(Chef::Log).to receive(:info).with("package[emacs] reconfigured")
295
+ expect(logger).to receive(:info).with("package[install emacs] reconfigured")
289
296
  expect(provider).to receive(:reconfig_package)
290
297
  provider.run_action(:reconfig)
291
298
  expect(new_resource).to be_updated
@@ -294,7 +301,7 @@ describe Chef::Provider::Package do
294
301
 
295
302
  it "should debug log and not reconfigure the package if the package is not installed" do
296
303
  allow(current_resource).to receive(:version).and_return(nil)
297
- expect(Chef::Log).to receive(:debug).with("package[emacs] is NOT installed - nothing to do")
304
+ expect(logger).to receive(:trace).with("package[install emacs] is NOT installed - nothing to do")
298
305
  expect(provider).not_to receive(:reconfig_package)
299
306
  provider.run_action(:reconfig)
300
307
  expect(new_resource).not_to be_updated_by_last_action
@@ -303,7 +310,7 @@ describe Chef::Provider::Package do
303
310
  it "should debug log and not reconfigure the package if no response_file is given" do
304
311
  allow(current_resource).to receive(:version).and_return("1.0")
305
312
  allow(new_resource).to receive(:response_file).and_return(nil)
306
- expect(Chef::Log).to receive(:debug).with("package[emacs] no response_file provided - nothing to do")
313
+ expect(logger).to receive(:trace).with("package[install emacs] no response_file provided - nothing to do")
307
314
  expect(provider).not_to receive(:reconfig_package)
308
315
  provider.run_action(:reconfig)
309
316
  expect(new_resource).not_to be_updated_by_last_action
@@ -314,7 +321,7 @@ describe Chef::Provider::Package do
314
321
  allow(new_resource).to receive(:response_file).and_return(true)
315
322
  expect(provider).to receive(:get_preseed_file).and_return(false)
316
323
  allow(provider).to receive(:preseed_package).and_return(false)
317
- expect(Chef::Log).to receive(:debug).with("package[emacs] preseeding has not changed - nothing to do")
324
+ expect(logger).to receive(:trace).with("package[install emacs] preseeding has not changed - nothing to do")
318
325
  expect(provider).not_to receive(:reconfig_package)
319
326
  provider.run_action(:reconfig)
320
327
  expect(new_resource).not_to be_updated_by_last_action
@@ -323,24 +330,35 @@ describe Chef::Provider::Package do
323
330
 
324
331
  describe "When locking the package" do
325
332
  before(:each) do
326
- allow(provider).to receive(:lock_package).and_return(true)
333
+ allow(provider).to receive(:lock_package).with(
334
+ new_resource.package_name,
335
+ nil
336
+ ).and_return(true)
327
337
  end
328
338
 
329
339
  it "should lock the package if it is unlocked" do
330
- allow(provider).to receive(:package_locked).and_return(false)
331
- expect(provider).to receive(:lock_package)
340
+ allow(provider).to receive(:package_locked).with(
341
+ new_resource.package_name,
342
+ nil
343
+ ).and_return(false)
332
344
  provider.run_action(:lock)
333
345
  end
334
346
 
335
347
  it "should not lock the package if it is already locked" do
336
- allow(provider).to receive(:package_locked).and_return(true)
348
+ allow(provider).to receive(:package_locked).with(
349
+ new_resource.package_name,
350
+ nil
351
+ ).and_return(true)
337
352
  expect(provider).not_to receive(:lock_package)
338
353
  provider.run_action(:lock)
339
354
  expect(new_resource).not_to be_updated_by_last_action
340
355
  end
341
356
 
342
357
  it "should set the resource to updated if it locks the package" do
343
- allow(provider).to receive(:package_locked).and_return(false)
358
+ allow(provider).to receive(:package_locked).with(
359
+ new_resource.package_name,
360
+ nil
361
+ ).and_return(false)
344
362
  provider.run_action(:lock)
345
363
  expect(new_resource).to be_updated
346
364
  end
@@ -352,20 +370,29 @@ describe Chef::Provider::Package do
352
370
  end
353
371
 
354
372
  it "should unlock the package if it is locked" do
355
- allow(provider).to receive(:package_locked).and_return(true)
373
+ allow(provider).to receive(:package_locked).with(
374
+ new_resource.package_name,
375
+ nil
376
+ ).and_return(true)
356
377
  expect(provider).to receive(:unlock_package)
357
378
  provider.run_action(:unlock)
358
379
  end
359
380
 
360
381
  it "should not unlock the package if it is already unlocked" do
361
- allow(provider).to receive(:package_locked).and_return(false)
382
+ allow(provider).to receive(:package_locked).with(
383
+ new_resource.package_name,
384
+ nil
385
+ ).and_return(false)
362
386
  expect(provider).not_to receive(:unlock_package)
363
387
  provider.run_action(:unlock)
364
388
  expect(new_resource).not_to be_updated_by_last_action
365
389
  end
366
390
 
367
391
  it "should set the resource to updated if it unlocks the package" do
368
- allow(provider).to receive(:package_locked).and_return(true)
392
+ allow(provider).to receive(:package_locked).with(
393
+ new_resource.package_name,
394
+ nil
395
+ ).and_return(true)
369
396
  provider.run_action(:unlock)
370
397
  expect(new_resource).to be_updated
371
398
  end
@@ -313,7 +313,13 @@ describe Chef::Provider::RegistryKey do
313
313
  end
314
314
 
315
315
  describe Chef::Provider::RegistryKey, "key_missing?" do
316
- let(:provider) { Chef::Provider::RegistryKey.new(nil, nil) }
316
+ let(:node) { Chef::Node.new }
317
+ let(:events) { double("Chef::Events").as_null_object }
318
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
319
+ let(:run_context) { double("Chef::RunContext", node: node, events: events, logger: logger) }
320
+ let(:new_resource) { Chef::Resource::RegistryKey.new("emacs") }
321
+ let(:provider) { Chef::Provider::RegistryKey.new(new_resource, run_context) }
322
+
317
323
  let(:all_keys_present_in_all_hash) do
318
324
  [ { :name => "input1_value1", :type => :string, :data => "my_value1" },
319
325
  { :name => "input1_value2", :type => :string, :data => "my_value2" },
@@ -193,7 +193,7 @@ describe Chef::Provider::RemoteDirectory do
193
193
  expect(::File.exist?(@destination_dir + "/a/multiply/nested/directory/qux.txt")).to be_falsey
194
194
  end
195
195
 
196
- it "removes directory symlinks properly", :not_supported_on_win2k3 do
196
+ it "removes directory symlinks properly" do
197
197
  symlinked_dir_path = @destination_dir + "/symlinked_dir"
198
198
  @provider.action = :create
199
199
  @provider.run_action
@@ -36,7 +36,8 @@ describe Chef::Provider::RemoteFile do
36
36
 
37
37
  let(:node) { double("Chef::Node") }
38
38
  let(:events) { double("Chef::Events").as_null_object } # mock all the methods
39
- let(:run_context) { double("Chef::RunContext", :node => node, :events => events) }
39
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
40
+ let(:run_context) { double("Chef::RunContext", :node => node, :events => events, :logger => logger) }
40
41
  let(:enclosing_directory) do
41
42
  canonicalize_path(File.expand_path(File.join(CHEF_SPEC_DATA, "templates")))
42
43
  end
@@ -44,6 +44,7 @@ describe Chef::Provider::Service::Macosx do
44
44
  context "when service name is given as" do
45
45
  let(:node) { Chef::Node.new }
46
46
  let(:events) { Chef::EventDispatch::Dispatcher.new }
47
+ let(:logger) { double("Mixlib::Log::Child").as_null_object }
47
48
  let(:run_context) { Chef::RunContext.new(node, {}, events) }
48
49
  let(:provider) { described_class.new(new_resource, run_context) }
49
50
  let(:launchctl_stdout) { StringIO.new }
@@ -73,6 +74,7 @@ XML
73
74
  end
74
75
  let(:service_label) { "io.redis.redis-server" }
75
76
  before do
77
+ allow(run_context).to receive(:logger).and_return(logger)
76
78
  allow(Dir).to receive(:glob).and_return([plist], [])
77
79
  @stat = double("File::Stat", { :uid => 501 })
78
80
  allow(File).to receive(:stat).and_return(@stat)
@@ -260,7 +262,7 @@ SVC_LIST
260
262
 
261
263
  it "shows warning message if service is already running" do
262
264
  allow(current_resource).to receive(:running).and_return(true)
263
- expect(Chef::Log).to receive(:debug).with("macosx_service[#{service_name}] already running, not starting")
265
+ expect(logger).to receive(:trace).with("macosx_service[#{service_name}] already running, not starting")
264
266
 
265
267
  provider.start_service
266
268
  end
@@ -292,7 +294,7 @@ SVC_LIST
292
294
 
293
295
  it "shows warning message if service is not running" do
294
296
  allow(current_resource).to receive(:running).and_return(false)
295
- expect(Chef::Log).to receive(:debug).with("macosx_service[#{service_name}] not running, not stopping")
297
+ expect(logger).to receive(:trace).with("macosx_service[#{service_name}] not running, not stopping")
296
298
 
297
299
  provider.stop_service
298
300
  end