chef 18.10.17 → 19.1.164

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 (715) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +24 -18
  3. data/README.md +6 -2
  4. data/Rakefile +1 -12
  5. data/chef-universal-mingw-ucrt.gemspec +1 -1
  6. data/chef.gemspec +17 -19
  7. data/lib/chef/action_collection.rb +3 -1
  8. data/lib/chef/api_client/registration.rb +1 -1
  9. data/lib/chef/api_client.rb +1 -1
  10. data/lib/chef/api_client_v1.rb +1 -1
  11. data/lib/chef/application/apply.rb +30 -3
  12. data/lib/chef/application/base.rb +34 -3
  13. data/lib/chef/application/client.rb +15 -1
  14. data/lib/chef/application/exit_code.rb +3 -1
  15. data/lib/chef/application/solo.rb +1 -1
  16. data/lib/chef/application.rb +6 -1
  17. data/lib/chef/chef_class.rb +1 -1
  18. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  19. data/lib/chef/chef_fs/command_line.rb +7 -6
  20. data/lib/chef/chef_fs/config.rb +1 -1
  21. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  22. data/lib/chef/chef_fs/file_pattern.rb +1 -1
  23. data/lib/chef/chef_fs/file_system/base_fs_dir.rb +1 -1
  24. data/lib/chef/chef_fs/file_system/base_fs_object.rb +1 -1
  25. data/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb +1 -1
  26. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +1 -1
  27. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  28. data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +1 -1
  29. data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb +1 -1
  30. data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +1 -1
  31. data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +2 -2
  32. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
  33. data/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb +1 -1
  34. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb +1 -1
  35. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -1
  36. data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +1 -1
  37. data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +1 -1
  38. data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +1 -1
  39. data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +1 -1
  40. data/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb +1 -1
  41. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
  42. data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
  43. data/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb +1 -1
  44. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
  45. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +1 -1
  46. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb +2 -2
  47. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +1 -1
  48. data/lib/chef/chef_fs/file_system/exceptions.rb +1 -1
  49. data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +1 -1
  50. data/lib/chef/chef_fs/file_system/repository/acl.rb +1 -1
  51. data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +1 -1
  52. data/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb +1 -1
  53. data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -1
  54. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb +1 -1
  55. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +1 -1
  56. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +7 -6
  57. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +1 -1
  58. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +1 -1
  59. data/lib/chef/chef_fs/file_system/repository/client.rb +1 -1
  60. data/lib/chef/chef_fs/file_system/repository/client_key.rb +1 -1
  61. data/lib/chef/chef_fs/file_system/repository/client_keys_dir.rb +1 -1
  62. data/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb +1 -1
  63. data/lib/chef/chef_fs/file_system/repository/clients_dir.rb +1 -1
  64. data/lib/chef/chef_fs/file_system/repository/container.rb +1 -1
  65. data/lib/chef/chef_fs/file_system/repository/containers_dir.rb +1 -1
  66. data/lib/chef/chef_fs/file_system/repository/cookbook_artifacts_dir.rb +1 -1
  67. data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
  68. data/lib/chef/chef_fs/file_system/repository/data_bag.rb +1 -1
  69. data/lib/chef/chef_fs/file_system/repository/data_bag_item.rb +1 -1
  70. data/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb +1 -1
  71. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  72. data/lib/chef/chef_fs/file_system/repository/environment.rb +1 -1
  73. data/lib/chef/chef_fs/file_system/repository/environments_dir.rb +1 -1
  74. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  75. data/lib/chef/chef_fs/file_system/repository/group.rb +1 -1
  76. data/lib/chef/chef_fs/file_system/repository/groups_dir.rb +1 -1
  77. data/lib/chef/chef_fs/file_system/repository/node.rb +1 -1
  78. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +1 -1
  79. data/lib/chef/chef_fs/file_system/repository/policies_dir.rb +1 -1
  80. data/lib/chef/chef_fs/file_system/repository/policy.rb +1 -1
  81. data/lib/chef/chef_fs/file_system/repository/policy_group.rb +1 -1
  82. data/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb +1 -1
  83. data/lib/chef/chef_fs/file_system/repository/role.rb +1 -1
  84. data/lib/chef/chef_fs/file_system/repository/roles_dir.rb +1 -1
  85. data/lib/chef/chef_fs/file_system/repository/user.rb +1 -1
  86. data/lib/chef/chef_fs/file_system/repository/users_dir.rb +1 -1
  87. data/lib/chef/chef_fs/file_system/repository/versioned_cookbooks_dir.rb +1 -1
  88. data/lib/chef/chef_fs/file_system.rb +1 -1
  89. data/lib/chef/chef_fs/file_system_cache.rb +1 -1
  90. data/lib/chef/chef_fs/path_utils.rb +1 -1
  91. data/lib/chef/client.rb +13 -3
  92. data/lib/chef/compliance/default_attributes.rb +1 -1
  93. data/lib/chef/compliance/fetcher/chef_server.rb +1 -1
  94. data/lib/chef/compliance/input.rb +1 -1
  95. data/lib/chef/compliance/input_collection.rb +1 -1
  96. data/lib/chef/compliance/profile.rb +1 -1
  97. data/lib/chef/compliance/profile_collection.rb +1 -1
  98. data/lib/chef/compliance/runner.rb +19 -1
  99. data/lib/chef/compliance/waiver.rb +1 -1
  100. data/lib/chef/compliance/waiver_collection.rb +1 -1
  101. data/lib/chef/config.rb +1 -1
  102. data/lib/chef/constants.rb +1 -1
  103. data/lib/chef/context.rb +53 -0
  104. data/lib/chef/cookbook/chefignore.rb +2 -2
  105. data/lib/chef/cookbook/cookbook_collection.rb +1 -1
  106. data/lib/chef/cookbook/cookbook_version_loader.rb +2 -1
  107. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  108. data/lib/chef/cookbook/file_vendor.rb +1 -1
  109. data/lib/chef/cookbook/gem_installer.rb +1 -1
  110. data/lib/chef/cookbook/manifest_v0.rb +1 -1
  111. data/lib/chef/cookbook/manifest_v2.rb +1 -1
  112. data/lib/chef/cookbook/metadata.rb +1 -1
  113. data/lib/chef/cookbook/remote_file_vendor.rb +1 -1
  114. data/lib/chef/cookbook/synchronizer.rb +5 -0
  115. data/lib/chef/cookbook/syntax_check.rb +1 -1
  116. data/lib/chef/cookbook_loader.rb +1 -1
  117. data/lib/chef/cookbook_manifest.rb +1 -1
  118. data/lib/chef/cookbook_version.rb +3 -3
  119. data/lib/chef/daemon.rb +1 -1
  120. data/lib/chef/data_bag.rb +3 -3
  121. data/lib/chef/data_bag_item.rb +2 -2
  122. data/lib/chef/data_collector/config_validation.rb +1 -1
  123. data/lib/chef/data_collector/error_handlers.rb +1 -1
  124. data/lib/chef/data_collector/message_helpers.rb +1 -1
  125. data/lib/chef/data_collector/run_end_message.rb +1 -1
  126. data/lib/chef/data_collector/run_start_message.rb +2 -2
  127. data/lib/chef/data_collector.rb +2 -2
  128. data/lib/chef/decorator/lazy.rb +1 -1
  129. data/lib/chef/decorator/lazy_array.rb +1 -1
  130. data/lib/chef/decorator.rb +1 -1
  131. data/lib/chef/delayed_evaluator.rb +1 -1
  132. data/lib/chef/deprecated.rb +1 -1
  133. data/lib/chef/deprecation/warnings.rb +1 -1
  134. data/lib/chef/digester.rb +1 -1
  135. data/lib/chef/dsl/chef_vault.rb +2 -2
  136. data/lib/chef/dsl/cheffish.rb +1 -1
  137. data/lib/chef/dsl/compliance.rb +1 -1
  138. data/lib/chef/dsl/data_query.rb +1 -1
  139. data/lib/chef/dsl/declare_resource.rb +1 -1
  140. data/lib/chef/dsl/include_attribute.rb +1 -1
  141. data/lib/chef/dsl/include_recipe.rb +1 -1
  142. data/lib/chef/dsl/platform_introspection.rb +1 -1
  143. data/lib/chef/dsl/powershell.rb +1 -1
  144. data/lib/chef/dsl/reader_helpers.rb +3 -1
  145. data/lib/chef/dsl/reboot_pending.rb +1 -1
  146. data/lib/chef/dsl/recipe.rb +1 -1
  147. data/lib/chef/dsl/registry_helper.rb +1 -1
  148. data/lib/chef/dsl/render_helpers.rb +1 -1
  149. data/lib/chef/dsl/resources.rb +1 -1
  150. data/lib/chef/dsl/rest_resource.rb +165 -5
  151. data/lib/chef/dsl/secret.rb +1 -1
  152. data/lib/chef/dsl/universal.rb +1 -1
  153. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -1
  154. data/lib/chef/encrypted_data_bag_item/decryption_failure.rb +1 -1
  155. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  156. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  157. data/lib/chef/encrypted_data_bag_item/unacceptable_encrypted_data_bag_item_format.rb +1 -1
  158. data/lib/chef/encrypted_data_bag_item/unsupported_cipher.rb +1 -1
  159. data/lib/chef/encrypted_data_bag_item/unsupported_encrypted_data_bag_item_format.rb +1 -1
  160. data/lib/chef/encrypted_data_bag_item.rb +1 -1
  161. data/lib/chef/environment.rb +2 -2
  162. data/lib/chef/event_loggers/base.rb +1 -1
  163. data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
  164. data/lib/chef/exceptions.rb +2 -12
  165. data/lib/chef/file_access_control/unix.rb +10 -10
  166. data/lib/chef/file_access_control/windows.rb +1 -1
  167. data/lib/chef/file_access_control.rb +1 -1
  168. data/lib/chef/file_cache.rb +1 -1
  169. data/lib/chef/file_content_management/content_base.rb +1 -1
  170. data/lib/chef/file_content_management/deploy/cp.rb +1 -1
  171. data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
  172. data/lib/chef/file_content_management/deploy/mv_windows.rb +1 -1
  173. data/lib/chef/file_content_management/deploy/target_io.rb +27 -0
  174. data/lib/chef/file_content_management/deploy.rb +5 -2
  175. data/lib/chef/file_content_management/tempfile.rb +1 -1
  176. data/lib/chef/formatters/base.rb +1 -1
  177. data/lib/chef/formatters/error_description.rb +1 -1
  178. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +1 -1
  179. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  180. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +3 -2
  181. data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +3 -2
  182. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +1 -1
  183. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +1 -1
  184. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +1 -1
  185. data/lib/chef/formatters/error_mapper.rb +1 -1
  186. data/lib/chef/group.rb +1 -1
  187. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +1 -1
  188. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +1 -1
  189. data/lib/chef/guard_interpreter.rb +1 -1
  190. data/lib/chef/handler/error_report.rb +1 -1
  191. data/lib/chef/handler/json_file.rb +1 -1
  192. data/lib/chef/handler/slow_report.rb +1 -1
  193. data/lib/chef/handler.rb +1 -1
  194. data/lib/chef/http/api_versions.rb +1 -1
  195. data/lib/chef/http/auth_credentials.rb +1 -1
  196. data/lib/chef/http/authenticator.rb +10 -10
  197. data/lib/chef/http/basic_client.rb +1 -2
  198. data/lib/chef/http/cookie_jar.rb +1 -1
  199. data/lib/chef/http/cookie_manager.rb +1 -1
  200. data/lib/chef/http/decompressor.rb +1 -1
  201. data/lib/chef/http/http_request.rb +17 -16
  202. data/lib/chef/http/json_input.rb +1 -1
  203. data/lib/chef/http/json_output.rb +1 -1
  204. data/lib/chef/http/json_to_model_output.rb +1 -1
  205. data/lib/chef/http/remote_request_id.rb +1 -1
  206. data/lib/chef/http/simple.rb +1 -1
  207. data/lib/chef/http/simple_json.rb +1 -1
  208. data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
  209. data/lib/chef/http/ssl_policies.rb +1 -1
  210. data/lib/chef/http/validate_content_length.rb +1 -1
  211. data/lib/chef/http.rb +1 -2
  212. data/lib/chef/json_compat.rb +1 -1
  213. data/lib/chef/key.rb +1 -1
  214. data/lib/chef/licensing.rb +105 -0
  215. data/lib/chef/licensing_config.rb +20 -0
  216. data/lib/chef/local_mode.rb +1 -1
  217. data/lib/chef/log/syslog.rb +1 -1
  218. data/lib/chef/log/winevt.rb +1 -1
  219. data/lib/chef/log.rb +1 -1
  220. data/lib/chef/mash.rb +1 -1
  221. data/lib/chef/mixin/api_version_request_handling.rb +1 -1
  222. data/lib/chef/mixin/checksum.rb +1 -1
  223. data/lib/chef/mixin/chef_utils_wiring.rb +1 -1
  224. data/lib/chef/mixin/convert_to_class_name.rb +1 -1
  225. data/lib/chef/mixin/create_path.rb +1 -1
  226. data/lib/chef/mixin/deep_merge.rb +1 -1
  227. data/lib/chef/mixin/default_paths.rb +1 -1
  228. data/lib/chef/mixin/deprecation.rb +1 -1
  229. data/lib/chef/mixin/enforce_ownership_and_permissions.rb +1 -1
  230. data/lib/chef/mixin/file_class.rb +4 -2
  231. data/lib/chef/mixin/from_file.rb +1 -1
  232. data/lib/chef/mixin/get_source_from_package.rb +2 -2
  233. data/lib/chef/mixin/homebrew.rb +3 -4
  234. data/lib/chef/mixin/lazy_module_include.rb +1 -1
  235. data/lib/chef/mixin/notifying_block.rb +1 -1
  236. data/lib/chef/mixin/openssl_helper.rb +1 -1
  237. data/lib/chef/mixin/params_validate.rb +1 -1
  238. data/lib/chef/mixin/path_sanity.rb +1 -1
  239. data/lib/chef/mixin/powershell_exec.rb +1 -1
  240. data/lib/chef/mixin/powershell_out.rb +1 -1
  241. data/lib/chef/mixin/powershell_type_coercions.rb +1 -1
  242. data/lib/chef/mixin/proxified_socket.rb +1 -1
  243. data/lib/chef/mixin/securable.rb +1 -1
  244. data/lib/chef/mixin/shell_out.rb +1 -1
  245. data/lib/chef/mixin/subclass_directive.rb +1 -1
  246. data/lib/chef/mixin/template.rb +1 -1
  247. data/lib/chef/mixin/unformatter.rb +1 -1
  248. data/lib/chef/mixin/uris.rb +1 -1
  249. data/lib/chef/mixin/user_context.rb +1 -1
  250. data/lib/chef/mixin/versioned_api.rb +1 -1
  251. data/lib/chef/mixin/which.rb +1 -1
  252. data/lib/chef/mixin/why_run.rb +1 -1
  253. data/lib/chef/mixin/wide_string.rb +1 -1
  254. data/lib/chef/mixin/windows_architecture_helper.rb +1 -1
  255. data/lib/chef/mixin/windows_env_helper.rb +1 -1
  256. data/lib/chef/mixin/xml_escape.rb +1 -1
  257. data/lib/chef/monkey_patches/net-http.rb +10 -11
  258. data/lib/chef/monkey_patches/win32/registry.rb +1 -1
  259. data/lib/chef/node/attribute.rb +1 -1
  260. data/lib/chef/node/attribute_collections.rb +1 -1
  261. data/lib/chef/node/common_api.rb +1 -1
  262. data/lib/chef/node/immutable_collections.rb +1 -1
  263. data/lib/chef/node/mixin/deep_merge_cache.rb +1 -1
  264. data/lib/chef/node/mixin/immutablize_array.rb +27 -1
  265. data/lib/chef/node/mixin/immutablize_hash.rb +36 -1
  266. data/lib/chef/node/mixin/mashy_array.rb +1 -1
  267. data/lib/chef/node/mixin/state_tracking.rb +1 -1
  268. data/lib/chef/node/mixin/state_tracking_array.rb +1 -1
  269. data/lib/chef/node.rb +1 -1
  270. data/lib/chef/node_map.rb +15 -3
  271. data/lib/chef/null_logger.rb +1 -1
  272. data/lib/chef/org.rb +1 -1
  273. data/lib/chef/platform/priority_map.rb +1 -1
  274. data/lib/chef/platform/provider_handler_map.rb +1 -1
  275. data/lib/chef/platform/provider_mapping.rb +1 -1
  276. data/lib/chef/platform/query_helpers.rb +1 -1
  277. data/lib/chef/platform/rebooter.rb +1 -1
  278. data/lib/chef/platform/resource_handler_map.rb +1 -1
  279. data/lib/chef/platform/service_helpers.rb +1 -1
  280. data/lib/chef/platform.rb +1 -1
  281. data/lib/chef/policy_builder/dynamic.rb +1 -1
  282. data/lib/chef/policy_builder/expand_node_object.rb +1 -1
  283. data/lib/chef/policy_builder/policyfile.rb +1 -1
  284. data/lib/chef/policy_builder.rb +1 -1
  285. data/lib/chef/property.rb +3 -3
  286. data/lib/chef/provider/batch.rb +1 -1
  287. data/lib/chef/provider/cookbook_file/content.rb +1 -1
  288. data/lib/chef/provider/cookbook_file.rb +2 -2
  289. data/lib/chef/provider/cron/aix.rb +1 -1
  290. data/lib/chef/provider/cron/solaris.rb +1 -1
  291. data/lib/chef/provider/cron.rb +15 -5
  292. data/lib/chef/provider/directory.rb +18 -18
  293. data/lib/chef/provider/dsc_resource.rb +1 -1
  294. data/lib/chef/provider/dsc_script.rb +1 -1
  295. data/lib/chef/provider/execute.rb +3 -2
  296. data/lib/chef/provider/file/content.rb +1 -1
  297. data/lib/chef/provider/file.rb +43 -30
  298. data/lib/chef/provider/git.rb +10 -10
  299. data/lib/chef/provider/group/aix.rb +1 -1
  300. data/lib/chef/provider/group/dscl.rb +2 -2
  301. data/lib/chef/provider/group/gpasswd.rb +3 -3
  302. data/lib/chef/provider/group/groupadd.rb +2 -2
  303. data/lib/chef/provider/group/groupmod.rb +3 -3
  304. data/lib/chef/provider/group/pw.rb +3 -3
  305. data/lib/chef/provider/group/solaris.rb +3 -3
  306. data/lib/chef/provider/group/usermod.rb +3 -3
  307. data/lib/chef/provider/group.rb +2 -2
  308. data/lib/chef/provider/http_request.rb +3 -4
  309. data/lib/chef/provider/ifconfig/aix.rb +2 -2
  310. data/lib/chef/provider/ifconfig/debian.rb +3 -3
  311. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  312. data/lib/chef/provider/ifconfig.rb +1 -1
  313. data/lib/chef/provider/link.rb +22 -11
  314. data/lib/chef/provider/lwrp_base.rb +1 -1
  315. data/lib/chef/provider/mount/aix.rb +5 -5
  316. data/lib/chef/provider/mount/linux.rb +4 -4
  317. data/lib/chef/provider/mount/mount.rb +12 -12
  318. data/lib/chef/provider/mount/solaris.rb +1 -1
  319. data/lib/chef/provider/mount/windows.rb +3 -3
  320. data/lib/chef/provider/mount.rb +1 -1
  321. data/lib/chef/provider/noop.rb +1 -1
  322. data/lib/chef/provider/package/apt.rb +1 -1
  323. data/lib/chef/provider/package/bff.rb +4 -4
  324. data/lib/chef/provider/package/cab.rb +1 -1
  325. data/lib/chef/provider/package/chocolatey.rb +20 -79
  326. data/lib/chef/provider/package/deb.rb +1 -1
  327. data/lib/chef/provider/package/dnf/python_helper.rb +3 -3
  328. data/lib/chef/provider/package/dnf/version.rb +1 -1
  329. data/lib/chef/provider/package/dnf.rb +1 -1
  330. data/lib/chef/provider/package/dpkg.rb +6 -6
  331. data/lib/chef/provider/package/freebsd/base.rb +1 -1
  332. data/lib/chef/provider/package/habitat.rb +6 -6
  333. data/lib/chef/provider/package/homebrew.rb +1 -1
  334. data/lib/chef/provider/package/ips.rb +3 -3
  335. data/lib/chef/provider/package/msu.rb +1 -1
  336. data/lib/chef/provider/package/openbsd.rb +3 -2
  337. data/lib/chef/provider/package/pacman.rb +4 -4
  338. data/lib/chef/provider/package/paludis.rb +3 -3
  339. data/lib/chef/provider/package/portage.rb +3 -3
  340. data/lib/chef/provider/package/powershell.rb +1 -1
  341. data/lib/chef/provider/package/rpm.rb +3 -3
  342. data/lib/chef/provider/package/rubygems.rb +21 -28
  343. data/lib/chef/provider/package/smartos.rb +2 -2
  344. data/lib/chef/provider/package/snap.rb +19 -7
  345. data/lib/chef/provider/package/snap_tm.rb +79 -0
  346. data/lib/chef/provider/package/solaris.rb +5 -5
  347. data/lib/chef/provider/package/windows/exe.rb +1 -1
  348. data/lib/chef/provider/package/windows/msi.rb +1 -1
  349. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  350. data/lib/chef/provider/package/windows.rb +1 -1
  351. data/lib/chef/provider/package/yum/python_helper.rb +1 -1
  352. data/lib/chef/provider/package/yum/rpm_utils.rb +1 -1
  353. data/lib/chef/provider/package/yum/version.rb +1 -1
  354. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  355. data/lib/chef/provider/package/yum.rb +1 -1
  356. data/lib/chef/provider/package/yum_tm.rb +132 -0
  357. data/lib/chef/provider/package/zypper/version.rb +1 -1
  358. data/lib/chef/provider/package/zypper.rb +5 -5
  359. data/lib/chef/provider/package.rb +2 -2
  360. data/lib/chef/provider/powershell_script.rb +85 -85
  361. data/lib/chef/provider/registry_key.rb +2 -1
  362. data/lib/chef/provider/remote_directory.rb +6 -6
  363. data/lib/chef/provider/remote_file/cache_control_data.rb +1 -1
  364. data/lib/chef/provider/remote_file/content.rb +1 -1
  365. data/lib/chef/provider/remote_file/fetcher.rb +1 -1
  366. data/lib/chef/provider/remote_file/http.rb +2 -3
  367. data/lib/chef/provider/remote_file.rb +2 -2
  368. data/lib/chef/provider/route.rb +10 -10
  369. data/lib/chef/provider/ruby_block.rb +1 -1
  370. data/lib/chef/provider/script.rb +8 -8
  371. data/lib/chef/provider/service/aix.rb +2 -2
  372. data/lib/chef/provider/service/aixinit.rb +6 -6
  373. data/lib/chef/provider/service/arch.rb +6 -6
  374. data/lib/chef/provider/service/debian.rb +8 -8
  375. data/lib/chef/provider/service/freebsd.rb +7 -7
  376. data/lib/chef/provider/service/gentoo.rb +6 -6
  377. data/lib/chef/provider/service/init.rb +3 -3
  378. data/lib/chef/provider/service/insserv.rb +3 -3
  379. data/lib/chef/provider/service/invokercd.rb +2 -2
  380. data/lib/chef/provider/service/macosx.rb +1 -1
  381. data/lib/chef/provider/service/openbsd.rb +7 -7
  382. data/lib/chef/provider/service/redhat.rb +6 -6
  383. data/lib/chef/provider/service/solaris.rb +3 -3
  384. data/lib/chef/provider/service/systemd.rb +3 -3
  385. data/lib/chef/provider/service/upstart.rb +3 -3
  386. data/lib/chef/provider/service/windows.rb +1 -1
  387. data/lib/chef/provider/service.rb +1 -1
  388. data/lib/chef/provider/subversion.rb +10 -10
  389. data/lib/chef/provider/systemd_unit.rb +3 -3
  390. data/lib/chef/provider/template/content.rb +1 -1
  391. data/lib/chef/provider/template.rb +2 -2
  392. data/lib/chef/provider/template_finder.rb +1 -1
  393. data/lib/chef/provider/user/aix.rb +4 -4
  394. data/lib/chef/provider/user/dscl.rb +1 -1
  395. data/lib/chef/provider/user/linux.rb +8 -3
  396. data/lib/chef/provider/user/mac.rb +2 -2
  397. data/lib/chef/provider/user/pw.rb +4 -4
  398. data/lib/chef/provider/user/solaris.rb +8 -8
  399. data/lib/chef/provider/user.rb +7 -4
  400. data/lib/chef/provider/windows_script.rb +2 -2
  401. data/lib/chef/provider/yum_repository.rb +2 -4
  402. data/lib/chef/provider/zypper_repository.rb +2 -2
  403. data/lib/chef/provider.rb +1 -1
  404. data/lib/chef/providers.rb +3 -1
  405. data/lib/chef/pwsh.rb +1 -1
  406. data/lib/chef/recipe.rb +9 -6
  407. data/lib/chef/request_id.rb +1 -1
  408. data/lib/chef/resource/_rest_resource.rb +156 -11
  409. data/lib/chef/resource/action_class.rb +1 -1
  410. data/lib/chef/resource/alternatives.rb +44 -43
  411. data/lib/chef/resource/apt_package.rb +38 -33
  412. data/lib/chef/resource/apt_preference.rb +25 -24
  413. data/lib/chef/resource/apt_repository.rb +16 -11
  414. data/lib/chef/resource/apt_update.rb +5 -4
  415. data/lib/chef/resource/archive_file.rb +21 -21
  416. data/lib/chef/resource/bash.rb +132 -131
  417. data/lib/chef/resource/batch.rb +1 -1
  418. data/lib/chef/resource/bff_package.rb +18 -17
  419. data/lib/chef/resource/breakpoint.rb +46 -45
  420. data/lib/chef/resource/build_essential.rb +1 -1
  421. data/lib/chef/resource/cab_package.rb +23 -23
  422. data/lib/chef/resource/chef_client_config.rb +73 -72
  423. data/lib/chef/resource/chef_client_cron.rb +21 -19
  424. data/lib/chef/resource/chef_client_hab_ca_cert.rb +141 -0
  425. data/lib/chef/resource/chef_client_launchd.rb +6 -2
  426. data/lib/chef/resource/chef_client_scheduled_task.rb +35 -32
  427. data/lib/chef/resource/chef_client_systemd_timer.rb +21 -18
  428. data/lib/chef/resource/chef_client_trusted_certificate.rb +29 -29
  429. data/lib/chef/resource/chef_gem.rb +1 -1
  430. data/lib/chef/resource/chef_handler.rb +108 -108
  431. data/lib/chef/resource/chef_sleep.rb +3 -2
  432. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  433. data/lib/chef/resource/chocolatey_config.rb +15 -15
  434. data/lib/chef/resource/chocolatey_feature.rb +2 -2
  435. data/lib/chef/resource/chocolatey_installer.rb +32 -47
  436. data/lib/chef/resource/chocolatey_package.rb +1 -1
  437. data/lib/chef/resource/chocolatey_source.rb +16 -16
  438. data/lib/chef/resource/conditional.rb +1 -1
  439. data/lib/chef/resource/cookbook_file.rb +3 -2
  440. data/lib/chef/resource/cron/_cron_shared.rb +1 -1
  441. data/lib/chef/resource/cron/cron.rb +72 -71
  442. data/lib/chef/resource/cron/cron_d.rb +3 -2
  443. data/lib/chef/resource/cron_access.rb +3 -2
  444. data/lib/chef/resource/csh.rb +3 -2
  445. data/lib/chef/resource/directory.rb +4 -3
  446. data/lib/chef/resource/dmg_package.rb +1 -1
  447. data/lib/chef/resource/dnf_package.rb +2 -2
  448. data/lib/chef/resource/dpkg_package.rb +9 -6
  449. data/lib/chef/resource/dsc_resource.rb +1 -1
  450. data/lib/chef/resource/dsc_script.rb +1 -1
  451. data/lib/chef/resource/execute.rb +8 -1
  452. data/lib/chef/resource/file/verification/json.rb +1 -1
  453. data/lib/chef/resource/file/verification/systemd_unit.rb +5 -2
  454. data/lib/chef/resource/file/verification/yaml.rb +2 -2
  455. data/lib/chef/resource/file/verification.rb +4 -1
  456. data/lib/chef/resource/file.rb +3 -2
  457. data/lib/chef/resource/freebsd_package.rb +4 -3
  458. data/lib/chef/resource/gem_package.rb +1 -1
  459. data/lib/chef/resource/group.rb +33 -30
  460. data/lib/chef/resource/habitat/_habitat_shared.rb +1 -1
  461. data/lib/chef/resource/habitat/habitat_package.rb +83 -81
  462. data/lib/chef/resource/habitat/habitat_sup.rb +96 -95
  463. data/lib/chef/resource/habitat/habitat_sup_systemd.rb +14 -13
  464. data/lib/chef/resource/habitat/habitat_sup_windows.rb +5 -4
  465. data/lib/chef/resource/habitat_config.rb +37 -23
  466. data/lib/chef/resource/habitat_install.rb +22 -22
  467. data/lib/chef/resource/habitat_service.rb +9 -5
  468. data/lib/chef/resource/habitat_user_toml.rb +12 -12
  469. data/lib/chef/resource/helpers/cron_validations.rb +1 -1
  470. data/lib/chef/resource/helpers/path_helpers.rb +52 -0
  471. data/lib/chef/resource/homebrew_cask.rb +1 -1
  472. data/lib/chef/resource/homebrew_package.rb +21 -21
  473. data/lib/chef/resource/homebrew_tap.rb +10 -2
  474. data/lib/chef/resource/homebrew_update.rb +1 -1
  475. data/lib/chef/resource/hostname.rb +14 -11
  476. data/lib/chef/resource/http_request.rb +5 -4
  477. data/lib/chef/resource/ifconfig.rb +36 -35
  478. data/lib/chef/resource/inspec_input.rb +42 -39
  479. data/lib/chef/resource/inspec_waiver.rb +66 -65
  480. data/lib/chef/resource/inspec_waiver_file_entry.rb +28 -27
  481. data/lib/chef/resource/ips_package.rb +4 -3
  482. data/lib/chef/resource/kernel_module.rb +4 -3
  483. data/lib/chef/resource/ksh.rb +3 -2
  484. data/lib/chef/resource/launchd.rb +1 -1
  485. data/lib/chef/resource/link.rb +4 -3
  486. data/lib/chef/resource/locale.rb +11 -10
  487. data/lib/chef/resource/log.rb +3 -1
  488. data/lib/chef/resource/lwrp_base.rb +1 -1
  489. data/lib/chef/resource/macos_pkg.rb +1 -1
  490. data/lib/chef/resource/macos_userdefaults.rb +1 -1
  491. data/lib/chef/resource/macports_package.rb +1 -1
  492. data/lib/chef/resource/mdadm.rb +33 -33
  493. data/lib/chef/resource/mount.rb +7 -5
  494. data/lib/chef/resource/msu_package.rb +2 -2
  495. data/lib/chef/resource/notify_group.rb +3 -2
  496. data/lib/chef/resource/ohai.rb +37 -36
  497. data/lib/chef/resource/ohai_hint.rb +27 -26
  498. data/lib/chef/resource/openbsd_package.rb +4 -3
  499. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  500. data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
  501. data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
  502. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  503. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
  504. data/lib/chef/resource/openssl_x509_certificate.rb +6 -2
  505. data/lib/chef/resource/openssl_x509_crl.rb +16 -16
  506. data/lib/chef/resource/openssl_x509_request.rb +2 -2
  507. data/lib/chef/resource/package.rb +4 -3
  508. data/lib/chef/resource/pacman_package.rb +2 -1
  509. data/lib/chef/resource/paludis_package.rb +3 -2
  510. data/lib/chef/resource/perl.rb +3 -2
  511. data/lib/chef/resource/plist.rb +4 -4
  512. data/lib/chef/resource/portage_package.rb +3 -2
  513. data/lib/chef/resource/powershell_package.rb +1 -1
  514. data/lib/chef/resource/powershell_package_source.rb +11 -11
  515. data/lib/chef/resource/powershell_script.rb +1 -1
  516. data/lib/chef/resource/python.rb +3 -2
  517. data/lib/chef/resource/reboot.rb +3 -2
  518. data/lib/chef/resource/registry_key.rb +78 -83
  519. data/lib/chef/resource/remote_directory.rb +3 -2
  520. data/lib/chef/resource/remote_file.rb +74 -73
  521. data/lib/chef/resource/resource_notification.rb +1 -1
  522. data/lib/chef/resource/rhsm_errata.rb +3 -2
  523. data/lib/chef/resource/rhsm_errata_level.rb +3 -2
  524. data/lib/chef/resource/rhsm_register.rb +13 -4
  525. data/lib/chef/resource/rhsm_repo.rb +5 -5
  526. data/lib/chef/resource/rhsm_subscription.rb +10 -10
  527. data/lib/chef/resource/route.rb +2 -1
  528. data/lib/chef/resource/rpm_package.rb +3 -2
  529. data/lib/chef/resource/ruby.rb +4 -2
  530. data/lib/chef/resource/ruby_block.rb +3 -1
  531. data/lib/chef/resource/scm/_scm.rb +1 -1
  532. data/lib/chef/resource/scm/git.rb +82 -81
  533. data/lib/chef/resource/scm/subversion.rb +12 -11
  534. data/lib/chef/resource/script.rb +4 -2
  535. data/lib/chef/resource/selinux/common_helpers.rb +1 -1
  536. data/lib/chef/resource/selinux/selinux_debian.erb +1 -1
  537. data/lib/chef/resource/selinux/selinux_default.erb +1 -1
  538. data/lib/chef/resource/selinux_boolean.rb +14 -13
  539. data/lib/chef/resource/selinux_fcontext.rb +23 -22
  540. data/lib/chef/resource/selinux_install.rb +20 -19
  541. data/lib/chef/resource/selinux_login.rb +13 -12
  542. data/lib/chef/resource/selinux_module.rb +20 -19
  543. data/lib/chef/resource/selinux_permissive.rb +10 -9
  544. data/lib/chef/resource/selinux_port.rb +17 -16
  545. data/lib/chef/resource/selinux_state.rb +29 -28
  546. data/lib/chef/resource/selinux_user.rb +16 -15
  547. data/lib/chef/resource/service.rb +9 -6
  548. data/lib/chef/resource/smartos_package.rb +4 -3
  549. data/lib/chef/resource/snap_package.rb +32 -23
  550. data/lib/chef/resource/solaris_package.rb +3 -2
  551. data/lib/chef/resource/ssh_known_hosts_entry.rb +13 -12
  552. data/lib/chef/resource/sudo.rb +71 -70
  553. data/lib/chef/resource/swap_file.rb +20 -19
  554. data/lib/chef/resource/sysctl.rb +49 -48
  555. data/lib/chef/resource/systemd_unit.rb +42 -39
  556. data/lib/chef/resource/template.rb +3 -2
  557. data/lib/chef/resource/timezone.rb +23 -22
  558. data/lib/chef/resource/user/aix_user.rb +4 -3
  559. data/lib/chef/resource/user/linux_user.rb +4 -4
  560. data/lib/chef/resource/user/mac_user.rb +5 -4
  561. data/lib/chef/resource/user/pw_user.rb +4 -3
  562. data/lib/chef/resource/user/solaris_user.rb +4 -3
  563. data/lib/chef/resource/user/windows_user.rb +2 -1
  564. data/lib/chef/resource/user.rb +8 -7
  565. data/lib/chef/resource/user_ulimit.rb +25 -24
  566. data/lib/chef/resource/windows_ad_join.rb +22 -22
  567. data/lib/chef/resource/windows_audit_policy.rb +35 -35
  568. data/lib/chef/resource/windows_auto_run.rb +9 -9
  569. data/lib/chef/resource/windows_certificate.rb +20 -20
  570. data/lib/chef/resource/windows_defender.rb +23 -23
  571. data/lib/chef/resource/windows_defender_exclusion.rb +18 -18
  572. data/lib/chef/resource/windows_dfs_folder.rb +1 -1
  573. data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
  574. data/lib/chef/resource/windows_dfs_server.rb +1 -1
  575. data/lib/chef/resource/windows_dns_record.rb +1 -1
  576. data/lib/chef/resource/windows_dns_zone.rb +1 -1
  577. data/lib/chef/resource/windows_env.rb +6 -6
  578. data/lib/chef/resource/windows_feature.rb +43 -43
  579. data/lib/chef/resource/windows_feature_dism.rb +9 -9
  580. data/lib/chef/resource/windows_feature_powershell.rb +21 -21
  581. data/lib/chef/resource/windows_firewall_profile.rb +29 -29
  582. data/lib/chef/resource/windows_firewall_rule.rb +48 -48
  583. data/lib/chef/resource/windows_font.rb +7 -7
  584. data/lib/chef/resource/windows_package.rb +59 -59
  585. data/lib/chef/resource/windows_pagefile.rb +30 -30
  586. data/lib/chef/resource/windows_path.rb +13 -13
  587. data/lib/chef/resource/windows_printer.rb +29 -29
  588. data/lib/chef/resource/windows_printer_port.rb +22 -22
  589. data/lib/chef/resource/windows_script.rb +1 -1
  590. data/lib/chef/resource/windows_security_policy.rb +24 -24
  591. data/lib/chef/resource/windows_service.rb +107 -107
  592. data/lib/chef/resource/windows_share.rb +17 -17
  593. data/lib/chef/resource/windows_shortcut.rb +8 -8
  594. data/lib/chef/resource/windows_task.rb +103 -105
  595. data/lib/chef/resource/windows_uac.rb +15 -15
  596. data/lib/chef/resource/windows_update_settings.rb +27 -27
  597. data/lib/chef/resource/windows_user_privilege.rb +59 -59
  598. data/lib/chef/resource/windows_workgroup.rb +11 -11
  599. data/lib/chef/resource/yum_package.rb +5 -4
  600. data/lib/chef/resource/yum_repository.rb +37 -36
  601. data/lib/chef/resource/zypper_package.rb +3 -2
  602. data/lib/chef/resource/zypper_repository.rb +4 -3
  603. data/lib/chef/resource.rb +11 -3
  604. data/lib/chef/resource_builder.rb +1 -1
  605. data/lib/chef/resource_collection/resource_collection_serialization.rb +1 -1
  606. data/lib/chef/resource_collection/resource_list.rb +1 -1
  607. data/lib/chef/resource_collection/resource_set.rb +10 -4
  608. data/lib/chef/resource_collection.rb +1 -1
  609. data/lib/chef/resource_definition.rb +1 -1
  610. data/lib/chef/resource_definition_list.rb +1 -1
  611. data/lib/chef/resource_inspector.rb +3 -1
  612. data/lib/chef/resource_reporter.rb +2 -1
  613. data/lib/chef/resource_resolver.rb +1 -1
  614. data/lib/chef/resources.rb +2 -2
  615. data/lib/chef/role.rb +1 -1
  616. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  617. data/lib/chef/run_context.rb +2 -2
  618. data/lib/chef/run_list/run_list_expansion.rb +1 -1
  619. data/lib/chef/run_list/run_list_item.rb +5 -5
  620. data/lib/chef/run_list/versioned_recipe_list.rb +1 -1
  621. data/lib/chef/run_list.rb +1 -1
  622. data/lib/chef/run_lock.rb +4 -1
  623. data/lib/chef/run_status.rb +1 -1
  624. data/lib/chef/runner.rb +1 -1
  625. data/lib/chef/scan_access_control.rb +9 -7
  626. data/lib/chef/search/query.rb +1 -1
  627. data/lib/chef/secret_fetcher/akeyless_vault.rb +1 -1
  628. data/lib/chef/secret_fetcher/aws_secrets_manager.rb +1 -1
  629. data/lib/chef/secret_fetcher/base.rb +1 -1
  630. data/lib/chef/secret_fetcher/example.rb +1 -1
  631. data/lib/chef/secret_fetcher/hashi_vault.rb +10 -1
  632. data/lib/chef/secret_fetcher.rb +1 -1
  633. data/lib/chef/server_api.rb +1 -1
  634. data/lib/chef/server_api_versions.rb +1 -1
  635. data/lib/chef/shell/ext.rb +20 -20
  636. data/lib/chef/shell/model_wrapper.rb +1 -1
  637. data/lib/chef/shell/shell_session.rb +2 -2
  638. data/lib/chef/shell.rb +30 -8
  639. data/lib/chef/target_io/dir.rb +12 -0
  640. data/lib/chef/target_io/etc.rb +16 -0
  641. data/lib/chef/target_io/file.rb +12 -0
  642. data/lib/chef/target_io/fileutils.rb +12 -0
  643. data/lib/chef/target_io/http.rb +35 -0
  644. data/lib/chef/target_io/io.rb +12 -0
  645. data/lib/chef/target_io/shadow.rb +44 -0
  646. data/lib/chef/target_io/support.rb +73 -0
  647. data/lib/chef/target_io/train/dir.rb +86 -0
  648. data/lib/chef/target_io/train/etc.rb +108 -0
  649. data/lib/chef/target_io/train/file.rb +219 -0
  650. data/lib/chef/target_io/train/fileutils.rb +201 -0
  651. data/lib/chef/target_io/train/http.rb +117 -0
  652. data/lib/chef/target_io/train/io.rb +13 -0
  653. data/lib/chef/target_io/train/shadow.rb +54 -0
  654. data/lib/chef/target_io/train_compat.rb +7 -0
  655. data/lib/chef/target_io.rb +11 -0
  656. data/lib/chef/train_transport.rb +1 -1
  657. data/lib/chef/user.rb +1 -1
  658. data/lib/chef/user_v1.rb +1 -1
  659. data/lib/chef/util/backup.rb +2 -2
  660. data/lib/chef/util/diff.rb +15 -2
  661. data/lib/chef/util/dsc/configuration_generator.rb +1 -1
  662. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  663. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  664. data/lib/chef/util/dsc/resource_store.rb +1 -1
  665. data/lib/chef/util/editor.rb +1 -1
  666. data/lib/chef/util/file_edit.rb +5 -5
  667. data/lib/chef/util/path_helper.rb +1 -1
  668. data/lib/chef/util/powershell/ps_credential.rb +1 -1
  669. data/lib/chef/util/selinux.rb +1 -1
  670. data/lib/chef/util/threaded_job_queue.rb +1 -1
  671. data/lib/chef/util/windows/logon_session.rb +1 -1
  672. data/lib/chef/version.rb +2 -2
  673. data/lib/chef/version_class.rb +1 -1
  674. data/lib/chef/version_constraint.rb +2 -2
  675. data/lib/chef/win32/api/command_line_helper.rb +1 -1
  676. data/lib/chef/win32/api/crypto.rb +1 -1
  677. data/lib/chef/win32/api/error.rb +1 -1
  678. data/lib/chef/win32/api/file.rb +3 -2
  679. data/lib/chef/win32/api/installer.rb +1 -1
  680. data/lib/chef/win32/api/memory.rb +1 -1
  681. data/lib/chef/win32/api/net.rb +1 -1
  682. data/lib/chef/win32/api/process.rb +1 -1
  683. data/lib/chef/win32/api/psapi.rb +1 -1
  684. data/lib/chef/win32/api/registry.rb +1 -1
  685. data/lib/chef/win32/api/security.rb +1 -1
  686. data/lib/chef/win32/api/synchronization.rb +1 -1
  687. data/lib/chef/win32/api/system.rb +1 -1
  688. data/lib/chef/win32/api/unicode.rb +1 -1
  689. data/lib/chef/win32/api.rb +1 -1
  690. data/lib/chef/win32/crypto.rb +1 -1
  691. data/lib/chef/win32/error.rb +3 -2
  692. data/lib/chef/win32/eventlog.rb +1 -1
  693. data/lib/chef/win32/file/info.rb +1 -1
  694. data/lib/chef/win32/file/version_info.rb +1 -1
  695. data/lib/chef/win32/file.rb +1 -1
  696. data/lib/chef/win32/handle.rb +1 -1
  697. data/lib/chef/win32/memory.rb +1 -1
  698. data/lib/chef/win32/mutex.rb +1 -1
  699. data/lib/chef/win32/net.rb +1 -1
  700. data/lib/chef/win32/process.rb +1 -1
  701. data/lib/chef/win32/registry.rb +4 -2
  702. data/lib/chef/win32/security/ace.rb +1 -1
  703. data/lib/chef/win32/security/acl.rb +1 -1
  704. data/lib/chef/win32/security/securable_object.rb +1 -1
  705. data/lib/chef/win32/security/security_descriptor.rb +1 -1
  706. data/lib/chef/win32/security/sid.rb +1 -1
  707. data/lib/chef/win32/security/token.rb +1 -1
  708. data/lib/chef/win32/security.rb +1 -1
  709. data/lib/chef/win32/system.rb +1 -1
  710. data/lib/chef/win32/unicode.rb +1 -1
  711. data/lib/chef/win32/version.rb +2 -3
  712. data/lib/chef/workstation_config_loader.rb +1 -1
  713. data/lib/chef.rb +3 -1
  714. metadata +125 -84
  715. data/lib/chef/resource/osx_profile.rb +0 -334
@@ -18,23 +18,24 @@ class Chef
18
18
  class SelinuxPermissive < Chef::Resource
19
19
  unified_mode true
20
20
 
21
- provides :selinux_permissive
21
+ provides :selinux_permissive, target_mode: true
22
+ target_mode support: :full
22
23
 
23
24
  description "Use the **selinux_permissive** resource to allow some domains to misbehave without stopping them. This is not as good as setting specific policies, but better than disabling SELinux entirely."
24
25
  introduced "18.0"
25
26
  examples <<~DOC
26
- **Disable enforcement on Apache**:
27
+ **Disable enforcement on Apache**:
27
28
 
28
- ```ruby
29
- selinux_permissive 'httpd_t' do
30
- notifies :restart, 'service[httpd]'
31
- end
32
- ```
29
+ ```ruby
30
+ selinux_permissive 'httpd_t' do
31
+ notifies :restart, 'service[httpd]'
32
+ end
33
+ ```
33
34
  DOC
34
35
 
35
36
  property :context, String,
36
- name_property: true,
37
- description: "The SELinux context to permit."
37
+ name_property: true,
38
+ description: "The SELinux context to permit."
38
39
 
39
40
  action_class do
40
41
  def current_permissives
@@ -19,34 +19,35 @@ class Chef
19
19
  class SelinuxPort < Chef::Resource
