chef 16.0.257 → 16.2.44

Sign up to get free protection for your applications and to get access to all the features.
Files changed (389) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/README.md +3 -3
  4. data/Rakefile +44 -16
  5. data/chef.gemspec +4 -4
  6. data/lib/chef/application/apply.rb +2 -2
  7. data/lib/chef/application/base.rb +1 -1
  8. data/lib/chef/application/client.rb +1 -1
  9. data/lib/chef/application/exit_code.rb +2 -2
  10. data/lib/chef/application/windows_service_manager.rb +1 -1
  11. data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
  12. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  13. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  14. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
  15. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
  16. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
  17. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
  18. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  19. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
  20. data/lib/chef/chef_fs/path_utils.rb +4 -4
  21. data/lib/chef/cookbook/chefignore.rb +1 -1
  22. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  23. data/lib/chef/cookbook/metadata.rb +2 -2
  24. data/lib/chef/cookbook_loader.rb +1 -1
  25. data/lib/chef/cookbook_manifest.rb +1 -1
  26. data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
  27. data/lib/chef/cookbook_version.rb +7 -7
  28. data/lib/chef/data_bag.rb +4 -4
  29. data/lib/chef/data_collector.rb +1 -1
  30. data/lib/chef/data_collector/error_handlers.rb +1 -1
  31. data/lib/chef/decorator/lazy_array.rb +2 -2
  32. data/lib/chef/deprecated.rb +5 -1
  33. data/lib/chef/digester.rb +4 -4
  34. data/lib/chef/dsl/declare_resource.rb +1 -1
  35. data/lib/chef/dsl/platform_introspection.rb +1 -1
  36. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  37. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  38. data/lib/chef/file_access_control.rb +1 -1
  39. data/lib/chef/formatters/base.rb +1 -1
  40. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  41. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  42. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
  43. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
  44. data/lib/chef/http.rb +18 -3
  45. data/lib/chef/http/decompressor.rb +1 -1
  46. data/lib/chef/http/http_request.rb +1 -1
  47. data/lib/chef/http/json_output.rb +1 -1
  48. data/lib/chef/http/ssl_policies.rb +18 -0
  49. data/lib/chef/json_compat.rb +1 -1
  50. data/lib/chef/key.rb +1 -1
  51. data/lib/chef/knife.rb +2 -2
  52. data/lib/chef/knife/bootstrap.rb +13 -16
  53. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  54. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  55. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  56. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
  57. data/lib/chef/knife/client_bulk_delete.rb +1 -1
  58. data/lib/chef/knife/config_get.rb +1 -1
  59. data/lib/chef/knife/cookbook_delete.rb +1 -1
  60. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  61. data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
  62. data/lib/chef/knife/core/node_presenter.rb +1 -1
  63. data/lib/chef/knife/core/status_presenter.rb +1 -1
  64. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  65. data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -3
  66. data/lib/chef/knife/data_bag_create.rb +1 -1
  67. data/lib/chef/knife/environment_compare.rb +1 -1
  68. data/lib/chef/knife/key_create_base.rb +1 -1
  69. data/lib/chef/knife/key_edit_base.rb +1 -1
  70. data/lib/chef/knife/list.rb +1 -1
  71. data/lib/chef/knife/node_bulk_delete.rb +1 -1
  72. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  73. data/lib/chef/knife/role_bulk_delete.rb +1 -1
  74. data/lib/chef/knife/ssh.rb +2 -2
  75. data/lib/chef/knife/supermarket_install.rb +1 -1
  76. data/lib/chef/knife/supermarket_share.rb +1 -1
  77. data/lib/chef/knife/supermarket_unshare.rb +1 -1
  78. data/lib/chef/knife/{user_invite_recind.rb → user_invite_rescind.rb} +6 -6
  79. data/lib/chef/knife/yaml_convert.rb +2 -2
  80. data/lib/chef/log.rb +1 -1
  81. data/lib/chef/mixin/api_version_request_handling.rb +1 -1
  82. data/lib/chef/mixin/checksum.rb +0 -1
  83. data/lib/chef/mixin/create_path.rb +8 -8
  84. data/lib/chef/mixin/openssl_helper.rb +4 -4
  85. data/lib/chef/mixin/properties.rb +4 -2
  86. data/lib/chef/mixin/securable.rb +2 -2
  87. data/lib/chef/mixin/shell_out.rb +1 -1
  88. data/lib/chef/node/attribute.rb +2 -2
  89. data/lib/chef/node/immutable_collections.rb +1 -1
  90. data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
  91. data/lib/chef/policy_builder/policyfile.rb +1 -1
  92. data/lib/chef/powershell.rb +1 -1
  93. data/lib/chef/property.rb +2 -2
  94. data/lib/chef/provider.rb +3 -3
  95. data/lib/chef/provider/batch.rb +3 -10
  96. data/lib/chef/provider/cron.rb +2 -14
  97. data/lib/chef/provider/directory.rb +1 -1
  98. data/lib/chef/provider/execute.rb +3 -2
  99. data/lib/chef/provider/file.rb +1 -1
  100. data/lib/chef/provider/group/dscl.rb +2 -2
  101. data/lib/chef/provider/group/windows.rb +1 -1
  102. data/lib/chef/provider/ifconfig.rb +7 -7
  103. data/lib/chef/provider/launchd.rb +28 -32
  104. data/lib/chef/provider/mount/aix.rb +1 -1
  105. data/lib/chef/provider/mount/windows.rb +2 -2
  106. data/lib/chef/provider/noop.rb +1 -1
  107. data/lib/chef/provider/package/cab.rb +1 -1
  108. data/lib/chef/provider/package/chocolatey.rb +1 -1
  109. data/lib/chef/provider/package/dpkg.rb +1 -1
  110. data/lib/chef/provider/package/freebsd/base.rb +2 -1
  111. data/lib/chef/provider/package/homebrew.rb +1 -1
  112. data/lib/chef/provider/package/macports.rb +0 -2
  113. data/lib/chef/provider/package/openbsd.rb +1 -1
  114. data/lib/chef/provider/package/portage.rb +3 -2
  115. data/lib/chef/provider/package/powershell.rb +6 -2
  116. data/lib/chef/provider/package/rubygems.rb +3 -3
  117. data/lib/chef/provider/package/snap.rb +96 -27
  118. data/lib/chef/provider/package/windows.rb +27 -52
  119. data/lib/chef/provider/package/windows/msi.rb +3 -3
  120. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  121. data/lib/chef/provider/package/yum.rb +1 -1
  122. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  123. data/lib/chef/provider/powershell_script.rb +11 -15
  124. data/lib/chef/provider/remote_directory.rb +2 -2
  125. data/lib/chef/provider/remote_file/http.rb +4 -1
  126. data/lib/chef/provider/script.rb +4 -75
  127. data/lib/chef/provider/service/arch.rb +2 -2
  128. data/lib/chef/provider/service/debian.rb +2 -2
  129. data/lib/chef/provider/service/macosx.rb +13 -2
  130. data/lib/chef/provider/service/openbsd.rb +4 -4
  131. data/lib/chef/provider/service/redhat.rb +1 -1
  132. data/lib/chef/provider/service/simple.rb +3 -3
  133. data/lib/chef/provider/service/upstart.rb +1 -1
  134. data/lib/chef/provider/service/windows.rb +1 -1
  135. data/lib/chef/provider/subversion.rb +2 -2
  136. data/lib/chef/provider/user/aix.rb +1 -1
  137. data/lib/chef/provider/user/dscl.rb +7 -7
  138. data/lib/chef/provider/user/linux.rb +3 -3
  139. data/lib/chef/provider/user/mac.rb +15 -11
  140. data/lib/chef/provider/windows_script.rb +87 -25
  141. data/lib/chef/provider/windows_task.rb +5 -3
  142. data/lib/chef/provider/zypper_repository.rb +30 -10
  143. data/lib/chef/resource.rb +25 -14
  144. data/lib/chef/resource/alternatives.rb +65 -4
  145. data/lib/chef/resource/apt_package.rb +31 -2
  146. data/lib/chef/resource/apt_preference.rb +34 -5
  147. data/lib/chef/resource/apt_repository.rb +22 -15
  148. data/lib/chef/resource/apt_update.rb +6 -4
  149. data/lib/chef/resource/archive_file.rb +33 -12
  150. data/lib/chef/resource/bash.rb +1 -2
  151. data/lib/chef/resource/batch.rb +5 -3
  152. data/lib/chef/resource/bff_package.rb +1 -1
  153. data/lib/chef/resource/breakpoint.rb +1 -1
  154. data/lib/chef/resource/build_essential.rb +8 -4
  155. data/lib/chef/resource/cab_package.rb +1 -1
  156. data/lib/chef/resource/chef_client_cron.rb +12 -9
  157. data/lib/chef/resource/chef_client_scheduled_task.rb +22 -7
  158. data/lib/chef/resource/chef_client_systemd_timer.rb +10 -7
  159. data/lib/chef/resource/chef_gem.rb +6 -2
  160. data/lib/chef/resource/chef_handler.rb +3 -3
  161. data/lib/chef/resource/chef_sleep.rb +7 -4
  162. data/lib/chef/resource/chef_vault_secret.rb +4 -4
  163. data/lib/chef/resource/chocolatey_config.rb +5 -3
  164. data/lib/chef/resource/chocolatey_feature.rb +5 -3
  165. data/lib/chef/resource/chocolatey_package.rb +5 -3
  166. data/lib/chef/resource/chocolatey_source.rb +5 -3
  167. data/lib/chef/resource/cookbook_file.rb +3 -2
  168. data/lib/chef/resource/cron/_cron_shared.rb +98 -0
  169. data/lib/chef/resource/cron/cron.rb +46 -0
  170. data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +28 -94
  171. data/lib/chef/resource/cron_access.rb +17 -6
  172. data/lib/chef/resource/csh.rb +1 -2
  173. data/lib/chef/resource/directory.rb +1 -1
  174. data/lib/chef/resource/dmg_package.rb +18 -15
  175. data/lib/chef/resource/dnf_package.rb +1 -1
  176. data/lib/chef/resource/dpkg_package.rb +1 -1
  177. data/lib/chef/resource/execute.rb +479 -9
  178. data/lib/chef/resource/file.rb +11 -8
  179. data/lib/chef/resource/freebsd_package.rb +2 -2
  180. data/lib/chef/resource/gem_package.rb +6 -6
  181. data/lib/chef/resource/group.rb +1 -1
  182. data/lib/chef/resource/helpers/cron_validations.rb +6 -3
  183. data/lib/chef/resource/homebrew_cask.rb +1 -1
  184. data/lib/chef/resource/homebrew_package.rb +30 -1
  185. data/lib/chef/resource/homebrew_tap.rb +1 -1
  186. data/lib/chef/resource/homebrew_update.rb +107 -0
  187. data/lib/chef/resource/hostname.rb +11 -24
  188. data/lib/chef/resource/http_request.rb +1 -1
  189. data/lib/chef/resource/ifconfig.rb +7 -7
  190. data/lib/chef/resource/ips_package.rb +1 -1
  191. data/lib/chef/resource/kernel_module.rb +15 -2
  192. data/lib/chef/resource/ksh.rb +1 -1
  193. data/lib/chef/resource/launchd.rb +5 -5
  194. data/lib/chef/resource/link.rb +4 -4
  195. data/lib/chef/resource/locale.rb +4 -4
  196. data/lib/chef/resource/log.rb +1 -1
  197. data/lib/chef/resource/macos_userdefaults.rb +15 -10
  198. data/lib/chef/resource/macosx_service.rb +1 -1
  199. data/lib/chef/resource/macports_package.rb +1 -1
  200. data/lib/chef/resource/mdadm.rb +1 -1
  201. data/lib/chef/resource/mount.rb +2 -2
  202. data/lib/chef/resource/msu_package.rb +2 -2
  203. data/lib/chef/resource/ohai.rb +1 -1
  204. data/lib/chef/resource/ohai_hint.rb +1 -1
  205. data/lib/chef/resource/openbsd_package.rb +1 -1
  206. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  207. data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
  208. data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
  209. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  210. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
  211. data/lib/chef/resource/openssl_x509_certificate.rb +1 -1
  212. data/lib/chef/resource/openssl_x509_crl.rb +1 -1
  213. data/lib/chef/resource/openssl_x509_request.rb +1 -1
  214. data/lib/chef/resource/osx_profile.rb +1 -1
  215. data/lib/chef/resource/package.rb +1 -1
  216. data/lib/chef/resource/pacman_package.rb +1 -1
  217. data/lib/chef/resource/paludis_package.rb +1 -1
  218. data/lib/chef/resource/perl.rb +1 -2
  219. data/lib/chef/resource/plist.rb +24 -5
  220. data/lib/chef/resource/portage_package.rb +1 -1
  221. data/lib/chef/resource/powershell_package.rb +1 -1
  222. data/lib/chef/resource/powershell_package_source.rb +1 -1
  223. data/lib/chef/resource/powershell_script.rb +5 -3
  224. data/lib/chef/resource/python.rb +1 -2
  225. data/lib/chef/resource/reboot.rb +1 -1
  226. data/lib/chef/resource/registry_key.rb +1 -1
  227. data/lib/chef/resource/remote_directory.rb +1 -1
  228. data/lib/chef/resource/remote_file.rb +26 -11
  229. data/lib/chef/resource/rhsm_errata.rb +1 -3
  230. data/lib/chef/resource/rhsm_errata_level.rb +1 -1
  231. data/lib/chef/resource/rhsm_register.rb +1 -2
  232. data/lib/chef/resource/rhsm_repo.rb +1 -2
  233. data/lib/chef/resource/rhsm_subscription.rb +1 -3
  234. data/lib/chef/resource/route.rb +1 -1
  235. data/lib/chef/resource/rpm_package.rb +5 -2
  236. data/lib/chef/resource/ruby.rb +1 -2
  237. data/lib/chef/resource/ruby_block.rb +1 -4
  238. data/lib/chef/resource/scm/_scm.rb +4 -3
  239. data/lib/chef/resource/scm/git.rb +2 -2
  240. data/lib/chef/resource/scm/subversion.rb +2 -2
  241. data/lib/chef/resource/script.rb +1 -1
  242. data/lib/chef/resource/service.rb +1 -1
  243. data/lib/chef/resource/smartos_package.rb +1 -1
  244. data/lib/chef/resource/snap_package.rb +1 -1
  245. data/lib/chef/resource/solaris_package.rb +1 -1
  246. data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
  247. data/lib/chef/resource/sudo.rb +4 -4
  248. data/lib/chef/resource/swap_file.rb +2 -2
  249. data/lib/chef/resource/sysctl.rb +61 -2
  250. data/lib/chef/resource/systemd_unit.rb +2 -2
  251. data/lib/chef/resource/template.rb +1 -1
  252. data/lib/chef/resource/timezone.rb +1 -1
  253. data/lib/chef/resource/user.rb +2 -2
  254. data/lib/chef/resource/user_ulimit.rb +24 -22
  255. data/lib/chef/resource/windows_ad_join.rb +31 -2
  256. data/lib/chef/resource/windows_audit_policy.rb +227 -0
  257. data/lib/chef/resource/windows_auto_run.rb +13 -2
  258. data/lib/chef/resource/windows_certificate.rb +28 -2
  259. data/lib/chef/resource/windows_dfs_folder.rb +1 -1
  260. data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
  261. data/lib/chef/resource/windows_dfs_server.rb +2 -2
  262. data/lib/chef/resource/windows_env.rb +10 -1
  263. data/lib/chef/resource/windows_feature.rb +57 -2
  264. data/lib/chef/resource/windows_feature_dism.rb +15 -2
  265. data/lib/chef/resource/windows_feature_powershell.rb +29 -2
  266. data/lib/chef/resource/windows_firewall_rule.rb +11 -7
  267. data/lib/chef/resource/windows_font.rb +13 -4
  268. data/lib/chef/resource/windows_package.rb +66 -6
  269. data/lib/chef/resource/windows_pagefile.rb +32 -4
  270. data/lib/chef/resource/windows_path.rb +18 -1
  271. data/lib/chef/resource/windows_printer.rb +26 -6
  272. data/lib/chef/resource/windows_printer_port.rb +29 -1
  273. data/lib/chef/resource/windows_script.rb +2 -16
  274. data/lib/chef/resource/windows_security_policy.rb +47 -16
  275. data/lib/chef/resource/windows_service.rb +1 -1
  276. data/lib/chef/resource/windows_share.rb +23 -3
  277. data/lib/chef/resource/windows_shortcut.rb +13 -3
  278. data/lib/chef/resource/windows_task.rb +143 -29
  279. data/lib/chef/resource/windows_uac.rb +20 -1
  280. data/lib/chef/resource/windows_user_privilege.rb +45 -3
  281. data/lib/chef/resource/windows_workgroup.rb +19 -3
  282. data/lib/chef/resource/yum_package.rb +88 -6
  283. data/lib/chef/resource/yum_repository.rb +36 -19
  284. data/lib/chef/resource/zypper_package.rb +29 -3
  285. data/lib/chef/resource/zypper_repository.rb +17 -5
  286. data/lib/chef/resource_inspector.rb +5 -4
  287. data/lib/chef/resources.rb +4 -2
  288. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  289. data/lib/chef/scan_access_control.rb +1 -1
  290. data/lib/chef/search/query.rb +1 -1
  291. data/lib/chef/shell/ext.rb +1 -1
  292. data/lib/chef/util/diff.rb +2 -2
  293. data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
  294. data/lib/chef/util/windows/net_user.rb +1 -1
  295. data/lib/chef/util/windows/volume.rb +1 -1
  296. data/lib/chef/version.rb +1 -1
  297. data/lib/chef/win32/api.rb +2 -2
  298. data/lib/chef/win32/api/error.rb +3 -1
  299. data/lib/chef/win32/api/file.rb +18 -18
  300. data/lib/chef/win32/api/net.rb +1 -0
  301. data/lib/chef/win32/file.rb +1 -1
  302. data/lib/chef/win32/mutex.rb +1 -1
  303. data/lib/chef/win32/net.rb +1 -0
  304. data/lib/chef/win32/process.rb +2 -2
  305. data/lib/chef/win32/registry.rb +2 -2
  306. data/lib/chef/win32/security.rb +1 -1
  307. data/lib/chef/win32/security/sid.rb +4 -4
  308. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  309. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  310. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  311. data/spec/functional/resource/cron_spec.rb +10 -0
  312. data/spec/functional/resource/dnf_package_spec.rb +2 -2
  313. data/spec/functional/resource/git_spec.rb +6 -6
  314. data/spec/functional/resource/launchd_spec.rb +232 -0
  315. data/spec/functional/resource/link_spec.rb +3 -3
  316. data/spec/functional/resource/remote_file_spec.rb +3 -3
  317. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  318. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  319. data/spec/functional/resource/windows_task_spec.rb +12 -12
  320. data/spec/integration/knife/raw_spec.rb +4 -4
  321. data/spec/integration/knife/redirection_spec.rb +2 -2
  322. data/spec/support/chef_helpers.rb +1 -1
  323. data/spec/support/platform_helpers.rb +1 -14
  324. data/spec/support/platforms/win32/spec_service.rb +1 -1
  325. data/spec/support/shared/functional/execute_resource.rb +1 -1
  326. data/spec/support/shared/functional/file_resource.rb +1 -1
  327. data/spec/support/shared/functional/http.rb +2 -2
  328. data/spec/support/shared/functional/windows_script.rb +1 -1
  329. data/spec/support/shared/unit/execute_resource.rb +1 -1
  330. data/spec/support/shared/unit/mock_shellout.rb +1 -1
  331. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
  332. data/spec/unit/application_spec.rb +7 -0
  333. data/spec/unit/data_bag_spec.rb +1 -1
  334. data/spec/unit/file_access_control_spec.rb +1 -1
  335. data/spec/unit/http/ssl_policies_spec.rb +20 -0
  336. data/spec/unit/knife/bootstrap_spec.rb +2 -2
  337. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
  338. data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
  339. data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
  340. data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
  341. data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
  342. data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
  343. data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
  344. data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
  345. data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
  346. data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
  347. data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
  348. data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
  349. data/spec/unit/mixin/shell_out_spec.rb +25 -31
  350. data/spec/unit/mixin/user_context_spec.rb +1 -9
  351. data/spec/unit/node/attribute_spec.rb +1 -1
  352. data/spec/unit/property_spec.rb +1 -1
  353. data/spec/unit/provider/apt_repository_spec.rb +27 -27
  354. data/spec/unit/provider/batch_spec.rb +130 -0
  355. data/spec/unit/provider/cron_spec.rb +9 -49
  356. data/spec/unit/provider/git_spec.rb +3 -3
  357. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  358. data/spec/unit/provider/launchd_spec.rb +8 -50
  359. data/spec/unit/provider/osx_profile_spec.rb +2 -2
  360. data/spec/unit/provider/package/msu_spec.rb +3 -3
  361. data/spec/unit/provider/package/portage_spec.rb +2 -2
  362. data/spec/unit/provider/package/powershell_spec.rb +96 -87
  363. data/spec/unit/provider/package/snap_spec.rb +1 -1
  364. data/spec/unit/provider/powershell_script_spec.rb +3 -45
  365. data/spec/unit/provider/script_spec.rb +20 -110
  366. data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
  367. data/spec/unit/provider/zypper_repository_spec.rb +75 -25
  368. data/spec/unit/provider_resolver_spec.rb +11 -11
  369. data/spec/unit/resource/archive_file_spec.rb +11 -2
  370. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
  371. data/spec/unit/resource/cron_spec.rb +2 -2
  372. data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
  373. data/spec/unit/resource/homebrew_update_spec.rb +30 -0
  374. data/spec/unit/resource/powershell_script_spec.rb +10 -15
  375. data/spec/unit/resource/timezone_spec.rb +1 -1
  376. data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
  377. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  378. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  379. data/spec/unit/resource/windows_package_spec.rb +10 -0
  380. data/spec/unit/resource/windows_task_spec.rb +1 -1
  381. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  382. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  383. data/spec/unit/resource_spec.rb +67 -1
  384. data/spec/unit/run_context_spec.rb +1 -1
  385. data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
  386. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  387. data/spec/unit/win32/registry_spec.rb +1 -1
  388. metadata +28 -27
  389. data/lib/chef/resource/cron.rb +0 -157
