chef 18.9.4 → 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 (713) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +24 -22
  3. data/README.md +6 -2
  4. data/Rakefile +12 -7
  5. data/chef-universal-mingw-ucrt.gemspec +1 -1
  6. data/chef.gemspec +18 -20
  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 +31 -4
  12. data/lib/chef/application/base.rb +38 -7
  13. data/lib/chef/application/client.rb +15 -1
  14. data/lib/chef/application/exit_code.rb +4 -2
  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 +8 -7
  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 +1 -1
  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 +3 -4
  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 +11 -2
  92. data/lib/chef/compliance/default_attributes.rb +1 -1
  93. data/lib/chef/compliance/fetcher/chef_server.rb +2 -2
  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/reporter/cli.rb +2 -2
  99. data/lib/chef/compliance/runner.rb +19 -1
  100. data/lib/chef/compliance/waiver.rb +1 -1
  101. data/lib/chef/compliance/waiver_collection.rb +1 -1
  102. data/lib/chef/config.rb +1 -1
  103. data/lib/chef/constants.rb +1 -1
  104. data/lib/chef/context.rb +53 -0
  105. data/lib/chef/cookbook/chefignore.rb +2 -2
  106. data/lib/chef/cookbook/cookbook_collection.rb +1 -1
  107. data/lib/chef/cookbook/cookbook_version_loader.rb +2 -1
  108. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  109. data/lib/chef/cookbook/file_vendor.rb +1 -1
  110. data/lib/chef/cookbook/gem_installer.rb +1 -1
  111. data/lib/chef/cookbook/manifest_v0.rb +1 -1
  112. data/lib/chef/cookbook/manifest_v2.rb +1 -1
  113. data/lib/chef/cookbook/metadata.rb +1 -1
  114. data/lib/chef/cookbook/remote_file_vendor.rb +1 -1
  115. data/lib/chef/cookbook/synchronizer.rb +5 -0
  116. data/lib/chef/cookbook/syntax_check.rb +1 -1
  117. data/lib/chef/cookbook_loader.rb +1 -1
  118. data/lib/chef/cookbook_manifest.rb +1 -1
  119. data/lib/chef/cookbook_version.rb +3 -3
  120. data/lib/chef/daemon.rb +1 -1
  121. data/lib/chef/data_bag.rb +3 -3
  122. data/lib/chef/data_bag_item.rb +2 -2
  123. data/lib/chef/data_collector/config_validation.rb +1 -1
  124. data/lib/chef/data_collector/error_handlers.rb +1 -1
  125. data/lib/chef/data_collector/message_helpers.rb +1 -1
  126. data/lib/chef/data_collector/run_end_message.rb +1 -1
  127. data/lib/chef/data_collector/run_start_message.rb +2 -2
  128. data/lib/chef/data_collector.rb +2 -2
  129. data/lib/chef/decorator/lazy.rb +1 -1
  130. data/lib/chef/decorator/lazy_array.rb +1 -1
  131. data/lib/chef/decorator.rb +1 -1
  132. data/lib/chef/delayed_evaluator.rb +1 -1
  133. data/lib/chef/deprecated.rb +1 -1
  134. data/lib/chef/deprecation/warnings.rb +1 -1
  135. data/lib/chef/digester.rb +1 -1
  136. data/lib/chef/dsl/chef_vault.rb +3 -3
  137. data/lib/chef/dsl/cheffish.rb +1 -1
  138. data/lib/chef/dsl/compliance.rb +1 -1
  139. data/lib/chef/dsl/data_query.rb +1 -1
  140. data/lib/chef/dsl/declare_resource.rb +1 -1
  141. data/lib/chef/dsl/include_attribute.rb +1 -1
  142. data/lib/chef/dsl/include_recipe.rb +1 -1
  143. data/lib/chef/dsl/platform_introspection.rb +1 -1
  144. data/lib/chef/dsl/powershell.rb +1 -1
  145. data/lib/chef/dsl/reader_helpers.rb +3 -1
  146. data/lib/chef/dsl/reboot_pending.rb +1 -1
  147. data/lib/chef/dsl/recipe.rb +1 -1
  148. data/lib/chef/dsl/registry_helper.rb +1 -1
  149. data/lib/chef/dsl/render_helpers.rb +1 -1
  150. data/lib/chef/dsl/resources.rb +1 -1
  151. data/lib/chef/dsl/rest_resource.rb +165 -5
  152. data/lib/chef/dsl/secret.rb +1 -1
  153. data/lib/chef/dsl/universal.rb +1 -1
  154. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -1
  155. data/lib/chef/encrypted_data_bag_item/decryption_failure.rb +1 -1
  156. data/lib/chef/encrypted_data_bag_item/decryptor.rb +2 -6
  157. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  158. data/lib/chef/encrypted_data_bag_item/unacceptable_encrypted_data_bag_item_format.rb +1 -1
  159. data/lib/chef/encrypted_data_bag_item/unsupported_cipher.rb +1 -1
  160. data/lib/chef/encrypted_data_bag_item/unsupported_encrypted_data_bag_item_format.rb +1 -1
  161. data/lib/chef/encrypted_data_bag_item.rb +1 -1
  162. data/lib/chef/environment.rb +2 -2
  163. data/lib/chef/event_loggers/base.rb +1 -1
  164. data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
  165. data/lib/chef/exceptions.rb +2 -12
  166. data/lib/chef/file_access_control/unix.rb +10 -10
  167. data/lib/chef/file_access_control/windows.rb +1 -1
  168. data/lib/chef/file_access_control.rb +1 -1
  169. data/lib/chef/file_cache.rb +2 -6
  170. data/lib/chef/file_content_management/content_base.rb +1 -1
  171. data/lib/chef/file_content_management/deploy/cp.rb +1 -1
  172. data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
  173. data/lib/chef/file_content_management/deploy/mv_windows.rb +1 -1
  174. data/lib/chef/file_content_management/deploy/target_io.rb +27 -0
  175. data/lib/chef/file_content_management/deploy.rb +5 -2
  176. data/lib/chef/file_content_management/tempfile.rb +1 -1
  177. data/lib/chef/formatters/base.rb +1 -1
  178. data/lib/chef/formatters/error_description.rb +1 -1
  179. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +1 -1
  180. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +2 -2
  181. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +2 -1
  182. data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +2 -1
  183. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +1 -1
  184. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +1 -1
  185. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +1 -1
  186. data/lib/chef/formatters/error_mapper.rb +1 -1
  187. data/lib/chef/group.rb +2 -2
  188. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +1 -1
  189. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +1 -1
  190. data/lib/chef/guard_interpreter.rb +1 -1
  191. data/lib/chef/handler/error_report.rb +1 -1
  192. data/lib/chef/handler/json_file.rb +1 -1
  193. data/lib/chef/handler/slow_report.rb +2 -2
  194. data/lib/chef/handler.rb +1 -1
  195. data/lib/chef/http/api_versions.rb +1 -1
  196. data/lib/chef/http/auth_credentials.rb +1 -1
  197. data/lib/chef/http/authenticator.rb +1 -1
  198. data/lib/chef/http/basic_client.rb +1 -2
  199. data/lib/chef/http/cookie_jar.rb +1 -1
  200. data/lib/chef/http/cookie_manager.rb +1 -1
  201. data/lib/chef/http/decompressor.rb +1 -1
  202. data/lib/chef/http/http_request.rb +17 -16
  203. data/lib/chef/http/json_input.rb +1 -1
  204. data/lib/chef/http/json_output.rb +1 -1
  205. data/lib/chef/http/json_to_model_output.rb +1 -1
  206. data/lib/chef/http/remote_request_id.rb +1 -1
  207. data/lib/chef/http/simple.rb +1 -1
  208. data/lib/chef/http/simple_json.rb +1 -1
  209. data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
  210. data/lib/chef/http/ssl_policies.rb +1 -1
  211. data/lib/chef/http/validate_content_length.rb +1 -1
  212. data/lib/chef/http.rb +1 -2
  213. data/lib/chef/json_compat.rb +1 -1
  214. data/lib/chef/key.rb +1 -1
  215. data/lib/chef/licensing.rb +105 -0
  216. data/lib/chef/licensing_config.rb +20 -0
  217. data/lib/chef/local_mode.rb +1 -1
  218. data/lib/chef/log/syslog.rb +1 -1
  219. data/lib/chef/log/winevt.rb +1 -1
  220. data/lib/chef/log.rb +1 -1
  221. data/lib/chef/mash.rb +1 -1
  222. data/lib/chef/mixin/api_version_request_handling.rb +2 -2
  223. data/lib/chef/mixin/checksum.rb +1 -1
  224. data/lib/chef/mixin/chef_utils_wiring.rb +1 -1
  225. data/lib/chef/mixin/convert_to_class_name.rb +1 -1
  226. data/lib/chef/mixin/create_path.rb +1 -1
  227. data/lib/chef/mixin/deep_merge.rb +1 -1
  228. data/lib/chef/mixin/default_paths.rb +1 -1
  229. data/lib/chef/mixin/deprecation.rb +1 -1
  230. data/lib/chef/mixin/enforce_ownership_and_permissions.rb +1 -1
  231. data/lib/chef/mixin/file_class.rb +4 -2
  232. data/lib/chef/mixin/from_file.rb +1 -1
  233. data/lib/chef/mixin/get_source_from_package.rb +2 -2
  234. data/lib/chef/mixin/homebrew.rb +3 -4
  235. data/lib/chef/mixin/lazy_module_include.rb +1 -1
  236. data/lib/chef/mixin/notifying_block.rb +1 -1
  237. data/lib/chef/mixin/openssl_helper.rb +1 -1
  238. data/lib/chef/mixin/params_validate.rb +1 -1
  239. data/lib/chef/mixin/path_sanity.rb +1 -1
  240. data/lib/chef/mixin/powershell_exec.rb +1 -1
  241. data/lib/chef/mixin/powershell_out.rb +1 -1
  242. data/lib/chef/mixin/powershell_type_coercions.rb +3 -3
  243. data/lib/chef/mixin/proxified_socket.rb +1 -1
  244. data/lib/chef/mixin/securable.rb +3 -3
  245. data/lib/chef/mixin/shell_out.rb +1 -1
  246. data/lib/chef/mixin/subclass_directive.rb +1 -1
  247. data/lib/chef/mixin/template.rb +2 -2
  248. data/lib/chef/mixin/unformatter.rb +1 -1
  249. data/lib/chef/mixin/uris.rb +1 -1
  250. data/lib/chef/mixin/user_context.rb +1 -1
  251. data/lib/chef/mixin/versioned_api.rb +2 -2
  252. data/lib/chef/mixin/which.rb +1 -1
  253. data/lib/chef/mixin/why_run.rb +1 -1
  254. data/lib/chef/mixin/wide_string.rb +1 -1
  255. data/lib/chef/mixin/windows_architecture_helper.rb +1 -1
  256. data/lib/chef/mixin/windows_env_helper.rb +1 -1
  257. data/lib/chef/mixin/xml_escape.rb +1 -1
  258. data/lib/chef/monkey_patches/net-http.rb +2 -3
  259. data/lib/chef/monkey_patches/win32/registry.rb +1 -1
  260. data/lib/chef/node/attribute.rb +1 -1
  261. data/lib/chef/node/attribute_collections.rb +1 -1
  262. data/lib/chef/node/common_api.rb +1 -1
  263. data/lib/chef/node/immutable_collections.rb +1 -1
  264. data/lib/chef/node/mixin/deep_merge_cache.rb +1 -1
  265. data/lib/chef/node/mixin/immutablize_array.rb +27 -1
  266. data/lib/chef/node/mixin/immutablize_hash.rb +36 -1
  267. data/lib/chef/node/mixin/mashy_array.rb +1 -1
  268. data/lib/chef/node/mixin/state_tracking.rb +1 -1
  269. data/lib/chef/node/mixin/state_tracking_array.rb +1 -1
  270. data/lib/chef/node.rb +1 -1
  271. data/lib/chef/node_map.rb +15 -3
  272. data/lib/chef/null_logger.rb +1 -1
  273. data/lib/chef/org.rb +1 -1
  274. data/lib/chef/platform/priority_map.rb +1 -1
  275. data/lib/chef/platform/provider_handler_map.rb +1 -1
  276. data/lib/chef/platform/provider_mapping.rb +1 -1
  277. data/lib/chef/platform/query_helpers.rb +1 -1
  278. data/lib/chef/platform/rebooter.rb +1 -1
  279. data/lib/chef/platform/resource_handler_map.rb +1 -1
  280. data/lib/chef/platform/service_helpers.rb +1 -1
  281. data/lib/chef/platform.rb +1 -1
  282. data/lib/chef/policy_builder/dynamic.rb +1 -1
  283. data/lib/chef/policy_builder/expand_node_object.rb +1 -1
  284. data/lib/chef/policy_builder/policyfile.rb +1 -1
  285. data/lib/chef/policy_builder.rb +1 -1
  286. data/lib/chef/property.rb +2 -2
  287. data/lib/chef/provider/batch.rb +1 -1
  288. data/lib/chef/provider/cookbook_file/content.rb +1 -1
  289. data/lib/chef/provider/cookbook_file.rb +2 -2
  290. data/lib/chef/provider/cron/aix.rb +1 -1
  291. data/lib/chef/provider/cron/solaris.rb +1 -1
  292. data/lib/chef/provider/cron.rb +15 -5
  293. data/lib/chef/provider/directory.rb +27 -16
  294. data/lib/chef/provider/dsc_resource.rb +3 -3
  295. data/lib/chef/provider/dsc_script.rb +1 -1
  296. data/lib/chef/provider/execute.rb +3 -2
  297. data/lib/chef/provider/file/content.rb +1 -1
  298. data/lib/chef/provider/file.rb +43 -30
  299. data/lib/chef/provider/git.rb +9 -9
  300. data/lib/chef/provider/group/aix.rb +1 -1
  301. data/lib/chef/provider/group/dscl.rb +2 -2
  302. data/lib/chef/provider/group/gpasswd.rb +3 -3
  303. data/lib/chef/provider/group/groupadd.rb +2 -2
  304. data/lib/chef/provider/group/groupmod.rb +3 -3
  305. data/lib/chef/provider/group/pw.rb +3 -3
  306. data/lib/chef/provider/group/solaris.rb +3 -3
  307. data/lib/chef/provider/group/usermod.rb +3 -3
  308. data/lib/chef/provider/group.rb +2 -2
  309. data/lib/chef/provider/http_request.rb +3 -4
  310. data/lib/chef/provider/ifconfig/aix.rb +2 -2
  311. data/lib/chef/provider/ifconfig/debian.rb +4 -4
  312. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  313. data/lib/chef/provider/ifconfig.rb +1 -1
  314. data/lib/chef/provider/link.rb +22 -11
  315. data/lib/chef/provider/lwrp_base.rb +1 -1
  316. data/lib/chef/provider/mount/aix.rb +5 -5
  317. data/lib/chef/provider/mount/linux.rb +5 -5
  318. data/lib/chef/provider/mount/mount.rb +12 -12
  319. data/lib/chef/provider/mount/solaris.rb +1 -1
  320. data/lib/chef/provider/mount/windows.rb +1 -1
  321. data/lib/chef/provider/mount.rb +1 -1
  322. data/lib/chef/provider/noop.rb +1 -1
  323. data/lib/chef/provider/package/apt.rb +1 -1
  324. data/lib/chef/provider/package/bff.rb +4 -4
  325. data/lib/chef/provider/package/cab.rb +1 -1
  326. data/lib/chef/provider/package/chocolatey.rb +1 -1
  327. data/lib/chef/provider/package/deb.rb +1 -1
  328. data/lib/chef/provider/package/dnf/python_helper.rb +3 -3
  329. data/lib/chef/provider/package/dnf/version.rb +1 -1
  330. data/lib/chef/provider/package/dnf.rb +1 -1
  331. data/lib/chef/provider/package/dpkg.rb +6 -6
  332. data/lib/chef/provider/package/freebsd/base.rb +1 -1
  333. data/lib/chef/provider/package/habitat.rb +6 -6
  334. data/lib/chef/provider/package/homebrew.rb +4 -4
  335. data/lib/chef/provider/package/ips.rb +3 -3
  336. data/lib/chef/provider/package/msu.rb +1 -1
  337. data/lib/chef/provider/package/openbsd.rb +3 -2
  338. data/lib/chef/provider/package/pacman.rb +4 -4
  339. data/lib/chef/provider/package/paludis.rb +3 -3
  340. data/lib/chef/provider/package/portage.rb +3 -3
  341. data/lib/chef/provider/package/powershell.rb +1 -1
  342. data/lib/chef/provider/package/rpm.rb +3 -3
  343. data/lib/chef/provider/package/rubygems.rb +19 -3
  344. data/lib/chef/provider/package/smartos.rb +2 -2
  345. data/lib/chef/provider/package/snap.rb +20 -8
  346. data/lib/chef/provider/package/snap_tm.rb +79 -0
  347. data/lib/chef/provider/package/solaris.rb +5 -5
  348. data/lib/chef/provider/package/windows/exe.rb +2 -2
  349. data/lib/chef/provider/package/windows/msi.rb +2 -2
  350. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  351. data/lib/chef/provider/package/windows.rb +1 -1
  352. data/lib/chef/provider/package/yum/python_helper.rb +1 -1
  353. data/lib/chef/provider/package/yum/rpm_utils.rb +3 -3
  354. data/lib/chef/provider/package/yum/version.rb +1 -1
  355. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  356. data/lib/chef/provider/package/yum.rb +1 -1
  357. data/lib/chef/provider/package/yum_tm.rb +132 -0
  358. data/lib/chef/provider/package/zypper/version.rb +1 -1
  359. data/lib/chef/provider/package/zypper.rb +5 -5
  360. data/lib/chef/provider/package.rb +2 -2
  361. data/lib/chef/provider/powershell_script.rb +1 -1
  362. data/lib/chef/provider/registry_key.rb +2 -1
  363. data/lib/chef/provider/remote_directory.rb +6 -6
  364. data/lib/chef/provider/remote_file/cache_control_data.rb +1 -1
  365. data/lib/chef/provider/remote_file/content.rb +1 -1
  366. data/lib/chef/provider/remote_file/fetcher.rb +1 -1
  367. data/lib/chef/provider/remote_file/http.rb +2 -3
  368. data/lib/chef/provider/remote_file.rb +2 -2
  369. data/lib/chef/provider/route.rb +10 -10
  370. data/lib/chef/provider/ruby_block.rb +1 -1
  371. data/lib/chef/provider/script.rb +8 -8
  372. data/lib/chef/provider/service/aix.rb +2 -2
  373. data/lib/chef/provider/service/aixinit.rb +6 -6
  374. data/lib/chef/provider/service/arch.rb +6 -6
  375. data/lib/chef/provider/service/debian.rb +9 -11
  376. data/lib/chef/provider/service/freebsd.rb +7 -7
  377. data/lib/chef/provider/service/gentoo.rb +6 -6
  378. data/lib/chef/provider/service/init.rb +3 -3
  379. data/lib/chef/provider/service/insserv.rb +3 -3
  380. data/lib/chef/provider/service/invokercd.rb +2 -2
  381. data/lib/chef/provider/service/macosx.rb +1 -1
  382. data/lib/chef/provider/service/openbsd.rb +7 -7
  383. data/lib/chef/provider/service/redhat.rb +6 -6
  384. data/lib/chef/provider/service/solaris.rb +3 -3
  385. data/lib/chef/provider/service/systemd.rb +3 -3
  386. data/lib/chef/provider/service/upstart.rb +3 -3
  387. data/lib/chef/provider/service/windows.rb +1 -1
  388. data/lib/chef/provider/service.rb +1 -1
  389. data/lib/chef/provider/subversion.rb +10 -10
  390. data/lib/chef/provider/systemd_unit.rb +3 -3
  391. data/lib/chef/provider/template/content.rb +1 -1
  392. data/lib/chef/provider/template.rb +2 -2
  393. data/lib/chef/provider/template_finder.rb +1 -1
  394. data/lib/chef/provider/user/aix.rb +4 -4
  395. data/lib/chef/provider/user/dscl.rb +2 -2
  396. data/lib/chef/provider/user/linux.rb +8 -3
  397. data/lib/chef/provider/user/mac.rb +2 -2
  398. data/lib/chef/provider/user/pw.rb +4 -4
  399. data/lib/chef/provider/user/solaris.rb +8 -8
  400. data/lib/chef/provider/user.rb +7 -4
  401. data/lib/chef/provider/windows_script.rb +1 -1
  402. data/lib/chef/provider/yum_repository.rb +2 -4
  403. data/lib/chef/provider/zypper_repository.rb +2 -2
  404. data/lib/chef/provider.rb +1 -1
  405. data/lib/chef/providers.rb +3 -1
  406. data/lib/chef/pwsh.rb +1 -1
  407. data/lib/chef/recipe.rb +9 -6
  408. data/lib/chef/request_id.rb +1 -1
  409. data/lib/chef/resource/_rest_resource.rb +153 -8
  410. data/lib/chef/resource/action_class.rb +1 -1
  411. data/lib/chef/resource/alternatives.rb +5 -4
  412. data/lib/chef/resource/apt_package.rb +7 -2
  413. data/lib/chef/resource/apt_preference.rb +3 -2
  414. data/lib/chef/resource/apt_repository.rb +18 -13
  415. data/lib/chef/resource/apt_update.rb +5 -4
  416. data/lib/chef/resource/archive_file.rb +21 -21
  417. data/lib/chef/resource/bash.rb +3 -2
  418. data/lib/chef/resource/batch.rb +1 -1
  419. data/lib/chef/resource/bff_package.rb +3 -2
  420. data/lib/chef/resource/breakpoint.rb +2 -1
  421. data/lib/chef/resource/build_essential.rb +1 -1
  422. data/lib/chef/resource/cab_package.rb +1 -1
  423. data/lib/chef/resource/chef_client_config.rb +5 -8
  424. data/lib/chef/resource/chef_client_cron.rb +5 -3
  425. data/lib/chef/resource/chef_client_hab_ca_cert.rb +141 -0
  426. data/lib/chef/resource/chef_client_launchd.rb +7 -3
  427. data/lib/chef/resource/chef_client_scheduled_task.rb +6 -3
  428. data/lib/chef/resource/chef_client_systemd_timer.rb +5 -2
  429. data/lib/chef/resource/chef_client_trusted_certificate.rb +1 -1
  430. data/lib/chef/resource/chef_gem.rb +1 -1
  431. data/lib/chef/resource/chef_handler.rb +1 -1
  432. data/lib/chef/resource/chef_sleep.rb +3 -2
  433. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  434. data/lib/chef/resource/chocolatey_config.rb +1 -1
  435. data/lib/chef/resource/chocolatey_feature.rb +1 -1
  436. data/lib/chef/resource/chocolatey_installer.rb +5 -20
  437. data/lib/chef/resource/chocolatey_package.rb +1 -1
  438. data/lib/chef/resource/chocolatey_source.rb +1 -1
  439. data/lib/chef/resource/conditional.rb +1 -1
  440. data/lib/chef/resource/cookbook_file.rb +3 -2
  441. data/lib/chef/resource/cron/_cron_shared.rb +1 -3
  442. data/lib/chef/resource/cron/cron.rb +2 -1
  443. data/lib/chef/resource/cron/cron_d.rb +3 -2
  444. data/lib/chef/resource/cron_access.rb +3 -2
  445. data/lib/chef/resource/csh.rb +8 -7
  446. data/lib/chef/resource/directory.rb +8 -7
  447. data/lib/chef/resource/dmg_package.rb +1 -1
  448. data/lib/chef/resource/dnf_package.rb +2 -2
  449. data/lib/chef/resource/dpkg_package.rb +6 -3
  450. data/lib/chef/resource/dsc_resource.rb +1 -1
  451. data/lib/chef/resource/dsc_script.rb +1 -1
  452. data/lib/chef/resource/execute.rb +8 -1
  453. data/lib/chef/resource/file/verification/json.rb +1 -1
  454. data/lib/chef/resource/file/verification/systemd_unit.rb +5 -2
  455. data/lib/chef/resource/file/verification/yaml.rb +2 -2
  456. data/lib/chef/resource/file/verification.rb +4 -1
  457. data/lib/chef/resource/file.rb +3 -2
  458. data/lib/chef/resource/freebsd_package.rb +4 -3
  459. data/lib/chef/resource/gem_package.rb +1 -1
  460. data/lib/chef/resource/group.rb +7 -4
  461. data/lib/chef/resource/habitat/_habitat_shared.rb +1 -1
  462. data/lib/chef/resource/habitat/habitat_package.rb +4 -2
  463. data/lib/chef/resource/habitat/habitat_sup.rb +17 -18
  464. data/lib/chef/resource/habitat/habitat_sup_systemd.rb +4 -3
  465. data/lib/chef/resource/habitat/habitat_sup_windows.rb +2 -1
  466. data/lib/chef/resource/habitat_config.rb +25 -11
  467. data/lib/chef/resource/habitat_install.rb +5 -5
  468. data/lib/chef/resource/habitat_service.rb +9 -5
  469. data/lib/chef/resource/habitat_user_toml.rb +2 -2
  470. data/lib/chef/resource/helpers/cron_validations.rb +3 -3
  471. data/lib/chef/resource/helpers/path_helpers.rb +52 -0
  472. data/lib/chef/resource/homebrew_cask.rb +2 -2
  473. data/lib/chef/resource/homebrew_package.rb +1 -1
  474. data/lib/chef/resource/homebrew_tap.rb +11 -3
  475. data/lib/chef/resource/homebrew_update.rb +1 -1
  476. data/lib/chef/resource/hostname.rb +16 -13
  477. data/lib/chef/resource/http_request.rb +3 -2
  478. data/lib/chef/resource/ifconfig.rb +2 -1
  479. data/lib/chef/resource/inspec_input.rb +5 -2
  480. data/lib/chef/resource/inspec_waiver.rb +3 -2
  481. data/lib/chef/resource/inspec_waiver_file_entry.rb +3 -2
  482. data/lib/chef/resource/ips_package.rb +4 -3
  483. data/lib/chef/resource/kernel_module.rb +4 -3
  484. data/lib/chef/resource/ksh.rb +8 -7
  485. data/lib/chef/resource/launchd.rb +1 -1
  486. data/lib/chef/resource/link.rb +12 -11
  487. data/lib/chef/resource/locale.rb +5 -4
  488. data/lib/chef/resource/log.rb +7 -5
  489. data/lib/chef/resource/lwrp_base.rb +1 -1
  490. data/lib/chef/resource/macos_pkg.rb +1 -1
  491. data/lib/chef/resource/macos_userdefaults.rb +1 -1
  492. data/lib/chef/resource/macports_package.rb +1 -1
  493. data/lib/chef/resource/mdadm.rb +3 -3
  494. data/lib/chef/resource/mount.rb +4 -2
  495. data/lib/chef/resource/msu_package.rb +1 -1
  496. data/lib/chef/resource/notify_group.rb +3 -2
  497. data/lib/chef/resource/ohai.rb +5 -4
  498. data/lib/chef/resource/ohai_hint.rb +3 -2
  499. data/lib/chef/resource/openbsd_package.rb +4 -3
  500. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  501. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  502. data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
  503. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  504. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
  505. data/lib/chef/resource/openssl_x509_certificate.rb +6 -2
  506. data/lib/chef/resource/openssl_x509_crl.rb +1 -1
  507. data/lib/chef/resource/openssl_x509_request.rb +1 -1
  508. data/lib/chef/resource/package.rb +10 -9
  509. data/lib/chef/resource/pacman_package.rb +2 -1
  510. data/lib/chef/resource/paludis_package.rb +3 -2
  511. data/lib/chef/resource/perl.rb +8 -7
  512. data/lib/chef/resource/plist.rb +2 -2
  513. data/lib/chef/resource/portage_package.rb +3 -2
  514. data/lib/chef/resource/powershell_package.rb +1 -1
  515. data/lib/chef/resource/powershell_script.rb +1 -1
  516. data/lib/chef/resource/python.rb +7 -6
  517. data/lib/chef/resource/reboot.rb +8 -7
  518. data/lib/chef/resource/registry_key.rb +1 -6
  519. data/lib/chef/resource/remote_directory.rb +3 -2
  520. data/lib/chef/resource/remote_file.rb +4 -3
  521. data/lib/chef/resource/resource_notification.rb +5 -5
  522. data/lib/chef/resource/rhsm_errata.rb +3 -2
  523. data/lib/chef/resource/rhsm_errata_level.rb +4 -3
  524. data/lib/chef/resource/rhsm_register.rb +12 -3
  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 +6 -5
  533. data/lib/chef/resource/scm/subversion.rb +3 -2
  534. data/lib/chef/resource/script.rb +7 -5
  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 +2 -1
  539. data/lib/chef/resource/selinux_fcontext.rb +4 -3
  540. data/lib/chef/resource/selinux_install.rb +2 -1
  541. data/lib/chef/resource/selinux_login.rb +2 -1
  542. data/lib/chef/resource/selinux_module.rb +6 -5
  543. data/lib/chef/resource/selinux_permissive.rb +3 -2
  544. data/lib/chef/resource/selinux_port.rb +3 -2
  545. data/lib/chef/resource/selinux_state.rb +3 -2
  546. data/lib/chef/resource/selinux_user.rb +2 -1
  547. data/lib/chef/resource/service.rb +4 -1
  548. data/lib/chef/resource/smartos_package.rb +4 -3
  549. data/lib/chef/resource/snap_package.rb +16 -7
  550. data/lib/chef/resource/solaris_package.rb +3 -2
  551. data/lib/chef/resource/ssh_known_hosts_entry.rb +3 -2
  552. data/lib/chef/resource/sudo.rb +11 -10
  553. data/lib/chef/resource/swap_file.rb +8 -7
  554. data/lib/chef/resource/sysctl.rb +7 -6
  555. data/lib/chef/resource/systemd_unit.rb +4 -1
  556. data/lib/chef/resource/template.rb +3 -2
  557. data/lib/chef/resource/timezone.rb +7 -6
  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 +2 -1
  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 +2 -1
  565. data/lib/chef/resource/user_ulimit.rb +3 -2
  566. data/lib/chef/resource/windows_ad_join.rb +2 -2
  567. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  568. data/lib/chef/resource/windows_auto_run.rb +2 -2
  569. data/lib/chef/resource/windows_certificate.rb +1 -1
  570. data/lib/chef/resource/windows_defender.rb +1 -1
  571. data/lib/chef/resource/windows_defender_exclusion.rb +1 -1
  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_feature.rb +1 -1
  578. data/lib/chef/resource/windows_feature_dism.rb +1 -1
  579. data/lib/chef/resource/windows_feature_powershell.rb +1 -1
  580. data/lib/chef/resource/windows_firewall_profile.rb +1 -1
  581. data/lib/chef/resource/windows_firewall_rule.rb +1 -1
  582. data/lib/chef/resource/windows_font.rb +2 -2
  583. data/lib/chef/resource/windows_package.rb +2 -2
  584. data/lib/chef/resource/windows_pagefile.rb +3 -3
  585. data/lib/chef/resource/windows_path.rb +1 -1
  586. data/lib/chef/resource/windows_printer.rb +1 -1
  587. data/lib/chef/resource/windows_printer_port.rb +1 -1
  588. data/lib/chef/resource/windows_script.rb +1 -1
  589. data/lib/chef/resource/windows_security_policy.rb +1 -1
  590. data/lib/chef/resource/windows_service.rb +2 -2
  591. data/lib/chef/resource/windows_share.rb +4 -4
  592. data/lib/chef/resource/windows_shortcut.rb +1 -1
  593. data/lib/chef/resource/windows_task.rb +3 -5
  594. data/lib/chef/resource/windows_uac.rb +1 -1
  595. data/lib/chef/resource/windows_update_settings.rb +3 -3
  596. data/lib/chef/resource/windows_user_privilege.rb +3 -3
  597. data/lib/chef/resource/windows_workgroup.rb +1 -1
  598. data/lib/chef/resource/yum_package.rb +5 -4
  599. data/lib/chef/resource/yum_repository.rb +3 -2
  600. data/lib/chef/resource/zypper_package.rb +3 -2
  601. data/lib/chef/resource/zypper_repository.rb +4 -3
  602. data/lib/chef/resource.rb +12 -4
  603. data/lib/chef/resource_builder.rb +1 -1
  604. data/lib/chef/resource_collection/resource_collection_serialization.rb +1 -1
  605. data/lib/chef/resource_collection/resource_list.rb +1 -1
  606. data/lib/chef/resource_collection/resource_set.rb +12 -7
  607. data/lib/chef/resource_collection.rb +1 -1
  608. data/lib/chef/resource_definition.rb +1 -1
  609. data/lib/chef/resource_definition_list.rb +1 -1
  610. data/lib/chef/resource_inspector.rb +4 -3
  611. data/lib/chef/resource_reporter.rb +2 -1
  612. data/lib/chef/resource_resolver.rb +1 -1
  613. data/lib/chef/resources.rb +2 -2
  614. data/lib/chef/role.rb +1 -1
  615. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  616. data/lib/chef/run_context.rb +2 -2
  617. data/lib/chef/run_list/run_list_expansion.rb +1 -1
  618. data/lib/chef/run_list/run_list_item.rb +5 -5
  619. data/lib/chef/run_list/versioned_recipe_list.rb +1 -1
  620. data/lib/chef/run_list.rb +1 -1
  621. data/lib/chef/run_lock.rb +4 -1
  622. data/lib/chef/run_status.rb +1 -1
  623. data/lib/chef/runner.rb +2 -2
  624. data/lib/chef/scan_access_control.rb +9 -7
  625. data/lib/chef/search/query.rb +1 -1
  626. data/lib/chef/secret_fetcher/akeyless_vault.rb +1 -2
  627. data/lib/chef/secret_fetcher/aws_secrets_manager.rb +1 -1
  628. data/lib/chef/secret_fetcher/base.rb +1 -1
  629. data/lib/chef/secret_fetcher/example.rb +1 -1
  630. data/lib/chef/secret_fetcher/hashi_vault.rb +10 -2
  631. data/lib/chef/secret_fetcher.rb +1 -1
  632. data/lib/chef/server_api.rb +1 -1
  633. data/lib/chef/server_api_versions.rb +1 -1
  634. data/lib/chef/shell/model_wrapper.rb +1 -1
  635. data/lib/chef/shell/shell_session.rb +1 -1
  636. data/lib/chef/shell.rb +30 -8
  637. data/lib/chef/target_io/dir.rb +12 -0
  638. data/lib/chef/target_io/etc.rb +16 -0
  639. data/lib/chef/target_io/file.rb +12 -0
  640. data/lib/chef/target_io/fileutils.rb +12 -0
  641. data/lib/chef/target_io/http.rb +35 -0
  642. data/lib/chef/target_io/io.rb +12 -0
  643. data/lib/chef/target_io/shadow.rb +44 -0
  644. data/lib/chef/target_io/support.rb +73 -0
  645. data/lib/chef/target_io/train/dir.rb +86 -0
  646. data/lib/chef/target_io/train/etc.rb +108 -0
  647. data/lib/chef/target_io/train/file.rb +219 -0
  648. data/lib/chef/target_io/train/fileutils.rb +201 -0
  649. data/lib/chef/target_io/train/http.rb +117 -0
  650. data/lib/chef/target_io/train/io.rb +13 -0
  651. data/lib/chef/target_io/train/shadow.rb +54 -0
  652. data/lib/chef/target_io/train_compat.rb +7 -0
  653. data/lib/chef/target_io.rb +11 -0
  654. data/lib/chef/train_transport.rb +1 -1
  655. data/lib/chef/user.rb +1 -1
  656. data/lib/chef/user_v1.rb +1 -1
  657. data/lib/chef/util/backup.rb +2 -2
  658. data/lib/chef/util/diff.rb +15 -2
  659. data/lib/chef/util/dsc/configuration_generator.rb +1 -1
  660. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  661. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  662. data/lib/chef/util/dsc/resource_store.rb +1 -1
  663. data/lib/chef/util/editor.rb +1 -1
  664. data/lib/chef/util/file_edit.rb +5 -5
  665. data/lib/chef/util/path_helper.rb +1 -1
  666. data/lib/chef/util/powershell/ps_credential.rb +1 -1
  667. data/lib/chef/util/selinux.rb +1 -1
  668. data/lib/chef/util/threaded_job_queue.rb +1 -1
  669. data/lib/chef/util/windows/logon_session.rb +1 -1
  670. data/lib/chef/version.rb +2 -2
  671. data/lib/chef/version_class.rb +1 -1
  672. data/lib/chef/version_constraint.rb +2 -2
  673. data/lib/chef/win32/api/command_line_helper.rb +1 -1
  674. data/lib/chef/win32/api/crypto.rb +1 -1
  675. data/lib/chef/win32/api/error.rb +1 -1
  676. data/lib/chef/win32/api/file.rb +3 -2
  677. data/lib/chef/win32/api/installer.rb +1 -1
  678. data/lib/chef/win32/api/memory.rb +1 -1
  679. data/lib/chef/win32/api/net.rb +1 -1
  680. data/lib/chef/win32/api/process.rb +1 -1
  681. data/lib/chef/win32/api/psapi.rb +1 -1
  682. data/lib/chef/win32/api/registry.rb +1 -1
  683. data/lib/chef/win32/api/security.rb +1 -1
  684. data/lib/chef/win32/api/synchronization.rb +1 -1
  685. data/lib/chef/win32/api/system.rb +1 -1
  686. data/lib/chef/win32/api/unicode.rb +1 -1
  687. data/lib/chef/win32/api.rb +1 -1
  688. data/lib/chef/win32/crypto.rb +1 -1
  689. data/lib/chef/win32/error.rb +3 -2
  690. data/lib/chef/win32/eventlog.rb +1 -1
  691. data/lib/chef/win32/file/info.rb +1 -1
  692. data/lib/chef/win32/file/version_info.rb +2 -2
  693. data/lib/chef/win32/file.rb +1 -1
  694. data/lib/chef/win32/handle.rb +1 -1
  695. data/lib/chef/win32/memory.rb +1 -1
  696. data/lib/chef/win32/mutex.rb +1 -1
  697. data/lib/chef/win32/net.rb +1 -1
  698. data/lib/chef/win32/process.rb +1 -1
  699. data/lib/chef/win32/registry.rb +4 -2
  700. data/lib/chef/win32/security/ace.rb +1 -1
  701. data/lib/chef/win32/security/acl.rb +1 -1
  702. data/lib/chef/win32/security/securable_object.rb +1 -1
  703. data/lib/chef/win32/security/security_descriptor.rb +1 -1
  704. data/lib/chef/win32/security/sid.rb +1 -1
  705. data/lib/chef/win32/security/token.rb +1 -1
  706. data/lib/chef/win32/security.rb +1 -1
  707. data/lib/chef/win32/system.rb +1 -1
  708. data/lib/chef/win32/unicode.rb +1 -1
  709. data/lib/chef/win32/version.rb +2 -3
  710. data/lib/chef/workstation_config_loader.rb +1 -1
  711. data/lib/chef.rb +3 -1
  712. metadata +125 -84
  713. data/lib/chef/resource/osx_profile.rb +0 -334