20
20
  unified_mode true
21
21
 
22
- provides :selinux_port
22
+ provides :selinux_port, target_mode: true
23
+ target_mode support: :full
23
24
 
24
25
  description "Use the **selinux_port** resource to assign a network port to a specific SELinux context. For example, running a web server on a non-standard port."
25
26
  introduced "18.0"
26
27
  examples <<~DOC
27
- **Allow nginx/apache to bind to port 5678 by giving it the http_port_t context**:
28
+ **Allow nginx/apache to bind to port 5678 by giving it the http_port_t context**:
28
29
 
29
- ```ruby
30
- selinux_port '5678' do
31
- protocol 'tcp'
32
- secontext 'http_port_t'
33
- end
34
- ```
30
+ ```ruby
31
+ selinux_port '5678' do
32
+ protocol 'tcp'
33
+ secontext 'http_port_t'
34
+ end
35
+ ```
35
36
  DOC
36
37
 
37
38
  property :port, [Integer, String],
38
- name_property: true,
39
- regex: /^\d+$/,
40
- description: "Port to modify."
39
+ name_property: true,
40
+ regex: /^\d+$/,
41
+ description: "Port to modify."
41
42
 
42
43
  property :protocol, String,
43
- equal_to: %w{tcp udp},
44
- required: %i{manage add modify},
45
- description: "Protocol to modify."
44
+ equal_to: %w{tcp udp},
45
+ required: %i{manage add modify},
46
+ description: "Protocol to modify."
46
47
 
