ansible-core 2.15.4rc1__py3-none-any.whl → 2.16.0b2__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 (427) hide show
  1. ansible/cli/__init__.py +3 -3
  2. ansible/cli/adhoc.py +1 -1
  3. ansible/cli/arguments/option_helpers.py +15 -5
  4. ansible/cli/config.py +2 -2
  5. ansible/cli/console.py +21 -17
  6. ansible/cli/doc.py +8 -9
  7. ansible/cli/galaxy.py +60 -27
  8. ansible/cli/inventory.py +1 -1
  9. ansible/cli/playbook.py +1 -1
  10. ansible/cli/pull.py +2 -2
  11. ansible/cli/scripts/ansible_connection_cli_stub.py +1 -1
  12. ansible/cli/vault.py +11 -6
  13. ansible/collections/__init__.py +0 -29
  14. ansible/collections/list.py +23 -44
  15. ansible/config/ansible_builtin_runtime.yml +8 -4
  16. ansible/config/base.yml +34 -22
  17. ansible/config/manager.py +1 -1
  18. ansible/constants.py +3 -5
  19. ansible/errors/__init__.py +1 -1
  20. ansible/executor/interpreter_discovery.py +1 -1
  21. ansible/executor/module_common.py +39 -32
  22. ansible/executor/play_iterator.py +0 -15
  23. ansible/executor/playbook_executor.py +3 -3
  24. ansible/executor/powershell/module_manifest.py +1 -1
  25. ansible/executor/powershell/module_wrapper.ps1 +4 -1
  26. ansible/executor/process/worker.py +22 -7
  27. ansible/executor/task_executor.py +39 -40
  28. ansible/executor/task_queue_manager.py +8 -11
  29. ansible/galaxy/__init__.py +1 -1
  30. ansible/galaxy/api.py +8 -11
  31. ansible/galaxy/collection/__init__.py +17 -4
  32. ansible/galaxy/collection/concrete_artifact_manager.py +7 -2
  33. ansible/galaxy/collection/galaxy_api_proxy.py +1 -1
  34. ansible/galaxy/data/container/README.md +3 -5
  35. ansible/galaxy/dependency_resolution/__init__.py +1 -6
  36. ansible/galaxy/dependency_resolution/dataclasses.py +22 -1
  37. ansible/galaxy/dependency_resolution/providers.py +61 -69
  38. ansible/galaxy/role.py +31 -13
  39. ansible/galaxy/token.py +2 -2
  40. ansible/inventory/group.py +1 -1
  41. ansible/inventory/manager.py +1 -1
  42. ansible/module_utils/ansible_release.py +2 -2
  43. ansible/module_utils/basic.py +11 -41
  44. ansible/module_utils/common/file.py +0 -100
  45. ansible/module_utils/common/json.py +1 -1
  46. ansible/module_utils/common/locale.py +1 -1
  47. ansible/module_utils/common/text/converters.py +2 -2
  48. ansible/module_utils/common/validation.py +1 -1
  49. ansible/module_utils/compat/_selectors2.py +4 -4
  50. ansible/module_utils/compat/datetime.py +40 -0
  51. ansible/module_utils/compat/selinux.py +1 -1
  52. ansible/module_utils/compat/typing.py +1 -1
  53. ansible/module_utils/connection.py +1 -1
  54. ansible/module_utils/facts/hardware/linux.py +2 -2
  55. ansible/module_utils/facts/hardware/openbsd.py +1 -1
  56. ansible/module_utils/facts/network/linux.py +3 -3
  57. ansible/module_utils/facts/other/facter.py +8 -15
  58. ansible/module_utils/facts/sysctl.py +1 -1
  59. ansible/module_utils/facts/system/date_time.py +2 -2
  60. ansible/module_utils/facts/system/distribution.py +1 -1
  61. ansible/module_utils/facts/system/local.py +6 -2
  62. ansible/module_utils/facts/system/pkg_mgr.py +6 -1
  63. ansible/module_utils/facts/system/service_mgr.py +4 -2
  64. ansible/module_utils/parsing/convert_bool.py +1 -1
  65. ansible/module_utils/service.py +9 -6
  66. ansible/module_utils/urls.py +40 -22
  67. ansible/modules/add_host.py +2 -2
  68. ansible/modules/apt.py +48 -31
  69. ansible/modules/apt_key.py +4 -4
  70. ansible/modules/apt_repository.py +5 -5
  71. ansible/modules/assemble.py +7 -7
  72. ansible/modules/assert.py +1 -1
  73. ansible/modules/async_status.py +11 -7
  74. ansible/modules/async_wrapper.py +1 -1
  75. ansible/modules/blockinfile.py +60 -17
  76. ansible/modules/command.py +37 -15
  77. ansible/modules/copy.py +35 -30
  78. ansible/modules/cron.py +14 -14
  79. ansible/modules/deb822_repository.py +4 -3
  80. ansible/modules/debconf.py +35 -14
  81. ansible/modules/debug.py +1 -1
  82. ansible/modules/dnf.py +29 -27
  83. ansible/modules/dnf5.py +22 -22
  84. ansible/modules/dpkg_selections.py +9 -2
  85. ansible/modules/expect.py +4 -4
  86. ansible/modules/fetch.py +7 -7
  87. ansible/modules/file.py +30 -30
  88. ansible/modules/find.py +82 -22
  89. ansible/modules/gather_facts.py +6 -2
  90. ansible/modules/get_url.py +29 -29
  91. ansible/modules/getent.py +4 -4
  92. ansible/modules/git.py +27 -27
  93. ansible/modules/group.py +5 -12
  94. ansible/modules/hostname.py +21 -2
  95. ansible/modules/include_role.py +5 -5
  96. ansible/modules/include_tasks.py +2 -2
  97. ansible/modules/include_vars.py +5 -5
  98. ansible/modules/iptables.py +70 -65
  99. ansible/modules/known_hosts.py +7 -7
  100. ansible/modules/lineinfile.py +33 -33
  101. ansible/modules/meta.py +13 -13
  102. ansible/modules/package.py +8 -8
  103. ansible/modules/package_facts.py +3 -3
  104. ansible/modules/pause.py +2 -2
  105. ansible/modules/ping.py +5 -5
  106. ansible/modules/pip.py +80 -46
  107. ansible/modules/reboot.py +8 -4
  108. ansible/modules/replace.py +20 -15
  109. ansible/modules/rpm_key.py +2 -2
  110. ansible/modules/script.py +16 -10
  111. ansible/modules/service.py +26 -98
  112. ansible/modules/service_facts.py +36 -12
  113. ansible/modules/set_fact.py +2 -2
  114. ansible/modules/set_stats.py +2 -2
  115. ansible/modules/setup.py +18 -18
  116. ansible/modules/shell.py +3 -3
  117. ansible/modules/stat.py +9 -30
  118. ansible/modules/subversion.py +9 -9
  119. ansible/modules/systemd.py +20 -19
  120. ansible/modules/systemd_service.py +20 -19
  121. ansible/modules/sysvinit.py +26 -21
  122. ansible/modules/tempfile.py +5 -4
  123. ansible/modules/template.py +60 -6
  124. ansible/modules/unarchive.py +21 -18
  125. ansible/modules/uri.py +39 -39
  126. ansible/modules/user.py +81 -53
  127. ansible/modules/wait_for.py +22 -21
  128. ansible/modules/wait_for_connection.py +4 -4
  129. ansible/modules/yum.py +38 -38
  130. ansible/modules/yum_repository.py +58 -80
  131. ansible/parsing/dataloader.py +27 -27
  132. ansible/parsing/mod_args.py +1 -1
  133. ansible/parsing/plugin_docs.py +3 -3
  134. ansible/parsing/splitter.py +14 -16
  135. ansible/parsing/utils/yaml.py +1 -1
  136. ansible/parsing/vault/__init__.py +8 -6
  137. ansible/parsing/yaml/constructor.py +1 -1
  138. ansible/parsing/yaml/objects.py +1 -1
  139. ansible/playbook/__init__.py +1 -1
  140. ansible/playbook/base.py +2 -2
  141. ansible/playbook/block.py +0 -1
  142. ansible/playbook/conditional.py +40 -114
  143. ansible/playbook/helpers.py +5 -28
  144. ansible/playbook/included_file.py +8 -7
  145. ansible/playbook/play.py +1 -1
  146. ansible/playbook/play_context.py +2 -2
  147. ansible/playbook/playbook_include.py +2 -2
  148. ansible/playbook/role/__init__.py +1 -1
  149. ansible/playbook/role/include.py +1 -1
  150. ansible/playbook/role/metadata.py +1 -1
  151. ansible/playbook/role_include.py +1 -1
  152. ansible/playbook/task.py +2 -2
  153. ansible/playbook/task_include.py +1 -24
  154. ansible/plugins/__init__.py +13 -5
  155. ansible/plugins/action/__init__.py +17 -43
  156. ansible/plugins/action/add_host.py +2 -3
  157. ansible/plugins/action/assemble.py +1 -1
  158. ansible/plugins/action/assert.py +2 -1
  159. ansible/plugins/action/copy.py +2 -2
  160. ansible/plugins/action/debug.py +2 -1
  161. ansible/plugins/action/fail.py +1 -0
  162. ansible/plugins/action/fetch.py +3 -1
  163. ansible/plugins/action/gather_facts.py +37 -13
  164. ansible/plugins/action/group_by.py +1 -0
  165. ansible/plugins/action/include_vars.py +3 -2
  166. ansible/plugins/action/normal.py +3 -3
  167. ansible/plugins/action/pause.py +1 -1
  168. ansible/plugins/action/reboot.py +21 -16
  169. ansible/plugins/action/script.py +23 -8
  170. ansible/plugins/action/set_fact.py +1 -0
  171. ansible/plugins/action/set_stats.py +1 -0
  172. ansible/plugins/action/shell.py +6 -0
  173. ansible/plugins/action/template.py +1 -1
  174. ansible/plugins/action/unarchive.py +1 -1
  175. ansible/plugins/action/uri.py +1 -1
  176. ansible/plugins/action/validate_argument_spec.py +1 -0
  177. ansible/plugins/action/wait_for_connection.py +4 -4
  178. ansible/plugins/become/__init__.py +1 -1
  179. ansible/plugins/become/su.py +1 -1
  180. ansible/plugins/cache/__init__.py +1 -1
  181. ansible/plugins/callback/junit.py +1 -1
  182. ansible/plugins/callback/oneline.py +1 -1
  183. ansible/plugins/callback/tree.py +1 -1
  184. ansible/plugins/cliconf/__init__.py +2 -2
  185. ansible/plugins/connection/__init__.py +65 -37
  186. ansible/plugins/connection/local.py +9 -8
  187. ansible/plugins/connection/paramiko_ssh.py +34 -28
  188. ansible/plugins/connection/psrp.py +56 -43
  189. ansible/plugins/connection/ssh.py +67 -43
  190. ansible/plugins/connection/winrm.py +77 -30
  191. ansible/plugins/doc_fragments/constructed.py +4 -4
  192. ansible/plugins/doc_fragments/files.py +12 -12
  193. ansible/plugins/doc_fragments/inventory_cache.py +0 -6
  194. ansible/plugins/doc_fragments/result_format_callback.py +5 -5
  195. ansible/plugins/doc_fragments/shell_common.py +2 -2
  196. ansible/plugins/doc_fragments/shell_windows.py +1 -1
  197. ansible/plugins/doc_fragments/template_common.py +6 -6
  198. ansible/plugins/doc_fragments/url.py +10 -10
  199. ansible/plugins/doc_fragments/url_windows.py +15 -15
  200. ansible/plugins/doc_fragments/vars_plugin_staging.py +4 -4
  201. ansible/plugins/filter/b64decode.yml +1 -1
  202. ansible/plugins/filter/b64encode.yml +2 -2
  203. ansible/plugins/filter/bool.yml +5 -5
  204. ansible/plugins/filter/combine.yml +1 -1
  205. ansible/plugins/filter/commonpath.yml +2 -1
  206. ansible/plugins/filter/core.py +6 -8
  207. ansible/plugins/filter/dict2items.yml +11 -1
  208. ansible/plugins/filter/difference.yml +1 -0
  209. ansible/plugins/filter/encryption.py +1 -1
  210. ansible/plugins/filter/extract.yml +1 -1
  211. ansible/plugins/filter/flatten.yml +1 -1
  212. ansible/plugins/filter/from_yaml.yml +1 -1
  213. ansible/plugins/filter/from_yaml_all.yml +2 -2
  214. ansible/plugins/filter/hash.yml +1 -1
  215. ansible/plugins/filter/human_readable.yml +1 -1
  216. ansible/plugins/filter/human_to_bytes.yml +2 -2
  217. ansible/plugins/filter/intersect.yml +1 -0
  218. ansible/plugins/filter/mandatory.yml +7 -0
  219. ansible/plugins/filter/mathstuff.py +15 -17
  220. ansible/plugins/filter/normpath.yml +1 -1
  221. ansible/plugins/filter/path_join.yml +8 -1
  222. ansible/plugins/filter/realpath.yml +3 -2
  223. ansible/plugins/filter/regex_findall.yml +8 -2
  224. ansible/plugins/filter/regex_replace.yml +9 -3
  225. ansible/plugins/filter/regex_search.yml +8 -2
  226. ansible/plugins/filter/relpath.yml +2 -2
  227. ansible/plugins/filter/root.yml +1 -1
  228. ansible/plugins/filter/splitext.yml +1 -1
  229. ansible/plugins/filter/subelements.yml +2 -2
  230. ansible/plugins/filter/symmetric_difference.yml +1 -0
  231. ansible/plugins/filter/ternary.yml +5 -5
  232. ansible/plugins/filter/to_json.yml +7 -7
  233. ansible/plugins/filter/to_nice_json.yml +5 -5
  234. ansible/plugins/filter/to_yaml.yml +2 -2
  235. ansible/plugins/filter/type_debug.yml +1 -1
  236. ansible/plugins/filter/union.yml +1 -0
  237. ansible/plugins/filter/unvault.yml +2 -2
  238. ansible/plugins/filter/urldecode.yml +13 -32
  239. ansible/plugins/filter/urlsplit.py +1 -1
  240. ansible/plugins/filter/vault.yml +1 -1
  241. ansible/plugins/filter/zip.yml +1 -1
  242. ansible/plugins/filter/zip_longest.yml +1 -1
  243. ansible/plugins/inventory/__init__.py +1 -1
  244. ansible/plugins/inventory/advanced_host_list.py +1 -1
  245. ansible/plugins/inventory/constructed.py +2 -2
  246. ansible/plugins/inventory/host_list.py +1 -1
  247. ansible/plugins/inventory/ini.py +6 -3
  248. ansible/plugins/inventory/script.py +8 -2
  249. ansible/plugins/inventory/toml.py +1 -1
  250. ansible/plugins/inventory/yaml.py +1 -1
  251. ansible/plugins/list.py +21 -17
  252. ansible/plugins/loader.py +66 -88
  253. ansible/plugins/lookup/__init__.py +1 -1
  254. ansible/plugins/lookup/config.py +16 -6
  255. ansible/plugins/lookup/csvfile.py +7 -4
  256. ansible/plugins/lookup/env.py +1 -1
  257. ansible/plugins/lookup/file.py +5 -2
  258. ansible/plugins/lookup/fileglob.py +5 -2
  259. ansible/plugins/lookup/first_found.py +20 -14
  260. ansible/plugins/lookup/ini.py +6 -3
  261. ansible/plugins/lookup/lines.py +2 -1
  262. ansible/plugins/lookup/password.py +7 -7
  263. ansible/plugins/lookup/pipe.py +1 -0
  264. ansible/plugins/lookup/random_choice.py +2 -2
  265. ansible/plugins/lookup/sequence.py +1 -1
  266. ansible/plugins/lookup/subelements.py +2 -2
  267. ansible/plugins/lookup/template.py +4 -1
  268. ansible/plugins/lookup/unvault.py +4 -1
  269. ansible/plugins/lookup/url.py +6 -6
  270. ansible/plugins/lookup/varnames.py +1 -1
  271. ansible/plugins/netconf/__init__.py +3 -3
  272. ansible/plugins/shell/__init__.py +1 -1
  273. ansible/plugins/shell/cmd.py +7 -7
  274. ansible/plugins/shell/powershell.py +1 -1
  275. ansible/plugins/strategy/__init__.py +8 -10
  276. ansible/plugins/strategy/free.py +1 -1
  277. ansible/plugins/strategy/linear.py +3 -3
  278. ansible/plugins/terminal/__init__.py +2 -2
  279. ansible/plugins/test/abs.yml +1 -1
  280. ansible/plugins/test/all.yml +1 -1
  281. ansible/plugins/test/any.yml +1 -1
  282. ansible/plugins/test/change.yml +2 -2
  283. ansible/plugins/test/changed.yml +2 -2
  284. ansible/plugins/test/contains.yml +1 -1
  285. ansible/plugins/test/core.py +1 -1
  286. ansible/plugins/test/directory.yml +1 -1
  287. ansible/plugins/test/exists.yml +3 -2
  288. ansible/plugins/test/failed.yml +2 -2
  289. ansible/plugins/test/failure.yml +2 -2
  290. ansible/plugins/test/falsy.yml +2 -2
  291. ansible/plugins/test/file.yml +1 -1
  292. ansible/plugins/test/finished.yml +2 -2
  293. ansible/plugins/test/is_abs.yml +1 -1
  294. ansible/plugins/test/is_dir.yml +1 -1
  295. ansible/plugins/test/is_file.yml +1 -1
  296. ansible/plugins/test/is_link.yml +1 -1
  297. ansible/plugins/test/is_mount.yml +1 -1
  298. ansible/plugins/test/is_same_file.yml +1 -1
  299. ansible/plugins/test/isnan.yml +1 -1
  300. ansible/plugins/test/issubset.yml +1 -2
  301. ansible/plugins/test/issuperset.yml +1 -2
  302. ansible/plugins/test/link.yml +1 -1
  303. ansible/plugins/test/link_exists.yml +1 -1
  304. ansible/plugins/test/match.yml +2 -2
  305. ansible/plugins/test/mount.yml +1 -1
  306. ansible/plugins/test/nan.yml +1 -1
  307. ansible/plugins/test/reachable.yml +2 -2
  308. ansible/plugins/test/regex.yml +1 -1
  309. ansible/plugins/test/same_file.yml +1 -1
  310. ansible/plugins/test/search.yml +2 -2
  311. ansible/plugins/test/skip.yml +3 -3
  312. ansible/plugins/test/skipped.yml +3 -3
  313. ansible/plugins/test/started.yml +2 -2
  314. ansible/plugins/test/subset.yml +1 -2
  315. ansible/plugins/test/succeeded.yml +2 -2
  316. ansible/plugins/test/success.yml +2 -2
  317. ansible/plugins/test/successful.yml +2 -2
  318. ansible/plugins/test/superset.yml +1 -2
  319. ansible/plugins/test/truthy.yml +3 -3
  320. ansible/plugins/test/unreachable.yml +2 -2
  321. ansible/plugins/test/uri.yml +1 -1
  322. ansible/plugins/test/url.yml +1 -1
  323. ansible/plugins/test/urn.yml +1 -1
  324. ansible/plugins/test/vault_encrypted.yml +1 -1
  325. ansible/plugins/test/version.yml +7 -7
  326. ansible/plugins/test/version_compare.yml +7 -7
  327. ansible/plugins/vars/host_group_vars.py +1 -1
  328. ansible/release.py +2 -2
  329. ansible/template/__init__.py +24 -26
  330. ansible/template/native_helpers.py +1 -1
  331. ansible/template/vars.py +1 -1
  332. ansible/utils/_junit_xml.py +1 -1
  333. ansible/utils/cmd_functions.py +1 -1
  334. ansible/utils/collection_loader/_collection_finder.py +12 -1
  335. ansible/utils/display.py +113 -62
  336. ansible/utils/encrypt.py +11 -14
  337. ansible/utils/hashing.py +1 -1
  338. ansible/utils/jsonrpc.py +1 -1
  339. ansible/utils/path.py +1 -1
  340. ansible/utils/plugin_docs.py +1 -1
  341. ansible/utils/py3compat.py +1 -1
  342. ansible/utils/shlex.py +2 -10
  343. ansible/utils/ssh_functions.py +5 -4
  344. ansible/utils/unicode.py +1 -1
  345. ansible/utils/unsafe_proxy.py +1 -1
  346. ansible/utils/vars.py +4 -29
  347. ansible/vars/hostvars.py +1 -2
  348. ansible/vars/manager.py +13 -9
  349. ansible/vars/plugins.py +2 -2
  350. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/COPYING +4 -5
  351. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/METADATA +2 -4
  352. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/RECORD +424 -425
  353. ansible_test/_data/completion/docker.txt +9 -9
  354. ansible_test/_data/completion/remote.txt +4 -7
  355. ansible_test/_data/completion/windows.txt +0 -2
  356. ansible_test/_data/requirements/ansible-test.txt +2 -1
  357. ansible_test/_data/requirements/ansible.txt +0 -3
  358. ansible_test/_data/requirements/constraints.txt +0 -2
  359. ansible_test/_data/requirements/sanity.ansible-doc.txt +3 -5
  360. ansible_test/_data/requirements/sanity.changelog.in +1 -2
  361. ansible_test/_data/requirements/sanity.changelog.txt +4 -6
  362. ansible_test/_data/requirements/sanity.import.plugin.txt +2 -4
  363. ansible_test/_data/requirements/sanity.import.txt +1 -3
  364. ansible_test/_data/requirements/sanity.integration-aliases.txt +1 -3
  365. ansible_test/_data/requirements/sanity.mypy.txt +12 -12
  366. ansible_test/_data/requirements/sanity.pep8.txt +1 -1
  367. ansible_test/_data/requirements/sanity.pylint.txt +6 -12
  368. ansible_test/_data/requirements/sanity.runtime-metadata.txt +1 -3
  369. ansible_test/_data/requirements/sanity.validate-modules.in +1 -1
  370. ansible_test/_data/requirements/sanity.validate-modules.txt +3 -5
  371. ansible_test/_data/requirements/sanity.yamllint.txt +3 -5
  372. ansible_test/_data/requirements/units.txt +0 -1
  373. ansible_test/_internal/ci/azp.py +4 -4
  374. ansible_test/_internal/cli/environments.py +0 -13
  375. ansible_test/_internal/commands/coverage/analyze/targets/__init__.py +4 -4
  376. ansible_test/_internal/commands/coverage/combine.py +1 -1
  377. ansible_test/_internal/commands/integration/cloud/acme.py +6 -8
  378. ansible_test/_internal/commands/integration/cloud/cs.py +4 -9
  379. ansible_test/_internal/commands/integration/cloud/galaxy.py +103 -96
  380. ansible_test/_internal/commands/integration/cloud/httptester.py +0 -3
  381. ansible_test/_internal/commands/integration/cloud/nios.py +7 -9
  382. ansible_test/_internal/commands/integration/cloud/openshift.py +2 -7
  383. ansible_test/_internal/commands/integration/cloud/vcenter.py +11 -95
  384. ansible_test/_internal/commands/sanity/__init__.py +10 -0
  385. ansible_test/_internal/commands/sanity/import.py +8 -2
  386. ansible_test/_internal/commands/sanity/pylint.py +27 -1
  387. ansible_test/_internal/commands/units/__init__.py +2 -1
  388. ansible_test/_internal/config.py +0 -7
  389. ansible_test/_internal/containers.py +11 -56
  390. ansible_test/_internal/core_ci.py +0 -7
  391. ansible_test/_internal/coverage_util.py +8 -3
  392. ansible_test/_internal/delegation.py +0 -1
  393. ansible_test/_internal/diff.py +1 -1
  394. ansible_test/_internal/docker_util.py +9 -2
  395. ansible_test/_internal/host_profiles.py +6 -6
  396. ansible_test/_internal/http.py +1 -1
  397. ansible_test/_internal/junit_xml.py +1 -1
  398. ansible_test/_internal/pypi_proxy.py +1 -1
  399. ansible_test/_internal/python_requirements.py +3 -8
  400. ansible_test/_internal/util.py +1 -6
  401. ansible_test/_util/controller/sanity/code-smell/no-get-exception.json +4 -0
  402. ansible_test/_util/controller/sanity/code-smell/replace-urlopen.json +4 -0
  403. ansible_test/_util/controller/sanity/code-smell/use-compat-six.json +4 -0
  404. ansible_test/_util/controller/sanity/mypy/ansible-core.ini +3 -0
  405. ansible_test/_util/controller/sanity/pylint/config/ansible-test-target.cfg +2 -0
  406. ansible_test/_util/controller/sanity/pylint/config/ansible-test.cfg +0 -1
  407. ansible_test/_util/controller/sanity/pylint/config/collection.cfg +1 -0
  408. ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py +172 -10
  409. ansible_test/_util/controller/sanity/pylint/plugins/string_format.py +13 -2
  410. ansible_test/_util/controller/sanity/pylint/plugins/unwanted.py +7 -1
  411. ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py +6 -6
  412. ansible_test/_util/controller/sanity/validate-modules/validate_modules/module_args.py +1 -1
  413. ansible_test/_util/controller/sanity/validate-modules/validate_modules/utils.py +1 -1
  414. ansible_test/_util/controller/sanity/yamllint/yamllinter.py +3 -3
  415. ansible_test/_util/controller/tools/collection_detail.py +2 -2
  416. ansible_test/_util/target/common/constants.py +2 -2
  417. ansible_test/_util/target/pytest/plugins/ansible_forked.py +103 -0
  418. ansible_test/_util/target/sanity/import/importer.py +0 -8
  419. ansible_test/_util/target/setup/bootstrap.sh +36 -16
  420. ansible_test/_util/target/setup/quiet_pip.py +0 -4
  421. ansible/modules/_include.py +0 -80
  422. ansible_test/_internal/commands/integration/cloud/foreman.py +0 -102
  423. ansible_test/_util/target/setup/ConfigureRemotingForAnsible.ps1 +0 -435
  424. {ansible_core-2.15.4rc1.data → ansible_core-2.16.0b2.data}/scripts/ansible-test +0 -0
  425. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/WHEEL +0 -0
  426. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/entry_points.txt +0 -0
  427. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/top_level.txt +0 -0