@@ -2,7 +2,7 @@
2
2
  # Author:: Michael Leinartas (<mleinartas@gmail.com>)
3
3
  # Author:: Tyler Cloke (<tyler@chef.io>)
4
4
  # Copyright:: Copyright 2010-2016, Michael Leinartas
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");
@@ -26,7 +26,8 @@ class Chef
26
26
  class Resource
27
27
  class Ohai < Chef::Resource
28
28
 
29
- provides :ohai
29
+ provides :ohai, target_mode: true
30
+ target_mode support: :full
30
31
 
31
32
  description "Use the **ohai** resource to reload the Ohai configuration on a node. This allows recipes that change system attributes (like a recipe that adds a user) to refer to those attributes later on during the #{ChefUtils::Dist::Infra::PRODUCT} run."
32
33
 
@@ -88,9 +89,8 @@ class Chef
88
89
  # This ensures that cookbook-provided Ohai plugins are available
89
90
  # when the resource reloads Ohai data
90
91
  ohai_plugin_path = Chef::Config[:ohai_segment_plugin_path]
91
- if ohai_plugin_path && Dir.exist?(ohai_plugin_path) && !Dir.empty?(ohai_plugin_path)
92
+ if ohai_plugin_path && Dir.exist?(ohai_plugin_path) && !Dir.empty?(ohai_plugin_path) && ohai.config[:plugin_path]
92
93
  # Configure Ohai to load plugins from the cookbook segment path