@@ -25,10 +25,12 @@ class Chef
25
25
 
26
26
  provides :batch
27
27
 
28
- description "Use the batch resource to execute a batch script using the cmd.exe interpreter on Windows. The batch resource creates and executes a temporary file (similar to how the script resource behaves), rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
28
+ description "Use the **batch** resource to execute a batch script using the cmd.exe interpreter on Windows. The batch resource creates and executes a temporary file (similar to how the script resource behaves), rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
29
29
 
30
- def initialize(name, run_context = nil)
31
- super(name, run_context, nil, "cmd.exe")
30
+ def initialize(*args)
31
+ super
32
+ @interpreter = "cmd.exe"
33
+ @default_guard_interpreter = resource_name
32
34
  end
33
35
 
34
36
  end
@@ -25,7 +25,7 @@ class Chef
25
25
 
26
26
  provides :bff_package
27
27
 
28
- description "Use the bff_package resource to manage packages for the AIX platform using the installp utility. When a package is installed from a local file, it must be added to the node using the remote_file or cookbook_file resources."
28
+ description "Use the **bff_package** resource to manage packages for the AIX platform using the installp utility. When a package is installed from a local file, it must be added to the node using the **remote_file** or **cookbook_file** resources."
29
29
  introduced "12.0"
30
30
 