ansible/modules/stat.py CHANGED
@@ -36,7 +36,7 @@ options:
36
36
  description:
37
37
  - Algorithm to determine checksum of file.
38
38
  - Will throw an error if the host is unable to use specified algorithm.
39
- - The remote host has to support the hashing method specified, C(md5)
39
+ - The remote host has to support the hashing method specified, V(md5)
40
40
  can be unavailable if the host is FIPS-140 compliant.
41
41
  type: str
42
42
  choices: [ md5, sha1, sha224, sha256, sha384, sha512 ]
@@ -47,8 +47,8 @@ options:
47
47
  description:
48
48
  - Use file magic and return data about the nature of the file. this uses
49
49
  the 'file' utility found on most Linux/Unix systems.
50
- - This will add both C(mimetype) and C(charset) fields to the return, if possible.
51
- - In Ansible 2.3 this option changed from I(mime) to I(get_mime) and the default changed to C(true).
50
+ - This will add both RV(stat.mimetype) and RV(stat.charset) fields to the return, if possible.
51
+ - In Ansible 2.3 this option changed from O(mime) to O(get_mime) and the default changed to V(true).
52
52
  type: bool
53
53
  default: yes
54
54
  aliases: [ mime, mime_type, mime-type ]
@@ -144,7 +144,7 @@ RETURN = r'''
144
144
  stat:
145
145
  description: Dictionary containing all the stat data, some platforms might add additional fields.
146
146
  returned: success
147
- type: complex
147
+ type: dict
148
148
  contains:
149
149
  exists:
150
150
  description: If the destination path actually exists or not
@@ -307,13 +307,6 @@ stat:
307
307
  type: str
308
308
  sample: ../foobar/21102015-1445431274-908472971
309
309
  version_added: 2.4
310
- md5:
311
- description: md5 hash of the file; this will be removed in Ansible 2.9 in
312
- favor of the checksum return value
313
- returned: success, path exists and user can read stats and path
314
- supports hashing and md5 is supported
315
- type: str
316
- sample: f88fa92d8cf2eeecf4c0a50ccc96d0c0
317
310
  checksum:
318
311
  description: hash of the file
319
312
  returned: success, path exists, user can read stats, path supports
@@ -333,15 +326,15 @@ stat:
333
326
  mimetype:
334
327
  description: file magic data or mime-type
335
328
  returned: success, path exists and user can read stats and
336
- installed python supports it and the I(get_mime) option was true, will
337
- return C(unknown) on error.
329
+ installed python supports it and the O(get_mime) option was V(true), will
330
+ return V(unknown) on error.
338
331
  type: str
339
332
  sample: application/pdf; charset=binary
340
333
  charset:
341
334
  description: file character set or encoding
342
335
  returned: success, path exists and user can read stats and
343
- installed python supports it and the I(get_mime) option was true, will
344
- return C(unknown) on error.
336
+ installed python supports it and the O(get_mime) option was V(true), will
337
+ return V(unknown) on error.
345
338
  type: str
346
339
  sample: us-ascii
347
340
  readable:
@@ -384,7 +377,7 @@ import stat
384
377
 
385
378
  # import module snippets
386
379
  from ansible.module_utils.basic import AnsibleModule
387
- from ansible.module_utils._text import to_bytes
380
+ from ansible.module_utils.common.text.converters import to_bytes
388
381
 
389
382
 
390
383
  def format_output(module, path, st):
@@ -454,7 +447,6 @@ def main():
454
447
  argument_spec=dict(
455
448
  path=dict(type='path', required=True, aliases=['dest', 'name']),
456
449
  follow=dict(type='bool', default=False),
457
- get_md5=dict(type='bool', default=False),
458
450
  get_checksum=dict(type='bool', default=True),
459
451
  get_mime=dict(type='bool', default=True, aliases=['mime', 'mime_type', 'mime-type']),
460
452
  get_attributes=dict(type='bool', default=True, aliases=['attr', 'attributes']),
@@ -473,10 +465,6 @@ def main():
473
465
  get_checksum = module.params.get('get_checksum')
474
466
  checksum_algorithm = module.params.get('checksum_algorithm')
475
467
 
476
- # NOTE: undocumented option since 2.9 to be removed at a later date if possible (3.0+)
477
- # no real reason for keeping other than fear we may break older content.
478
- get_md5 = module.params.get('get_md5')
479
-
480
468
  # main stat data
481
469
  try:
482
470
  if follow:
@@ -516,15 +504,6 @@ def main():
516
504
 
517
505
  # checksums
518
506
  if output.get('isreg') and output.get('readable'):
519
-
520
- # NOTE: see above about get_md5
521
- if get_md5:
522
- # Will fail on FIPS-140 compliant systems
523
- try:
524
- output['md5'] = module.md5(b_path)
525
- except ValueError:
526
- output['md5'] = None
527
-
528
507
  if get_checksum:
529
508
  output['checksum'] = module.digest_from_file(b_path, checksum_algorithm)
530
509
 
@@ -26,7 +26,7 @@ options:
26
26
  dest:
27
27
  description:
28
28
  - Absolute path where the repository should be deployed.
29
- - The destination directory must be specified unless I(checkout=no), I(update=no), and I(export=no).
29
+ - The destination directory must be specified unless O(checkout=no), O(update=no), and O(export=no).
30
30
  type: path
31
31
  revision:
32
32
  description:
@@ -36,8 +36,8 @@ options:
36
36
  aliases: [ rev, version ]
37
37
  force:
38
38
  description:
39
- - If C(true), modified files will be discarded. If C(false), module will fail if it encounters modified files.
40
- Prior to 1.9 the default was C(true).
39
+ - If V(true), modified files will be discarded. If V(false), module will fail if it encounters modified files.
40
+ Prior to 1.9 the default was V(true).
41
41
  type: bool
42
42
  default: "no"
43
43
  in_place:
@@ -65,32 +65,32 @@ options:
65
65
  version_added: "1.4"
66
66
  checkout:
67
67
  description:
68
- - If C(false), do not check out the repository if it does not exist locally.
68
+ - If V(false), do not check out the repository if it does not exist locally.
69
69
  type: bool
70
70
  default: "yes"
71
71
  version_added: "2.3"
72
72
  update:
73
73
  description:
74
- - If C(false), do not retrieve new revisions from the origin repository.
74
+ - If V(false), do not retrieve new revisions from the origin repository.
75
75
  type: bool
76
76
  default: "yes"
77
77
  version_added: "2.3"
78
78
  export:
79
79
  description:
80
- - If C(true), do export instead of checkout/update.
80
+ - If V(true), do export instead of checkout/update.
81
81
  type: bool
82
82
  default: "no"
83
83
  version_added: "1.6"
84
84
  switch:
85
85
  description:
86
- - If C(false), do not call svn switch before update.
86
+ - If V(false), do not call svn switch before update.
87
87
  default: "yes"
88
88
  version_added: "2.0"
89
89
  type: bool
90
90
  validate_certs:
91
91
  description:
92
- - If C(false), passes the C(--trust-server-cert) flag to svn.
93
- - If C(true), does not pass the flag.
92
+ - If V(false), passes the C(--trust-server-cert) flag to svn.
93
+ - If V(true), does not pass the flag.
94
94
  default: "no"
95
95
  version_added: "2.11"
96
96
  type: bool
@@ -25,8 +25,9 @@ options:
25
25
  aliases: [ service, unit ]
26
26
  state:
27
27
  description:
28
- - C(started)/C(stopped) are idempotent actions that will not run commands unless necessary.
29
- C(restarted) will always bounce the unit. C(reloaded) will always reload.
28
+ - V(started)/V(stopped) are idempotent actions that will not run commands unless necessary.
29
+ V(restarted) will always bounce the unit.
30
+ V(reloaded) will always reload and if the service is not running at the moment of the reload, it is started.
30
31
  type: str
31
32
  choices: [ reloaded, restarted, started, stopped ]
32
33
  enabled:
@@ -45,7 +46,7 @@ options:
45
46
  daemon_reload:
46
47
  description:
47
48
  - Run daemon-reload before doing any other operations, to make sure systemd has read any changes.
48
- - When set to C(true), runs daemon-reload even if the module does not start or stop anything.
49
+ - When set to V(true), runs daemon-reload even if the module does not start or stop anything.
49
50
  type: bool
50
51
  default: no
51
52
  aliases: [ daemon-reload ]
@@ -58,8 +59,8 @@ options:
58
59
  version_added: "2.8"
59
60
  scope:
60
61
  description:
61
- - Run systemctl within a given service manager scope, either as the default system scope C(system),
62
- the current user's scope C(user), or the scope of all users C(global).
62
+ - Run systemctl within a given service manager scope, either as the default system scope V(system),
63
+ the current user's scope V(user), or the scope of all users V(global).
63
64
  - "For systemd to work with 'user', the executing user must have its own instance of dbus started and accessible (systemd requirement)."
64
65
  - "The user dbus process is normally started during normal login, but not during the run of Ansible tasks.
65
66
  Otherwise you will probably get a 'Failed to connect to bus: no such file or directory' error."
@@ -85,9 +86,9 @@ attributes:
85
86
  platform:
86
87
  platforms: posix
87
88
  notes:
88
- - Since 2.4, one of the following options is required C(state), C(enabled), C(masked), C(daemon_reload), (C(daemon_reexec) since 2.8),
89
- and all except C(daemon_reload) and (C(daemon_reexec) since 2.8) also require C(name).
90
- - Before 2.4 you always required C(name).
89
+ - Since 2.4, one of the following options is required O(state), O(enabled), O(masked), O(daemon_reload), (O(daemon_reexec) since 2.8),
90
+ and all except O(daemon_reload) and (O(daemon_reexec) since 2.8) also require O(name).
91
+ - Before 2.4 you always required O(name).
91
92
  - Globs are not supported in name, i.e C(postgres*.service).
92
93
  - The service names might vary by specific OS/distribution
93
94
  - The order of execution when having multiple properties is to first enable/disable, then mask/unmask and then deal with service state.
@@ -98,48 +99,48 @@ requirements:
98
99
 
99
100
  EXAMPLES = '''
