ansible-core 2.18.7__py3-none-any.whl → 2.19.0__py3-none-any.whl

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.

Potentially problematic release.


This version of ansible-core might be problematic. Click here for more details.

Files changed (757) hide show
  1. ansible/_internal/__init__.py +53 -0
  2. ansible/_internal/_ansiballz/__init__.py +0 -0
  3. ansible/_internal/_ansiballz/_builder.py +101 -0
  4. ansible/_internal/_ansiballz/_wrapper.py +262 -0
  5. ansible/_internal/_collection_proxy.py +47 -0
  6. ansible/_internal/_datatag/__init__.py +0 -0
  7. ansible/_internal/_datatag/_tags.py +130 -0
  8. ansible/_internal/_datatag/_utils.py +19 -0
  9. ansible/_internal/_datatag/_wrappers.py +33 -0
  10. ansible/_internal/_errors/__init__.py +0 -0
  11. ansible/_internal/_errors/_alarm_timeout.py +66 -0
  12. ansible/_internal/_errors/_captured.py +123 -0
  13. ansible/_internal/_errors/_error_factory.py +89 -0
  14. ansible/_internal/_errors/_error_utils.py +240 -0
  15. ansible/_internal/_errors/_handler.py +91 -0
  16. ansible/_internal/_errors/_task_timeout.py +28 -0
  17. ansible/_internal/_event_formatting.py +127 -0
  18. ansible/_internal/_json/__init__.py +214 -0
  19. ansible/_internal/_json/_legacy_encoder.py +34 -0
  20. ansible/_internal/_json/_profiles/__init__.py +0 -0
  21. ansible/_internal/_json/_profiles/_cache_persistence.py +57 -0
  22. ansible/_internal/_json/_profiles/_inventory_legacy.py +40 -0
  23. ansible/_internal/_json/_profiles/_legacy.py +189 -0
  24. ansible/_internal/_locking.py +21 -0
  25. ansible/_internal/_plugins/__init__.py +0 -0
  26. ansible/_internal/_plugins/_cache.py +57 -0
  27. ansible/_internal/_ssh/__init__.py +0 -0
  28. ansible/_internal/_ssh/_agent_launch.py +91 -0
  29. ansible/_internal/_ssh/_ssh_agent.py +619 -0
  30. ansible/_internal/_task.py +78 -0
  31. ansible/_internal/_templating/__init__.py +12 -0
  32. ansible/_internal/_templating/_access.py +86 -0
  33. ansible/_internal/_templating/_chain_templar.py +63 -0
  34. ansible/_internal/_templating/_datatag.py +95 -0
  35. ansible/_internal/_templating/_engine.py +592 -0
  36. ansible/_internal/_templating/_errors.py +28 -0
  37. ansible/_internal/_templating/_jinja_bits.py +1106 -0
  38. ansible/_internal/_templating/_jinja_common.py +323 -0
  39. ansible/_internal/_templating/_jinja_patches.py +44 -0
  40. ansible/_internal/_templating/_jinja_plugins.py +375 -0
  41. ansible/_internal/_templating/_lazy_containers.py +633 -0
  42. ansible/_internal/_templating/_marker_behaviors.py +103 -0
  43. ansible/_internal/_templating/_template_vars.py +72 -0
  44. ansible/_internal/_templating/_transform.py +70 -0
  45. ansible/_internal/_templating/_utils.py +108 -0
  46. ansible/_internal/_testing.py +26 -0
  47. ansible/_internal/_wrapt.py +1052 -0
  48. ansible/_internal/_yaml/__init__.py +0 -0
  49. ansible/_internal/_yaml/_constructor.py +240 -0
  50. ansible/_internal/_yaml/_dumper.py +70 -0
  51. ansible/_internal/_yaml/_errors.py +166 -0
  52. ansible/_internal/_yaml/_loader.py +66 -0
  53. ansible/_internal/ansible_collections/ansible/_protomatter/README.md +11 -0
  54. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/action/debug.py +36 -0
  55. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/apply_trust.py +19 -0
  56. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/dump_object.py +27 -0
  57. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/finalize.py +16 -0
  58. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/origin.py +18 -0
  59. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/python_literal_eval.py +24 -0
  60. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/python_literal_eval.yml +33 -0
  61. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/tag_names.py +16 -0
  62. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/true_type.py +17 -0
  63. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/unmask.py +49 -0
  64. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/lookup/config.py +21 -0
  65. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/lookup/config.yml +2 -0
  66. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/test/tagged.py +15 -0
  67. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/test/tagged.yml +19 -0
  68. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/test/tagged_with.py +18 -0
  69. ansible/_internal/ansible_collections/ansible/_protomatter/plugins/test/tagged_with.yml +19 -0
  70. ansible/cli/__init__.py +93 -104
  71. ansible/cli/_ssh_askpass.py +54 -0
  72. ansible/cli/adhoc.py +20 -10
  73. ansible/cli/arguments/option_helpers.py +163 -10
  74. ansible/cli/config.py +43 -68
  75. ansible/cli/console.py +13 -11
  76. ansible/cli/doc.py +134 -77
  77. ansible/cli/galaxy.py +27 -20
  78. ansible/cli/inventory.py +28 -28
  79. ansible/cli/playbook.py +4 -12
  80. ansible/cli/pull.py +6 -3
  81. ansible/cli/scripts/ansible_connection_cli_stub.py +7 -7
  82. ansible/cli/vault.py +12 -11
  83. ansible/compat/__init__.py +2 -2
  84. ansible/compat/importlib_resources.py +9 -12
  85. ansible/config/base.yml +218 -133
  86. ansible/config/manager.py +220 -159
  87. ansible/constants.py +2 -65
  88. ansible/errors/__init__.py +350 -256
  89. ansible/executor/interpreter_discovery.py +28 -149
  90. ansible/executor/module_common.py +480 -514
  91. ansible/executor/play_iterator.py +22 -27
  92. ansible/executor/playbook_executor.py +11 -11
  93. ansible/executor/powershell/async_watchdog.ps1 +97 -102
  94. ansible/executor/powershell/async_wrapper.ps1 +204 -153
  95. ansible/executor/powershell/become_wrapper.ps1 +107 -144
  96. ansible/executor/powershell/bootstrap_wrapper.ps1 +46 -9
  97. ansible/executor/powershell/coverage_wrapper.ps1 +91 -135
  98. ansible/executor/powershell/exec_wrapper.ps1 +675 -196
  99. ansible/executor/powershell/module_manifest.py +469 -265
  100. ansible/executor/powershell/module_wrapper.ps1 +195 -186
  101. ansible/executor/powershell/powershell_expand_user.ps1 +20 -0
  102. ansible/executor/powershell/powershell_mkdtemp.ps1 +17 -0
  103. ansible/executor/powershell/psrp_fetch_file.ps1 +41 -0
  104. ansible/executor/powershell/psrp_put_file.ps1 +122 -0
  105. ansible/executor/powershell/winrm_fetch_file.ps1 +46 -0
  106. ansible/executor/powershell/winrm_put_file.ps1 +36 -0
  107. ansible/executor/process/worker.py +139 -149
  108. ansible/executor/stats.py +5 -5
  109. ansible/executor/task_executor.py +270 -297
  110. ansible/executor/task_queue_manager.py +135 -137
  111. ansible/executor/task_result.py +182 -79
  112. ansible/galaxy/__init__.py +2 -2
  113. ansible/galaxy/api.py +26 -25
  114. ansible/galaxy/collection/__init__.py +6 -14
  115. ansible/galaxy/collection/concrete_artifact_manager.py +12 -21
  116. ansible/galaxy/dependency_resolution/dataclasses.py +14 -4
  117. ansible/galaxy/dependency_resolution/providers.py +4 -4
  118. ansible/galaxy/dependency_resolution/reporters.py +81 -0
  119. ansible/galaxy/role.py +6 -10
  120. ansible/galaxy/token.py +28 -21
  121. ansible/inventory/data.py +47 -57
  122. ansible/inventory/group.py +50 -73
  123. ansible/inventory/helpers.py +9 -0
  124. ansible/inventory/host.py +37 -54
  125. ansible/inventory/manager.py +79 -34
  126. ansible/keyword_desc.yml +1 -1
  127. ansible/module_utils/_internal/__init__.py +55 -0
  128. ansible/module_utils/_internal/_ambient_context.py +58 -0
  129. ansible/module_utils/_internal/_ansiballz/__init__.py +0 -0
  130. ansible/module_utils/_internal/_ansiballz/_extensions/__init__.py +0 -0
  131. ansible/module_utils/_internal/_ansiballz/_extensions/_coverage.py +45 -0
  132. ansible/module_utils/_internal/_ansiballz/_extensions/_pydevd.py +62 -0
  133. ansible/module_utils/_internal/_ansiballz/_loader.py +81 -0
  134. ansible/module_utils/_internal/_ansiballz/_respawn.py +32 -0
  135. ansible/module_utils/_internal/_ansiballz/_respawn_wrapper.py +23 -0
  136. ansible/module_utils/_internal/_concurrent/_daemon_threading.py +1 -0
  137. ansible/module_utils/_internal/_dataclass_validation.py +217 -0
  138. ansible/module_utils/_internal/_datatag/__init__.py +961 -0
  139. ansible/module_utils/_internal/_datatag/_tags.py +16 -0
  140. ansible/module_utils/_internal/_debugging.py +31 -0
  141. ansible/module_utils/_internal/_deprecator.py +157 -0
  142. ansible/module_utils/_internal/_errors.py +101 -0
  143. ansible/module_utils/_internal/_event_utils.py +61 -0
  144. ansible/module_utils/_internal/_json/__init__.py +63 -0
  145. ansible/module_utils/_internal/_json/_legacy_encoder.py +26 -0
  146. ansible/module_utils/_internal/_json/_profiles/__init__.py +428 -0
  147. ansible/module_utils/_internal/_json/_profiles/_fallback_to_str.py +73 -0
  148. ansible/module_utils/_internal/_json/_profiles/_module_legacy_c2m.py +33 -0
  149. ansible/module_utils/_internal/_json/_profiles/_module_legacy_m2c.py +37 -0
  150. ansible/module_utils/_internal/_json/_profiles/_module_modern_c2m.py +35 -0
  151. ansible/module_utils/_internal/_json/_profiles/_module_modern_m2c.py +33 -0
  152. ansible/module_utils/_internal/_json/_profiles/_tagless.py +52 -0
  153. ansible/module_utils/_internal/_messages.py +130 -0
  154. ansible/module_utils/_internal/_patches/__init__.py +66 -0
  155. ansible/module_utils/_internal/_patches/_dataclass_annotation_patch.py +53 -0
  156. ansible/module_utils/_internal/_patches/_socket_patch.py +34 -0
  157. ansible/module_utils/_internal/_patches/_sys_intern_patch.py +34 -0
  158. ansible/module_utils/_internal/_plugin_info.py +38 -0
  159. ansible/module_utils/_internal/_stack.py +22 -0
  160. ansible/module_utils/_internal/_testing.py +0 -0
  161. ansible/module_utils/_internal/_text_utils.py +6 -0
  162. ansible/module_utils/_internal/_traceback.py +92 -0
  163. ansible/module_utils/_internal/_validation.py +14 -0
  164. ansible/module_utils/ansible_release.py +2 -2
  165. ansible/module_utils/api.py +1 -2
  166. ansible/module_utils/basic.py +303 -202
  167. ansible/module_utils/common/_utils.py +24 -28
  168. ansible/module_utils/common/arg_spec.py +8 -3
  169. ansible/module_utils/common/collections.py +7 -2
  170. ansible/module_utils/common/dict_transformations.py +2 -2
  171. ansible/module_utils/common/file.py +2 -2
  172. ansible/module_utils/common/json.py +90 -84
  173. ansible/module_utils/common/locale.py +2 -2
  174. ansible/module_utils/common/parameters.py +27 -24
  175. ansible/module_utils/common/process.py +2 -3
  176. ansible/module_utils/common/respawn.py +11 -33
  177. ansible/module_utils/common/sentinel.py +66 -0
  178. ansible/module_utils/common/sys_info.py +8 -8
  179. ansible/module_utils/common/text/converters.py +16 -37
  180. ansible/module_utils/common/validation.py +35 -24
  181. ansible/module_utils/common/warnings.py +143 -25
  182. ansible/module_utils/common/yaml.py +29 -3
  183. ansible/module_utils/compat/datetime.py +33 -21
  184. ansible/module_utils/compat/paramiko.py +21 -10
  185. ansible/module_utils/compat/typing.py +6 -5
  186. ansible/module_utils/connection.py +10 -13
  187. ansible/module_utils/csharp/Ansible.Basic.cs +15 -12
  188. ansible/module_utils/csharp/Ansible.Become.cs +1 -0
  189. ansible/module_utils/csharp/Ansible.Privilege.cs +2 -2
  190. ansible/module_utils/csharp/Ansible._Async.cs +517 -0
  191. ansible/module_utils/datatag.py +49 -0
  192. ansible/module_utils/distro/__init__.py +2 -2
  193. ansible/module_utils/facts/ansible_collector.py +4 -5
  194. ansible/module_utils/facts/collector.py +13 -14
  195. ansible/module_utils/facts/compat.py +4 -4
  196. ansible/module_utils/facts/default_collectors.py +1 -1
  197. ansible/module_utils/facts/hardware/aix.py +34 -0
  198. ansible/module_utils/facts/hardware/base.py +2 -2
  199. ansible/module_utils/facts/hardware/darwin.py +1 -3
  200. ansible/module_utils/facts/hardware/freebsd.py +2 -2
  201. ansible/module_utils/facts/hardware/linux.py +5 -5
  202. ansible/module_utils/facts/namespace.py +1 -1
  203. ansible/module_utils/facts/network/base.py +1 -1
  204. ansible/module_utils/facts/network/fc_wwn.py +1 -2
  205. ansible/module_utils/facts/network/iscsi.py +1 -2
  206. ansible/module_utils/facts/network/nvme.py +1 -2
  207. ansible/module_utils/facts/other/facter.py +2 -3
  208. ansible/module_utils/facts/other/ohai.py +2 -3
  209. ansible/module_utils/facts/sysctl.py +4 -6
  210. ansible/module_utils/facts/system/apparmor.py +1 -2
  211. ansible/module_utils/facts/system/caps.py +3 -3
  212. ansible/module_utils/facts/system/chroot.py +1 -2
  213. ansible/module_utils/facts/system/cmdline.py +1 -2
  214. ansible/module_utils/facts/system/date_time.py +5 -3
  215. ansible/module_utils/facts/system/distribution.py +27 -13
  216. ansible/module_utils/facts/system/dns.py +1 -1
  217. ansible/module_utils/facts/system/env.py +1 -2
  218. ansible/module_utils/facts/system/fips.py +7 -20
  219. ansible/module_utils/facts/system/loadavg.py +1 -2
  220. ansible/module_utils/facts/system/local.py +2 -3
  221. ansible/module_utils/facts/system/lsb.py +1 -2
  222. ansible/module_utils/facts/system/pkg_mgr.py +1 -2
  223. ansible/module_utils/facts/system/platform.py +1 -2
  224. ansible/module_utils/facts/system/python.py +1 -2
  225. ansible/module_utils/facts/system/selinux.py +1 -1
  226. ansible/module_utils/facts/system/service_mgr.py +1 -2
  227. ansible/module_utils/facts/system/ssh_pub_keys.py +1 -1
  228. ansible/module_utils/facts/system/systemd.py +1 -1
  229. ansible/module_utils/facts/system/user.py +1 -2
  230. ansible/module_utils/facts/utils.py +3 -3
  231. ansible/module_utils/facts/virtual/base.py +1 -1
  232. ansible/module_utils/facts/virtual/linux.py +3 -3
  233. ansible/module_utils/facts/virtual/sunos.py +3 -15
  234. ansible/module_utils/facts/virtual/sysctl.py +3 -16
  235. ansible/module_utils/json_utils.py +2 -2
  236. ansible/module_utils/parsing/convert_bool.py +7 -1
  237. ansible/module_utils/powershell/Ansible.ModuleUtils.AddType.psm1 +1 -1
  238. ansible/module_utils/powershell/Ansible.ModuleUtils.CamelConversion.psm1 +1 -1
  239. ansible/module_utils/powershell/Ansible.ModuleUtils.CommandUtil.psm1 +1 -1
  240. ansible/module_utils/powershell/Ansible.ModuleUtils.WebRequest.psm1 +1 -1
  241. ansible/module_utils/service.py +21 -31
  242. ansible/module_utils/splitter.py +7 -7
  243. ansible/module_utils/testing.py +31 -0
  244. ansible/module_utils/urls.py +64 -35
  245. ansible/modules/add_host.py +4 -4
  246. ansible/modules/apt.py +69 -49
  247. ansible/modules/apt_key.py +19 -12
  248. ansible/modules/apt_repository.py +32 -51
  249. ansible/modules/assemble.py +16 -14
  250. ansible/modules/assert.py +4 -4
  251. ansible/modules/async_status.py +24 -24
  252. ansible/modules/async_wrapper.py +20 -25
  253. ansible/modules/blockinfile.py +6 -7
  254. ansible/modules/command.py +13 -20
  255. ansible/modules/copy.py +60 -147
  256. ansible/modules/cron.py +24 -21
  257. ansible/modules/deb822_repository.py +8 -9
  258. ansible/modules/debconf.py +5 -5
  259. ansible/modules/debug.py +4 -4
  260. ansible/modules/dnf.py +8 -8
  261. ansible/modules/dnf5.py +39 -13
  262. ansible/modules/dpkg_selections.py +4 -4
  263. ansible/modules/expect.py +13 -15
  264. ansible/modules/fail.py +4 -4
  265. ansible/modules/fetch.py +4 -4
  266. ansible/modules/file.py +184 -144
  267. ansible/modules/find.py +22 -20
  268. ansible/modules/gather_facts.py +3 -3
  269. ansible/modules/get_url.py +77 -54
  270. ansible/modules/getent.py +7 -9
  271. ansible/modules/git.py +38 -38
  272. ansible/modules/group.py +6 -6
  273. ansible/modules/group_by.py +4 -4
  274. ansible/modules/hostname.py +15 -32
  275. ansible/modules/import_playbook.py +6 -6
  276. ansible/modules/import_role.py +6 -6
  277. ansible/modules/import_tasks.py +6 -6
  278. ansible/modules/include_role.py +6 -6
  279. ansible/modules/include_tasks.py +6 -6
  280. ansible/modules/include_vars.py +6 -6
  281. ansible/modules/iptables.py +86 -73
  282. ansible/modules/known_hosts.py +22 -24
  283. ansible/modules/lineinfile.py +5 -5
  284. ansible/modules/meta.py +4 -4
  285. ansible/modules/mount_facts.py +2 -2
  286. ansible/modules/package.py +10 -4
  287. ansible/modules/package_facts.py +22 -10
  288. ansible/modules/pause.py +6 -6
  289. ansible/modules/ping.py +6 -6
  290. ansible/modules/pip.py +21 -26
  291. ansible/modules/raw.py +6 -6
  292. ansible/modules/reboot.py +6 -6
  293. ansible/modules/replace.py +10 -14
  294. ansible/modules/rpm_key.py +7 -8
  295. ansible/modules/script.py +4 -4
  296. ansible/modules/service.py +10 -17
  297. ansible/modules/service_facts.py +87 -10
  298. ansible/modules/set_fact.py +5 -5
  299. ansible/modules/set_stats.py +4 -4
  300. ansible/modules/setup.py +2 -2
  301. ansible/modules/shell.py +6 -6
  302. ansible/modules/slurp.py +16 -19
  303. ansible/modules/stat.py +15 -31
  304. ansible/modules/subversion.py +15 -15
  305. ansible/modules/systemd.py +7 -7
  306. ansible/modules/systemd_service.py +7 -7
  307. ansible/modules/sysvinit.py +9 -9
  308. ansible/modules/tempfile.py +5 -6
  309. ansible/modules/template.py +6 -6
  310. ansible/modules/unarchive.py +38 -17
  311. ansible/modules/uri.py +33 -26
  312. ansible/modules/user.py +45 -32
  313. ansible/modules/validate_argument_spec.py +10 -7
  314. ansible/modules/wait_for.py +70 -60
  315. ansible/modules/wait_for_connection.py +6 -6
  316. ansible/modules/yum_repository.py +10 -9
  317. ansible/parsing/ajson.py +17 -37
  318. ansible/parsing/dataloader.py +99 -54
  319. ansible/parsing/mod_args.py +62 -60
  320. ansible/parsing/plugin_docs.py +21 -86
  321. ansible/parsing/quoting.py +1 -1
  322. ansible/parsing/splitter.py +27 -12
  323. ansible/parsing/utils/addresses.py +24 -24
  324. ansible/parsing/utils/jsonify.py +5 -1
  325. ansible/parsing/utils/yaml.py +32 -61
  326. ansible/parsing/vault/__init__.py +327 -99
  327. ansible/parsing/yaml/__init__.py +0 -18
  328. ansible/parsing/yaml/dumper.py +6 -120
  329. ansible/parsing/yaml/loader.py +6 -39
  330. ansible/parsing/yaml/objects.py +43 -335
  331. ansible/playbook/__init__.py +1 -1
  332. ansible/playbook/attribute.py +8 -3
  333. ansible/playbook/base.py +187 -134
  334. ansible/playbook/block.py +26 -24
  335. ansible/playbook/collectionsearch.py +1 -15
  336. ansible/playbook/conditional.py +3 -77
  337. ansible/playbook/handler.py +8 -2
  338. ansible/playbook/helpers.py +41 -53
  339. ansible/playbook/included_file.py +32 -26
  340. ansible/playbook/loop_control.py +2 -2
  341. ansible/playbook/play.py +85 -44
  342. ansible/playbook/play_context.py +14 -17
  343. ansible/playbook/playbook_include.py +27 -62
  344. ansible/playbook/role/__init__.py +64 -49
  345. ansible/playbook/role/definition.py +15 -17
  346. ansible/playbook/role/include.py +2 -4
  347. ansible/playbook/role/metadata.py +10 -11
  348. ansible/playbook/role_include.py +3 -3
  349. ansible/playbook/taggable.py +28 -12
  350. ansible/playbook/task.py +192 -121
  351. ansible/playbook/task_include.py +5 -5
  352. ansible/plugins/__init__.py +58 -26
  353. ansible/plugins/action/__init__.py +188 -186
  354. ansible/plugins/action/add_host.py +2 -2
  355. ansible/plugins/action/assemble.py +11 -18
  356. ansible/plugins/action/assert.py +55 -67
  357. ansible/plugins/action/async_status.py +7 -2
  358. ansible/plugins/action/copy.py +14 -17
  359. ansible/plugins/action/debug.py +37 -31
  360. ansible/plugins/action/dnf.py +3 -4
  361. ansible/plugins/action/fail.py +1 -1
  362. ansible/plugins/action/fetch.py +7 -8
  363. ansible/plugins/action/gather_facts.py +13 -14
  364. ansible/plugins/action/group_by.py +1 -1
  365. ansible/plugins/action/include_vars.py +10 -11
  366. ansible/plugins/action/package.py +8 -14
  367. ansible/plugins/action/pause.py +2 -2
  368. ansible/plugins/action/script.py +27 -38
  369. ansible/plugins/action/service.py +9 -18
  370. ansible/plugins/action/set_fact.py +3 -12
  371. ansible/plugins/action/set_stats.py +3 -8
  372. ansible/plugins/action/template.py +47 -67
  373. ansible/plugins/action/unarchive.py +6 -16
  374. ansible/plugins/action/uri.py +9 -20
  375. ansible/plugins/action/validate_argument_spec.py +5 -5
  376. ansible/plugins/action/wait_for_connection.py +1 -1
  377. ansible/plugins/become/__init__.py +31 -8
  378. ansible/plugins/become/runas.py +71 -0
  379. ansible/plugins/become/su.py +13 -8
  380. ansible/plugins/become/sudo.py +19 -0
  381. ansible/plugins/cache/__init__.py +52 -63
  382. ansible/plugins/cache/base.py +8 -0
  383. ansible/plugins/cache/jsonfile.py +10 -16
  384. ansible/plugins/cache/memory.py +6 -12
  385. ansible/plugins/callback/__init__.py +294 -201
  386. ansible/plugins/callback/default.py +99 -95
  387. ansible/plugins/callback/junit.py +44 -43
  388. ansible/plugins/callback/minimal.py +28 -25
  389. ansible/plugins/callback/oneline.py +34 -21
  390. ansible/plugins/callback/tree.py +27 -16
  391. ansible/plugins/connection/__init__.py +47 -34
  392. ansible/plugins/connection/local.py +156 -60
  393. ansible/plugins/connection/paramiko_ssh.py +34 -24
  394. ansible/plugins/connection/psrp.py +76 -165
  395. ansible/plugins/connection/ssh.py +326 -86
  396. ansible/plugins/connection/winrm.py +62 -141
  397. ansible/plugins/doc_fragments/action_common_attributes.py +14 -14
  398. ansible/plugins/doc_fragments/action_core.py +6 -6
  399. ansible/plugins/doc_fragments/backup.py +2 -2
  400. ansible/plugins/doc_fragments/checksum_common.py +27 -0
  401. ansible/plugins/doc_fragments/constructed.py +8 -4
  402. ansible/plugins/doc_fragments/decrypt.py +2 -2
  403. ansible/plugins/doc_fragments/default_callback.py +2 -2
  404. ansible/plugins/doc_fragments/files.py +2 -2
  405. ansible/plugins/doc_fragments/inventory_cache.py +2 -2
  406. ansible/plugins/doc_fragments/result_format_callback.py +2 -2
  407. ansible/plugins/doc_fragments/return_common.py +2 -2
  408. ansible/plugins/doc_fragments/template_common.py +4 -4
  409. ansible/plugins/doc_fragments/url.py +17 -1
  410. ansible/plugins/doc_fragments/url_windows.py +2 -2
  411. ansible/plugins/doc_fragments/validate.py +2 -2
  412. ansible/plugins/doc_fragments/vars_plugin_staging.py +2 -2
  413. ansible/plugins/filter/__init__.py +6 -2
  414. ansible/plugins/filter/b64decode.yml +22 -0
  415. ansible/plugins/filter/b64encode.yml +22 -0
  416. ansible/plugins/filter/bool.yml +11 -4
  417. ansible/plugins/filter/core.py +245 -120
  418. ansible/plugins/filter/encryption.py +42 -34
  419. ansible/plugins/filter/flatten.yml +3 -2
  420. ansible/plugins/filter/human_to_bytes.yml +1 -1
  421. ansible/plugins/filter/mathstuff.py +30 -37
  422. ansible/plugins/filter/password_hash.yml +8 -0
  423. ansible/plugins/filter/pow.yml +1 -1
  424. ansible/plugins/filter/regex_search.yml +1 -4
  425. ansible/plugins/filter/root.yml +1 -1
  426. ansible/plugins/filter/split.yml +1 -1
  427. ansible/plugins/filter/strftime.yml +3 -3
  428. ansible/plugins/filter/to_nice_yaml.yml +0 -4
  429. ansible/plugins/filter/to_uuid.yml +1 -1
  430. ansible/plugins/filter/to_yaml.yml +0 -4
  431. ansible/plugins/filter/unvault.yml +1 -1
  432. ansible/plugins/filter/urls.py +1 -1
  433. ansible/plugins/filter/urlsplit.py +8 -9
  434. ansible/plugins/filter/vault.yml +14 -9
  435. ansible/plugins/filter/win_basename.yml +6 -1
  436. ansible/plugins/filter/win_dirname.yml +5 -0
  437. ansible/plugins/inventory/__init__.py +107 -86
  438. ansible/plugins/inventory/advanced_host_list.py +7 -5
  439. ansible/plugins/inventory/auto.py +11 -4
  440. ansible/plugins/inventory/constructed.py +21 -24
  441. ansible/plugins/inventory/generator.py +16 -11
  442. ansible/plugins/inventory/host_list.py +7 -5
  443. ansible/plugins/inventory/ini.py +78 -44
  444. ansible/plugins/inventory/script.py +190 -120
  445. ansible/plugins/inventory/toml.py +16 -126
  446. ansible/plugins/inventory/yaml.py +10 -8
  447. ansible/plugins/list.py +72 -19
  448. ansible/plugins/loader.py +383 -198
  449. ansible/plugins/lookup/__init__.py +21 -4
  450. ansible/plugins/lookup/config.py +21 -35
  451. ansible/plugins/lookup/csvfile.py +19 -73
  452. ansible/plugins/lookup/dict.py +1 -6
  453. ansible/plugins/lookup/env.py +12 -9
  454. ansible/plugins/lookup/file.py +5 -8
  455. ansible/plugins/lookup/first_found.py +87 -55
  456. ansible/plugins/lookup/indexed_items.py +1 -10
  457. ansible/plugins/lookup/ini.py +14 -13
  458. ansible/plugins/lookup/items.py +1 -1
  459. ansible/plugins/lookup/lines.py +8 -1
  460. ansible/plugins/lookup/list.py +1 -1
  461. ansible/plugins/lookup/nested.py +2 -18
  462. ansible/plugins/lookup/password.py +5 -5
  463. ansible/plugins/lookup/pipe.py +5 -7
  464. ansible/plugins/lookup/sequence.py +18 -8
  465. ansible/plugins/lookup/subelements.py +1 -4
  466. ansible/plugins/lookup/template.py +47 -36
  467. ansible/plugins/lookup/together.py +0 -12
  468. ansible/plugins/lookup/unvault.py +1 -5
  469. ansible/plugins/lookup/url.py +4 -10
  470. ansible/plugins/lookup/vars.py +16 -24
  471. ansible/plugins/shell/__init__.py +58 -4
  472. ansible/plugins/shell/cmd.py +2 -2
  473. ansible/plugins/shell/powershell.py +106 -31
  474. ansible/plugins/shell/sh.py +13 -7
  475. ansible/plugins/strategy/__init__.py +168 -193
  476. ansible/plugins/strategy/debug.py +2 -2
  477. ansible/plugins/strategy/free.py +16 -31
  478. ansible/plugins/strategy/host_pinned.py +2 -2
  479. ansible/plugins/strategy/linear.py +41 -41
  480. ansible/plugins/terminal/__init__.py +4 -4
  481. ansible/plugins/test/__init__.py +7 -2
  482. ansible/plugins/test/core.py +75 -35
  483. ansible/plugins/test/files.py +1 -1
  484. ansible/plugins/test/finished.yml +1 -1
  485. ansible/plugins/test/mathstuff.py +3 -3
  486. ansible/plugins/test/uri.py +5 -8
  487. ansible/plugins/vars/host_group_vars.py +7 -14
  488. ansible/release.py +2 -2
  489. ansible/template/__init__.py +353 -943
  490. ansible/utils/__init__.py +0 -18
  491. ansible/utils/collection_loader/__init__.py +54 -5
  492. ansible/utils/collection_loader/_collection_config.py +5 -6
  493. ansible/utils/collection_loader/_collection_finder.py +82 -96
  494. ansible/utils/collection_loader/_collection_meta.py +15 -8
  495. ansible/utils/display.py +485 -73
  496. ansible/utils/encrypt.py +27 -19
  497. ansible/utils/fqcn.py +2 -2
  498. ansible/utils/galaxy.py +2 -2
  499. ansible/utils/hashing.py +8 -10
  500. ansible/utils/helpers.py +2 -2
  501. ansible/utils/listify.py +10 -8
  502. ansible/utils/lock.py +2 -2
  503. ansible/utils/path.py +10 -12
  504. ansible/utils/plugin_docs.py +16 -14
  505. ansible/utils/py3compat.py +2 -7
  506. ansible/utils/sentinel.py +4 -62
  507. ansible/utils/singleton.py +2 -0
  508. ansible/utils/ssh_functions.py +6 -2
  509. ansible/utils/unsafe_proxy.py +23 -332
  510. ansible/utils/vars.py +55 -8
  511. ansible/utils/version.py +2 -2
  512. ansible/vars/clean.py +5 -5
  513. ansible/vars/hostvars.py +60 -90
  514. ansible/vars/manager.py +220 -285
  515. ansible/vars/plugins.py +4 -4
  516. ansible/vars/reserved.py +13 -12
  517. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/METADATA +4 -3
  518. ansible_core-2.19.0.dist-info/RECORD +1097 -0
  519. ansible_core-2.19.0.dist-info/licenses/licenses/BSD-3-Clause.txt +28 -0
  520. ansible_test/_data/completion/docker.txt +7 -7
  521. ansible_test/_data/completion/remote.txt +6 -6
  522. ansible_test/_data/completion/windows.txt +1 -0
  523. ansible_test/_data/requirements/ansible.txt +2 -2
  524. ansible_test/_data/requirements/sanity.ansible-doc.txt +3 -3
  525. ansible_test/_data/requirements/sanity.changelog.txt +2 -2
  526. ansible_test/_data/requirements/sanity.import.plugin.txt +2 -2
  527. ansible_test/_data/requirements/sanity.pep8.txt +1 -1
  528. ansible_test/_data/requirements/sanity.pylint.txt +5 -5
  529. ansible_test/_data/requirements/sanity.validate-modules.txt +2 -2
  530. ansible_test/_data/requirements/sanity.yamllint.txt +1 -1
  531. ansible_test/_data/requirements/units.txt +1 -0
  532. ansible_test/_internal/__init__.py +6 -0
  533. ansible_test/_internal/ansible_util.py +3 -1
  534. ansible_test/_internal/become.py +1 -0
  535. ansible_test/_internal/bootstrap.py +1 -0
  536. ansible_test/_internal/cache.py +1 -0
  537. ansible_test/_internal/cgroup.py +1 -0
  538. ansible_test/_internal/ci/__init__.py +1 -0
  539. ansible_test/_internal/ci/azp.py +1 -0
  540. ansible_test/_internal/ci/local.py +1 -0
  541. ansible_test/_internal/classification/__init__.py +1 -0
  542. ansible_test/_internal/classification/common.py +1 -0
  543. ansible_test/_internal/classification/csharp.py +1 -0
  544. ansible_test/_internal/classification/powershell.py +1 -0
  545. ansible_test/_internal/classification/python.py +1 -0
  546. ansible_test/_internal/cli/__init__.py +1 -0
  547. ansible_test/_internal/cli/actions.py +1 -0
  548. ansible_test/_internal/cli/argparsing/__init__.py +1 -0
  549. ansible_test/_internal/cli/argparsing/actions.py +1 -0
  550. ansible_test/_internal/cli/argparsing/argcompletion.py +1 -0
  551. ansible_test/_internal/cli/argparsing/parsers.py +1 -0
  552. ansible_test/_internal/cli/commands/__init__.py +11 -5
  553. ansible_test/_internal/cli/commands/coverage/__init__.py +1 -0
  554. ansible_test/_internal/cli/commands/coverage/analyze/__init__.py +1 -0
  555. ansible_test/_internal/cli/commands/coverage/analyze/targets/__init__.py +1 -0
  556. ansible_test/_internal/cli/commands/coverage/analyze/targets/combine.py +1 -0
  557. ansible_test/_internal/cli/commands/coverage/analyze/targets/expand.py +1 -0
  558. ansible_test/_internal/cli/commands/coverage/analyze/targets/filter.py +1 -0
  559. ansible_test/_internal/cli/commands/coverage/analyze/targets/generate.py +1 -0
  560. ansible_test/_internal/cli/commands/coverage/analyze/targets/missing.py +1 -0
  561. ansible_test/_internal/cli/commands/coverage/combine.py +1 -0
  562. ansible_test/_internal/cli/commands/coverage/erase.py +1 -0
  563. ansible_test/_internal/cli/commands/coverage/html.py +1 -0
  564. ansible_test/_internal/cli/commands/coverage/report.py +1 -0
  565. ansible_test/_internal/cli/commands/coverage/xml.py +1 -0
  566. ansible_test/_internal/cli/commands/env.py +1 -0
  567. ansible_test/_internal/cli/commands/integration/__init__.py +1 -0
  568. ansible_test/_internal/cli/commands/integration/network.py +1 -0
  569. ansible_test/_internal/cli/commands/integration/posix.py +1 -0
  570. ansible_test/_internal/cli/commands/integration/windows.py +1 -0
  571. ansible_test/_internal/cli/commands/sanity.py +9 -0
  572. ansible_test/_internal/cli/commands/shell.py +1 -0
  573. ansible_test/_internal/cli/commands/units.py +1 -0
  574. ansible_test/_internal/cli/compat.py +1 -0
  575. ansible_test/_internal/cli/completers.py +1 -0
  576. ansible_test/_internal/cli/converters.py +1 -0
  577. ansible_test/_internal/cli/environments.py +52 -5
  578. ansible_test/_internal/cli/epilog.py +1 -0
  579. ansible_test/_internal/cli/parsers/__init__.py +1 -0
  580. ansible_test/_internal/cli/parsers/base_argument_parsers.py +1 -0
  581. ansible_test/_internal/cli/parsers/helpers.py +1 -0
  582. ansible_test/_internal/cli/parsers/host_config_parsers.py +1 -0
  583. ansible_test/_internal/cli/parsers/key_value_parsers.py +1 -0
  584. ansible_test/_internal/cli/parsers/value_parsers.py +1 -0
  585. ansible_test/_internal/commands/__init__.py +1 -0
  586. ansible_test/_internal/commands/coverage/__init__.py +3 -2
  587. ansible_test/_internal/commands/coverage/analyze/__init__.py +1 -0
  588. ansible_test/_internal/commands/coverage/analyze/targets/__init__.py +1 -0
  589. ansible_test/_internal/commands/coverage/analyze/targets/combine.py +1 -0
  590. ansible_test/_internal/commands/coverage/analyze/targets/expand.py +1 -0
  591. ansible_test/_internal/commands/coverage/analyze/targets/filter.py +1 -0
  592. ansible_test/_internal/commands/coverage/analyze/targets/generate.py +1 -0
  593. ansible_test/_internal/commands/coverage/analyze/targets/missing.py +1 -0
  594. ansible_test/_internal/commands/coverage/combine.py +2 -1
  595. ansible_test/_internal/commands/coverage/erase.py +1 -0
  596. ansible_test/_internal/commands/coverage/html.py +1 -0
  597. ansible_test/_internal/commands/coverage/report.py +1 -0
  598. ansible_test/_internal/commands/coverage/xml.py +1 -0
  599. ansible_test/_internal/commands/env/__init__.py +2 -0
  600. ansible_test/_internal/commands/integration/__init__.py +22 -5
  601. ansible_test/_internal/commands/integration/cloud/__init__.py +1 -0
  602. ansible_test/_internal/commands/integration/cloud/acme.py +2 -1
  603. ansible_test/_internal/commands/integration/cloud/aws.py +1 -0
  604. ansible_test/_internal/commands/integration/cloud/azure.py +1 -0
  605. ansible_test/_internal/commands/integration/cloud/cs.py +1 -0
  606. ansible_test/_internal/commands/integration/cloud/digitalocean.py +1 -0
  607. ansible_test/_internal/commands/integration/cloud/galaxy.py +3 -2
  608. ansible_test/_internal/commands/integration/cloud/hcloud.py +1 -0
  609. ansible_test/_internal/commands/integration/cloud/httptester.py +3 -2
  610. ansible_test/_internal/commands/integration/cloud/nios.py +2 -1
  611. ansible_test/_internal/commands/integration/cloud/opennebula.py +1 -0
  612. ansible_test/_internal/commands/integration/cloud/openshift.py +1 -0
  613. ansible_test/_internal/commands/integration/cloud/scaleway.py +1 -0
  614. ansible_test/_internal/commands/integration/cloud/vcenter.py +1 -0
  615. ansible_test/_internal/commands/integration/cloud/vultr.py +1 -0
  616. ansible_test/_internal/commands/integration/coverage.py +8 -2
  617. ansible_test/_internal/commands/integration/filters.py +1 -0
  618. ansible_test/_internal/commands/integration/network.py +1 -0
  619. ansible_test/_internal/commands/integration/posix.py +1 -0
  620. ansible_test/_internal/commands/integration/windows.py +1 -0
  621. ansible_test/_internal/commands/sanity/__init__.py +19 -2
  622. ansible_test/_internal/commands/sanity/ansible_doc.py +1 -0
  623. ansible_test/_internal/commands/sanity/bin_symlinks.py +1 -0
  624. ansible_test/_internal/commands/sanity/compile.py +1 -0
  625. ansible_test/_internal/commands/sanity/ignores.py +1 -0
  626. ansible_test/_internal/commands/sanity/import.py +1 -0
  627. ansible_test/_internal/commands/sanity/integration_aliases.py +12 -0
  628. ansible_test/_internal/commands/sanity/pep8.py +1 -0
  629. ansible_test/_internal/commands/sanity/pslint.py +1 -0
  630. ansible_test/_internal/commands/sanity/pylint.py +25 -26
  631. ansible_test/_internal/commands/sanity/shellcheck.py +1 -0
  632. ansible_test/_internal/commands/sanity/validate_modules.py +1 -0
  633. ansible_test/_internal/commands/sanity/yamllint.py +1 -0
  634. ansible_test/_internal/commands/shell/__init__.py +44 -4
  635. ansible_test/_internal/commands/units/__init__.py +5 -1
  636. ansible_test/_internal/compat/__init__.py +1 -0
  637. ansible_test/_internal/compat/packaging.py +1 -0
  638. ansible_test/_internal/compat/yaml.py +1 -0
  639. ansible_test/_internal/completion.py +1 -0
  640. ansible_test/_internal/config.py +23 -13
  641. ansible_test/_internal/connections.py +1 -0
  642. ansible_test/_internal/constants.py +1 -0
  643. ansible_test/_internal/containers.py +1 -0
  644. ansible_test/_internal/content_config.py +1 -0
  645. ansible_test/_internal/core_ci.py +1 -0
  646. ansible_test/_internal/coverage_util.py +11 -10
  647. ansible_test/_internal/data.py +1 -0
  648. ansible_test/_internal/debugging.py +166 -0
  649. ansible_test/_internal/delegation.py +22 -13
  650. ansible_test/_internal/dev/__init__.py +1 -0
  651. ansible_test/_internal/dev/container_probe.py +1 -0
  652. ansible_test/_internal/diff.py +3 -2
  653. ansible_test/_internal/docker_util.py +2 -1
  654. ansible_test/_internal/encoding.py +1 -0
  655. ansible_test/_internal/executor.py +1 -0
  656. ansible_test/_internal/git.py +1 -0
  657. ansible_test/_internal/host_configs.py +1 -0
  658. ansible_test/_internal/host_profiles.py +260 -16
  659. ansible_test/_internal/http.py +1 -0
  660. ansible_test/_internal/init.py +1 -0
  661. ansible_test/_internal/inventory.py +39 -3
  662. ansible_test/_internal/io.py +1 -0
  663. ansible_test/_internal/metadata.py +95 -4
  664. ansible_test/_internal/payload.py +1 -0
  665. ansible_test/_internal/processes.py +80 -0
  666. ansible_test/_internal/provider/__init__.py +1 -0
  667. ansible_test/_internal/provider/layout/__init__.py +1 -0
  668. ansible_test/_internal/provider/layout/ansible.py +1 -0
  669. ansible_test/_internal/provider/layout/collection.py +1 -0
  670. ansible_test/_internal/provider/layout/unsupported.py +1 -0
  671. ansible_test/_internal/provider/source/__init__.py +1 -0
  672. ansible_test/_internal/provider/source/git.py +1 -0
  673. ansible_test/_internal/provider/source/installed.py +1 -0
  674. ansible_test/_internal/provider/source/unsupported.py +1 -0
  675. ansible_test/_internal/provider/source/unversioned.py +1 -0
  676. ansible_test/_internal/provisioning.py +11 -4
  677. ansible_test/_internal/pypi_proxy.py +6 -5
  678. ansible_test/_internal/python_requirements.py +28 -0
  679. ansible_test/_internal/ssh.py +2 -5
  680. ansible_test/_internal/target.py +9 -0
  681. ansible_test/_internal/test.py +3 -2
  682. ansible_test/_internal/thread.py +3 -1
  683. ansible_test/_internal/timeout.py +2 -1
  684. ansible_test/_internal/util.py +41 -12
  685. ansible_test/_internal/util_common.py +18 -5
  686. ansible_test/_internal/venv.py +1 -0
  687. ansible_test/_util/controller/sanity/code-smell/action-plugin-docs.py +1 -0
  688. ansible_test/_util/controller/sanity/code-smell/changelog/sphinx.py +1 -0
  689. ansible_test/_util/controller/sanity/code-smell/changelog.py +1 -0
  690. ansible_test/_util/controller/sanity/code-smell/empty-init.py +1 -0
  691. ansible_test/_util/controller/sanity/code-smell/line-endings.py +1 -0
  692. ansible_test/_util/controller/sanity/code-smell/no-assert.py +1 -0
  693. ansible_test/_util/controller/sanity/code-smell/no-get-exception.py +1 -0
  694. ansible_test/_util/controller/sanity/code-smell/no-illegal-filenames.py +1 -0
  695. ansible_test/_util/controller/sanity/code-smell/no-smart-quotes.py +1 -0
  696. ansible_test/_util/controller/sanity/code-smell/replace-urlopen.py +1 -0
  697. ansible_test/_util/controller/sanity/code-smell/runtime-metadata.py +28 -1
  698. ansible_test/_util/controller/sanity/code-smell/shebang.py +1 -0
  699. ansible_test/_util/controller/sanity/code-smell/symlinks.py +1 -0
  700. ansible_test/_util/controller/sanity/code-smell/use-argspec-type-path.py +1 -0
  701. ansible_test/_util/controller/sanity/code-smell/use-compat-six.py +1 -0
  702. ansible_test/_util/controller/sanity/integration-aliases/yaml_to_json.py +2 -1
  703. ansible_test/_util/controller/sanity/pep8/current-ignore.txt +4 -0
  704. ansible_test/_util/controller/sanity/pylint/config/ansible-test-target.cfg +8 -5
  705. ansible_test/_util/controller/sanity/pylint/config/ansible-test.cfg +8 -5
  706. ansible_test/_util/controller/sanity/pylint/config/code-smell.cfg +8 -5
  707. ansible_test/_util/controller/sanity/pylint/config/collection.cfg +4 -5
  708. ansible_test/_util/controller/sanity/pylint/config/default.cfg +8 -7
  709. ansible_test/_util/controller/sanity/pylint/plugins/deprecated_calls.py +541 -0
  710. ansible_test/_util/controller/sanity/pylint/plugins/deprecated_comment.py +137 -0
  711. ansible_test/_util/controller/sanity/pylint/plugins/hide_unraisable.py +1 -0
  712. ansible_test/_util/controller/sanity/pylint/plugins/string_format.py +1 -8
  713. ansible_test/_util/controller/sanity/pylint/plugins/unwanted.py +1 -8
  714. ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py +55 -28
  715. ansible_test/_util/controller/sanity/validate-modules/validate_modules/module_args.py +12 -5
  716. ansible_test/_util/controller/sanity/validate-modules/validate_modules/schema.py +13 -2
  717. ansible_test/_util/controller/sanity/validate-modules/validate_modules/utils.py +1 -0
  718. ansible_test/_util/controller/sanity/yamllint/yamllinter.py +35 -17
  719. ansible_test/_util/controller/tools/collection_detail.py +1 -0
  720. ansible_test/_util/controller/tools/yaml_to_json.py +2 -1
  721. ansible_test/_util/target/injector/python.py +8 -0
  722. ansible_test/_util/target/pytest/plugins/ansible_forked.py +6 -1
  723. ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py +2 -1
  724. ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py +1 -0
  725. ansible_test/_util/target/sanity/compile/compile.py +1 -0
  726. ansible_test/_util/target/sanity/import/importer.py +15 -16
  727. ansible_test/_util/target/setup/bootstrap.sh +9 -20
  728. ansible_test/_util/target/setup/probe_cgroups.py +1 -0
  729. ansible_test/_util/target/setup/quiet_pip.py +1 -0
  730. ansible_test/_util/target/setup/requirements.py +38 -36
  731. ansible_test/_util/target/tools/virtualenvcheck.py +2 -1
  732. ansible_test/_util/target/tools/yamlcheck.py +2 -1
  733. ansible/compat/selectors.py +0 -32
  734. ansible/errors/yaml_strings.py +0 -138
  735. ansible/executor/action_write_locks.py +0 -44
  736. ansible/executor/discovery/python_target.py +0 -47
  737. ansible/executor/powershell/module_powershell_wrapper.ps1 +0 -86
  738. ansible/executor/powershell/module_script_wrapper.ps1 +0 -22
  739. ansible/module_utils/compat/importlib.py +0 -26
  740. ansible/module_utils/compat/selectors.py +0 -32
  741. ansible/module_utils/pycompat24.py +0 -73
  742. ansible/parsing/yaml/constructor.py +0 -178
  743. ansible/template/native_helpers.py +0 -251
  744. ansible/template/template.py +0 -43
  745. ansible/template/vars.py +0 -77
  746. ansible/utils/native_jinja.py +0 -11
  747. ansible/vars/fact_cache.py +0 -71
  748. ansible_core-2.18.7.dist-info/RECORD +0 -992
  749. ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py +0 -411
  750. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/WHEEL +0 -0
  751. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/entry_points.txt +0 -0
  752. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/COPYING +0 -0
  753. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/Apache-License.txt +0 -0
  754. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/MIT-license.txt +0 -0
  755. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/PSF-license.txt +0 -0
  756. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/simplified_bsd.txt +0 -0
  757. {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/top_level.txt +0 -0
ansible/config/base.yml CHANGED
@@ -1,6 +1,26 @@
1
1
  # Copyright (c) 2017 Ansible Project
2
2
  # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
3
3
  ---
4
+ _ANSIBALLZ_COVERAGE_CONFIG:
5
+ name: Configure the AnsiballZ code coverage extension
6
+ description:
7
+ - Enables and configures the AnsiballZ code coverage extension.
8
+ - This is for internal use only.
9
+ env:
10
+ - {name: _ANSIBLE_ANSIBALLZ_COVERAGE_CONFIG}
11
+ vars:
12
+ - {name: _ansible_ansiballz_coverage_config}
13
+ version_added: '2.19'
14
+ _ANSIBALLZ_DEBUGGER_CONFIG:
15
+ name: Configure the AnsiballZ remote debugging extension
16
+ description:
17
+ - Enables and configures the AnsiballZ remote debugging extension.
18
+ - This is for internal use only.
19
+ env:
20
+ - {name: _ANSIBLE_ANSIBALLZ_DEBUGGER_CONFIG}
21
+ vars:
22
+ - {name: _ansible_ansiballz_debugger_config}
23
+ version_added: '2.19'
4
24
  _ANSIBLE_CONNECTION_PATH:
5
25
  env:
6
26
  - name: _ANSIBLE_CONNECTION_PATH
@@ -9,6 +29,59 @@ _ANSIBLE_CONNECTION_PATH:
9
29
  - For internal use only.
10
30
  type: path
11
31
  version_added: "2.18"
32
+ _CALLBACK_DISPATCH_ERROR_BEHAVIOR:
33
+ name: Callback dispatch error behavior
34
+ default: warning
35
+ description:
36
+ - Action to take when a callback dispatch results in an error.
37
+ type: choices
38
+ choices: &basic_error
39
+ error: issue a 'fatal' error and stop the play
40
+ warning: issue a warning but continue
41
+ ignore: just continue silently
42
+ env: [ { name: _ANSIBLE_CALLBACK_DISPATCH_ERROR_BEHAVIOR } ]
43
+ version_added: '2.19'
44
+ _MODULE_METADATA:
45
+ name: Enable experimental module metadata
46
+ description:
47
+ - Enables experimental module-level metadata controls for serialization profile selection.
48
+ - This is for internal use only.
49
+ type: boolean
50
+ default: false
51
+ env: [ { name: _ANSIBLE_MODULE_METADATA } ]
52
+ version_added: '2.19'
53
+ ALLOW_BROKEN_CONDITIONALS:
54
+ # This config option will be deprecated once it no longer has any effect (2.23).
55
+ name: Allow broken conditionals
56
+ default: false
57
+ description:
58
+ - When enabled, this option allows conditionals with non-boolean results to be used.
59
+ - A deprecation warning will be emitted in these cases.
60
+ - By default, non-boolean conditionals result in an error.
61
+ - Such results often indicate unintentional use of templates where they are not supported, resulting in a conditional that is always true.
62
+ - When this option is enabled, conditional expressions which are a literal ``None`` or empty string will evaluate as true for backwards compatibility.
63
+ env: [{name: ANSIBLE_ALLOW_BROKEN_CONDITIONALS}]
64
+ ini:
65
+ - {key: allow_broken_conditionals, section: defaults}
66
+ type: boolean
67
+ version_added: "2.19"
68
+ ALLOW_EMBEDDED_TEMPLATES:
69
+ name: Allow embedded templates
70
+ default: true
71
+ description:
72
+ - When enabled, this option allows embedded templates to be used for specific backward compatibility scenarios.
73
+ - A deprecation warning will be emitted in these cases.
74
+ - First, conditionals (for example, ``failed_when``, ``until``, ``assert.that``) fully enclosed in template delimiters.
75
+ - "Second, string constants in conditionals (for example, ``when: some_var == '{{ some_other_var }}'``)."
76
+ - Finally, positional arguments to lookups (for example, ``lookup('pipe', 'echo {{ some_var }}')``).
77
+ - This feature is deprecated, since embedded templates are unnecessary in these cases.
78
+ - When disabled, use of embedded templates will result in an error.
79
+ - A future release will disable this feature by default.
80
+ env: [{name: ANSIBLE_ALLOW_EMBEDDED_TEMPLATES}]
81
+ ini:
82
+ - {key: allow_embedded_templates, section: defaults}
83
+ type: boolean
84
+ version_added: "2.19"
12
85
  ANSIBLE_HOME:
13
86
  name: The Ansible home path
14
87
  description:
@@ -160,33 +233,33 @@ AGNOSTIC_BECOME_PROMPT:
160
233
  yaml: {key: privilege_escalation.agnostic_become_prompt}
161
234
  version_added: "2.5"
162
235
  CACHE_PLUGIN:
163
- name: Persistent Cache plugin
236
+ name: Persistent Fact Cache plugin
164
237
  default: memory
165
- description: Chooses which cache plugin to use, the default 'memory' is ephemeral.
238
+ description: Chooses which fact cache plugin to use. By default, no cache is used and facts do not persist between runs.
166
239
  env: [{name: ANSIBLE_CACHE_PLUGIN}]
167
240
  ini:
168
241
  - {key: fact_caching, section: defaults}
169
242
  yaml: {key: facts.cache.plugin}
170
243
  CACHE_PLUGIN_CONNECTION:
171
- name: Cache Plugin URI
244
+ name: Fact Cache Plugin URI
172
245
  default: ~
173
- description: Defines connection or path information for the cache plugin.
246
+ description: Defines connection or path information for the fact cache plugin.
174
247
  env: [{name: ANSIBLE_CACHE_PLUGIN_CONNECTION}]
175
248
  ini:
176
249
  - {key: fact_caching_connection, section: defaults}
177
250
  yaml: {key: facts.cache.uri}
178
251
  CACHE_PLUGIN_PREFIX:
179
- name: Cache Plugin table prefix
252
+ name: Fact Cache Plugin table prefix
180
253
  default: ansible_facts
181
- description: Prefix to use for cache plugin files/tables.
254
+ description: Prefix to use for fact cache plugin files/tables.
182
255
  env: [{name: ANSIBLE_CACHE_PLUGIN_PREFIX}]
183
256
  ini:
184
257
  - {key: fact_caching_prefix, section: defaults}
185
258
  yaml: {key: facts.cache.prefix}
186
259
  CACHE_PLUGIN_TIMEOUT:
187
- name: Cache Plugin expiration timeout
260
+ name: Fact Cache Plugin expiration timeout
188
261
  default: 86400
189
- description: Expiration timeout for the cache plugin data.
262
+ description: Expiration timeout for the fact cache plugin data.
190
263
  env: [{name: ANSIBLE_CACHE_PLUGIN_TIMEOUT}]
191
264
  ini:
192
265
  - {key: fact_caching_timeout, section: defaults}
@@ -212,18 +285,9 @@ COLLECTIONS_PATHS:
212
285
  default: '{{ ANSIBLE_HOME ~ "/collections:/usr/share/ansible/collections" }}'
213
286
  type: pathspec
214
287
  env:
215
- - name: ANSIBLE_COLLECTIONS_PATHS
216
- deprecated:
217
- why: does not fit var naming standard, use the singular form ANSIBLE_COLLECTIONS_PATH instead
218
- version: "2.19"
219
288
  - name: ANSIBLE_COLLECTIONS_PATH
220
289
  version_added: '2.10'
221
290
  ini:
222
- - key: collections_paths
223
- section: defaults
224
- deprecated:
225
- why: does not fit var naming standard, use the singular form collections_path instead
226
- version: "2.19"
227
291
  - key: collections_path
228
292
  section: defaults
229
293
  version_added: '2.10'
@@ -233,10 +297,7 @@ COLLECTIONS_ON_ANSIBLE_VERSION_MISMATCH:
233
297
  - When a collection is loaded that does not support the running Ansible version (with the collection metadata key `requires_ansible`).
234
298
  env: [{name: ANSIBLE_COLLECTIONS_ON_ANSIBLE_VERSION_MISMATCH}]
235
299
  ini: [{key: collections_on_ansible_version_mismatch, section: defaults}]
236
- choices: &basic_error
237
- error: issue a 'fatal' error and stop the play
238
- warning: issue a warning but continue
239
- ignore: just continue silently
300
+ choices: *basic_error
240
301
  default: warning
241
302
  COLOR_CHANGED:
242
303
  name: Color for 'changed' task status
@@ -505,6 +566,10 @@ DEFAULT_ALLOW_UNSAFE_LOOKUPS:
505
566
  - {key: allow_unsafe_lookups, section: defaults}
506
567
  type: boolean
507
568
  version_added: "2.2.3"
569
+ deprecated:
570
+ why: This option is no longer used in the Ansible Core code base.
571
+ version: "2.23"
572
+ alternatives: Lookup plugins are responsible for tagging strings containing templates to allow evaluation as a template.
508
573
  DEFAULT_ASK_PASS:
509
574
  name: Ask for the login password
510
575
  default: False
@@ -721,7 +786,7 @@ DEFAULT_HASH_BEHAVIOUR:
721
786
  - {key: hash_behaviour, section: defaults}
722
787
  DEFAULT_HOST_LIST:
723
788
  name: Inventory Source
724
- default: /etc/ansible/hosts
789
+ default: [/etc/ansible/hosts]
725
790
  description: Comma-separated list of Ansible inventory sources
726
791
  env:
727
792
  - name: ANSIBLE_INVENTORY
@@ -764,15 +829,20 @@ DEFAULT_INVENTORY_PLUGIN_PATH:
764
829
  DEFAULT_JINJA2_EXTENSIONS:
765
830
  name: Enabled Jinja2 extensions
766
831
  default: []
832
+ type: list
767
833
  description:
768
834
  - This is a developer-specific feature that allows enabling additional Jinja2 extensions.
769
835
  - "See the Jinja2 documentation for details. If you do not know what these do, you probably don't need to change this setting :)"
770
836
  env: [{name: ANSIBLE_JINJA2_EXTENSIONS}]
771
837
  ini:
772
838
  - {key: jinja2_extensions, section: defaults}
839
+ deprecated:
840
+ why: Jinja2 extensions have been deprecated
841
+ version: "2.23"
842
+ alternatives: Ansible-supported Jinja plugins (tests, filters, lookups)
773
843
  DEFAULT_JINJA2_NATIVE:
774
844
  name: Use Jinja2's NativeEnvironment for templating
775
- default: False
845
+ default: True
776
846
  description: This option preserves variable types during template operations.
777
847
  env: [{name: ANSIBLE_JINJA2_NATIVE}]
778
848
  ini:
@@ -780,6 +850,10 @@ DEFAULT_JINJA2_NATIVE:
780
850
  type: boolean
781
851
  yaml: {key: jinja2_native}
782
852
  version_added: 2.7
853
+ deprecated:
854
+ why: This option is no longer used in the Ansible Core code base.
855
+ version: "2.23"
856
+ alternatives: Jinja2 native mode is now the default and only option.
783
857
  DEFAULT_KEEP_REMOTE_FILES:
784
858
  name: Keep remote files
785
859
  default: False
@@ -791,7 +865,6 @@ DEFAULT_KEEP_REMOTE_FILES:
791
865
  - {key: keep_remote_files, section: defaults}
792
866
  type: boolean
793
867
  DEFAULT_LIBVIRT_LXC_NOSECLABEL:
794
- # TODO: move to plugin
795
868
  name: No security label on Lxc
796
869
  default: False
797
870
  description:
@@ -803,6 +876,10 @@ DEFAULT_LIBVIRT_LXC_NOSECLABEL:
803
876
  - {key: libvirt_lxc_noseclabel, section: selinux}
804
877
  type: boolean
805
878
  version_added: "2.1"
879
+ deprecated:
880
+ why: This option was moved to the plugin itself
881
+ version: "2.22"
882
+ alternatives: Use the option from the plugin itself.
806
883
  DEFAULT_LOAD_CALLBACK_PLUGINS:
807
884
  name: Load callbacks for adhoc
808
885
  default: False
@@ -858,6 +935,10 @@ DEFAULT_MANAGED_STR:
858
935
  ini:
859
936
  - {key: ansible_managed, section: defaults}
860
937
  yaml: {key: defaults.ansible_managed}
938
+ deprecated:
939
+ why: The `ansible_managed` variable can be set just like any other variable, or a different variable can be used.
940
+ version: "2.23"
941
+ alternatives: Set the `ansible_managed` variable, or use any custom variable in templates.
861
942
  DEFAULT_MODULE_ARGS:
862
943
  name: Adhoc default arguments
863
944
  default: ~
@@ -936,6 +1017,10 @@ DEFAULT_NULL_REPRESENTATION:
936
1017
  ini:
937
1018
  - {key: null_representation, section: defaults}
938
1019
  type: raw
1020
+ deprecated:
1021
+ why: This option is no longer used in the Ansible Core code base.
1022
+ version: "2.23"
1023
+ alternatives: There is no alternative at the moment. A different mechanism would have to be implemented in the current code base.
939
1024
  DEFAULT_POLL_INTERVAL:
940
1025
  name: Async poll interval
941
1026
  default: 15
@@ -1002,7 +1087,7 @@ DEFAULT_ROLES_PATH:
1002
1087
  yaml: {key: defaults.roles_path}
1003
1088
  DEFAULT_SELINUX_SPECIAL_FS:
1004
1089
  name: Problematic file systems
1005
- default: fuse, nfs, vboxsf, ramfs, 9p, vfat
1090
+ default: [fuse, nfs, vboxsf, ramfs, 9p, vfat]
1006
1091
  description:
1007
1092
  - "Some filesystems do not support safe operations and/or return inconsistent errors,
1008
1093
  this setting makes Ansible 'tolerate' those in the list without causing fatal errors."
@@ -1135,6 +1220,10 @@ DEFAULT_UNDEFINED_VAR_BEHAVIOR:
1135
1220
  ini:
1136
1221
  - {key: error_on_undefined_vars, section: defaults}
1137
1222
  type: boolean
1223
+ deprecated:
1224
+ why: This option is no longer used in the Ansible Core code base.
1225
+ version: "2.23"
1226
+ alternatives: There is no alternative at the moment. A different mechanism would have to be implemented in the current code base.
1138
1227
  DEFAULT_VARS_PLUGIN_PATH:
1139
1228
  name: Vars Plugins Path
1140
1229
  default: '{{ ANSIBLE_HOME ~ "/plugins/vars:/usr/share/ansible/plugins/vars" }}'
@@ -1143,15 +1232,6 @@ DEFAULT_VARS_PLUGIN_PATH:
1143
1232
  ini:
1144
1233
  - {key: vars_plugins, section: defaults}
1145
1234
  type: pathspec
1146
- # TODO: unused?
1147
- #DEFAULT_VAR_COMPRESSION_LEVEL:
1148
- # default: 0
1149
- # description: 'TODO: write it'
1150
- # env: [{name: ANSIBLE_VAR_COMPRESSION_LEVEL}]
1151
- # ini:
1152
- # - {key: var_compression_level, section: defaults}
1153
- # type: integer
1154
- # yaml: {key: defaults.var_compression_level}
1155
1235
  DEFAULT_VAULT_ID_MATCH:
1156
1236
  name: Force vault id match
1157
1237
  default: False
@@ -1219,6 +1299,9 @@ DEPRECATION_WARNINGS:
1219
1299
  ini:
1220
1300
  - {key: deprecation_warnings, section: defaults}
1221
1301
  type: boolean
1302
+ vars:
1303
+ - name: ansible_deprecation_warnings
1304
+ version_added: '2.19'
1222
1305
  DEVEL_WARNING:
1223
1306
  name: Running devel warning
1224
1307
  default: True
@@ -1272,6 +1355,23 @@ DISPLAY_SKIPPED_HOSTS:
1272
1355
  ini:
1273
1356
  - {key: display_skipped_hosts, section: defaults}
1274
1357
  type: boolean
1358
+ DISPLAY_TRACEBACK:
1359
+ name: Control traceback display
1360
+ default: [never]
1361
+ description: When to include tracebacks in extended error messages
1362
+ env:
1363
+ - name: ANSIBLE_DISPLAY_TRACEBACK
1364
+ ini:
1365
+ - {key: display_traceback, section: defaults}
1366
+ type: list
1367
+ choices:
1368
+ - error
1369
+ - warning
1370
+ - deprecated
1371
+ - deprecated_value
1372
+ - always
1373
+ - never
1374
+ version_added: "2.19"
1275
1375
  DOCSITE_ROOT_URL:
1276
1376
  name: Root docsite URL
1277
1377
  default: https://docs.ansible.com/ansible-core/
@@ -1405,15 +1505,6 @@ GALAXY_COLLECTIONS_PATH_WARNING:
1405
1505
  ini:
1406
1506
  - {key: collections_path_warning, section: galaxy}
1407
1507
  version_added: "2.16"
1408
- # TODO: unused?
1409
- #GALAXY_SCMS:
1410
- # name: Galaxy SCMS
1411
- # default: git, hg
1412
- # description: Available galaxy source control management systems.
1413
- # env: [{name: ANSIBLE_GALAXY_SCMS}]
1414
- # ini:
1415
- # - {key: scms, section: galaxy}
1416
- # type: list
1417
1508
  GALAXY_SERVER:
1418
1509
  default: https://galaxy.ansible.com
1419
1510
  description: "URL to prepend when roles don't specify the full URI, assume they are referencing this server as the source."
@@ -1579,21 +1670,12 @@ INTERPRETER_PYTHON:
1579
1670
  description:
1580
1671
  - Path to the Python interpreter to be used for module execution on remote targets, or an automatic discovery mode.
1581
1672
  Supported discovery modes are ``auto`` (the default), ``auto_silent``, ``auto_legacy``, and ``auto_legacy_silent``.
1582
- All discovery modes employ a lookup table to use the included system Python (on distributions known to include one),
1583
- falling back to a fixed ordered list of well-known Python interpreter locations if a platform-specific default is not
1584
- available. The fallback behavior will issue a warning that the interpreter should be set explicitly (since interpreters
1585
- installed later may change which one is used). This warning behavior can be disabled by setting ``auto_silent`` or
1586
- ``auto_legacy_silent``. The value of ``auto_legacy`` provides all the same behavior, but for backward-compatibility
1587
- with older Ansible releases that always defaulted to ``/usr/bin/python``, will use that interpreter if present.
1588
- _INTERPRETER_PYTHON_DISTRO_MAP:
1589
- name: Mapping of known included platform pythons for various Linux distros
1590
- default:
1591
- # Entry only for testing
1592
- ansible test:
1593
- '99': /usr/bin/python99
1594
- version_added: "2.8"
1595
- # FUTURE: add inventory override once we're sure it can't be abused by a rogue target
1596
- # FUTURE: add a platform layer to the map so we could use for, eg, freebsd/macos/etc?
1673
+ All discovery modes match against an ordered list of well-known Python interpreter locations.
1674
+ The fallback behavior will issue a warning that the interpreter should be set explicitly (since interpreters
1675
+ installed later may change which one is used). This warning behavior can be disabled by setting ``auto_silent``.
1676
+ The ``auto_legacy`` modes are deprecated and behave the same as their respective ``auto`` modes.
1677
+ They exist for backward-compatibility with older Ansible releases that always defaulted to ``/usr/bin/python3``,
1678
+ which will use that interpreter if present.
1597
1679
  INTERPRETER_PYTHON_FALLBACK:
1598
1680
  name: Ordered list of Python interpreters to check for in discovery
1599
1681
  default:
@@ -1647,60 +1729,6 @@ INVENTORY_ANY_UNPARSED_IS_FAILED:
1647
1729
  ini:
1648
1730
  - {key: any_unparsed_is_failed, section: inventory}
1649
1731
  version_added: "2.7"
1650
- INVENTORY_CACHE_ENABLED:
1651
- name: Inventory caching enabled
1652
- default: False
1653
- description:
1654
- - Toggle to turn on inventory caching.
1655
- - This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
1656
- - The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory configuration.
1657
- - This message will be removed in 2.16.
1658
- env: [{name: ANSIBLE_INVENTORY_CACHE}]
1659
- ini:
1660
- - {key: cache, section: inventory}
1661
- type: bool
1662
- INVENTORY_CACHE_PLUGIN:
1663
- name: Inventory cache plugin
1664
- description:
1665
- - The plugin for caching inventory.
1666
- - This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
1667
- - The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory and fact cache configuration.
1668
- - This message will be removed in 2.16.
1669
- env: [{name: ANSIBLE_INVENTORY_CACHE_PLUGIN}]
1670
- ini:
1671
- - {key: cache_plugin, section: inventory}
1672
- INVENTORY_CACHE_PLUGIN_CONNECTION:
1673
- name: Inventory cache plugin URI to override the defaults section
1674
- description:
1675
- - The inventory cache connection.
1676
- - This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
1677
- - The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory and fact cache configuration.
1678
- - This message will be removed in 2.16.
1679
- env: [{name: ANSIBLE_INVENTORY_CACHE_CONNECTION}]
1680
- ini:
1681
- - {key: cache_connection, section: inventory}
1682
- INVENTORY_CACHE_PLUGIN_PREFIX:
1683
- name: Inventory cache plugin table prefix
1684
- description:
1685
- - The table prefix for the cache plugin.
1686
- - This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
1687
- - The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory and fact cache configuration.
1688
- - This message will be removed in 2.16.
1689
- env: [{name: ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX}]
1690
- default: ansible_inventory_
1691
- ini:
1692
- - {key: cache_prefix, section: inventory}
1693
- INVENTORY_CACHE_TIMEOUT:
1694
- name: Inventory cache plugin expiration timeout
1695
- description:
1696
- - Expiration timeout for the inventory cache plugin data.
1697
- - This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
1698
- - The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory and fact cache configuration.
1699
- - This message will be removed in 2.16.
1700
- default: 3600
1701
- env: [{name: ANSIBLE_INVENTORY_CACHE_TIMEOUT}]
1702
- ini:
1703
- - {key: cache_timeout, section: inventory}
1704
1732
  INVENTORY_ENABLED:
1705
1733
  name: Active Inventory plugins
1706
1734
  default: ['host_list', 'script', 'auto', 'yaml', 'ini', 'toml']
@@ -1719,7 +1747,7 @@ INVENTORY_EXPORT:
1719
1747
  type: bool
1720
1748
  INVENTORY_IGNORE_EXTS:
1721
1749
  name: Inventory ignore extensions
1722
- default: "{{(REJECT_EXTS + ('.orig', '.ini', '.cfg', '.retry'))}}"
1750
+ default: "{{ REJECT_EXTS + ['.orig', '.cfg', '.retry'] }}"
1723
1751
  description: List of extensions to ignore when using a directory as an inventory source.
1724
1752
  env: [{name: ANSIBLE_INVENTORY_IGNORE}]
1725
1753
  ini:
@@ -1776,7 +1804,7 @@ INJECT_FACTS_AS_VARS:
1776
1804
  version_added: "2.5"
1777
1805
  MODULE_IGNORE_EXTS:
1778
1806
  name: Module ignore extensions
1779
- default: "{{(REJECT_EXTS + ('.yaml', '.yml', '.ini'))}}"
1807
+ default: "{{ REJECT_EXTS + ['.yaml', '.yml', '.ini'] }}"
1780
1808
  description:
1781
1809
  - List of extensions to ignore when looking for modules to load.
1782
1810
  - This is for rejecting script and binary module fallback extensions.
@@ -1957,6 +1985,32 @@ SHOW_CUSTOM_STATS:
1957
1985
  ini:
1958
1986
  - {key: show_custom_stats, section: defaults}
1959
1987
  type: bool
1988
+ SSH_AGENT:
1989
+ name: Manage an SSH Agent
1990
+ description: Manage an SSH Agent via Ansible. A configuration of ``none`` will not interact with an agent,
1991
+ ``auto`` will start and destroy an agent via ``ssh-agent`` binary during the run, and a path
1992
+ to an SSH_AUTH_SOCK will allow interaction with a pre-existing agent.
1993
+ default: none
1994
+ type: string
1995
+ env: [{name: ANSIBLE_SSH_AGENT}]
1996
+ ini: [{key: ssh_agent, section: connection}]
1997
+ version_added: '2.19'
1998
+ SSH_AGENT_EXECUTABLE:
1999
+ name: Executable to start for the ansible-managed SSH agent
2000
+ description: When ``SSH_AGENT`` is ``auto``, the path or name of the ssh agent executable to start.
2001
+ default: ssh-agent
2002
+ type: str
2003
+ env: [ { name: ANSIBLE_SSH_AGENT_EXECUTABLE } ]
2004
+ ini: [ { key: ssh_agent_executable, section: connection } ]
2005
+ version_added: '2.19'
2006
+ SSH_AGENT_KEY_LIFETIME:
2007
+ name: Set a maximum lifetime when adding identities to an agent
2008
+ description: For keys inserted into an agent defined by ``SSH_AGENT``, define a lifetime, in seconds, that the key may remain
2009
+ in the agent.
2010
+ type: int
2011
+ env: [{name: ANSIBLE_SSH_AGENT_KEY_LIFETIME}]
2012
+ ini: [{key: ssh_agent_key_lifetime, section: connection}]
2013
+ version_added: '2.19'
1960
2014
  STRING_TYPE_FILTERS:
1961
2015
  name: Filters to preserve strings
1962
2016
  default: [string, to_json, to_nice_json, to_yaml, to_nice_yaml, ppretty, json]
@@ -1967,6 +2021,10 @@ STRING_TYPE_FILTERS:
1967
2021
  ini:
1968
2022
  - {key: dont_type_filters, section: jinja2}
1969
2023
  type: list
2024
+ deprecated:
2025
+ why: This option has no effect.
2026
+ version: "2.23"
2027
+ alternatives: None; native types returned from filters are always preserved.
1970
2028
  SYSTEM_WARNINGS:
1971
2029
  name: System warnings
1972
2030
  default: True
@@ -2019,6 +2077,52 @@ TASK_TIMEOUT:
2019
2077
  - {key: task_timeout, section: defaults}
2020
2078
  type: integer
2021
2079
  version_added: '2.10'
2080
+ _TEMPLAR_SANDBOX_MODE:
2081
+ name: Control Jinja template sandbox behavior
2082
+ default: default
2083
+ description:
2084
+ - The default Jinja sandbox behavior blocks template access to all `_` prefixed object attributes and known collection mutation methods (e.g., `dict.clear()`, `list.append()`).
2085
+ type: choices
2086
+ choices:
2087
+ - default
2088
+ - allow_unsafe_attributes
2089
+ env: [{name: _ANSIBLE_TEMPLAR_SANDBOX_MODE}]
2090
+ deprecated:
2091
+ why: controlling sandbox behavior is a temporary workaround
2092
+ version: '2.23'
2093
+ _TEMPLAR_UNKNOWN_TYPE_CONVERSION:
2094
+ name: Templar unknown type conversion behavior
2095
+ default: warning
2096
+ description:
2097
+ - Action to take when an unknown type is converted for variable storage during template finalization.
2098
+ - This setting has no effect on the inability to store unsupported variable types as the result of templating.
2099
+ - Experimental diagnostic feature, subject to change.
2100
+ type: choices
2101
+ choices: *basic_error
2102
+ env: [{name: _ANSIBLE_TEMPLAR_UNKNOWN_TYPE_CONVERSION}]
2103
+ version_added: '2.19'
2104
+ _TEMPLAR_UNKNOWN_TYPE_ENCOUNTERED:
2105
+ name: Templar unknown type encountered behavior
2106
+ default: ignore
2107
+ description:
2108
+ - Action to take when an unknown type is encountered inside a template pipeline.
2109
+ - Experimental diagnostic feature, subject to change.
2110
+ type: choices
2111
+ choices: *basic_error
2112
+ env: [{name: _ANSIBLE_TEMPLAR_UNKNOWN_TYPE_ENCOUNTERED}]
2113
+ version_added: '2.19'
2114
+ _TEMPLAR_UNTRUSTED_TEMPLATE_BEHAVIOR:
2115
+ name: Templar untrusted template behavior
2116
+ default: ignore
2117
+ description:
2118
+ - Action to take when processing of an untrusted template is skipped.
2119
+ - For `ignore` or `warn`, the input template string is returned as-is.
2120
+ - This setting has no effect on expressions.
2121
+ - Experimental diagnostic feature, subject to change.
2122
+ type: choices
2123
+ choices: *basic_error
2124
+ env: [{name: _ANSIBLE_TEMPLAR_UNTRUSTED_TEMPLATE_BEHAVIOR}]
2125
+ version_added: '2.19'
2022
2126
  WORKER_SHUTDOWN_POLL_COUNT:
2023
2127
  name: Worker Shutdown Poll Count
2024
2128
  default: 0
@@ -2102,25 +2206,6 @@ NETCONF_SSH_CONFIG:
2102
2206
  - {key: ssh_config, section: netconf_connection}
2103
2207
  yaml: {key: netconf_connection.ssh_config}
2104
2208
  default: null
2105
- STRING_CONVERSION_ACTION:
2106
- version_added: '2.8'
2107
- description:
2108
- - Action to take when a module parameter value is converted to a string (this does not affect variables).
2109
- For string parameters, values such as '1.00', "['a', 'b',]", and 'yes', 'y', etc.
2110
- will be converted by the YAML parser unless fully quoted.
2111
- - Valid options are 'error', 'warn', and 'ignore'.
2112
- - Since 2.8, this option defaults to 'warn' but will change to 'error' in 2.12.
2113
- default: 'warn'
2114
- env:
2115
- - name: ANSIBLE_STRING_CONVERSION_ACTION
2116
- ini:
2117
- - section: defaults
2118
- key: string_conversion_action
2119
- type: string
2120
- deprecated:
2121
- why: This option is no longer used in the Ansible Core code base.
2122
- version: "2.19"
2123
- alternatives: There is no alternative at the moment. A different mechanism would have to be implemented in the current code base.
2124
2209
  VALIDATE_ACTION_GROUP_METADATA:
2125
2210
  version_added: '2.12'
2126
2211
  description: