chef 18.9.4-universal-mingw-ucrt → 19.1.164-universal-mingw-ucrt

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 (714) 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 +127 -87
  713. data/distro/powershell/chef/chef.psm1 +0 -459
  714. data/lib/chef/resource/osx_profile.rb +0 -334
@@ -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");
@@ -73,7 +73,7 @@ class Chef
73
73
  desired_state: false
74
74
 
75
75
  property :environment, Hash,
76
- introduced: "18.8",
76
+ introduced: "19.0",
77
77
  description: "A Hash of environment variables in the form of {'ENV_VARIABLE' => 'VALUE'} to be set before running the command.",
78
78
  default: {}, desired_state: false
79
79
  end
@@ -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,10 @@ class Chef
22
22
  class Resource
23
23
  class DpkgPackage < Chef::Resource::Package
24
24
 
25
- provides :dpkg_package
25
+ provides :dpkg_package, target_mode: true
26
+ target_mode support: :full,
27
+ introduced: "19.0",
28
+ description: "Does not support the `response_file` property in Target Mode."
26
29
 
27
30
  description "Use the **dpkg_package** resource to manage packages for the dpkg platform. When a package is installed from a local file, it must be added to the node using the **remote_file** or **cookbook_file** resources."
28
31
 
@@ -43,7 +46,7 @@ class Chef
43
46
  desired_state: false
44
47
 
45
48
  property :environment, Hash,
46
- introduced: "18.8",
49
+ introduced: "19.0",
47
50
  description: "A Hash of environment variables in the form of {'ENV_VARIABLE' => 'VALUE'} to be set before running the command.",
48
51
  default: {}, desired_state: false