47
48
  property :secontext, String,
48
- required: %i{manage add modify},
49
- description: "SELinux context to assign to the port."
49
+ required: %i{manage add modify},
50
+ description: "SELinux context to assign to the port."
50
51
 
51
52
  action_class do
52
53
  include Chef::SELinux::CommonHelpers
@@ -19,53 +19,54 @@ class Chef
19
19
  class SelinuxState < Chef::Resource
20
20
  unified_mode true
21
21
 
22
- provides :selinux_state
22
+ provides :selinux_state, target_mode: true
23
+ target_mode support: :full
23
24
 
24
25
  description "Use **selinux_state** resource to manages the SELinux state on the system. It does this by using the `setenforce` command and rendering the `/etc/selinux/config` file from a template."
25
26
  introduced "18.0"
26
27
  examples <<~DOC
27
- **Set SELinux state to permissive**:
28
+ **Set SELinux state to permissive**:
28
29
 
29
- ```ruby
30
- selinux_state 'permissive' do
31
- action :permissive
32
- end
33
- ```
30
+ ```ruby
31
+ selinux_state 'permissive' do
32
+ action :permissive
33
+ end
34
+ ```
34
35
 
35
- **Set SELinux state to enforcing**:
36
+ **Set SELinux state to enforcing**:
36
37
 