31
31
  property :package_name, String,
@@ -26,7 +26,7 @@ class Chef
26
26
 
27
27
  provides :breakpoint, target_mode: true
28
28
 
29
- description "Use the breakpoint resource to add breakpoints to recipes. Run the #{Chef::Dist::SHELL} in #{Chef::Dist::PRODUCT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
29
+ description "Use the **breakpoint** resource to add breakpoints to recipes. Run the #{Chef::Dist::SHELL} in #{Chef::Dist::PRODUCT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
30
30
  introduced "12.0"
31
31
 
32
32
  default_action :break
@@ -24,22 +24,25 @@ class Chef
24
24
 
25
25
  provides(:build_essential) { true }
26
26
 
27
- description "Use the build_essential resource to install the packages required for compiling C software from source."
27
+ description "Use the **build_essential** resource to install the packages required for compiling C software from source."
28
28
  introduced "14.0"
29
29
  examples <<~DOC
30
- Install compilation packages
30
+ **Install compilation packages**:
31
+
31
32
  ```ruby
32
33
  build_essential
33
34
  ```
34
35
 
35
- Install compilation packages during the compilation phase
36
+ **Install compilation packages during the compilation phase**:
37
+
36
38
  ```ruby
37
39
  build_essential 'Install compilation tools' do
38
40
  compile_time true
39
41
  end
40
42
  ```