49
52
  end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Edwards (<adamed@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.
@@ -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,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");
@@ -25,6 +25,9 @@ class Chef
25
25
  class Execute < Chef::Resource
26
26
 
27
27
  provides :execute, target_mode: true
28
+ target_mode support: :full,
29
+ introduced: "15.1",
30
+ updated: "19.0"
28
31
 
29
32
  description "Use the **execute** resource to execute a single command. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use `not_if` and `only_if` to guard this resource for idempotence. Note: Use the **script** resource to execute a script using a specific interpreter (Ruby, Python, Perl, csh, or Bash)."
30
33
 
@@ -574,6 +577,10 @@ class Chef
574
577
  introduced: "17.0",
575
578
  description: "Use a login shell to run the commands instead of inheriting the existing execution environment."
576
579
 
580
+ property :cgroup, [String],
581
+ introduced: "19.0",
582
+ description: "Linux only: Run the command within a specific cgroup, creating it if it doesn't exist."
583
+
577
584
  alias :env :environment
578
585
 
579
586
  def self.set_guard_inherited_attributes(*inherited_attributes)
@@ -37,7 +37,7 @@ class Chef
37
37
  provides :json
38
38
 
39
39
  def verify(path, opts = {})
40
- Chef::JSONCompat.parse(IO.read(path))
40
+ Chef::JSONCompat.parse(TargetIO::IO.read(path))
41
41
  true
42
42
  rescue Chef::Exceptions::JSON::ParseError => e
43
43
  Chef::Log.error("Json syntax verify failed with : #{e.message}")
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Mal Graty (<mal.graty@googlemail.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");
@@ -47,9 +47,12 @@ class Chef
47
47
  def verify(path, opts = {})
48
48
  return true unless systemd_analyze_path
49
49
 
50
+ # Verification uses guards, which are not yet fully supported in TM
51
+ return true if Chef::Config.target_mode?
52
+
50
53
  Dir.mktmpdir("chef-systemd-unit") do |dir|
51
54
  temp = "#{dir}/#{::File.basename(@parent_resource.path)}"
52
- ::FileUtils.cp(path, temp)
55
+ ::TargetIO::FileUtils.cp(path, temp)
53
56
  verify_command(temp, opts)
54
57
  end
55
58
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Antony Thomas (<antonydeepak@gmail.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");
@@ -39,7 +39,7 @@ class Chef
39
39
  provides :yaml
40
40
 
41
41
  def verify(path, opts = {})
42
- Psych.parse_file(path)
42
+ Psych.parse(TargetIO::IO.read(path))
43
43
  true
44
44
  rescue Psych::SyntaxError => e
45
45
  Chef::Log.error("Yaml syntax verify failed with : #{e.message}")
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Steven Danna (<steve@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");
@@ -116,6 +116,9 @@ class Chef
116
116
  raise ArgumentError, "The %{file} expansion for verify commands has been removed. Please use %{path} instead."
117
117
  end
118
118
 
119
+ # Verification uses guards, which are not yet fully supported in TM
120
+ return true if Chef::Config.target_mode?
121
+
119
122
  command = @command % { path: path }
120
123
  interpreter = Chef::GuardInterpreter.for_resource(@parent_resource, command, @command_opts)
121
124
  ret = interpreter.evaluate
@@ -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 File < Chef::Resource
30
30
  include Chef::Mixin::Securable
31
31
 
32
- provides :file
32
+ provides :file, target_mode: true
33
+ target_mode support: :full
33
34
 
34
35
  description "Use the **file** resource to manage files directly on a node. Note: Use the **cookbook_file** resource to copy a file from a cookbook's `/files` directory. Use the **template** resource to create a file based on a template in a cookbook's `/templates` directory. And use the **remote_file** resource to transfer a file to a node from a remote location."
35
36
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Authors:: AJ Christensen (<aj@chef.io>)
3
3
  # Richard Manyanza (<liseki@nyikacraftsmen.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
  # Copyright:: Copyright 2014-2016, Richard Manyanza.
6
6
  # License:: Apache License, Version 2.0
7
7
  #
@@ -25,8 +25,9 @@ require_relative "../provider/package/freebsd/pkgng"
25
25
  class Chef
26
26
  class Resource
27
27
  class FreebsdPackage < Chef::Resource::Package
28
- provides :freebsd_package
29
- provides :package, platform: "freebsd"
28
+ provides :freebsd_package, target_mode: true
29
+ provides :package, platform: "freebsd", target_mode: true
30
+ target_mode support: :full
30
31
 
31
32
  description "Use the **freebsd_package** resource to manage packages for the FreeBSD platform."
32
33
 
@@ -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");
@@ -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,6 +22,9 @@ class Chef
22
22
  class Group < Chef::Resource
23
23
  state_attrs :members
24
24
 
25
+ target_mode support: :full,
26
+ platforms: %i{aix bsd linux macos_x solaris}
27
+
25
28
  description "Use the **group** resource to manage a local group."
26
29
 
27
30
  examples <<~EXAMPLES
@@ -48,7 +51,7 @@ class Chef
48
51
  ```
49
52
  EXAMPLES
50
53
 
51
- provides :group
54
+ provides :group, target_mode: true
52
55
 
53
56
  allowed_actions :create, :remove, :modify, :manage
54
57
  default_action :create
@@ -61,11 +64,11 @@ class Chef
61
64
  description: "The identifier for the group."
62
65
 
63
66
  property :members, [String, Array], default: [],
64
- coerce: proc { |arg| arg.is_a?(String) ? arg.split(/\s*,\s*/) : arg },
67
+ coerce: proc { |arg| arg.is_a?(Array) ? arg.uniq : arg.split(/\s*,\s*/) },
65
68
  description: "Which users should be set or appended to a group. When more than one group member is identified, the list of members should be an array: `members ['user1', 'user2']`."
66
69
 
67
70
  property :excluded_members, [String, Array], default: [],
68
- coerce: proc { |arg| arg.is_a?(String) ? arg.split(/\s*,\s*/) : arg },
71
+ coerce: proc { |arg| arg.is_a?(Array) ? arg.uniq : arg.split(/\s*,\s*/) },
69
72
  description: "Remove users from a group. May only be used when `append` is set to `true`."
70
73
 
71
74
  property :append, [ TrueClass, FalseClass ], default: false,
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Chef Software, Inc.
2
+ # 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:: Chef Software Inc.
2
+ # Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
3
  #
4
4
  # License:: Apache License, Version 2.0
5
5
  #
@@ -22,7 +22,9 @@ class Chef
22
22
  class Resource
23
23
  class HabitatPackage < Chef::Resource::Package
24
24
 
25
- provides :habitat_package
25
+ provides :habitat_package, target_mode: true
26
+ target_mode support: :full
27
+
26
28
  use "habitat_shared"
27
29
  description "Use the **habitat_package** to install or remove Chef Habitat packages from Habitat Builder."
28
30
  introduced "17.3"
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Chef Software, Inc.
2
+ # 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,9 +21,10 @@ class Chef
21
21
  class Resource
22
22
  class HabitatSup < Chef::Resource
23
23
 
24
- provides :habitat_sup do |_node|
24
+ provides(:habitat_sup, target_mode: true) do |_node|
25
25
  false
26
26
  end
27
+ target_mode support: :full
27
28
 
28
29
  description "Use the **habitat_sup** resource to runs a Chef Habitat supervisor for one or more Chef Habitat services. The resource is commonly used in conjunction with `habitat_service` which will manage the services loaded and started within the supervisor."
29
30
  introduced "17.3"
@@ -186,10 +187,10 @@ class Chef
186
187
  habitat_install new_resource.name do
187
188
  license new_resource.license
188
189
  hab_version new_resource.sup_version if new_resource.sup_version
189
- not_if { ::File.exist?("/bin/hab") }
190
- not_if { ::File.exist?("/usr/bin/hab") }
191
- not_if { ::File.exist?("c:/habitat/hab.exe") }
192
- not_if { ::File.exist?("c:/ProgramData/Habitat/hab.exe") }
190
+ not_if { ::TargetIO::File.exist?("/bin/hab") }
191
+ not_if { ::TargetIO::File.exist?("/usr/bin/hab") }
192
+ not_if { ::TargetIO::File.exist?("c:/habitat/hab.exe") }
193
+ not_if { ::TargetIO::File.exist?("c:/ProgramData/Habitat/hab.exe") }
193
194
  end
194
195
 
195
196
  habitat_package "core/hab-sup" do
@@ -205,7 +206,7 @@ class Chef
205
206
  if windows?
206
207
  directory "C:/hab/sup/default/config" do
207
208
  recursive true
208
- only_if { ::Dir.exist?("C:/hab") }
209
+ only_if { ::TargetIO::Dir.exist?("C:/hab") }
209
210
  only_if { use_toml_config }
210
211
  action :create
211
212
  end
@@ -235,14 +236,14 @@ class Chef
235
236
  keep_latest_packages: new_resource.keep_latest
236
237
  )
237
238
  only_if { use_toml_config }
238
- only_if { ::Dir.exist?("C:/hab/sup/default/config") }
239
+ only_if { ::TargetIO::Dir.exist?("C:/hab/sup/default/config") }
239
240
  end
240
241
  else
241
242
  directory "/hab/sup/default/config" do
242
243
  mode "0755"
243
244
  recursive true
244
245
  only_if { use_toml_config }
245
- only_if { ::Dir.exist?("/hab") }
246
+ only_if { ::TargetIO::Dir.exist?("/hab") }
246
247
  action :create
247
248
  end
248
249
 
@@ -271,7 +272,7 @@ class Chef
271
272
  keep_latest_packages: new_resource.keep_latest
272
273
  )
273
274
  only_if { use_toml_config }
274
- only_if { ::Dir.exist?("/hab/sup/default/config") }
275
+ only_if { ::TargetIO::Dir.exist?("/hab/sup/default/config") }
275
276
  end
276
277
  end
277
278
  end
@@ -281,15 +282,13 @@ class Chef
281
282
  # validate that peers have been passed with a port # for toml file
282
283
  def peer_list_with_port
283
284
  if new_resource.peer
284
- peer_list = []
285
- new_resource.peer.each do |p|
286
- peer_list << if !/.*:.*/.match?(p)
287
- p + ":9632"
288
- else
289
- p
290
- end
285
+ peer_list = new_resource.peer.map do |p|
286
+ if !/.*:.*/.match?(p)
287
+ p + ":9632"
288
+ else
289
+ p
290
+ end
291
291
  end
292
- peer_list
293
292
  end
294
293
  end
295
294
 
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Chef Software, Inc.
2
+ # 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,8 +20,9 @@ require_relative "habitat_sup"
20
20
  class Chef
21
21
  class Resource
22
22
  class HabitatSupSystemd < HabitatSup
23
- provides :habitat_sup, os: "linux"
24
- provides :habitat_sup_systemd
23
+ provides :habitat_sup, os: "linux", target_mode: true
24
+ provides :habitat_sup_systemd, target_mode: true
25
+ target_mode support: :full
25
26
 
26
27
  action :run do
27
28
  super()
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Chef Software, Inc.
2
+ # 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");
@@ -23,6 +23,7 @@ class Chef
23
23
  class HabitatSupWindows < HabitatSup
24
24
  provides :habitat_sup, os: "windows"
25
25
  provides :habitat_sup_windows
26
+ target_mode support: false
26
27
 
27
28
  service_file = ::File.expand_path("../support/HabService.dll.config.erb")
28
29
  win_service_config = "C:/hab/svc/windows-service/HabService.dll.config"
@@ -1,4 +1,4 @@
1
- # Copyright:: Chef Software Inc.
1
+ # Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
2
2
  # License:: Apache License, Version 2.0
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,11 +17,14 @@ require_relative "../http"
17
17
  require_relative "../json_compat"
18
18
  require_relative "../resource"
19
19
 
20
+ require "tmpdir" unless defined?(Dir::Tmpname)
21
+
20
22
  class Chef
21
23
  class Resource
22
24
  class HabitatConfig < Chef::Resource
23
25
 
24
- provides :habitat_config
26
+ provides :habitat_config, target_mode: true
27
+ target_mode support: :full
25
28
 
26
29
  description "Use the **habitat_config** resource to apply a configuration to a Chef Habitat service."
27
30
  introduced "17.3"
@@ -60,12 +63,23 @@ class Chef
60
63
  description: "Name of user key to use for encryption. Passes `--user` to `hab config apply`."
61
64
 
62
65
  load_current_value do
66
+ def census(http_uri)
67
+ headers = {}
68
+ headers["Authorization"] = "Bearer #{gateway_auth_token}" if property_is_set?(:gateway_auth_token)
69
+
70
+ if Chef::Config.target_mode?
71
+ raw = TargetIO::HTTP.new(http_uri).get("/census", headers)
72
+ response = from_json(raw)
73
+ else
74
+ response = Chef::HTTP::SimpleJSON.new(http_uri).get("/census", headers)
75
+ end
76
+
77
+ Mash.new(response)
78
+ end
79
+
63
80
  http_uri = "http://#{remote_sup_http}"
64
81
 
65
82
  begin
66
- headers = {}
67
- headers["Authorization"] = "Bearer #{gateway_auth_token}" if property_is_set?(:gateway_auth_token)
68
- census = Mash.new(Chef::HTTP::SimpleJSON.new(http_uri).get("/census", headers))
69
83
  sc = census["census_groups"][service_group]["service_config"]["value"]
70
84
  rescue
71
85
  # Default to a blank config if anything (http error, json parsing, finding
@@ -85,15 +99,15 @@ class Chef
85
99
  opts << ["--remote-sup", new_resource.remote_sup] if new_resource.remote_sup
86
100
  opts << ["--user", new_resource.user] if new_resource.user
87
101
 
88
- tempfile = Tempfile.new(["habitat_config", ".toml"])
89
- begin
102
+ tempname = Dir::Tmpname.create(["habitat_config", ".toml"]) {}
103
+ TargetIO::File.open(tempname, "w") do |tempfile|
90
104
  tempfile.write(render_toml(new_resource.config))
91
- tempfile.close
105
+ end
92
106
 
93
- hab("config", "apply", opts, new_resource.service_group, incarnation, tempfile.path)
107
+ begin
108
+ hab("config", "apply", opts, new_resource.service_group, incarnation, tempname)
94
109
  ensure
95
- tempfile.close
96
- tempfile.unlink
110
+ TargetIO::File.unlink(tempname)
97
111
  end
98
112
  end
99
113
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Chef Software, Inc.
2
+ # 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");
@@ -19,7 +19,8 @@ require_relative "../resource"
19
19
  class Chef
20
20
  class Resource
21
21
  class HabitatInstall < Chef::Resource
22
- provides :habitat_install
22
+ provides :habitat_install, target_mode: true
23
+ target_mode support: :full
23
24
 
24
25
  description "Use the **habitat_install** resource to install Chef Habitat."
25
26
  introduced "17.3"
@@ -70,7 +71,7 @@ class Chef
70
71
  description: "Specify the version of `Habitat` you would like to install."
71
72
 
72
73
  action :install, description: "Installs Habitat. Does nothing if the `hab` binary is found in the default location for the system (`/bin/hab` on Linux, `/usr/local/bin/hab` on macOS, `C:/habitat/hab.exe` on Windows)" do
73
- if ::File.exist?(hab_path)
74
+ if ::TargetIO::File.exist?(hab_path)
74
75
  cmd = shell_out!([hab_path, "--version"].flatten.compact.join(" "))
75
76
  version = %r{hab (\d*\.\d*\.\d[^\/]*)}.match(cmd.stdout)[1]
76
77
  return if version == new_resource.hab_version
@@ -94,7 +95,7 @@ class Chef
94
95
  path habfile
95
96
  destination "#{Chef::Config[:file_cache_path]}/habitat"
96
97
  action :extract
97
- not_if { ::Dir.exist?("c:\\habitat") }
98
+ not_if { ::TargetIO::Dir.exist?("c:\\habitat") }
98
99
  end
99
100
 
100
101
  directory "c:\\habitat" do
@@ -238,7 +239,6 @@ class Chef
238
239
  def hab_command
239
240
  cmd = "#{Chef::Config[:file_cache_path]}/hab-install.sh"
240
241
  cmd << " -v #{new_resource.hab_version} " if new_resource.hab_version
241
- cmd << " -t x86_64-linux-kernel2" if node["kernel"]["release"].to_i < 3
242
242
  cmd
243
243
  end
244
244
  end
@@ -1,4 +1,4 @@
1
- # Copyright:: Chef Software, Inc.
1
+ # Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
2
2
  # License:: Apache License, Version 2.0
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,8 @@ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
20
20
  class Chef
21
21
  class Resource
22
22
  class HabitatService < Chef::Resource
23
- provides :habitat_service
23
+ provides :habitat_service, target_mode: true
24
+ target_mode support: :full
24
25
 
25
26
  description "Use the **habitat_service** resource to manage Chef Habitat services. This requires that `core/hab-sup` be running as a service. See the `habitat_sup` resource documentation for more information. Note: Applications may run as a specific user. Often with Habitat, the default is `hab`, or `root`. If the application requires another user, then it should be created with Chef's `user` resource."
26
27
  introduced "17.3"
@@ -181,7 +182,7 @@ class Chef
181
182
  http_uri = "http://#{remote_sup_http}"
182
183
 
183
184
  begin
184
- TCPSocket.new(URI(http_uri).host, URI(http_uri).port).close
185
+ TCPSocket.new(URI(http_uri).host, URI(http_uri).port).close unless Chef::Config.target_mode?
185
186
  rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
186
187
  Chef::Log.debug("Could not connect to #{http_uri} to retrieve status for #{service_name}")
187
188
  return false
@@ -190,7 +191,7 @@ class Chef
190
191
  begin
191
192
  headers = {}
192
193
  headers["Authorization"] = "Bearer #{gateway_auth_token}" if property_is_set?(:gateway_auth_token)
193
- svcs = Chef::HTTP::SimpleJSON.new(http_uri).get("/services", headers)
194
+ svcs = TargetIO::HTTP::SimpleJSON.new(http_uri).get("/services", headers)
194
195
  rescue
195
196
  Chef::Log.debug("Could not connect to #{http_uri}/services to retrieve status for #{service_name}")
196
197
  return false
@@ -337,10 +338,13 @@ class Chef
337
338
  end
338
339
 
339
340
  unless current_resource.loaded && !modified
340
- execute "test" do
341
+ execute "load service" do
341
342
  command "hab svc load #{new_resource.service_name} #{options.join(" ")}"
342
343
  retry_delay 10
343
344
  retries 5
345
+
346
+ # compensate for lack of TCPSocket support in TM by retries
347
+ returns [0, 1] if Chef::Config.target_mode?
344
348
  end
345
349
  end
346
350
  end
@@ -1,4 +1,4 @@
1
- # Copyright:: Chef Software Inc.
1
+ # Copyright (c) 2009-2026 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
2
2
  # License:: Apache License, Version 2.0
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -73,7 +73,7 @@ class Chef
73
73
  def wmi_property_from_query(wmi_property, wmi_query)
74
74
  @wmi = ::WIN32OLE.connect("winmgmts://")
75
75
  result = @wmi.ExecQuery(wmi_query)
76
- return unless result.each.count > 0
76
+ return unless result.each.any?
77
77
 
78
78
  result.each.next.send(wmi_property)
79
79
  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");
@@ -29,7 +29,7 @@ class Chef
29
29
  return true if spec == "*"
30
30
 
31
31
  if spec.respond_to? :to_int
32
- return spec >= min && spec <= max
32
+ return spec.between?(min, max)
33
33
  end
34
34
 
35
35
  # Lists of individual values, ranges, and step values all share the validity range for type
@@ -38,7 +38,7 @@ class Chef
38
38
  return false unless /^\d+$/.match?(x)
39
39
 
40
40
  x = x.to_i
41
- return false unless x >= min && x <= max
41
+ return false unless x.between?(min, max)
42
42
  end
43
43
  true
44
44
  end