37
- ```ruby
38
- selinux_state 'enforcing' do
39
- action :enforcing
40
- end
41
- ```
38
+ ```ruby
39
+ selinux_state 'enforcing' do
40
+ action :enforcing
41
+ end
42
+ ```
42
43
 
43
- **Set SELinux state to disabled**:
44
- ```ruby
45
- selinux_state 'disabled' do
46
- action :disabled
47
- end
48
- ```
44
+ **Set SELinux state to disabled**:
45
+ ```ruby
46
+ selinux_state 'disabled' do
47
+ action :disabled
48
+ end
49
+ ```
49
50
  DOC
50
51
 
51
52
  default_action :nothing
52
53
 
53
54
  property :config_file, String,
54
- default: "/etc/selinux/config",
55
- description: "Path to SELinux config file on disk."
55
+ default: "/etc/selinux/config",
56
+ description: "Path to SELinux config file on disk."
56
57
 
57
58
  property :persistent, [true, false],
58
- default: true,
59
- description: "Set the status update in the SELinux configuration file."
59
+ default: true,
60
+ description: "Set the status update in the SELinux configuration file."
60
61
 
61
62
  property :policy, String,
62
- default: lazy { default_policy_platform },
63
- equal_to: %w{default minimum mls src strict targeted},
64
- description: "SELinux policy type."
63
+ default: lazy { default_policy_platform },
64
+ equal_to: %w{default minimum mls src strict targeted},
65
+ description: "SELinux policy type."
65
66
 