93
- ohai.config[:plugin_path] ||= ::Ohai.config[:plugin_path]
94
94
  ohai.config[:plugin_path] << ohai_plugin_path
95
95
  logger.trace("Added cookbook plugin path to ohai: #{ohai_plugin_path}")
96
96
  end
@@ -101,6 +101,7 @@ class Chef
101
101
  # the path are picked up by ohai.
102
102
  ohai.all_plugins new_resource.plugin
103
103
  node.automatic_attrs.merge! ohai.data
104
+ node.fix_automatic_attributes
104
105
  logger.info("#{new_resource} reloaded")
105
106
  end
106
107
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,8 @@ class Chef
21
21
  class Resource
22
22
  class OhaiHint < Chef::Resource
23
23
 
24
- provides(:ohai_hint) { true }
24
+ provides(:ohai_hint, target_mode: true) { true }
25
+ target_mode support: :full
25
26
 
26
27
  description "Use the **ohai_hint** resource to aid in configuration detection by passing hint data to Ohai."
27
28
  introduced "14.0"
@@ -2,7 +2,7 @@
2
2
  # Authors:: AJ Christensen (<aj@chef.io>)
3
3
  # Richard Manyanza (<liseki@nyikacraftsmen.com>)
4
4
  # Scott Bonds (<scott@ggr.com>)
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
  # Copyright:: Copyright 2014-2016, Richard Manyanza, Scott Bonds