100
101
  - name: Make sure a service unit is running
101
- ansible.builtin.systemd:
102
+ ansible.builtin.systemd_service:
102
103
  state: started
103
104
  name: httpd
104
105
 
105
106
  - name: Stop service cron on debian, if running
106
- ansible.builtin.systemd:
107
+ ansible.builtin.systemd_service:
107
108
  name: cron
108
109
  state: stopped
109
110
 
110
111
  - name: Restart service cron on centos, in all cases, also issue daemon-reload to pick up config changes
111
- ansible.builtin.systemd:
112
+ ansible.builtin.systemd_service:
112
113
  state: restarted
113
114
  daemon_reload: true
114
115
  name: crond
115
116
 
116
117
  - name: Reload service httpd, in all cases
117
- ansible.builtin.systemd:
118
+ ansible.builtin.systemd_service:
118
119
  name: httpd.service
119
120
  state: reloaded
120
121
 
121
122
  - name: Enable service httpd and ensure it is not masked
122
- ansible.builtin.systemd:
123
+ ansible.builtin.systemd_service:
123
124
  name: httpd
124
125
  enabled: true
125
126
  masked: no
126
127
 
127
128
  - name: Enable a timer unit for dnf-automatic
128
- ansible.builtin.systemd:
129
+ ansible.builtin.systemd_service:
129
130
  name: dnf-automatic.timer
130
131
  state: started
131
132
  enabled: true
132
133
 
133
134
  - name: Just force systemd to reread configs (2.4 and above)
134
- ansible.builtin.systemd:
135
+ ansible.builtin.systemd_service:
135
136
  daemon_reload: true
136
137
 
137
138
  - name: Just force systemd to re-execute itself (2.8 and above)
138
- ansible.builtin.systemd:
139
+ ansible.builtin.systemd_service:
139
140
  daemon_reexec: true
140
141
 
141
142
  - name: Run a user service when XDG_RUNTIME_DIR is not set on remote login
142
- ansible.builtin.systemd:
143
+ ansible.builtin.systemd_service:
143
144
  name: myservice
144
145
  state: started
145
146
  scope: user
@@ -151,7 +152,7 @@ RETURN = '''
151
152
  status:
152
153
  description: A dictionary with the key=value pairs returned from C(systemctl show).
153
154
  returned: success
154
- type: complex
155
+ type: dict
155
156
  sample: {
156
157
  "ActiveEnterTimestamp": "Sun 2016-05-15 18:28:49 EDT",
157
158
  "ActiveEnterTimestampMonotonic": "8135942",
@@ -282,7 +283,7 @@ import os
282
283
  from ansible.module_utils.basic import AnsibleModule
283
284
  from ansible.module_utils.facts.system.chroot import is_chroot
284
285
  from ansible.module_utils.service import sysv_exists, sysv_is_enabled, fail_if_missing
285
- from ansible.module_utils._text import to_native
286
+ from ansible.module_utils.common.text.converters import to_native
286
287
 
287
288
 
288
289
  def is_running_service(service_status):
@@ -25,8 +25,9 @@ options:
25
25
  aliases: [ service, unit ]
26
26
  state:
27
27
  description:
28
- - C(started)/C(stopped) are idempotent actions that will not run commands unless necessary.
29
- C(restarted) will always bounce the unit. C(reloaded) will always reload.
28
+ - V(started)/V(stopped) are idempotent actions that will not run commands unless necessary.
29
+ V(restarted) will always bounce the unit.
30
+ V(reloaded) will always reload and if the service is not running at the moment of the reload, it is started.
30
31
  type: str
31
32
  choices: [ reloaded, restarted, started, stopped ]
32
33
  enabled:
@@ -45,7 +46,7 @@ options:
45
46
  daemon_reload:
46
47
  description:
47
48
  - Run daemon-reload before doing any other operations, to make sure systemd has read any changes.
48
- - When set to C(true), runs daemon-reload even if the module does not start or stop anything.
49
+ - When set to V(true), runs daemon-reload even if the module does not start or stop anything.
49
50
  type: bool
50
51
  default: no
51
52
  aliases: [ daemon-reload ]
@@ -58,8 +59,8 @@ options:
58
59
  version_added: "2.8"
59
60
  scope:
60
61
  description:
61
- - Run systemctl within a given service manager scope, either as the default system scope C(system),
62
- the current user's scope C(user), or the scope of all users C(global).
62
+ - Run systemctl within a given service manager scope, either as the default system scope V(system),
63
+ the current user's scope V(user), or the scope of all users V(global).
63
64
  - "For systemd to work with 'user', the executing user must have its own instance of dbus started and accessible (systemd requirement)."
64
65
  - "The user dbus process is normally started during normal login, but not during the run of Ansible tasks.
65
66
  Otherwise you will probably get a 'Failed to connect to bus: no such file or directory' error."
@@ -85,9 +86,9 @@ attributes:
85
86
  platform:
86
87
  platforms: posix
87
88
  notes:
88
- - Since 2.4, one of the following options is required C(state), C(enabled), C(masked), C(daemon_reload), (C(daemon_reexec) since 2.8),
89
- and all except C(daemon_reload) and (C(daemon_reexec) since 2.8) also require C(name).
90
- - Before 2.4 you always required C(name).
89
+ - Since 2.4, one of the following options is required O(state), O(enabled), O(masked), O(daemon_reload), (O(daemon_reexec) since 2.8),
90
+ and all except O(daemon_reload) and (O(daemon_reexec) since 2.8) also require O(name).
91
+ - Before 2.4 you always required O(name).
91
92
  - Globs are not supported in name, i.e C(postgres*.service).
92
93
  - The service names might vary by specific OS/distribution
93
94
  - The order of execution when having multiple properties is to first enable/disable, then mask/unmask and then deal with service state.
@@ -98,48 +99,48 @@ requirements:
98
99
 
99
100
  EXAMPLES = '''