66
67
  property :automatic_reboot, [true, false, Symbol],
67
- default: false,
68
- description: "Perform an automatic node reboot if required for state change."
68
+ default: false,
69
+ description: "Perform an automatic node reboot if required for state change."
69
70
 
70
71
  deprecated_property_alias "temporary", "persistent", "The temporary property was renamed persistent in the 4.0 release of this cookbook. Please update your cookbooks to use the new property name."
71
72
 
@@ -19,35 +19,36 @@ class Chef
19
19
  class SelinuxUser < Chef::Resource
20
20
  unified_mode true
21
21
 
22
- provides :selinux_user
22
+ provides :selinux_user, target_mode: true
23
+ target_mode support: :full
23
24
 
24
25
  description "Use the **selinux_user** resource to add, update, or remove SELinux users."
25
26
  introduced "18.1"
26
27
  examples <<~DOC
27
- **Manage test_u SELinux user with a level and range of s0 and roles sysadm_r and staff_r**:
28
+ **Manage test_u SELinux user with a level and range of s0 and roles sysadm_r and staff_r**:
28
29
 
29
- ```ruby
30
- selinux_user 'test_u' do
31
- level 's0'
32
- range 's0'
33
- roles %w(sysadm_r staff_r)
34
- end
35
- ```
30
+ ```ruby
31
+ selinux_user 'test_u' do
32
+ level 's0'
33
+ range 's0'
34
+ roles %w(sysadm_r staff_r)
35
+ end
36
+ ```
36
37
  DOC
37
38
 
38
39
  property :user, String,
39
- name_property: true,
40
- description: "An optional property to set the SELinux user value if it differs from the resource block's name."
40
+ name_property: true,
41
+ description: "An optional property to set the SELinux user value if it differs from the resource block's name."
41
42
 
42
43
  property :level, String,
43
- description: "MLS/MCS security level for the SELinux user."
44
+ description: "MLS/MCS security level for the SELinux user."
44
45
 
45
46
  property :range, String,
46
- description: "MLS/MCS security range for the SELinux user."
47
+ description: "MLS/MCS security range for the SELinux user."
47
48
 