7
7
  # License:: Apache License, Version 2.0
8
8
  #
@@ -25,8 +25,9 @@ require_relative "../provider/package/openbsd"
25
25
  class Chef
26
26
  class Resource
27
27
  class OpenbsdPackage < Chef::Resource::Package
28
- provides :openbsd_package
29
- provides :package, os: "openbsd"
28
+ provides :openbsd_package, target_mode: true
29
+ provides :package, os: "openbsd", target_mode: true
30
+ target_mode support: :full
30
31
 
31
32
  description "Use the **openbsd_package** resource to manage packages for the OpenBSD platform."
32
33
  introduced "12.1"
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # Author:: Julien Huon
4
4
  # License:: Apache License, Version 2.0
5
5
  #
@@ -89,7 +89,7 @@ class Chef
89
89
  action :create, description: "Generate the EC private key file." do
90
90
  unless new_resource.force || priv_key_file_valid?(new_resource.path, new_resource.key_pass)
91
91
  converge_by("Create an EC private key #{new_resource.path}") do
92
- log "Generating an #{new_resource.key_curve} "\
92
+ log "Generating an #{new_resource.key_curve} " \
93
93
  "EC key file at #{new_resource.path}, this may take some time"
94
94
 
95
95
  if new_resource.key_pass
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # Author:: Julien Huon
4
4
  # License:: Apache License, Version 2.0
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # License:: Apache License, Version 2.0
3
3
  # Author:: Julien Huon
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
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -212,13 +212,17 @@ class Chef
212
212
  end