100
101
  - name: Make sure a service unit is running
101
- ansible.builtin.systemd:
102
+ ansible.builtin.systemd_service:
102
103
  state: started
103
104
  name: httpd
104
105
 
105
106
  - name: Stop service cron on debian, if running
106
- ansible.builtin.systemd:
107
+ ansible.builtin.systemd_service:
107
108
  name: cron
108
109
  state: stopped
109
110
 
110
111
  - name: Restart service cron on centos, in all cases, also issue daemon-reload to pick up config changes
111
- ansible.builtin.systemd:
112
+ ansible.builtin.systemd_service:
112
113
  state: restarted
113
114
  daemon_reload: true
114
115
  name: crond
115
116
 
116
117
  - name: Reload service httpd, in all cases
117
- ansible.builtin.systemd:
118
+ ansible.builtin.systemd_service:
118
119
  name: httpd.service
119
120
  state: reloaded
120
121
 
121
122
  - name: Enable service httpd and ensure it is not masked
122
- ansible.builtin.systemd:
123
+ ansible.builtin.systemd_service:
123
124
  name: httpd
124
125
  enabled: true
125
126
  masked: no
126
127
 
127
128
  - name: Enable a timer unit for dnf-automatic
128
- ansible.builtin.systemd:
129
+ ansible.builtin.systemd_service:
129
130
  name: dnf-automatic.timer