41
43
 
42
- Upgrade compilation packages on macOS systems
44
+ **Upgrade compilation packages on macOS systems**:
45
+
43
46
  ```ruby
44
47
  build_essential 'Install compilation tools' do
45
48
  action :upgrade
@@ -52,6 +55,7 @@ class Chef
52
55
 
53
56
  property :raise_if_unsupported, [TrueClass, FalseClass],
54
57
  description: "Raise a hard error on platforms where this resource is unsupported.",
58
+ introduced: "15.5",
55
59
  default: false, desired_state: false # FIXME: make this default to true
56
60
 
57
61
  action :install do
@@ -27,7 +27,7 @@ class Chef
27
27
 
28
28
  provides :cab_package
29
29
 
30
- description "Use the cab_package resource to install or remove Microsoft Windows cabinet (.cab) packages."
30
+ description "Use the **cab_package** resource to install or remove Microsoft Windows cabinet (.cab) packages."
31
31
  introduced "12.15"
32
32
 
33
33
  allowed_actions :install, :remove
@@ -26,23 +26,26 @@ class Chef
26
26
 
27
27
  provides :chef_client_cron
28
28
 
29
- description "Use the chef_client_cron resource to setup the #{Chef::Dist::PRODUCT} to run as a cron job. This resource will also create the specified log directory if it doesn't already exist."
29
+ description "Use the **chef_client_cron** resource to setup the #{Chef::Dist::PRODUCT} to run as a cron job. This resource will also create the specified log directory if it doesn't already exist."
30
30
  introduced "16.0"
31
31
  examples <<~DOC
32
- Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
32
+ **Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
33
+
33
34
  ```ruby