213
213
 
214
214
  def subject
215
+ if new_resource.common_name.nil? && new_resource.subject_alt_name.empty?
216
+ Chef.deprecated(:common_name_and_subject_alt_name_empty, "According to RFC5280 subsection 4.1.2.6, certificates must have one of a common_name or a subject_alt_name entry. Neither common_name nor subject_alt_name specified, one is required.")
217
+ end
218
+
215
219
  OpenSSL::X509::Name.new.tap do |csr_subject|
216
220
  csr_subject.add_entry("C", new_resource.country) unless new_resource.country.nil?
217
221
  csr_subject.add_entry("ST", new_resource.state) unless new_resource.state.nil?
218
222
  csr_subject.add_entry("L", new_resource.city) unless new_resource.city.nil?
219
223
  csr_subject.add_entry("O", new_resource.org) unless new_resource.org.nil?
220
224
  csr_subject.add_entry("OU", new_resource.org_unit) unless new_resource.org_unit.nil?
221
- csr_subject.add_entry("CN", new_resource.common_name)
225
+ csr_subject.add_entry("CN", new_resource.common_name) unless new_resource.common_name.nil?
222
226
  csr_subject.add_entry("emailAddress", new_resource.email) unless new_resource.email.nil?
223
227
  end
224
228
  end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # License:: Apache License, Version 2.0