130
131
  state: started
131
132
  enabled: true
132
133
 
133
134
  - name: Just force systemd to reread configs (2.4 and above)
134
- ansible.builtin.systemd:
135
+ ansible.builtin.systemd_service:
135
136
  daemon_reload: true
136
137
 
137
138
  - name: Just force systemd to re-execute itself (2.8 and above)
138
- ansible.builtin.systemd:
139
+ ansible.builtin.systemd_service:
139
140
  daemon_reexec: true
140
141
 
141
142
  - name: Run a user service when XDG_RUNTIME_DIR is not set on remote login
142
- ansible.builtin.systemd:
143
+ ansible.builtin.systemd_service:
143
144
  name: myservice
144
145
  state: started
145
146
  scope: user
@@ -151,7 +152,7 @@ RETURN = '''
151
152
  status:
152
153
  description: A dictionary with the key=value pairs returned from C(systemctl show).
153
154
  returned: success
154
- type: complex
155
+ type: dict
155
156
  sample: {
156
157
  "ActiveEnterTimestamp": "Sun 2016-05-15 18:28:49 EDT",
157
158
  "ActiveEnterTimestampMonotonic": "8135942",
@@ -282,7 +283,7 @@ import os
282
283
  from ansible.module_utils.basic import AnsibleModule
283
284
  from ansible.module_utils.facts.system.chroot import is_chroot
284
285
  from ansible.module_utils.service import sysv_exists, sysv_is_enabled, fail_if_missing
285
- from ansible.module_utils._text import to_native
286
+ from ansible.module_utils.common.text.converters import to_native
286
287
 
287
288
 
288
289
  def is_running_service(service_status):
@@ -26,8 +26,8 @@ options:
26
26
  state:
27
27
  choices: [ 'started', 'stopped', 'restarted', 'reloaded' ]
28
28
  description:
29
- - C(started)/C(stopped) are idempotent actions that will not run commands unless necessary.
30
- Not all init scripts support C(restarted) nor C(reloaded) natively, so these will both trigger a stop and start as needed.
29
+ - V(started)/V(stopped) are idempotent actions that will not run commands unless necessary.
30
+ Not all init scripts support V(restarted) nor V(reloaded) natively, so these will both trigger a stop and start as needed.
31
31
  type: str
32
32
  enabled:
33
33
  type: bool
@@ -36,7 +36,7 @@ options:
36
36
  sleep:
37
37
  default: 1
38
38
  description:
39
- - If the service is being C(restarted) or C(reloaded) then sleep this many seconds between the stop and start command.
39
+ - If the service is being V(restarted) or V(reloaded) then sleep this many seconds between the stop and start command.
40
40
  This helps to workaround badly behaving services.
41
41
  type: int
42
42
  pattern:
@@ -102,24 +102,29 @@ results:
102
102
  description: results from actions taken
103
103
  returned: always
104
104
  type: complex
105
- sample: {
106
- "attempts": 1,
107
- "changed": true,
108
- "name": "apache2",
109
- "status": {
110
- "enabled": {
111
- "changed": true,
112
- "rc": 0,
113
- "stderr": "",
114
- "stdout": ""
115
- },
116
- "stopped": {
117
- "changed": true,
118
- "rc": 0,
119
- "stderr": "",
120
- "stdout": "Stopping web server: apache2.\n"
121
- }
122
- }
105
+ contains:
106
+ name:
107
+ description: Name of the service
108
+ type: str
109
+ returned: always
110
+ sample: "apache2"
111
+ status:
112
+ description: Status of the service
113
+ type: dict
114
+ returned: changed
115
+ sample: {
116
+ "enabled": {
117
+ "changed": true,
118
+ "rc": 0,
119
+ "stderr": "",
120
+ "stdout": ""
121
+ },
122
+ "stopped": {
123
+ "changed": true,
124
+ "rc": 0,
125
+ "stderr": "",
126
+ "stdout": "Stopping web server: apache2.\n"
127
+ }
123
128
  }
124
129
  '''