34
- chef_client_cron "Run chef-client as a cron job"
35
+ chef_client_cron "Run #{Chef::Dist::PRODUCT} as a cron job"
35
36
  ```
36
37
 
37
- Run #{Chef::Dist::PRODUCT} twice a day
38
+ **Run #{Chef::Dist::PRODUCT} twice a day**:
39
+
38
40
  ```ruby
39
- chef_client_cron "Run chef-client every 12 hours" do
41
+ chef_client_cron "Run #{Chef::Dist::PRODUCT} every 12 hours" do
40
42
  minute 0
41
43
  hour "0,12"
42
44
  end
43
45
  ```
44
46
 
45
- Run #{Chef::Dist::PRODUCT} with extra options passed to the client
47
+ **Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
48
+
46
49
  ```ruby
47
50
  chef_client_cron "Run an override recipe" do
48
51
  daemon_options ["--override-runlist mycorp_base::default"]
@@ -133,14 +136,14 @@ class Chef
133
136
 
134
137
  property :environment, Hash,
135
138
  default: lazy { {} },
136
- description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of ``({'ENV_VARIABLE' => 'VALUE'})``."
139
+ description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`."
137
140
 
138
141
  action :add do
139
142
  # TODO: Replace this with a :create_if_missing action on directory when that exists
140
143
  unless ::Dir.exist?(new_resource.log_directory)
141
144
  directory new_resource.log_directory do
142
145
  owner new_resource.user
143
- mode "0640"
146
+ mode "0750"
144
147
  recursive true
145
148
  end
146
149
  end
@@ -160,7 +163,7 @@ class Chef
160
163
  end
161
164
 
162
165
  action :remove do
163
- cron_d new_resource.job_name do
166
+ declare_resource(cron_resource_type, new_resource.job_name) do
164
167
  action :delete
165
168
  end
166
169
  end
@@ -24,27 +24,40 @@ class Chef
24
24
 
25
25
  provides :chef_client_scheduled_task
26
26
 
27
- description "Use the chef_client_cron resource to setup the #{Chef::Dist::PRODUCT} to run as a Windows scheduled task. This resource will also create the specified log directory if it doesn't already exist."
27
+ description "Use the **chef_client_scheduled_task** resource to setup the #{Chef::Dist::PRODUCT} to run as a Windows scheduled task. This resource will also create the specified log directory if it doesn't already exist."
28
28
  introduced "16.0"
29
29
  examples <<~DOC
30
- Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
30
+ **Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
31
+
31
32
  ```ruby