3
3
  # Author:: Julien Huon
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
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # License:: Apache License, Version 2.0
3
3
  # Author:: Julien Huon
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
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
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");
@@ -22,14 +22,15 @@ require_relative "../resource"
22
22
  class Chef
23
23
  class Resource
24
24
  class Package < Chef::Resource
25
- provides :package
25
+ provides :package, target_mode: true
26
+ target_mode support: :full
26
27
 
27
- description "Use the **package** resource to manage packages. When the package is"\
28
- " installed from a local file (such as with RubyGems, dpkg, or RPM"\
29
- " Package Manager), the file must be added to the node using the remote_file"\
30
- " or cookbook_file resources.\n\nThis resource is the base resource for"\
31
- " several other resources used for package management on specific platforms."\
32
- " While it is possible to use each of these specific resources, it is"\
28
+ description "Use the **package** resource to manage packages. When the package is" \
29
+ " installed from a local file (such as with RubyGems, dpkg, or RPM" \
30
+ " Package Manager), the file must be added to the node using the remote_file" \
31
+ " or cookbook_file resources.\n\nThis resource is the base resource for" \
32
+ " several other resources used for package management on specific platforms." \
33
+ " While it is possible to use each of these specific resources, it is" \
33
34
  " recommended to use the package resource as often as possible."