125
130
 
@@ -14,9 +14,10 @@ module: tempfile
14
14
  version_added: "2.3"
15
15
  short_description: Creates temporary files and directories
16
16
  description:
17
- - The C(tempfile) module creates temporary files and directories. C(mktemp) command takes different parameters on various systems, this module helps
18
- to avoid troubles related to that. Files/directories created by module are accessible only by creator. In case you need to make them world-accessible
19
- you need to use M(ansible.builtin.file) module.
17
+ - The M(ansible.builtin.tempfile) module creates temporary files and directories. C(mktemp) command
18
+ takes different parameters on various systems, this module helps to avoid troubles related to that.
19
+ Files/directories created by module are accessible only by creator. In case you need to make them
20
+ world-accessible you need to use M(ansible.builtin.file) module.
20
21
  - For Windows targets, use the M(ansible.windows.win_tempfile) module instead.
21
22
  options:
22
23
  state:
@@ -87,7 +88,7 @@ from tempfile import mkstemp, mkdtemp
87
88
  from traceback import format_exc
88
89
 
89
90
  from ansible.module_utils.basic import AnsibleModule
90
- from ansible.module_utils._text import to_native
91
+ from ansible.module_utils.common.text.converters import to_native
91
92
 
92
93
 
93
94
  def main():