32
- chef_client_scheduled_task "Run chef-client as a scheduled task"
33
+ chef_client_scheduled_task "Run #{Chef::Dist::PRODUCT} as a scheduled task"
33
34
  ```
34
35
 
35
- Run #{Chef::Dist::PRODUCT} on system start
36
+ **Run #{Chef::Dist::PRODUCT} on system start**:
37
+
36
38
  ```ruby
37
- chef_client_scheduled_task 'Chef Client on start' do
39
+ chef_client_scheduled_task '#{Chef::Dist::PRODUCT} on start' do
38
40
  frequency 'onstart'
39
41
  end
40
42
  ```
41
43
 
42
- Run #{Chef::Dist::PRODUCT} with extra options passed to the client
44
+ **Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
45
+
43
46
  ```ruby
44
47
  chef_client_scheduled_task "Run an override recipe" do
45
48
  daemon_options ["--override-runlist mycorp_base::default"]
46
49
  end
47
50
  ```
51
+
52
+ **Run #{Chef::Dist::PRODUCT} daily at 01:00 am, specifying a named run-list**:
53
+
54
+ ```ruby
55
+ chef_client_scheduled_task "Run chef-client named run-list daily" do
56
+ frequency 'daily'
57
+ start_time '01:00'
58
+ daemon_options ['-n audit_only']
59
+ end
60
+ ```
48
61
  DOC
49
62
 
50
63
  resource_name :chef_client_scheduled_task
@@ -69,7 +82,8 @@ class Chef
69
82
  coerce: proc { |x| Integer(x) },
70
83
  callbacks: { "should be a positive number" => proc { |v| v > 0 } },
71
84
  description: "Numeric value to go with the scheduled task frequency",
72
- default: 30
85
+ default: lazy { frequency == "minute" ? 30 : 1 },
86
+ default_description: "30 if frequency is 'minute', 1 otherwise"
73
87
 
74
88
  property :accept_chef_license, [true, false],
75
89
  description: "Accept the Chef Online Master License and Services Agreement. See <https://www.chef.io/online-master-agreement/>",
@@ -126,6 +140,7 @@ class Chef
126
140
 
127
141
  # According to https://docs.microsoft.com/en-us/windows/desktop/taskschd/schtasks,
128
142
  # the :once, :onstart, :onlogon, and :onidle schedules don't accept schedule modifiers
143
+
129
144
  windows_task new_resource.task_name do
130
145
  run_level :highest
131
146
  command full_command
@@ -24,22 +24,25 @@ class Chef
24
24
 
25
25
  provides :chef_client_systemd_timer
26
26
 
27
- description "Use the chef_client_systemd_timer resource to setup the #{Chef::Dist::PRODUCT} to run as a systemd timer."
27
+ description "Use the **chef_client_systemd_timer** resource to setup the #{Chef::Dist::PRODUCT} to run as a systemd timer."
28
28
  introduced "16.0"
29
29
  examples <<~DOC
30
- Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
30
+ **Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
31
+
31
32
  ```ruby