34
35
 
35
36
  default_action :install
@@ -61,7 +62,7 @@ class Chef
61
62
  desired_state: false
62
63
 
63
64
  property :environment, Hash,
64
- introduced: "18.8",
65
+ introduced: "19.0",
65
66
  description: "A Hash of environment variables in the form of {'ENV_VARIABLE' => 'VALUE'} to be set before running the command.",
66
67
  desired_state: false
67
68
 
@@ -22,7 +22,8 @@ class Chef
22
22
  class Resource
23
23
  class PacmanPackage < Chef::Resource::Package
24
24
 
25
- provides :pacman_package
25
+ provides :pacman_package, target_mode: true
26
+ target_mode support: :full
26
27
 
27
28
  allowed_actions :install, :upgrade, :remove, :purge
28
29
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Vasiliy Tolstov (<v.tolstov@selfip.ru>)
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");
@@ -23,7 +23,8 @@ class Chef
23
23
  class Resource
24
24
  class PaludisPackage < Chef::Resource::Package
25
25
 
26
- provides :paludis_package
26
+ provides :paludis_package, target_mode: true
27
+ target_mode support: :full
27
28
 
28
29
  description "Use the **paludis_package** resource to manage packages for the Paludis platform."
29
30
  introduced "12.1"
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
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,18 +22,19 @@ class Chef
22
22
  class Resource
23
23
  class Perl < Chef::Resource::Script
24
24
 
25
- provides :perl
25
+ provides :perl, target_mode: true
26
+ target_mode support: :full
26
27
 
27
28
  def initialize(name, run_context = nil)
28
29
  super
29
30
  @interpreter = "perl"
30
31
  end
31
32
 
32
- description "Use the **perl** resource to execute scripts using the Perl interpreter."\
33
- " This resource may also use any of the actions and properties that are"\
34
- " available to the **execute** resource. Commands that are executed with this"\
35
- " resource are (by their nature) not idempotent, as they are typically"\
36
- " unique to the environment in which they are run. Use `not_if` and `only_if`"\
33
+ description "Use the **perl** resource to execute scripts using the Perl interpreter." \
34
+ " This resource may also use any of the actions and properties that are" \
35
+ " available to the **execute** resource. Commands that are executed with this" \
36
+ " resource are (by their nature) not idempotent, as they are typically" \
37
+ " unique to the environment in which they are run. Use `not_if` and `only_if`" \
37
38
  " to guard this resource for idempotence."
38
39
  end
39
40
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Copyright:: Copyright 2017-2020, Microsoft Corporation
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");
@@ -206,7 +206,7 @@ class Chef
206
206
  end
207
207
  entry_with_arg = ["\"#{entry}\"", arg].join(sep).strip
208
208
  subcommand = "#{subcommand.capitalize} :#{entry_with_arg}"
209
- [PLISTBUDDY_EXECUTABLE, "-c", "\'#{subcommand}\'", "\"#{path}\""].join(" ")
209
+ [PLISTBUDDY_EXECUTABLE, "-c", "'#{subcommand}'", "\"#{path}\""].join(" ")
210
210
  end
211
211
 
212
212
  def setting_from_plist(entry, path)
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
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,7 +22,8 @@ class Chef
22
22
  class Resource
23
23
  class PortagePackage < Chef::Resource::Package
24
24
 
25
- provides :portage_package
25
+ provides :portage_package, target_mode: true
26
+ target_mode support: :full
26
27
 
27
28
  description "Use the **portage_package** resource to manage packages for the Gentoo platform."
28
29
 
@@ -1,5 +1,5 @@
1
1
  # Author:: Dheeraj Dubey(dheeraj.dubey@msystechnologies.com)
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Edwards (<adamed@chef.io>)
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");
@@ -1,5 +1,5 @@
1
1
  # Author:: Adam Jacob (<adam@chef.io>)
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,17 +21,18 @@ class Chef
21
21
  class Resource
22
22
  class Python < Chef::Resource::Script
23
23
 
24
- provides :python
24
+ provides :python, target_mode: true
25
+ target_mode support: :full
25
26
 
26
27
  def initialize(name, run_context = nil)
27
28
  super
28
29
  @interpreter = "python"
29
30
  end
30
31
 
31
- description "Use the **python** resource to execute scripts using the Python interpreter."\
32
- " This resource may also use any of the actions and properties that are available"\
33
- " to the **execute** resource. Commands that are executed with this resource are (by"\
34
- " their nature) not idempotent, as they are typically unique to the environment in"\
32
+ description "Use the **python** resource to execute scripts using the Python interpreter." \
33
+ " This resource may also use any of the actions and properties that are available" \
34
+ " to the **execute** resource. Commands that are executed with this resource are (by" \
35
+ " their nature) not idempotent, as they are typically unique to the environment in" \
35
36
  " which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
36
37
  end
37
38
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Chris Doherty <cdoherty@chef.io>)
3
- # Copyright:: Copyright 2014-2019, Chef, Inc.
3
+ # 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");
@@ -23,13 +23,14 @@ class Chef
23
23
  class Resource
24
24
  class Reboot < Chef::Resource
25
25
 
26
- provides :reboot
26
+ provides :reboot, target_mode: true
27
+ target_mode support: :full
27
28
 
28
- description "Use the **reboot** resource to reboot a node, a necessary step with some"\
29
- " installations on certain platforms. This resource is supported for use on"\
30
- " the Microsoft Windows, macOS, and Linux platforms.\n"\
31
- "In using this resource via notifications, it's important to *only* use"\
32
- " immediate notifications. Delayed notifications produce unintuitive and"\
29
+ description "Use the **reboot** resource to reboot a node, a necessary step with some" \
30
+ " installations on certain platforms. This resource is supported for use on" \
31
+ " the Microsoft Windows, macOS, and Linux platforms.\n" \
32
+ "In using this resource via notifications, it's important to *only* use" \
33
+ " immediate notifications. Delayed notifications produce unintuitive and" \
33
34
  " probably undesired results."
34
35
  introduced "12.0"
35
36
  examples <<~DOC
@@ -1,7 +1,7 @@
1
1
  # Author:: Prajakta Purohit (<prajakta@chef.io>)
2
2
  # Author:: Lamont Granquist (<lamont@chef.io>)
3
3
  #
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
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -151,11 +151,6 @@ class Chef
151
151
  }
152
152
  property :recursive, [TrueClass, FalseClass], default: false
153
153
  property :architecture, Symbol, default: :machine, equal_to: %i{machine x86_64 i386}
154
- property :only_record_changes, [TrueClass, FalseClass],
155
- default: true,
156
- introduced: "18.7.3",
157
- description: "(no-op) disabled functionality to only record registry value changes",
158
- deprecated: true
159
154
 
160
155
  # Some registry key data types may not be safely reported as json.
161
156
  # Example (CHEF-5323):
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
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");
@@ -26,7 +26,8 @@ class Chef
26
26
  class RemoteDirectory < Chef::Resource::Directory
27
27
  include Chef::Mixin::Securable
28
28
 
29
- provides :remote_directory
29
+ provides :remote_directory, target_mode: true
30
+ target_mode support: :full
30
31
 