48
49
  property :roles, Array,
49
- description: "Associated SELinux roles for the user.",
50
- coerce: proc { |r| Array(r).sort }
50
+ description: "Associated SELinux roles for the user.",
51
+ coerce: proc { |r| Array(r).sort }
51
52
 
52
53
  load_current_value do |new_resource|
53
54
  users = shell_out!("semanage user -l").stdout.split("\n")
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: AJ Christensen (<aj@hjksolutions.com>)
3
3
  # Author:: Tyler Cloke (<tyler@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
4
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -29,6 +29,9 @@ class Chef
29
29
  extend Chef::Platform::ServiceHelpers
30
30
 
31
31
  provides :service, target_mode: true
32
+ target_mode support: :full,
33
+ introduced: "15.1",
34
+ updated: "19.0"
32
35
 
33
36
  description "Use the **service** resource to manage a service."
34
37
 
@@ -38,8 +41,8 @@ class Chef
38
41
 
39
42
  # this is a poor API please do not re-use this pattern
40
43
  property :supports, Hash, default: { restart: nil, reload: nil, status: nil },
41
- description: "A list of properties that controls how #{ChefUtils::Dist::Infra::PRODUCT} is to attempt to manage a service: :restart, :reload, :status. For :restart, the init script or other service provider can use a restart command; if :restart is not specified, the #{ChefUtils::Dist::Infra::CLIENT} attempts to stop and then start a service. For :reload, the init script or other service provider can use a reload command. For :status, the init script or other service provider can use a status command to determine if the service is running; if :status is not specified, the #{ChefUtils::Dist::Infra::CLIENT} attempts to match the service_name against the process table as a regular expression, unless a pattern is specified as a parameter property. Default value: { restart: false, reload: false, status: false } for all platforms (except for the Red Hat platform family, which defaults to { restart: false, reload: false, status: true }.)",
42
- coerce: proc { |x| x.is_a?(Array) ? x.each_with_object({}) { |i, m| m[i] = true } : x }
44
+ description: "A list of properties that controls how #{ChefUtils::Dist::Infra::PRODUCT} is to attempt to manage a service: :restart, :reload, :status. For :restart, the init script or other service provider can use a restart command; if :restart is not specified, the #{ChefUtils::Dist::Infra::CLIENT} attempts to stop and then start a service. For :reload, the init script or other service provider can use a reload command. For :status, the init script or other service provider can use a status command to determine if the service is running; if :status is not specified, the #{ChefUtils::Dist::Infra::CLIENT} attempts to match the service_name against the process table as a regular expression, unless a pattern is specified as a parameter property. Default value: { restart: false, reload: false, status: false } for all platforms (except for the Red Hat platform family, which defaults to { restart: false, reload: false, status: true }.)",
45
+ coerce: proc { |x| x.is_a?(Array) ? x.each_with_object({}) { |i, m| m[i] = true } : x }
43
46
 
44
47
  property :service_name, String,
45
48
  description: "An optional property to set the service name if it differs from the resource block's name.",
@@ -117,9 +120,9 @@ class Chef
117
120
  description: "Debian platform only. The relative priority of the program for start and shutdown ordering. May be an integer or a Hash. An integer is used to define the start run levels; stop run levels are then 100-integer. A Hash is used to define values for specific run levels. For example, { 2 => [:start, 20], 3 => [:stop, 55] } will set a priority of twenty for run level two and a priority of fifty-five for run level three."
118
121
 
119
122
  property :timeout, Integer,
120
- description: "The amount of time (in seconds) to wait before timing out.",
121
- default: 900,
122
- desired_state: false
123
+ description: "The amount of time (in seconds) to wait before timing out.",
124
+ default: 900,
125
+ desired_state: false
123
126
 
124
127
  property :parameters, Hash,
125
128
  description: "Upstart only: A hash of parameters to pass to the service command for use in the service definition."
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Toomas Pelberg (<toomasp@gmx.net>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
3
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,8 +22,9 @@ class Chef
22
22
  class Resource
23
23
  class SmartosPackage < Chef::Resource::Package
24
24
 
25
- provides :smartos_package
26
- provides :package, platform_family: "smartos"
25
+ provides :smartos_package, target_mode: true
26
+ provides :package, platform_family: "smartos", target_mode: true
27
+ target_mode support: :full
27
28
 
28
29
  description "Use the **smartos_package** resource to manage packages for the SmartOS platform."
29
30
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: S.Cavallo (<smcavallo@hotmail.com>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
3
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,40 +22,49 @@ class Chef
22
22
  class Resource
23
23
  class SnapPackage < Chef::Resource::Package
24
24
 
25
- provides :snap_package
25
+ provides :snap_package, target_mode: true
26
+ target_mode support: :full
26
27
 
27
- description "Use the **snap_package** resource to manage snap packages on Debian and Ubuntu platforms."
28
+ description "Use the **snap_package** resource to manage snap packages on supported Linux distributions."
28
29
  introduced "15.0"
29
30
  examples <<~DOC
30
- **Install a package**
31
+ **Install a package**
31
32
 
32
- ```ruby
33
- snap_package 'hello'
34
- ```
33
+ ```ruby
34
+ snap_package 'hello'
35
+ ```
35
36
 
36
- **Upgrade a package**
37
+ **Upgrade a package**
37
38
 
38
- ```ruby
39
- snap_package 'hello' do
40
- action :upgrade
41
- end
42
- ```
39
+ ```ruby
40
+ snap_package 'hello' do
41
+ action :upgrade
42
+ end
43
+ ```
43
44
 
44
- **Install a package with classic confinement**
45
+ **Install a package from a specific channel track**
45
46
 
46
- ```ruby
47
- snap_package 'hello' do
48
- options 'classic'
49
- end
50
- ```
47
+ ```ruby
48
+ snap_package 'firefox' do
49
+ channel 'esr/stable'
50
+ action :upgrade
51
+ end
52
+ ```
53
+
54
+ **Install a package with classic confinement**
55
+
56
+ ```ruby
57
+ snap_package 'hello' do
58
+ options 'classic'
59
+ end
60
+ ```
51
61
  DOC
52
62
 
53
63
  allowed_actions :install, :upgrade, :remove, :purge
54
64
 
55
- property :channel, String,
56
- description: "The default channel. For example: stable.",
57
- default: "stable",
58
- equal_to: %w{edge beta candidate stable},
65
+ property :channel, [String, nil],
66
+ description: "The desired channel. For example: `latest/stable`. `latest/beta/fix-test-062`, or `0.x/edge`. If nil, the resource will install the snap's default version. See <https://snapcraft.io/docs/channels>.",
67
+ default: "latest/stable",
59
68
  desired_state: false
60
69
  end
61
70
  end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Toomas Pelberg (<toomasp@gmx.net>)
3
3
  # Author:: Prabhu Das (<prabhu.das@clogeny.com>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
4
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,7 +23,8 @@ class Chef
23
23
  class Resource
24
24
  class SolarisPackage < Chef::Resource::Package
25
25
 
26
- provides :solaris_package
26
+ provides :solaris_package, target_mode: true
27
+ target_mode support: :full
27
28
 
28
29
  description "Use the **solaris_package** resource to manage packages on the Solaris platform."
29
30
 
@@ -2,7 +2,7 @@
2
2
  # Author:: Seth Vargo (<sethvargo@gmail.com>)
3
3
  #
4
4
  # Copyright:: 2013-2018, Seth Vargo
5
- # Copyright:: Copyright (c) Chef Software Inc.
5
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
6
6
  # License:: Apache License, Version 2.0
7
7
  #
8
8
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -24,24 +24,25 @@ class Chef
24
24
  class Resource
25
25
  class SshKnownHostsEntry < Chef::Resource
26
26
 
27
- provides :ssh_known_hosts_entry
27
+ provides :ssh_known_hosts_entry, target_mode: true
28
+ target_mode support: :full
28
29
 
29
30
  description "Use the **ssh_known_hosts_entry** resource to add an entry for the specified host in /etc/ssh/ssh_known_hosts or a user's known hosts file if specified."
30
31
  introduced "14.3"
31
32
  examples <<~DOC
32
- **Add a single entry for github.com with the key auto detected**
33
+ **Add a single entry for github.com with the key auto detected**
33
34
 
34
- ```ruby
35
- ssh_known_hosts_entry 'github.com'
36
- ```
35
+ ```ruby
36
+ ssh_known_hosts_entry 'github.com'
37
+ ```
37
38
 
38
- **Add a single entry with your own provided key**
39
+ **Add a single entry with your own provided key**
39
40
 
40
- ```ruby
41
- ssh_known_hosts_entry 'github.com' do
42
- key 'node.example.com ssh-rsa ...'
43
- end
44
- ```
41
+ ```ruby
42
+ ssh_known_hosts_entry 'github.com' do
43
+ key 'node.example.com ssh-rsa ...'
44
+ end
45
+ ```
45
46
  DOC
46
47
 
47
48
  property :host, String,
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Copyright:: 2011-2018, Bryan w. Berry
6
6
  # Copyright:: 2012-2018, Seth Vargo
7
- # Copyright:: Copyright (c) Chef Software Inc.
7
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
8
8
  # License:: Apache License, Version 2.0
9
9
  #
10
10
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,7 +25,8 @@ class Chef
25
25
  class Resource
26
26
  class Sudo < Chef::Resource
27
27
 
28
- provides(:sudo) { true }
28
+ provides(:sudo, target_mode: true) { true }
29
+ target_mode support: :full
29
30
 
30
31
  description "Use the **sudo** resource to add or remove individual sudo entries using sudoers.d files." \
31
32
  " Sudo version 1.7.2 or newer is required to use the sudo resource, as it relies on the" \
@@ -34,66 +35,66 @@ class Chef
34
35
  " and RHEL (6+) all support this feature."
35
36
  introduced "14.0"
36
37
  examples <<~DOC
37
- **Grant a user sudo privileges for any command**
38
+ **Grant a user sudo privileges for any command**
38
39
 
39
- ```ruby
40
- sudo 'admin' do
41
- user 'admin'
42
- end
43
- ```
40
+ ```ruby
41
+ sudo 'admin' do
42
+ user 'admin'
43
+ end
44
+ ```
44
45
 
45
- **Grant a user and groups sudo privileges for any command**
46
+ **Grant a user and groups sudo privileges for any command**
46
47
 
47
- ```ruby
48
- sudo 'admins' do
49
- users 'bob'
50
- groups 'sysadmins, superusers'
51
- end
52
- ```
48
+ ```ruby
49
+ sudo 'admins' do
50
+ users 'bob'
51
+ groups 'sysadmins, superusers'
52
+ end
53
+ ```
53
54
 
54
- **Grant passwordless sudo privileges for specific commands**
55
+ **Grant passwordless sudo privileges for specific commands**
55
56
 
56
- ```ruby
57
- sudo 'passwordless-access' do
58
- commands ['/bin/systemctl restart httpd', '/bin/systemctl restart mysql']
59
- nopasswd true
60
- end
61
- ```
62
-
63
- **Create command aliases and assign them to a group**
64
-
65
- ```ruby
66
- sudo 'webteam' do
67
- command_aliases [
68
- {
69
- 'name': 'WEBTEAM_SYSTEMD_JBOSS',
70
- 'command_list': [
71
- '/usr/bin/systemctl start eap7-standalone.service',
72
- '/usr/bin/systemctl start jbcs-httpd24-httpd.service', \
73
- '/usr/bin/systemctl stop eap7-standalone.service', \
74
- '/usr/bin/systemctl stop jbcs-httpd24-httpd.service', \
75
- '/usr/bin/systemctl restart eap7-standalone.service', \
76
- '/usr/bin/systemctl restart jbcs-httpd24-httpd.service', \
77
- '/usr/bin/systemctl --full edit eap7-standalone.service', \
78
- '/usr/bin/systemctl --full edit jbcs-httpd24-httpd.service', \
79
- '/usr/bin/systemctl daemon-reload',
57
+ ```ruby
58
+ sudo 'passwordless-access' do
59
+ commands ['/bin/systemctl restart httpd', '/bin/systemctl restart mysql']
60
+ nopasswd true
61
+ end
62
+ ```
63
+
64
+ **Create command aliases and assign them to a group**
65
+
66
+ ```ruby
67
+ sudo 'webteam' do
68
+ command_aliases [
69
+ {
70
+ 'name': 'WEBTEAM_SYSTEMD_JBOSS',
71
+ 'command_list': [
72
+ '/usr/bin/systemctl start eap7-standalone.service',
73
+ '/usr/bin/systemctl start jbcs-httpd24-httpd.service', \
74
+ '/usr/bin/systemctl stop eap7-standalone.service', \
75
+ '/usr/bin/systemctl stop jbcs-httpd24-httpd.service', \
76
+ '/usr/bin/systemctl restart eap7-standalone.service', \
77
+ '/usr/bin/systemctl restart jbcs-httpd24-httpd.service', \
78
+ '/usr/bin/systemctl --full edit eap7-standalone.service', \
79
+ '/usr/bin/systemctl --full edit jbcs-httpd24-httpd.service', \
80
+ '/usr/bin/systemctl daemon-reload',
81
+ ]
82
+ },
83
+ {
84
+ 'name': 'GENERIC_SYSTEMD',
85
+ 'command_list': [
86
+ '/usr/sbin/systemctl list-unit-files',
87
+ '/usr/sbin/systemctl list-timers', \
88
+ '/usr/sbin/systemctl is-active *', \
89
+ '/usr/sbin/systemctl is-enabled *',
80
90
  ]
81
- },
82
- {
83
- 'name': 'GENERIC_SYSTEMD',
84
- 'command_list': [
85
- '/usr/sbin/systemctl list-unit-files',
86
- '/usr/sbin/systemctl list-timers', \
87
- '/usr/sbin/systemctl is-active *', \
88
- '/usr/sbin/systemctl is-enabled *',
89
- ]
90
- }
91
- ]
92
- nopasswd true
93
- users '%webteam'
94
- commands [ 'WEBTEAM_SYSTEMD_JBOSS', 'GENERIC_SYSTEMD' ]
95
- end
96
- ```
91
+ }
92
+ ]
93
+ nopasswd true
94
+ users '%webteam'
95
+ commands [ 'WEBTEAM_SYSTEMD_JBOSS', 'GENERIC_SYSTEMD' ]
96
+ end
97
+ ```
97
98
  DOC
98
99
 
99
100
  # According to the sudo man pages sudo will ignore files in an include dir that have a `.` or `~`
@@ -216,11 +217,11 @@ class Chef
216
217
  target = "#{new_resource.config_prefix}/sudoers.d/"
217
218
  directory(target)
218
219
 
219
- Chef::Log.warn("#{new_resource.filename} will be rendered, but will not take effect because the #{new_resource.config_prefix}/sudoers config lacks the includedir directive that loads configs from #{new_resource.config_prefix}/sudoers.d/!") if ::File.readlines("#{new_resource.config_prefix}/sudoers").grep(/includedir/).empty?
220
+ Chef::Log.warn("#{new_resource.filename} will be rendered, but will not take effect because the #{new_resource.config_prefix}/sudoers config lacks the includedir directive that loads configs from #{new_resource.config_prefix}/sudoers.d/!") if ::TargetIO::File.readlines("#{new_resource.config_prefix}/sudoers").grep(/includedir/).empty?
220
221
  file_path = "#{target}#{new_resource.filename}"
221
222
 
222
223
  if new_resource.template
223
- logger.trace("Template property provided, all other properties ignored.")
224
+ Chef::Log.trace("Template property provided, all other properties ignored.")
224
225
 
225
226
  template file_path do
226
227
  source new_resource.template
@@ -235,16 +236,16 @@ class Chef
235
236
  local true
236
237
  mode "0440"
237
238
  variables sudoer: (new_resource.groups + new_resource.users).join(","),
238
- host: new_resource.host,
239
- runas: new_resource.runas,
240
- nopasswd: new_resource.nopasswd,
241
- noexec: new_resource.noexec,
242
- commands: new_resource.commands,
243
- command_aliases: new_resource.command_aliases,
244
- defaults: new_resource.defaults,
245
- setenv: new_resource.setenv,
246
- env_keep_add: new_resource.env_keep_add,
247
- env_keep_subtract: new_resource.env_keep_subtract
239
+ host: new_resource.host,
240
+ runas: new_resource.runas,
241
+ nopasswd: new_resource.nopasswd,
242
+ noexec: new_resource.noexec,
243
+ commands: new_resource.commands,
244
+ command_aliases: new_resource.command_aliases,
245
+ defaults: new_resource.defaults,
246
+ setenv: new_resource.setenv,
247
+ env_keep_add: new_resource.env_keep_add,
248
+ env_keep_subtract: new_resource.env_keep_subtract
248
249
  verify visudo_content(file_path) if visudo_present?
249
250
  action :create
250
251
  end
@@ -279,13 +280,13 @@ class Chef
279
280
  end
280
281
 
281
282
  def visudo_present?
282
- return true if ::File.exist?(new_resource.visudo_binary)
283
+ return true if ::TargetIO::File.exist?(new_resource.visudo_binary)
283
284
 
284
285
  Chef::Log.warn("The visudo binary cannot be found at '#{new_resource.visudo_binary}'. Skipping sudoer file validation. If visudo is on this system you can specify the path using the 'visudo_binary' property.")
285
286
  end
286
287
 
287
288
  def visudo_content(path)
288
- if ::File.exist?(path)
289
+ if ::TargetIO::File.exist?(path)
289
290
  "cat #{new_resource.config_prefix}/sudoers | #{new_resource.visudo_binary} -cf - && #{new_resource.visudo_binary} -cf %{path}"
290
291
  else
291
292
  "cat #{new_resource.config_prefix}/sudoers %{path} | #{new_resource.visudo_binary} -cf -"