32
- chef_client_systemd_timer "Run chef-client as a systemd timer"
33
+ chef_client_systemd_timer "Run #{Chef::Dist::PRODUCT} as a systemd timer"
33
34
  ```
34
35
 
35
- Run #{Chef::Dist::PRODUCT} every 1 hour
36
+ **Run #{Chef::Dist::PRODUCT} every 1 hour**:
37
+
36
38
  ```ruby
37
- chef_client_systemd_timer "Run chef-client every 1 hour" do
39
+ chef_client_systemd_timer "Run #{Chef::Dist::PRODUCT} every 1 hour" do
38
40
  interval "1hr"
39
41
  end
40
42
  ```
41
43
 
42
- Run #{Chef::Dist::PRODUCT} with extra options passed to the client
44
+ **Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
45
+
43
46
  ```ruby
44
47
  chef_client_systemd_timer "Run an override recipe" do
45
48
  daemon_options ["--override-runlist mycorp_base::default"]
@@ -92,7 +95,7 @@ class Chef
92
95
  default: lazy { [] }
93
96
 
94
97
  property :environment, Hash,
95
- description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of ``({'ENV_VARIABLE' => 'VALUE'})``.",
98
+ description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`.",
96
99
  default: lazy { {} }
97
100
 
98
101
  action :add do
@@ -34,6 +34,10 @@ class Chef
34
34
  # installed
35
35
  # - Runs Gem.clear_paths after the action, ensuring that gem is aware of changes so that it can be required
36
36
  # immediately after it is installed
37
+
38
+ require_relative "gem_package"
39
+ require_relative "../dist"
40
+
37
41
  class ChefGem < Chef::Resource::Package::GemPackage
38
42
  unified_mode true
39
43
  provides :chef_gem
@@ -45,8 +49,8 @@ class Chef
45
49
  property :version, String,
46
50
  description: "The version of a package to be installed or upgraded."
47
51
 
48
- property :gem_binary, default: "#{RbConfig::CONFIG["bindir"]}/gem", default_description: "Chef's built-in gem binary.",
49
- description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by the #{Chef::Dist::CLIENT} will be installed.",
52
+ property :gem_binary, default: "#{RbConfig::CONFIG["bindir"]}/gem", default_description: "The `gem` binary included with #{Chef::Dist::PRODUCT}.",
53
+ description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by #{Chef::Dist::PRODUCT} will be installed.",
50
54
  callbacks: {
51
55
  "The chef_gem resource is restricted to the current gem environment, use gem_package to install to other environments." => proc { |v| v == "#{RbConfig::CONFIG["bindir"]}/gem" },
52
56
  }
@@ -25,7 +25,7 @@ class Chef
25
25
 
26
26
  provides(:chef_handler) { true }
27
27
 
28
- description "Use the chef_handler resource to install or uninstall reporting/exception handlers."
28
+ description "Use the **chef_handler** resource to install or uninstall reporting/exception handlers."
29
29
  introduced "14.0"
30
30
 
31
31
  property :class_name, String,
@@ -107,7 +107,7 @@ class Chef
107
107
  end
108
108
  end
109
109
 
110
- # Walks down the namespace heirarchy to return the class object for the given class name.
110
+ # Walks down the namespace hierarchy to return the class object for the given class name.
111
111
  # If the class is not available, NameError is thrown.
112
112
  #
113
113
  # @param class_full_name [String] full class name such as 'Chef::Handler::Foo' or 'MyHandler'.
@@ -118,7 +118,7 @@ class Chef
118
118
  class_name = ancestors.pop
119
119
 
120
120
  # We need to search the ancestors only for the first/uppermost namespace of the class, so we
121
- # need to enable the #const_get inherit paramenter only when we are searching in Kernel scope
121
+ # need to enable the #const_get inherit parameter only when we are searching in Kernel scope
122
122
  # (see COOK-4117).
123
123
  parent = ancestors.inject(Kernel) { |scope, const_name| scope.const_get(const_name, scope === Kernel) }
124
124
  child = parent.const_get(class_name, parent === Kernel)
@@ -24,22 +24,25 @@ class Chef
24
24
 
25
25
  unified_mode true
26
26
 
27
- description "Use the chef_sleep resource to set the number of seconds to sleep during a #{Chef::Dist::PRODUCT} run. Only use this resource when a command or service exits successfully but is not ready for the next step of the recipe."
27
+ description "Use the **chef_sleep** resource to pause (sleep) for a number of seconds during a #{Chef::Dist::PRODUCT} run. Only use this resource when a command or service exits successfully but is not ready for the next step in a recipe."
28
28
  introduced "15.5"
29
29
  examples <<~DOC
30
- Sleep for 10 seconds
30
+ **Sleep for 10 seconds**:
31
+
31
32
  ```ruby
32
33
  chef_sleep '10'
33
34
  ```
34
35
 
35
- Sleep for 10 seconds with a descriptive resource name for logging
36
+ **Sleep for 10 seconds with a descriptive resource name for logging**:
37
+
36
38
  ```ruby
37
39
  chef_sleep 'wait for the service to start' do
38
40
  seconds 10
39
41
  end
40
42
  ````
41
43
 