31
32
  description "Use the **remote_directory** resource to incrementally transfer a directory from a cookbook to a node. The directory that is copied from the cookbook should be located under `COOKBOOK_NAME/files/default/REMOTE_DIRECTORY`. The `remote_directory` resource will obey file specificity."
32
33
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Author:: Seth Chisamore (<schisamo@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,7 +29,8 @@ class Chef
29
29
  class RemoteFile < Chef::Resource::File
30
30
  include Chef::Mixin::Securable
31
31
 
32
- provides :remote_file
32
+ provides :remote_file, target_mode: true
33
+ target_mode support: :full
33
34
 
34
35
  description "Use the **remote_file** resource to transfer a file from a remote location using file specificity. This resource is similar to the **file** resource. Note: Fetching files from the `files/` directory in a cookbook should be done with the **cookbook_file** resource."
35
36
 
@@ -135,7 +136,7 @@ class Chef
135
136
  def parse_source_args(args)
136
137
  if args.empty?
137
138
  nil
138
- elsif args[0].is_a?(Chef::DelayedEvaluator) && args.count == 1
139
+ elsif args[0].is_a?(Chef::DelayedEvaluator) && args.one?
139
140
  args[0]
140
141
  elsif args.any?(Chef::DelayedEvaluator) && args.count > 1
141
142
  raise Exceptions::InvalidRemoteFileURI, "Only 1 source argument allowed when using a lazy evaluator"
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Tyler Ball (<tball@chef.io>)
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");
@@ -41,7 +41,7 @@ class Chef
41
41
  # @return [Boolean] does the resource match
42
42
  def duplicates?(other_notification)
43
43
  unless other_notification.respond_to?(:resource) && other_notification.respond_to?(:action)
44
- msg = "only duck-types of Chef::Resource::Notification can be checked for duplication "\
44
+ msg = "only duck-types of Chef::Resource::Notification can be checked for duplication " \
45
45
  "you gave #{other_notification.inspect}"
46
46
  raise ArgumentError, msg
47
47
  end
@@ -73,7 +73,7 @@ class Chef
73
73
  def fix_resource_reference(resource_collection, always_raise = false)
74
74
  matching_resource = resource_collection.find(resource)
75
75
  if Array(matching_resource).size > 1
76
- msg = "Notification #{self} from #{notifying_resource} was created with a reference to multiple resources, "\
76
+ msg = "Notification #{self} from #{notifying_resource} was created with a reference to multiple resources, " \
77
77
  "but can only notify one resource. Notifying resource was defined on #{notifying_resource.source_line}"
78
78
  raise Chef::Exceptions::InvalidResourceReference, msg
79
79
  end
@@ -108,8 +108,8 @@ class Chef
108
108
  def fix_notifier_reference(resource_collection)
109
109
  matching_notifier = resource_collection.find(notifying_resource)
110
110
  if Array(matching_notifier).size > 1
111
- msg = "Notification #{self} from #{notifying_resource} was created with a reference to multiple notifying "\
112
- "resources, but can only originate from one resource. Destination resource was defined "\
111
+ msg = "Notification #{self} from #{notifying_resource} was created with a reference to multiple notifying " \
112
+ "resources, but can only originate from one resource. Destination resource was defined " \
113
113
  "on #{resource.source_line}"
114
114
  raise Chef::Exceptions::InvalidResourceReference, msg
115
115
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,8 @@ require_relative "../resource"
20
20
  class Chef
21
21
  class Resource
22
22
  class RhsmErrata < Chef::Resource
23
- provides(:rhsm_errata) { true }
23
+ provides(:rhsm_errata, target_mode: true) { true }
24
+ target_mode support: :full
24
25
 
25
26
  description "Use the **rhsm_errata** resource to install packages associated with a given Red Hat Subscription Manager Errata ID. This is helpful if packages to mitigate a single vulnerability must be installed on your hosts."
26
27
  introduced "14.0"
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,8 @@ require_relative "../resource"
20
20
  class Chef
21
21
  class Resource
22
22
  class RhsmErrataLevel < Chef::Resource
23
- provides(:rhsm_errata_level) { true }
23
+ provides(:rhsm_errata_level, target_mode: true) { true }
24
+ target_mode support: :full
24
25
 
25
26
  description "Use the **rhsm_errata_level** resource to install all packages of a specified errata level from the Red Hat Subscription Manager. For example, you can ensure that all packages associated with errata marked at a 'Critical' security level are installed."
26
27
  introduced "14.0"
@@ -35,7 +36,7 @@ class Chef
35
36
  DOC
36
37
 
37
38
  property :errata_level, String,
38
- coerce: proc { |x| x.downcase },
39
+ coerce: proc(&:downcase),
39
40
  equal_to: %w{critical moderate important low},
40
41
  description: "An optional property for specifying the errata level of packages to install if it differs from the resource block's name.",
41
42
  name_property: true
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,8 @@ require "shellwords" unless defined?(Shellwords)
22
22
  class Chef
23
23
  class Resource
24
24
  class RhsmRegister < Chef::Resource
25
- provides(:rhsm_register) { true }
25
+ provides(:rhsm_register, target_mode: true) { true }
26
+ target_mode support: :full
26
27
 
27
28
  description "Use the **rhsm_register** resource to register a node with the Red Hat Subscription Manager or a local Red Hat Satellite server."
28
29
  introduced "14.0"
@@ -95,6 +96,13 @@ class Chef
95
96
  description: "Sets the operating system minor release to use for subscriptions for the system. Products and updates are limited to the specified minor release version. This is used with the `auto_attach` or `activation_key` options. For example, `release '6.4'` will append `--release=6.4` to the register command.",
96
97
  introduced: "17.8"
97
98
 
99
+ property :not_registered_strings,
100
+ [String, Array],
101
+ coerce: proc { |x| Array(x) },
102
+ description: "The string value(s) that when present in the output of the `subscription-manager status` command indicate that the system is not registered.",
103
+ default: ["Overall Status: Unknown", "Overall Status: Not registered"], desired_state: false,
104
+ introduced: "18.9"
105
+
98
106
  action :register, description: "Register the node with RHSM." do
99
107
  package "subscription-manager"
100
108
 
@@ -175,7 +183,8 @@ class Chef
175
183
  # @return [Boolean] is the node registered with RHSM
176
184
  #
177
185
  def registered_with_rhsm?
178
- @registered ||= !shell_out("subscription-manager status").stdout.include?("Overall Status: Unknown")
186
+ out = shell_out("subscription-manager status").stdout
187
+ @registered ||= !new_resource.not_registered_strings.any? { |s| out.include?(s) }
179
188
  end
180
189
 
181
190
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) Chef Software Inc.
2
+ # Copyright:: Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,8 @@ class Chef
21
21
  class Resource
22
22
  class RhsmRepo < Chef::Resource
23
23
 
24
- provides(:rhsm_repo) { true }
24
+ provides(:rhsm_repo, target_mode: true) { true }
25
+ target_mode support: :full
25
26
 
26
27
  description "Use the **rhsm_repo** resource to enable or disable Red Hat Subscription Manager repositories that are made available via attached subscriptions."
27
28
  introduced "14.0"
@@ -65,9 +66,8 @@ class Chef
65
66
 
66
67
  action_class do
67
68
  def repo_enabled?(repo)
68
- # FIXME: use shell_out()
69
- cmd = Mixlib::ShellOut.new("subscription-manager repos --list-enabled", env: { LANG: "en_US" })
70
- cmd.run_command
69
+ # FIXME: Add `env` support
70
+ cmd = shell_out("subscription-manager repos --list-enabled", env: { LANG: "en_US" })
71
71
  repo == "*" || !cmd.stdout.match(/Repo ID:\s+#{repo}$/).nil?
72
72
  end
73
73
  end