@@ -18,16 +18,17 @@ options:
18
18
  follow:
19
19
  description:
20
20
  - Determine whether symbolic links should be followed.
21
- - When set to C(true) symbolic links will be followed, if they exist.
22
- - When set to C(false) symbolic links will not be followed.
23
- - Previous to Ansible 2.4, this was hardcoded as C(true).
21
+ - When set to V(true) symbolic links will be followed, if they exist.
22
+ - When set to V(false) symbolic links will not be followed.
23
+ - Previous to Ansible 2.4, this was hardcoded as V(true).
24
24
  type: bool
25
25
  default: no
26
26
  version_added: '2.4'
27
27
  notes:
28
- - For Windows you can use M(ansible.windows.win_template) which uses C(\r\n) as C(newline_sequence) by default.
29
- - The C(jinja2_native) setting has no effect. Native types are never used in the C(template) module which is by design used for generating text files.
30
- For working with templates and utilizing Jinja2 native types see the C(jinja2_native) parameter of the C(template lookup).
28
+ - For Windows you can use M(ansible.windows.win_template) which uses V(\\r\\n) as O(newline_sequence) by default.
29
+ - The C(jinja2_native) setting has no effect. Native types are never used in the M(ansible.builtin.template) module
30
+ which is by design used for generating text files. For working with templates and utilizing Jinja2 native types see
31
+ the O(ansible.builtin.template#lookup:jinja2_native) parameter of the P(ansible.builtin.template#lookup) lookup.
31
32
  seealso:
32
33
  - module: ansible.builtin.copy
33
34
  - module: ansible.windows.win_copy
@@ -109,3 +110,56 @@ EXAMPLES = r'''
109
110
  validate: /usr/sbin/sshd -t -f %s
110
111
  backup: yes
111
112
  '''
113
+
114
+ RETURN = r'''
115
+ dest:
116
+ description: Destination file/path, equal to the value passed to I(dest).
117
+ returned: success
118
+ type: str
119
+ sample: /path/to/file.txt
120
+ checksum:
121
+ description: SHA1 checksum of the rendered file
122
+ returned: always
123
+ type: str
124
+ sample: 373296322247ab85d26d5d1257772757e7afd172
125
+ uid:
126
+ description: Numeric id representing the file owner
127
+ returned: success
128
+ type: int
129
+ sample: 1003
130
+ gid:
131
+ description: Numeric id representing the group of the owner
132
+ returned: success
133
+ type: int
134
+ sample: 1003
135
+ owner:
136
+ description: User name of owner
137
+ returned: success
138
+ type: str
139
+ sample: httpd
140
+ group:
141
+ description: Group name of owner
142
+ returned: success
143
+ type: str
144
+ sample: www-data
145
+ md5sum:
146
+ description: MD5 checksum of the rendered file
147
+ returned: changed
148
+ type: str
149
+ sample: d41d8cd98f00b204e9800998ecf8427e
150
+ mode:
151
+ description: Unix permissions of the file in octal representation as a string
152
+ returned: success
153
+ type: str
154
+ sample: 1755
155
+ size:
156
+ description: Size of the rendered file in bytes
157
+ returned: success
158
+ type: int
159
+ sample: 42
160
+ src:
161
+ description: Source file used for the copy on the target machine.
162
+ returned: changed
163
+ type: str
164
+ sample: /home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source
165
+ '''