42
- Use a notification from another resource to sleep only when necessary
44
+ **Use a notification from another resource to sleep only when necessary**:
45
+
43
46
  ```ruby
44
47
  service 'Service that is slow to start and reports as started' do
45
48
  service_name 'my_database'
@@ -26,9 +26,9 @@ class Chef
26
26
  provides :chef_vault_secret
27
27
 
28
28
  introduced "16.0"
29
- description "Use the chef_vault_secret resource to store secrets in Chef Vault items. Where possible and relevant, this resource attempts to map behavior and functionality to the knife vault sub-commands."
29
+ description "Use the **chef_vault_secret** resource to store secrets in Chef Vault items. Where possible and relevant, this resource attempts to map behavior and functionality to the knife vault sub-commands."
30
30
  examples <<~DOC
31
- To create a 'foo' item in an existing 'bar' data bag:
31
+ **To create a 'foo' item in an existing 'bar' data bag**:
32
32
 
33
33
  ```ruby
34
34
  chef_vault_secret 'foo' do
@@ -39,13 +39,13 @@ class Chef
39
39
  end
40
40
  ```
41
41
 
42
- To allow multiple admins access to an item:
42
+ **To allow multiple admins access to an item**:
43
43
 
44
44
  ```ruby
45
45
  chef_vault_secret 'root-password' do
46
46
  admins 'jtimberman,paulmooring'
47
47
  data_bag 'secrets'
48
- raw_data({'auth' => 'DontUseThisPasswordForRoot'})
48
+ raw_data({'auth' => 'DoNotUseThisPasswordForRoot'})
49
49
  search '*:*'
50
50
  end
51
51
  ```
@@ -21,10 +21,11 @@ class Chef
21
21
 
22
22
  provides :chocolatey_config
23
23
 
24
- description "Use the chocolatey_config resource to add or remove Chocolatey configuration keys."
24
+ description "Use the **chocolatey_config** resource to add or remove Chocolatey configuration keys."
25
25
  introduced "14.3"
26
26
  examples <<~DOC
27
- Set the Chocolatey cacheLocation config
27
+ **Set the Chocolatey cacheLocation config**:
28
+
28
29
  ```ruby
29
30
  chocolatey_config 'Set cacheLocation config' do
30
31
  config_key 'cacheLocation'
@@ -32,7 +33,8 @@ class Chef
32
33
  end
33
34
  ```
34
35
 
35
- Unset a Chocolatey config
36
+ **Unset a Chocolatey config**:
37
+
36
38
  ```ruby
37
39
  chocolatey_config 'BogusConfig' do
38
40
  action :unset
@@ -20,17 +20,19 @@ class Chef
20
20
  unified_mode true
21
21
  provides :chocolatey_feature
22
22
 
23
- description "Use the chocolatey_feature resource to enable and disable Chocolatey features."
23
+ description "Use the **chocolatey_feature** resource to enable and disable Chocolatey features."
24
24
  introduced "15.1"
25
25
  examples <<~DOC
26
- Enable the checksumFiles Chocolatey feature
26
+ **Enable the checksumFiles Chocolatey feature**
27
+
27
28
  ```ruby
28
29
  chocolatey_feature 'checksumFiles' do
29
30
  action :enable
30
31
  end
31
32
  ```
32
33
 
33
- Disable the checksumFiles Chocolatey feature
34
+ **Disable the checksumFiles Chocolatey feature**
35
+
34
36
  ```ruby
35
37
  chocolatey_feature 'checksumFiles' do
36
38
  action :disable
@@ -25,17 +25,19 @@ class Chef
25
25
 
26
26
  provides :chocolatey_package
27
27
 
28
- description "Use the chocolatey_package resource to manage packages using Chocolatey on the Microsoft Windows platform."
28
+ description "Use the **chocolatey_package** resource to manage packages using Chocolatey on the Microsoft Windows platform. Note: The Chocolatey package manager is not installed on Windows by default. You will need to install it prior to using this resource by adding the [Chocolatey cookbook](https://supermarket.chef.io/cookbooks/chocolatey/) to your node's run list."
29
29
  introduced "12.7"
30
30
  examples <<~DOC
31
- Install a Chocolatey package
31
+ **Install a Chocolatey package**:
32
+
32
33
  ```ruby
33
34
  chocolatey_package 'name of package' do
34
35
  action :install
35
36
  end
36
37
  ```
37
38
 
38
- Install a package with options with Chocolatey's ``--checksum`` option
39
+ **Install a package with options with Chocolatey's `--checksum` option**:
40
+
39
41
  ```ruby
40
42
  chocolatey_package 'name of package' do
41
43
  options '--checksum 1234567890'
@@ -20,10 +20,11 @@ class Chef
20
20
  unified_mode true
21
21
  provides :chocolatey_source
22
22
 
23
- description "Use the chocolatey_source resource to add, remove, enable, or disable Chocolatey sources."
23
+ description "Use the **chocolatey_source** resource to add, remove, enable, or disable Chocolatey sources."
24
24
  introduced "14.3"
25
25
  examples <<~DOC
26
- Add a Chocolatey source
26
+ **Add a Chocolatey source**
27
+
27
28
  ```ruby
28
29
  chocolatey_source 'MySource' do
29
30
  source 'http://example.com/something'
@@ -31,7 +32,8 @@ class Chef
31
32
  end
32
33
  ```
33
34
 
34
- Remove a Chocolatey source
35
+ **Remove a Chocolatey source**
36
+
35
37
  ```ruby
36
38
  chocolatey_source 'MySource' do
37
39
  action :remove