ansible-core 2.18.7rc1__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.
- ansible/_internal/__init__.py +53 -0
- ansible/_internal/_ansiballz/__init__.py +0 -0
- ansible/_internal/_ansiballz/_builder.py +101 -0
- ansible/_internal/_ansiballz/_wrapper.py +262 -0
- ansible/_internal/_collection_proxy.py +47 -0
- ansible/_internal/_datatag/__init__.py +0 -0
- ansible/_internal/_datatag/_tags.py +130 -0
- ansible/_internal/_datatag/_utils.py +19 -0
- ansible/_internal/_datatag/_wrappers.py +33 -0
- ansible/_internal/_errors/__init__.py +0 -0
- ansible/_internal/_errors/_alarm_timeout.py +66 -0
- ansible/_internal/_errors/_captured.py +123 -0
- ansible/_internal/_errors/_error_factory.py +89 -0
- ansible/_internal/_errors/_error_utils.py +240 -0
- ansible/_internal/_errors/_handler.py +91 -0
- ansible/_internal/_errors/_task_timeout.py +28 -0
- ansible/_internal/_event_formatting.py +127 -0
- ansible/_internal/_json/__init__.py +214 -0
- ansible/_internal/_json/_legacy_encoder.py +34 -0
- ansible/_internal/_json/_profiles/__init__.py +0 -0
- ansible/_internal/_json/_profiles/_cache_persistence.py +57 -0
- ansible/_internal/_json/_profiles/_inventory_legacy.py +40 -0
- ansible/_internal/_json/_profiles/_legacy.py +189 -0
- ansible/_internal/_locking.py +21 -0
- ansible/_internal/_plugins/__init__.py +0 -0
- ansible/_internal/_plugins/_cache.py +57 -0
- ansible/_internal/_ssh/__init__.py +0 -0
- ansible/_internal/_ssh/_agent_launch.py +91 -0
- ansible/_internal/_ssh/_ssh_agent.py +619 -0
- ansible/_internal/_task.py +78 -0
- ansible/_internal/_templating/__init__.py +12 -0
- ansible/_internal/_templating/_access.py +86 -0
- ansible/_internal/_templating/_chain_templar.py +63 -0
- ansible/_internal/_templating/_datatag.py +95 -0
- ansible/_internal/_templating/_engine.py +592 -0
- ansible/_internal/_templating/_errors.py +28 -0
- ansible/_internal/_templating/_jinja_bits.py +1106 -0
- ansible/_internal/_templating/_jinja_common.py +323 -0
- ansible/_internal/_templating/_jinja_patches.py +44 -0
- ansible/_internal/_templating/_jinja_plugins.py +375 -0
- ansible/_internal/_templating/_lazy_containers.py +633 -0
- ansible/_internal/_templating/_marker_behaviors.py +103 -0
- ansible/_internal/_templating/_template_vars.py +72 -0
- ansible/_internal/_templating/_transform.py +70 -0
- ansible/_internal/_templating/_utils.py +108 -0
- ansible/_internal/_testing.py +26 -0
- ansible/_internal/_wrapt.py +1052 -0
- ansible/_internal/_yaml/__init__.py +0 -0
- ansible/_internal/_yaml/_constructor.py +240 -0
- ansible/_internal/_yaml/_dumper.py +70 -0
- ansible/_internal/_yaml/_errors.py +166 -0
- ansible/_internal/_yaml/_loader.py +66 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/README.md +11 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/action/debug.py +36 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/apply_trust.py +19 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/dump_object.py +27 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/finalize.py +16 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/origin.py +18 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/python_literal_eval.py +24 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/python_literal_eval.yml +33 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/tag_names.py +16 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/true_type.py +17 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/filter/unmask.py +49 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/lookup/config.py +21 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/lookup/config.yml +2 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/test/tagged.py +15 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/test/tagged.yml +19 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/test/tagged_with.py +18 -0
- ansible/_internal/ansible_collections/ansible/_protomatter/plugins/test/tagged_with.yml +19 -0
- ansible/cli/__init__.py +93 -104
- ansible/cli/_ssh_askpass.py +54 -0
- ansible/cli/adhoc.py +20 -10
- ansible/cli/arguments/option_helpers.py +163 -10
- ansible/cli/config.py +43 -68
- ansible/cli/console.py +13 -11
- ansible/cli/doc.py +134 -77
- ansible/cli/galaxy.py +27 -20
- ansible/cli/inventory.py +28 -28
- ansible/cli/playbook.py +4 -12
- ansible/cli/pull.py +6 -3
- ansible/cli/scripts/ansible_connection_cli_stub.py +7 -7
- ansible/cli/vault.py +12 -11
- ansible/compat/__init__.py +2 -2
- ansible/compat/importlib_resources.py +9 -12
- ansible/config/base.yml +218 -133
- ansible/config/manager.py +220 -159
- ansible/constants.py +2 -65
- ansible/errors/__init__.py +350 -256
- ansible/executor/interpreter_discovery.py +28 -149
- ansible/executor/module_common.py +480 -514
- ansible/executor/play_iterator.py +22 -27
- ansible/executor/playbook_executor.py +11 -11
- ansible/executor/powershell/async_watchdog.ps1 +97 -102
- ansible/executor/powershell/async_wrapper.ps1 +204 -153
- ansible/executor/powershell/become_wrapper.ps1 +107 -144
- ansible/executor/powershell/bootstrap_wrapper.ps1 +46 -9
- ansible/executor/powershell/coverage_wrapper.ps1 +91 -135
- ansible/executor/powershell/exec_wrapper.ps1 +675 -196
- ansible/executor/powershell/module_manifest.py +469 -265
- ansible/executor/powershell/module_wrapper.ps1 +195 -186
- ansible/executor/powershell/powershell_expand_user.ps1 +20 -0
- ansible/executor/powershell/powershell_mkdtemp.ps1 +17 -0
- ansible/executor/powershell/psrp_fetch_file.ps1 +41 -0
- ansible/executor/powershell/psrp_put_file.ps1 +122 -0
- ansible/executor/powershell/winrm_fetch_file.ps1 +46 -0
- ansible/executor/powershell/winrm_put_file.ps1 +36 -0
- ansible/executor/process/worker.py +139 -149
- ansible/executor/stats.py +5 -5
- ansible/executor/task_executor.py +270 -297
- ansible/executor/task_queue_manager.py +135 -137
- ansible/executor/task_result.py +182 -79
- ansible/galaxy/__init__.py +2 -2
- ansible/galaxy/api.py +26 -25
- ansible/galaxy/collection/__init__.py +6 -14
- ansible/galaxy/collection/concrete_artifact_manager.py +12 -21
- ansible/galaxy/dependency_resolution/dataclasses.py +14 -4
- ansible/galaxy/dependency_resolution/providers.py +4 -4
- ansible/galaxy/dependency_resolution/reporters.py +81 -0
- ansible/galaxy/role.py +6 -10
- ansible/galaxy/token.py +28 -21
- ansible/inventory/data.py +47 -57
- ansible/inventory/group.py +50 -73
- ansible/inventory/helpers.py +9 -0
- ansible/inventory/host.py +37 -54
- ansible/inventory/manager.py +79 -34
- ansible/keyword_desc.yml +1 -1
- ansible/module_utils/_internal/__init__.py +55 -0
- ansible/module_utils/_internal/_ambient_context.py +58 -0
- ansible/module_utils/_internal/_ansiballz/__init__.py +0 -0
- ansible/module_utils/_internal/_ansiballz/_extensions/__init__.py +0 -0
- ansible/module_utils/_internal/_ansiballz/_extensions/_coverage.py +45 -0
- ansible/module_utils/_internal/_ansiballz/_extensions/_pydevd.py +62 -0
- ansible/module_utils/_internal/_ansiballz/_loader.py +81 -0
- ansible/module_utils/_internal/_ansiballz/_respawn.py +32 -0
- ansible/module_utils/_internal/_ansiballz/_respawn_wrapper.py +23 -0
- ansible/module_utils/_internal/_concurrent/_daemon_threading.py +1 -0
- ansible/module_utils/_internal/_dataclass_validation.py +217 -0
- ansible/module_utils/_internal/_datatag/__init__.py +961 -0
- ansible/module_utils/_internal/_datatag/_tags.py +16 -0
- ansible/module_utils/_internal/_debugging.py +31 -0
- ansible/module_utils/_internal/_deprecator.py +157 -0
- ansible/module_utils/_internal/_errors.py +101 -0
- ansible/module_utils/_internal/_event_utils.py +61 -0
- ansible/module_utils/_internal/_json/__init__.py +63 -0
- ansible/module_utils/_internal/_json/_legacy_encoder.py +26 -0
- ansible/module_utils/_internal/_json/_profiles/__init__.py +428 -0
- ansible/module_utils/_internal/_json/_profiles/_fallback_to_str.py +73 -0
- ansible/module_utils/_internal/_json/_profiles/_module_legacy_c2m.py +33 -0
- ansible/module_utils/_internal/_json/_profiles/_module_legacy_m2c.py +37 -0
- ansible/module_utils/_internal/_json/_profiles/_module_modern_c2m.py +35 -0
- ansible/module_utils/_internal/_json/_profiles/_module_modern_m2c.py +33 -0
- ansible/module_utils/_internal/_json/_profiles/_tagless.py +52 -0
- ansible/module_utils/_internal/_messages.py +130 -0
- ansible/module_utils/_internal/_patches/__init__.py +66 -0
- ansible/module_utils/_internal/_patches/_dataclass_annotation_patch.py +53 -0
- ansible/module_utils/_internal/_patches/_socket_patch.py +34 -0
- ansible/module_utils/_internal/_patches/_sys_intern_patch.py +34 -0
- ansible/module_utils/_internal/_plugin_info.py +38 -0
- ansible/module_utils/_internal/_stack.py +22 -0
- ansible/module_utils/_internal/_testing.py +0 -0
- ansible/module_utils/_internal/_text_utils.py +6 -0
- ansible/module_utils/_internal/_traceback.py +92 -0
- ansible/module_utils/_internal/_validation.py +14 -0
- ansible/module_utils/ansible_release.py +2 -2
- ansible/module_utils/api.py +1 -2
- ansible/module_utils/basic.py +303 -202
- ansible/module_utils/common/_utils.py +24 -28
- ansible/module_utils/common/arg_spec.py +8 -3
- ansible/module_utils/common/collections.py +7 -2
- ansible/module_utils/common/dict_transformations.py +2 -2
- ansible/module_utils/common/file.py +2 -2
- ansible/module_utils/common/json.py +90 -84
- ansible/module_utils/common/locale.py +2 -2
- ansible/module_utils/common/parameters.py +27 -24
- ansible/module_utils/common/process.py +2 -3
- ansible/module_utils/common/respawn.py +11 -33
- ansible/module_utils/common/sentinel.py +66 -0
- ansible/module_utils/common/sys_info.py +8 -8
- ansible/module_utils/common/text/converters.py +16 -37
- ansible/module_utils/common/validation.py +35 -24
- ansible/module_utils/common/warnings.py +143 -25
- ansible/module_utils/common/yaml.py +29 -3
- ansible/module_utils/compat/datetime.py +33 -21
- ansible/module_utils/compat/paramiko.py +21 -10
- ansible/module_utils/compat/typing.py +6 -5
- ansible/module_utils/connection.py +10 -13
- ansible/module_utils/csharp/Ansible.Basic.cs +15 -12
- ansible/module_utils/csharp/Ansible.Become.cs +1 -0
- ansible/module_utils/csharp/Ansible.Privilege.cs +2 -2
- ansible/module_utils/csharp/Ansible._Async.cs +517 -0
- ansible/module_utils/datatag.py +49 -0
- ansible/module_utils/distro/__init__.py +2 -2
- ansible/module_utils/facts/ansible_collector.py +4 -5
- ansible/module_utils/facts/collector.py +13 -14
- ansible/module_utils/facts/compat.py +4 -4
- ansible/module_utils/facts/default_collectors.py +1 -1
- ansible/module_utils/facts/hardware/aix.py +34 -0
- ansible/module_utils/facts/hardware/base.py +2 -2
- ansible/module_utils/facts/hardware/darwin.py +1 -3
- ansible/module_utils/facts/hardware/freebsd.py +2 -2
- ansible/module_utils/facts/hardware/linux.py +5 -5
- ansible/module_utils/facts/namespace.py +1 -1
- ansible/module_utils/facts/network/base.py +1 -1
- ansible/module_utils/facts/network/fc_wwn.py +1 -2
- ansible/module_utils/facts/network/iscsi.py +1 -2
- ansible/module_utils/facts/network/nvme.py +1 -2
- ansible/module_utils/facts/other/facter.py +2 -3
- ansible/module_utils/facts/other/ohai.py +2 -3
- ansible/module_utils/facts/sysctl.py +4 -6
- ansible/module_utils/facts/system/apparmor.py +1 -2
- ansible/module_utils/facts/system/caps.py +3 -3
- ansible/module_utils/facts/system/chroot.py +1 -2
- ansible/module_utils/facts/system/cmdline.py +1 -2
- ansible/module_utils/facts/system/date_time.py +5 -3
- ansible/module_utils/facts/system/distribution.py +27 -13
- ansible/module_utils/facts/system/dns.py +1 -1
- ansible/module_utils/facts/system/env.py +1 -2
- ansible/module_utils/facts/system/fips.py +7 -20
- ansible/module_utils/facts/system/loadavg.py +1 -2
- ansible/module_utils/facts/system/local.py +2 -3
- ansible/module_utils/facts/system/lsb.py +1 -2
- ansible/module_utils/facts/system/pkg_mgr.py +1 -2
- ansible/module_utils/facts/system/platform.py +1 -2
- ansible/module_utils/facts/system/python.py +1 -2
- ansible/module_utils/facts/system/selinux.py +1 -1
- ansible/module_utils/facts/system/service_mgr.py +1 -2
- ansible/module_utils/facts/system/ssh_pub_keys.py +1 -1
- ansible/module_utils/facts/system/systemd.py +1 -1
- ansible/module_utils/facts/system/user.py +1 -2
- ansible/module_utils/facts/utils.py +3 -3
- ansible/module_utils/facts/virtual/base.py +1 -1
- ansible/module_utils/facts/virtual/linux.py +3 -3
- ansible/module_utils/facts/virtual/sunos.py +3 -15
- ansible/module_utils/facts/virtual/sysctl.py +3 -16
- ansible/module_utils/json_utils.py +2 -2
- ansible/module_utils/parsing/convert_bool.py +7 -1
- ansible/module_utils/powershell/Ansible.ModuleUtils.AddType.psm1 +1 -1
- ansible/module_utils/powershell/Ansible.ModuleUtils.CamelConversion.psm1 +1 -1
- ansible/module_utils/powershell/Ansible.ModuleUtils.CommandUtil.psm1 +1 -1
- ansible/module_utils/powershell/Ansible.ModuleUtils.WebRequest.psm1 +1 -1
- ansible/module_utils/service.py +21 -31
- ansible/module_utils/splitter.py +7 -7
- ansible/module_utils/testing.py +31 -0
- ansible/module_utils/urls.py +64 -35
- ansible/modules/add_host.py +4 -4
- ansible/modules/apt.py +69 -49
- ansible/modules/apt_key.py +19 -12
- ansible/modules/apt_repository.py +32 -51
- ansible/modules/assemble.py +16 -14
- ansible/modules/assert.py +4 -4
- ansible/modules/async_status.py +24 -24
- ansible/modules/async_wrapper.py +20 -25
- ansible/modules/blockinfile.py +6 -7
- ansible/modules/command.py +13 -20
- ansible/modules/copy.py +60 -147
- ansible/modules/cron.py +24 -21
- ansible/modules/deb822_repository.py +8 -9
- ansible/modules/debconf.py +5 -5
- ansible/modules/debug.py +4 -4
- ansible/modules/dnf.py +8 -8
- ansible/modules/dnf5.py +39 -13
- ansible/modules/dpkg_selections.py +4 -4
- ansible/modules/expect.py +13 -15
- ansible/modules/fail.py +4 -4
- ansible/modules/fetch.py +4 -4
- ansible/modules/file.py +184 -144
- ansible/modules/find.py +22 -20
- ansible/modules/gather_facts.py +3 -3
- ansible/modules/get_url.py +77 -54
- ansible/modules/getent.py +7 -9
- ansible/modules/git.py +38 -38
- ansible/modules/group.py +6 -6
- ansible/modules/group_by.py +4 -4
- ansible/modules/hostname.py +15 -32
- ansible/modules/import_playbook.py +6 -6
- ansible/modules/import_role.py +6 -6
- ansible/modules/import_tasks.py +6 -6
- ansible/modules/include_role.py +6 -6
- ansible/modules/include_tasks.py +6 -6
- ansible/modules/include_vars.py +6 -6
- ansible/modules/iptables.py +86 -73
- ansible/modules/known_hosts.py +22 -24
- ansible/modules/lineinfile.py +5 -5
- ansible/modules/meta.py +4 -4
- ansible/modules/mount_facts.py +2 -2
- ansible/modules/package.py +10 -4
- ansible/modules/package_facts.py +22 -10
- ansible/modules/pause.py +6 -6
- ansible/modules/ping.py +6 -6
- ansible/modules/pip.py +21 -26
- ansible/modules/raw.py +6 -6
- ansible/modules/reboot.py +6 -6
- ansible/modules/replace.py +10 -14
- ansible/modules/rpm_key.py +7 -8
- ansible/modules/script.py +4 -4
- ansible/modules/service.py +10 -17
- ansible/modules/service_facts.py +87 -10
- ansible/modules/set_fact.py +5 -5
- ansible/modules/set_stats.py +4 -4
- ansible/modules/setup.py +2 -2
- ansible/modules/shell.py +6 -6
- ansible/modules/slurp.py +16 -19
- ansible/modules/stat.py +15 -31
- ansible/modules/subversion.py +15 -15
- ansible/modules/systemd.py +7 -7
- ansible/modules/systemd_service.py +7 -7
- ansible/modules/sysvinit.py +9 -9
- ansible/modules/tempfile.py +5 -6
- ansible/modules/template.py +6 -6
- ansible/modules/unarchive.py +38 -17
- ansible/modules/uri.py +33 -26
- ansible/modules/user.py +45 -32
- ansible/modules/validate_argument_spec.py +10 -7
- ansible/modules/wait_for.py +70 -60
- ansible/modules/wait_for_connection.py +6 -6
- ansible/modules/yum_repository.py +10 -9
- ansible/parsing/ajson.py +17 -37
- ansible/parsing/dataloader.py +99 -54
- ansible/parsing/mod_args.py +62 -60
- ansible/parsing/plugin_docs.py +21 -86
- ansible/parsing/quoting.py +1 -1
- ansible/parsing/splitter.py +27 -12
- ansible/parsing/utils/addresses.py +24 -24
- ansible/parsing/utils/jsonify.py +5 -1
- ansible/parsing/utils/yaml.py +32 -61
- ansible/parsing/vault/__init__.py +327 -99
- ansible/parsing/yaml/__init__.py +0 -18
- ansible/parsing/yaml/dumper.py +6 -120
- ansible/parsing/yaml/loader.py +6 -39
- ansible/parsing/yaml/objects.py +43 -335
- ansible/playbook/__init__.py +1 -1
- ansible/playbook/attribute.py +8 -3
- ansible/playbook/base.py +187 -134
- ansible/playbook/block.py +26 -24
- ansible/playbook/collectionsearch.py +1 -15
- ansible/playbook/conditional.py +3 -77
- ansible/playbook/handler.py +8 -2
- ansible/playbook/helpers.py +41 -53
- ansible/playbook/included_file.py +32 -26
- ansible/playbook/loop_control.py +2 -2
- ansible/playbook/play.py +85 -44
- ansible/playbook/play_context.py +14 -17
- ansible/playbook/playbook_include.py +27 -62
- ansible/playbook/role/__init__.py +64 -49
- ansible/playbook/role/definition.py +15 -17
- ansible/playbook/role/include.py +2 -4
- ansible/playbook/role/metadata.py +10 -11
- ansible/playbook/role_include.py +3 -3
- ansible/playbook/taggable.py +28 -12
- ansible/playbook/task.py +192 -121
- ansible/playbook/task_include.py +5 -5
- ansible/plugins/__init__.py +58 -26
- ansible/plugins/action/__init__.py +188 -186
- ansible/plugins/action/add_host.py +2 -2
- ansible/plugins/action/assemble.py +11 -18
- ansible/plugins/action/assert.py +55 -67
- ansible/plugins/action/async_status.py +7 -2
- ansible/plugins/action/copy.py +14 -17
- ansible/plugins/action/debug.py +37 -31
- ansible/plugins/action/dnf.py +3 -4
- ansible/plugins/action/fail.py +1 -1
- ansible/plugins/action/fetch.py +7 -8
- ansible/plugins/action/gather_facts.py +13 -14
- ansible/plugins/action/group_by.py +1 -1
- ansible/plugins/action/include_vars.py +10 -11
- ansible/plugins/action/package.py +8 -14
- ansible/plugins/action/pause.py +2 -2
- ansible/plugins/action/script.py +27 -38
- ansible/plugins/action/service.py +9 -18
- ansible/plugins/action/set_fact.py +3 -12
- ansible/plugins/action/set_stats.py +3 -8
- ansible/plugins/action/template.py +47 -67
- ansible/plugins/action/unarchive.py +6 -16
- ansible/plugins/action/uri.py +9 -20
- ansible/plugins/action/validate_argument_spec.py +5 -5
- ansible/plugins/action/wait_for_connection.py +1 -1
- ansible/plugins/become/__init__.py +31 -8
- ansible/plugins/become/runas.py +71 -0
- ansible/plugins/become/su.py +13 -8
- ansible/plugins/become/sudo.py +19 -0
- ansible/plugins/cache/__init__.py +52 -63
- ansible/plugins/cache/base.py +8 -0
- ansible/plugins/cache/jsonfile.py +10 -16
- ansible/plugins/cache/memory.py +6 -12
- ansible/plugins/callback/__init__.py +294 -201
- ansible/plugins/callback/default.py +99 -95
- ansible/plugins/callback/junit.py +44 -43
- ansible/plugins/callback/minimal.py +28 -25
- ansible/plugins/callback/oneline.py +34 -21
- ansible/plugins/callback/tree.py +27 -16
- ansible/plugins/connection/__init__.py +47 -34
- ansible/plugins/connection/local.py +156 -60
- ansible/plugins/connection/paramiko_ssh.py +34 -24
- ansible/plugins/connection/psrp.py +76 -165
- ansible/plugins/connection/ssh.py +326 -86
- ansible/plugins/connection/winrm.py +62 -141
- ansible/plugins/doc_fragments/action_common_attributes.py +14 -14
- ansible/plugins/doc_fragments/action_core.py +6 -6
- ansible/plugins/doc_fragments/backup.py +2 -2
- ansible/plugins/doc_fragments/checksum_common.py +27 -0
- ansible/plugins/doc_fragments/constructed.py +8 -4
- ansible/plugins/doc_fragments/decrypt.py +2 -2
- ansible/plugins/doc_fragments/default_callback.py +2 -2
- ansible/plugins/doc_fragments/files.py +2 -2
- ansible/plugins/doc_fragments/inventory_cache.py +2 -2
- ansible/plugins/doc_fragments/result_format_callback.py +2 -2
- ansible/plugins/doc_fragments/return_common.py +2 -2
- ansible/plugins/doc_fragments/template_common.py +4 -4
- ansible/plugins/doc_fragments/url.py +17 -1
- ansible/plugins/doc_fragments/url_windows.py +2 -2
- ansible/plugins/doc_fragments/validate.py +2 -2
- ansible/plugins/doc_fragments/vars_plugin_staging.py +2 -2
- ansible/plugins/filter/__init__.py +6 -2
- ansible/plugins/filter/b64decode.yml +22 -0
- ansible/plugins/filter/b64encode.yml +22 -0
- ansible/plugins/filter/bool.yml +11 -4
- ansible/plugins/filter/core.py +245 -120
- ansible/plugins/filter/encryption.py +42 -34
- ansible/plugins/filter/flatten.yml +3 -2
- ansible/plugins/filter/human_to_bytes.yml +1 -1
- ansible/plugins/filter/mathstuff.py +30 -37
- ansible/plugins/filter/password_hash.yml +8 -0
- ansible/plugins/filter/pow.yml +1 -1
- ansible/plugins/filter/regex_search.yml +1 -4
- ansible/plugins/filter/root.yml +1 -1
- ansible/plugins/filter/split.yml +1 -1
- ansible/plugins/filter/strftime.yml +3 -3
- ansible/plugins/filter/to_nice_yaml.yml +0 -4
- ansible/plugins/filter/to_uuid.yml +1 -1
- ansible/plugins/filter/to_yaml.yml +0 -4
- ansible/plugins/filter/unvault.yml +1 -1
- ansible/plugins/filter/urls.py +1 -1
- ansible/plugins/filter/urlsplit.py +8 -9
- ansible/plugins/filter/vault.yml +14 -9
- ansible/plugins/filter/win_basename.yml +6 -1
- ansible/plugins/filter/win_dirname.yml +5 -0
- ansible/plugins/inventory/__init__.py +107 -86
- ansible/plugins/inventory/advanced_host_list.py +7 -5
- ansible/plugins/inventory/auto.py +11 -4
- ansible/plugins/inventory/constructed.py +21 -24
- ansible/plugins/inventory/generator.py +16 -11
- ansible/plugins/inventory/host_list.py +7 -5
- ansible/plugins/inventory/ini.py +78 -44
- ansible/plugins/inventory/script.py +190 -120
- ansible/plugins/inventory/toml.py +16 -126
- ansible/plugins/inventory/yaml.py +10 -8
- ansible/plugins/list.py +72 -19
- ansible/plugins/loader.py +383 -198
- ansible/plugins/lookup/__init__.py +21 -4
- ansible/plugins/lookup/config.py +21 -35
- ansible/plugins/lookup/csvfile.py +19 -73
- ansible/plugins/lookup/dict.py +1 -6
- ansible/plugins/lookup/env.py +12 -9
- ansible/plugins/lookup/file.py +5 -8
- ansible/plugins/lookup/first_found.py +87 -55
- ansible/plugins/lookup/indexed_items.py +1 -10
- ansible/plugins/lookup/ini.py +14 -13
- ansible/plugins/lookup/items.py +1 -1
- ansible/plugins/lookup/lines.py +8 -1
- ansible/plugins/lookup/list.py +1 -1
- ansible/plugins/lookup/nested.py +2 -18
- ansible/plugins/lookup/password.py +5 -5
- ansible/plugins/lookup/pipe.py +5 -7
- ansible/plugins/lookup/sequence.py +18 -8
- ansible/plugins/lookup/subelements.py +1 -4
- ansible/plugins/lookup/template.py +47 -36
- ansible/plugins/lookup/together.py +0 -12
- ansible/plugins/lookup/unvault.py +1 -5
- ansible/plugins/lookup/url.py +4 -10
- ansible/plugins/lookup/vars.py +16 -24
- ansible/plugins/shell/__init__.py +58 -4
- ansible/plugins/shell/cmd.py +2 -2
- ansible/plugins/shell/powershell.py +106 -31
- ansible/plugins/shell/sh.py +13 -7
- ansible/plugins/strategy/__init__.py +168 -193
- ansible/plugins/strategy/debug.py +2 -2
- ansible/plugins/strategy/free.py +16 -31
- ansible/plugins/strategy/host_pinned.py +2 -2
- ansible/plugins/strategy/linear.py +41 -41
- ansible/plugins/terminal/__init__.py +4 -4
- ansible/plugins/test/__init__.py +7 -2
- ansible/plugins/test/core.py +75 -35
- ansible/plugins/test/files.py +1 -1
- ansible/plugins/test/finished.yml +1 -1
- ansible/plugins/test/mathstuff.py +3 -3
- ansible/plugins/test/uri.py +5 -8
- ansible/plugins/vars/host_group_vars.py +7 -14
- ansible/release.py +2 -2
- ansible/template/__init__.py +353 -943
- ansible/utils/__init__.py +0 -18
- ansible/utils/collection_loader/__init__.py +54 -5
- ansible/utils/collection_loader/_collection_config.py +5 -6
- ansible/utils/collection_loader/_collection_finder.py +82 -96
- ansible/utils/collection_loader/_collection_meta.py +15 -8
- ansible/utils/display.py +485 -73
- ansible/utils/encrypt.py +27 -19
- ansible/utils/fqcn.py +2 -2
- ansible/utils/galaxy.py +2 -2
- ansible/utils/hashing.py +8 -10
- ansible/utils/helpers.py +2 -2
- ansible/utils/listify.py +10 -8
- ansible/utils/lock.py +2 -2
- ansible/utils/path.py +10 -12
- ansible/utils/plugin_docs.py +16 -14
- ansible/utils/py3compat.py +2 -7
- ansible/utils/sentinel.py +4 -62
- ansible/utils/singleton.py +2 -0
- ansible/utils/ssh_functions.py +6 -2
- ansible/utils/unsafe_proxy.py +23 -332
- ansible/utils/vars.py +55 -8
- ansible/utils/version.py +2 -2
- ansible/vars/clean.py +5 -5
- ansible/vars/hostvars.py +60 -90
- ansible/vars/manager.py +220 -285
- ansible/vars/plugins.py +4 -4
- ansible/vars/reserved.py +13 -12
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/METADATA +4 -3
- ansible_core-2.19.0.dist-info/RECORD +1097 -0
- ansible_core-2.19.0.dist-info/licenses/licenses/BSD-3-Clause.txt +28 -0
- ansible_test/_data/completion/docker.txt +7 -7
- ansible_test/_data/completion/remote.txt +6 -6
- ansible_test/_data/completion/windows.txt +1 -0
- ansible_test/_data/requirements/ansible.txt +2 -2
- ansible_test/_data/requirements/sanity.ansible-doc.txt +3 -3
- ansible_test/_data/requirements/sanity.changelog.txt +2 -2
- ansible_test/_data/requirements/sanity.import.plugin.txt +2 -2
- ansible_test/_data/requirements/sanity.pep8.txt +1 -1
- ansible_test/_data/requirements/sanity.pylint.txt +5 -5
- ansible_test/_data/requirements/sanity.validate-modules.txt +2 -2
- ansible_test/_data/requirements/sanity.yamllint.txt +1 -1
- ansible_test/_data/requirements/units.txt +1 -0
- ansible_test/_internal/__init__.py +6 -0
- ansible_test/_internal/ansible_util.py +3 -1
- ansible_test/_internal/become.py +1 -0
- ansible_test/_internal/bootstrap.py +1 -0
- ansible_test/_internal/cache.py +1 -0
- ansible_test/_internal/cgroup.py +1 -0
- ansible_test/_internal/ci/__init__.py +1 -0
- ansible_test/_internal/ci/azp.py +1 -0
- ansible_test/_internal/ci/local.py +1 -0
- ansible_test/_internal/classification/__init__.py +1 -0
- ansible_test/_internal/classification/common.py +1 -0
- ansible_test/_internal/classification/csharp.py +1 -0
- ansible_test/_internal/classification/powershell.py +1 -0
- ansible_test/_internal/classification/python.py +1 -0
- ansible_test/_internal/cli/__init__.py +1 -0
- ansible_test/_internal/cli/actions.py +1 -0
- ansible_test/_internal/cli/argparsing/__init__.py +1 -0
- ansible_test/_internal/cli/argparsing/actions.py +1 -0
- ansible_test/_internal/cli/argparsing/argcompletion.py +1 -0
- ansible_test/_internal/cli/argparsing/parsers.py +1 -0
- ansible_test/_internal/cli/commands/__init__.py +11 -5
- ansible_test/_internal/cli/commands/coverage/__init__.py +1 -0
- ansible_test/_internal/cli/commands/coverage/analyze/__init__.py +1 -0
- ansible_test/_internal/cli/commands/coverage/analyze/targets/__init__.py +1 -0
- ansible_test/_internal/cli/commands/coverage/analyze/targets/combine.py +1 -0
- ansible_test/_internal/cli/commands/coverage/analyze/targets/expand.py +1 -0
- ansible_test/_internal/cli/commands/coverage/analyze/targets/filter.py +1 -0
- ansible_test/_internal/cli/commands/coverage/analyze/targets/generate.py +1 -0
- ansible_test/_internal/cli/commands/coverage/analyze/targets/missing.py +1 -0
- ansible_test/_internal/cli/commands/coverage/combine.py +1 -0
- ansible_test/_internal/cli/commands/coverage/erase.py +1 -0
- ansible_test/_internal/cli/commands/coverage/html.py +1 -0
- ansible_test/_internal/cli/commands/coverage/report.py +1 -0
- ansible_test/_internal/cli/commands/coverage/xml.py +1 -0
- ansible_test/_internal/cli/commands/env.py +1 -0
- ansible_test/_internal/cli/commands/integration/__init__.py +1 -0
- ansible_test/_internal/cli/commands/integration/network.py +1 -0
- ansible_test/_internal/cli/commands/integration/posix.py +1 -0
- ansible_test/_internal/cli/commands/integration/windows.py +1 -0
- ansible_test/_internal/cli/commands/sanity.py +9 -0
- ansible_test/_internal/cli/commands/shell.py +1 -0
- ansible_test/_internal/cli/commands/units.py +1 -0
- ansible_test/_internal/cli/compat.py +1 -0
- ansible_test/_internal/cli/completers.py +1 -0
- ansible_test/_internal/cli/converters.py +1 -0
- ansible_test/_internal/cli/environments.py +52 -5
- ansible_test/_internal/cli/epilog.py +1 -0
- ansible_test/_internal/cli/parsers/__init__.py +1 -0
- ansible_test/_internal/cli/parsers/base_argument_parsers.py +1 -0
- ansible_test/_internal/cli/parsers/helpers.py +1 -0
- ansible_test/_internal/cli/parsers/host_config_parsers.py +1 -0
- ansible_test/_internal/cli/parsers/key_value_parsers.py +1 -0
- ansible_test/_internal/cli/parsers/value_parsers.py +1 -0
- ansible_test/_internal/commands/__init__.py +1 -0
- ansible_test/_internal/commands/coverage/__init__.py +3 -2
- ansible_test/_internal/commands/coverage/analyze/__init__.py +1 -0
- ansible_test/_internal/commands/coverage/analyze/targets/__init__.py +1 -0
- ansible_test/_internal/commands/coverage/analyze/targets/combine.py +1 -0
- ansible_test/_internal/commands/coverage/analyze/targets/expand.py +1 -0
- ansible_test/_internal/commands/coverage/analyze/targets/filter.py +1 -0
- ansible_test/_internal/commands/coverage/analyze/targets/generate.py +1 -0
- ansible_test/_internal/commands/coverage/analyze/targets/missing.py +1 -0
- ansible_test/_internal/commands/coverage/combine.py +2 -1
- ansible_test/_internal/commands/coverage/erase.py +1 -0
- ansible_test/_internal/commands/coverage/html.py +1 -0
- ansible_test/_internal/commands/coverage/report.py +1 -0
- ansible_test/_internal/commands/coverage/xml.py +1 -0
- ansible_test/_internal/commands/env/__init__.py +2 -0
- ansible_test/_internal/commands/integration/__init__.py +22 -5
- ansible_test/_internal/commands/integration/cloud/__init__.py +1 -0
- ansible_test/_internal/commands/integration/cloud/acme.py +2 -1
- ansible_test/_internal/commands/integration/cloud/aws.py +1 -0
- ansible_test/_internal/commands/integration/cloud/azure.py +1 -0
- ansible_test/_internal/commands/integration/cloud/cs.py +1 -0
- ansible_test/_internal/commands/integration/cloud/digitalocean.py +1 -0
- ansible_test/_internal/commands/integration/cloud/galaxy.py +3 -2
- ansible_test/_internal/commands/integration/cloud/hcloud.py +1 -0
- ansible_test/_internal/commands/integration/cloud/httptester.py +3 -2
- ansible_test/_internal/commands/integration/cloud/nios.py +2 -1
- ansible_test/_internal/commands/integration/cloud/opennebula.py +1 -0
- ansible_test/_internal/commands/integration/cloud/openshift.py +1 -0
- ansible_test/_internal/commands/integration/cloud/scaleway.py +1 -0
- ansible_test/_internal/commands/integration/cloud/vcenter.py +1 -0
- ansible_test/_internal/commands/integration/cloud/vultr.py +1 -0
- ansible_test/_internal/commands/integration/coverage.py +8 -2
- ansible_test/_internal/commands/integration/filters.py +1 -0
- ansible_test/_internal/commands/integration/network.py +1 -0
- ansible_test/_internal/commands/integration/posix.py +1 -0
- ansible_test/_internal/commands/integration/windows.py +1 -0
- ansible_test/_internal/commands/sanity/__init__.py +19 -2
- ansible_test/_internal/commands/sanity/ansible_doc.py +1 -0
- ansible_test/_internal/commands/sanity/bin_symlinks.py +1 -0
- ansible_test/_internal/commands/sanity/compile.py +1 -0
- ansible_test/_internal/commands/sanity/ignores.py +1 -0
- ansible_test/_internal/commands/sanity/import.py +1 -0
- ansible_test/_internal/commands/sanity/integration_aliases.py +12 -0
- ansible_test/_internal/commands/sanity/pep8.py +1 -0
- ansible_test/_internal/commands/sanity/pslint.py +1 -0
- ansible_test/_internal/commands/sanity/pylint.py +25 -26
- ansible_test/_internal/commands/sanity/shellcheck.py +1 -0
- ansible_test/_internal/commands/sanity/validate_modules.py +1 -0
- ansible_test/_internal/commands/sanity/yamllint.py +1 -0
- ansible_test/_internal/commands/shell/__init__.py +44 -4
- ansible_test/_internal/commands/units/__init__.py +5 -1
- ansible_test/_internal/compat/__init__.py +1 -0
- ansible_test/_internal/compat/packaging.py +1 -0
- ansible_test/_internal/compat/yaml.py +1 -0
- ansible_test/_internal/completion.py +1 -0
- ansible_test/_internal/config.py +23 -13
- ansible_test/_internal/connections.py +1 -0
- ansible_test/_internal/constants.py +1 -0
- ansible_test/_internal/containers.py +1 -0
- ansible_test/_internal/content_config.py +1 -0
- ansible_test/_internal/core_ci.py +1 -0
- ansible_test/_internal/coverage_util.py +11 -10
- ansible_test/_internal/data.py +1 -0
- ansible_test/_internal/debugging.py +166 -0
- ansible_test/_internal/delegation.py +22 -13
- ansible_test/_internal/dev/__init__.py +1 -0
- ansible_test/_internal/dev/container_probe.py +1 -0
- ansible_test/_internal/diff.py +3 -2
- ansible_test/_internal/docker_util.py +2 -1
- ansible_test/_internal/encoding.py +1 -0
- ansible_test/_internal/executor.py +1 -0
- ansible_test/_internal/git.py +1 -0
- ansible_test/_internal/host_configs.py +1 -0
- ansible_test/_internal/host_profiles.py +260 -16
- ansible_test/_internal/http.py +1 -0
- ansible_test/_internal/init.py +1 -0
- ansible_test/_internal/inventory.py +39 -3
- ansible_test/_internal/io.py +1 -0
- ansible_test/_internal/metadata.py +95 -4
- ansible_test/_internal/payload.py +1 -0
- ansible_test/_internal/processes.py +80 -0
- ansible_test/_internal/provider/__init__.py +1 -0
- ansible_test/_internal/provider/layout/__init__.py +1 -0
- ansible_test/_internal/provider/layout/ansible.py +1 -0
- ansible_test/_internal/provider/layout/collection.py +1 -0
- ansible_test/_internal/provider/layout/unsupported.py +1 -0
- ansible_test/_internal/provider/source/__init__.py +1 -0
- ansible_test/_internal/provider/source/git.py +1 -0
- ansible_test/_internal/provider/source/installed.py +1 -0
- ansible_test/_internal/provider/source/unsupported.py +1 -0
- ansible_test/_internal/provider/source/unversioned.py +1 -0
- ansible_test/_internal/provisioning.py +11 -4
- ansible_test/_internal/pypi_proxy.py +6 -5
- ansible_test/_internal/python_requirements.py +28 -0
- ansible_test/_internal/ssh.py +2 -5
- ansible_test/_internal/target.py +9 -0
- ansible_test/_internal/test.py +3 -2
- ansible_test/_internal/thread.py +3 -1
- ansible_test/_internal/timeout.py +2 -1
- ansible_test/_internal/util.py +41 -12
- ansible_test/_internal/util_common.py +18 -5
- ansible_test/_internal/venv.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/action-plugin-docs.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/changelog/sphinx.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/changelog.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/empty-init.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/line-endings.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/no-assert.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/no-get-exception.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/no-illegal-filenames.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/no-smart-quotes.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/replace-urlopen.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/runtime-metadata.py +28 -1
- ansible_test/_util/controller/sanity/code-smell/shebang.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/symlinks.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/use-argspec-type-path.py +1 -0
- ansible_test/_util/controller/sanity/code-smell/use-compat-six.py +1 -0
- ansible_test/_util/controller/sanity/integration-aliases/yaml_to_json.py +2 -1
- ansible_test/_util/controller/sanity/pep8/current-ignore.txt +4 -0
- ansible_test/_util/controller/sanity/pylint/config/ansible-test-target.cfg +8 -5
- ansible_test/_util/controller/sanity/pylint/config/ansible-test.cfg +8 -5
- ansible_test/_util/controller/sanity/pylint/config/code-smell.cfg +8 -5
- ansible_test/_util/controller/sanity/pylint/config/collection.cfg +4 -5
- ansible_test/_util/controller/sanity/pylint/config/default.cfg +8 -7
- ansible_test/_util/controller/sanity/pylint/plugins/deprecated_calls.py +541 -0
- ansible_test/_util/controller/sanity/pylint/plugins/deprecated_comment.py +137 -0
- ansible_test/_util/controller/sanity/pylint/plugins/hide_unraisable.py +1 -0
- ansible_test/_util/controller/sanity/pylint/plugins/string_format.py +1 -8
- ansible_test/_util/controller/sanity/pylint/plugins/unwanted.py +1 -8
- ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py +55 -28
- ansible_test/_util/controller/sanity/validate-modules/validate_modules/module_args.py +12 -5
- ansible_test/_util/controller/sanity/validate-modules/validate_modules/schema.py +13 -2
- ansible_test/_util/controller/sanity/validate-modules/validate_modules/utils.py +1 -0
- ansible_test/_util/controller/sanity/yamllint/yamllinter.py +35 -17
- ansible_test/_util/controller/tools/collection_detail.py +1 -0
- ansible_test/_util/controller/tools/yaml_to_json.py +2 -1
- ansible_test/_util/target/injector/python.py +8 -0
- ansible_test/_util/target/pytest/plugins/ansible_forked.py +6 -1
- ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py +2 -1
- ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py +1 -0
- ansible_test/_util/target/sanity/compile/compile.py +1 -0
- ansible_test/_util/target/sanity/import/importer.py +15 -16
- ansible_test/_util/target/setup/bootstrap.sh +9 -20
- ansible_test/_util/target/setup/probe_cgroups.py +1 -0
- ansible_test/_util/target/setup/quiet_pip.py +1 -0
- ansible_test/_util/target/setup/requirements.py +38 -36
- ansible_test/_util/target/tools/virtualenvcheck.py +2 -1
- ansible_test/_util/target/tools/yamlcheck.py +2 -1
- ansible/compat/selectors.py +0 -32
- ansible/errors/yaml_strings.py +0 -138
- ansible/executor/action_write_locks.py +0 -44
- ansible/executor/discovery/python_target.py +0 -47
- ansible/executor/powershell/module_powershell_wrapper.ps1 +0 -86
- ansible/executor/powershell/module_script_wrapper.ps1 +0 -22
- ansible/module_utils/compat/importlib.py +0 -26
- ansible/module_utils/compat/selectors.py +0 -32
- ansible/module_utils/pycompat24.py +0 -73
- ansible/parsing/yaml/constructor.py +0 -178
- ansible/template/native_helpers.py +0 -251
- ansible/template/template.py +0 -43
- ansible/template/vars.py +0 -77
- ansible/utils/native_jinja.py +0 -11
- ansible/vars/fact_cache.py +0 -71
- ansible_core-2.18.7rc1.dist-info/RECORD +0 -992
- ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py +0 -411
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/WHEEL +0 -0
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/entry_points.txt +0 -0
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/licenses/COPYING +0 -0
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/Apache-License.txt +0 -0
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/MIT-license.txt +0 -0
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/PSF-license.txt +0 -0
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/simplified_bsd.txt +0 -0
- {ansible_core-2.18.7rc1.dist-info → ansible_core-2.19.0.dist-info}/top_level.txt +0 -0
ansible/modules/setup.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
DOCUMENTATION =
|
|
9
|
+
DOCUMENTATION = """
|
|
10
10
|
---
|
|
11
11
|
module: setup
|
|
12
12
|
version_added: historical
|
|
@@ -110,7 +110,7 @@ notes:
|
|
|
110
110
|
author:
|
|
111
111
|
- "Ansible Core Team"
|
|
112
112
|
- "Michael DeHaan"
|
|
113
|
-
|
|
113
|
+
"""
|
|
114
114
|
|
|
115
115
|
EXAMPLES = r"""
|
|
116
116
|
# Display facts from all hosts and store them indexed by `hostname` at `/tmp/facts`.
|
ansible/modules/shell.py
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
from __future__ import annotations
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
DOCUMENTATION = r
|
|
13
|
+
DOCUMENTATION = r"""
|
|
14
14
|
---
|
|
15
15
|
module: shell
|
|
16
16
|
short_description: Execute shell commands on targets
|
|
@@ -99,9 +99,9 @@ seealso:
|
|
|
99
99
|
author:
|
|
100
100
|
- Ansible Core Team
|
|
101
101
|
- Michael DeHaan
|
|
102
|
-
|
|
102
|
+
"""
|
|
103
103
|
|
|
104
|
-
EXAMPLES = r
|
|
104
|
+
EXAMPLES = r"""
|
|
105
105
|
- name: Execute the command in remote shell; stdout goes to the specified file on the remote
|
|
106
106
|
ansible.builtin.shell: somescript.sh >> somelog.txt
|
|
107
107
|
|
|
@@ -150,9 +150,9 @@ EXAMPLES = r'''
|
|
|
150
150
|
args:
|
|
151
151
|
executable: /usr/bin/expect
|
|
152
152
|
delegate_to: localhost
|
|
153
|
-
|
|
153
|
+
"""
|
|
154
154
|
|
|
155
|
-
RETURN = r
|
|
155
|
+
RETURN = r"""
|
|
156
156
|
msg:
|
|
157
157
|
description: changed
|
|
158
158
|
returned: always
|
|
@@ -203,4 +203,4 @@ stderr_lines:
|
|
|
203
203
|
returned: always
|
|
204
204
|
type: list
|
|
205
205
|
sample: [u'ls cannot access foo: No such file or directory', u'ls …']
|
|
206
|
-
|
|
206
|
+
"""
|
ansible/modules/slurp.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
DOCUMENTATION = r
|
|
9
|
+
DOCUMENTATION = r"""
|
|
10
10
|
---
|
|
11
11
|
module: slurp
|
|
12
12
|
version_added: historical
|
|
@@ -39,9 +39,9 @@ seealso:
|
|
|
39
39
|
author:
|
|
40
40
|
- Ansible Core Team
|
|
41
41
|
- Michael DeHaan (@mpdehaan)
|
|
42
|
-
|
|
42
|
+
"""
|
|
43
43
|
|
|
44
|
-
EXAMPLES = r
|
|
44
|
+
EXAMPLES = r"""
|
|
45
45
|
- name: Find out what the remote machine's mounts are
|
|
46
46
|
ansible.builtin.slurp:
|
|
47
47
|
src: /proc/mounts
|
|
@@ -61,9 +61,9 @@ EXAMPLES = r'''
|
|
|
61
61
|
# }
|
|
62
62
|
# $ echo MjE3OQo= | base64 -d
|
|
63
63
|
# 2179
|
|
64
|
-
|
|
64
|
+
"""
|
|
65
65
|
|
|
66
|
-
RETURN = r
|
|
66
|
+
RETURN = r"""
|
|
67
67
|
content:
|
|
68
68
|
description: Encoded file content
|
|
69
69
|
returned: success
|
|
@@ -79,13 +79,12 @@ source:
|
|
|
79
79
|
returned: success
|
|
80
80
|
type: str
|
|
81
81
|
sample: "/var/run/sshd.pid"
|
|
82
|
-
|
|
82
|
+
"""
|
|
83
83
|
|
|
84
84
|
import base64
|
|
85
85
|
import errno
|
|
86
86
|
|
|
87
87
|
from ansible.module_utils.basic import AnsibleModule
|
|
88
|
-
from ansible.module_utils.common.text.converters import to_native
|
|
89
88
|
|
|
90
89
|
|
|
91
90
|
def main():
|
|
@@ -99,20 +98,18 @@ def main():
|
|
|
99
98
|
|
|
100
99
|
try:
|
|
101
100
|
with open(source, 'rb') as source_fh:
|
|
102
|
-
|
|
103
|
-
except
|
|
104
|
-
if
|
|
105
|
-
msg = "
|
|
106
|
-
elif
|
|
107
|
-
msg = "
|
|
108
|
-
elif
|
|
109
|
-
msg = "
|
|
101
|
+
data = base64.b64encode(source_fh.read())
|
|
102
|
+
except OSError as ex:
|
|
103
|
+
if ex.errno == errno.ENOENT:
|
|
104
|
+
msg = f"File not found: {source}"
|
|
105
|
+
elif ex.errno == errno.EACCES:
|
|
106
|
+
msg = f"File is not readable: {source}"
|
|
107
|
+
elif ex.errno == errno.EISDIR:
|
|
108
|
+
msg = f"Source is a directory and must be a file: {source}"
|
|
110
109
|
else:
|
|
111
|
-
msg = "
|
|
110
|
+
msg = "Unable to slurp file: {source}"
|
|
112
111
|
|
|
113
|
-
module.fail_json(msg)
|
|
114
|
-
|
|
115
|
-
data = base64.b64encode(source_content)
|
|
112
|
+
module.fail_json(msg, exception=ex)
|
|
116
113
|
|
|
117
114
|
module.exit_json(content=data, source=source, encoding='base64')
|
|
118
115
|
|
ansible/modules/stat.py
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
DOCUMENTATION = r
|
|
8
|
+
DOCUMENTATION = r"""
|
|
9
9
|
---
|
|
10
10
|
module: stat
|
|
11
11
|
version_added: "1.3"
|
|
@@ -25,23 +25,6 @@ options:
|
|
|
25
25
|
- Whether to follow symlinks.
|
|
26
26
|
type: bool
|
|
27
27
|
default: no
|
|
28
|
-
get_checksum:
|
|
29
|
-
description:
|
|
30
|
-
- Whether to return a checksum of the file.
|
|
31
|
-
type: bool
|
|
32
|
-
default: yes
|
|
33
|
-
version_added: "1.8"
|
|
34
|
-
checksum_algorithm:
|
|
35
|
-
description:
|
|
36
|
-
- Algorithm to determine checksum of file.
|
|
37
|
-
- Will throw an error if the host is unable to use specified algorithm.
|
|
38
|
-
- The remote host has to support the hashing method specified, V(md5)
|
|
39
|
-
can be unavailable if the host is FIPS-140 compliant.
|
|
40
|
-
type: str
|
|
41
|
-
choices: [ md5, sha1, sha224, sha256, sha384, sha512 ]
|
|
42
|
-
default: sha1
|
|
43
|
-
aliases: [ checksum, checksum_algo ]
|
|
44
|
-
version_added: "2.0"
|
|
45
28
|
get_mime:
|
|
46
29
|
description:
|
|
47
30
|
- Use file magic and return data about the nature of the file. This uses
|
|
@@ -59,8 +42,11 @@ options:
|
|
|
59
42
|
default: yes
|
|
60
43
|
aliases: [ attr, attributes ]
|
|
61
44
|
version_added: "2.3"
|
|
45
|
+
get_checksum:
|
|
46
|
+
version_added: "1.8"
|
|
62
47
|
extends_documentation_fragment:
|
|
63
48
|
- action_common_attributes
|
|
49
|
+
- checksum_common
|
|
64
50
|
attributes:
|
|
65
51
|
check_mode:
|
|
66
52
|
support: full
|
|
@@ -72,9 +58,9 @@ seealso:
|
|
|
72
58
|
- module: ansible.builtin.file
|
|
73
59
|
- module: ansible.windows.win_stat
|
|
74
60
|
author: Bruce Pennypacker (@bpennypacker)
|
|
75
|
-
|
|
61
|
+
"""
|
|
76
62
|
|
|
77
|
-
EXAMPLES = r
|
|
63
|
+
EXAMPLES = r"""
|
|
78
64
|
# Obtain the stats of /etc/foo.conf, and check that the file still belongs
|
|
79
65
|
# to 'root'. Fail otherwise.
|
|
80
66
|
- name: Get stats of a file
|
|
@@ -137,9 +123,9 @@ EXAMPLES = r'''
|
|
|
137
123
|
ansible.builtin.stat:
|
|
138
124
|
path: /path/to/something
|
|
139
125
|
checksum_algorithm: sha256
|
|
140
|
-
|
|
126
|
+
"""
|
|
141
127
|
|
|
142
|
-
RETURN = r
|
|
128
|
+
RETURN = r"""
|
|
143
129
|
stat:
|
|
144
130
|
description: Dictionary containing all the stat data, some platforms might add additional fields.
|
|
145
131
|
returned: success
|
|
@@ -366,9 +352,8 @@ stat:
|
|
|
366
352
|
type: str
|
|
367
353
|
sample: "381700746"
|
|
368
354
|
version_added: 2.3
|
|
369
|
-
|
|
355
|
+
"""
|
|
370
356
|
|
|
371
|
-
import errno
|
|
372
357
|
import grp
|
|
373
358
|
import os
|
|
374
359
|
import pwd
|
|
@@ -423,7 +408,7 @@ def format_output(module, path, st):
|
|
|
423
408
|
('st_blksize', 'block_size'),
|
|
424
409
|
('st_rdev', 'device_type'),
|
|
425
410
|
('st_flags', 'flags'),
|
|
426
|
-
# Some
|
|
411
|
+
# Some Berkeley based
|
|
427
412
|
('st_gen', 'generation'),
|
|
428
413
|
('st_birthtime', 'birthtime'),
|
|
429
414
|
# RISCOS
|
|
@@ -470,12 +455,11 @@ def main():
|
|
|
470
455
|
st = os.stat(b_path)
|
|
471
456
|
else:
|
|
472
457
|
st = os.lstat(b_path)
|
|
473
|
-
except
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
module.fail_json(msg=e.strerror)
|
|
458
|
+
except FileNotFoundError:
|
|
459
|
+
output = {'exists': False}
|
|
460
|
+
module.exit_json(changed=False, stat=output)
|
|
461
|
+
except OSError as ex:
|
|
462
|
+
module.fail_json(msg=ex.strerror, exception=ex)
|
|
479
463
|
|
|
480
464
|
# process base results
|
|
481
465
|
output = format_output(module, path, st)
|
ansible/modules/subversion.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
DOCUMENTATION =
|
|
9
|
+
DOCUMENTATION = """
|
|
10
10
|
---
|
|
11
11
|
module: subversion
|
|
12
12
|
short_description: Deploys a subversion repository
|
|
@@ -106,9 +106,9 @@ notes:
|
|
|
106
106
|
|
|
107
107
|
requirements:
|
|
108
108
|
- subversion (the command line tool with C(svn) entrypoint)
|
|
109
|
-
|
|
109
|
+
"""
|
|
110
110
|
|
|
111
|
-
EXAMPLES =
|
|
111
|
+
EXAMPLES = """
|
|
112
112
|
- name: Checkout subversion repository to specified folder
|
|
113
113
|
ansible.builtin.subversion:
|
|
114
114
|
repo: svn+ssh://an.example.org/path/to/repo
|
|
@@ -126,9 +126,9 @@ EXAMPLES = '''
|
|
|
126
126
|
dest: /src/checkout
|
|
127
127
|
checkout: no
|
|
128
128
|
update: no
|
|
129
|
-
|
|
129
|
+
"""
|
|
130
130
|
|
|
131
|
-
RETURN = r
|
|
131
|
+
RETURN = r"""#"""
|
|
132
132
|
|
|
133
133
|
import os
|
|
134
134
|
import re
|
|
@@ -161,7 +161,7 @@ class Subversion(object):
|
|
|
161
161
|
return LooseVersion(version) >= LooseVersion('1.10.0')
|
|
162
162
|
|
|
163
163
|
def _exec(self, args, check_rc=True):
|
|
164
|
-
|
|
164
|
+
"""Execute a subversion command, and return output. If check_rc is False, returns the return code instead of the output."""
|
|
165
165
|
bits = [
|
|
166
166
|
self.svn_path,
|
|
167
167
|
'--non-interactive',
|
|
@@ -189,12 +189,12 @@ class Subversion(object):
|
|
|
189
189
|
return rc
|
|
190
190
|
|
|
191
191
|
def is_svn_repo(self):
|
|
192
|
-
|
|
192
|
+
"""Checks if path is a SVN Repo."""
|
|
193
193
|
rc = self._exec(["info", self.dest], check_rc=False)
|
|
194
194
|
return rc == 0
|
|
195
195
|
|
|
196
196
|
def checkout(self, force=False):
|
|
197
|
-
|
|
197
|
+
"""Creates new svn working directory if it does not already exist."""
|
|
198
198
|
cmd = ["checkout"]
|
|
199
199
|
if force:
|
|
200
200
|
cmd.append("--force")
|
|
@@ -202,7 +202,7 @@ class Subversion(object):
|
|
|
202
202
|
self._exec(cmd)
|
|
203
203
|
|
|
204
204
|
def export(self, force=False):
|
|
205
|
-
|
|
205
|
+
"""Export svn repo to directory"""
|
|
206
206
|
cmd = ["export"]
|
|
207
207
|
if force:
|
|
208
208
|
cmd.append("--force")
|
|
@@ -211,7 +211,7 @@ class Subversion(object):
|
|
|
211
211
|
self._exec(cmd)
|
|
212
212
|
|
|
213
213
|
def switch(self):
|
|
214
|
-
|
|
214
|
+
"""Change working directory's repo."""
|
|
215
215
|
# switch to ensure we are pointing at correct repo.
|
|
216
216
|
# it also updates!
|
|
217
217
|
output = self._exec(["switch", "--revision", self.revision, self.repo, self.dest])
|
|
@@ -221,7 +221,7 @@ class Subversion(object):
|
|
|
221
221
|
return False
|
|
222
222
|
|
|
223
223
|
def update(self):
|
|
224
|
-
|
|
224
|
+
"""Update existing svn working directory."""
|
|
225
225
|
output = self._exec(["update", "-r", self.revision, self.dest])
|
|
226
226
|
|
|
227
227
|
for line in output:
|
|
@@ -230,7 +230,7 @@ class Subversion(object):
|
|
|
230
230
|
return False
|
|
231
231
|
|
|
232
232
|
def revert(self):
|
|
233
|
-
|
|
233
|
+
"""Revert svn working directory."""
|
|
234
234
|
output = self._exec(["revert", "-R", self.dest])
|
|
235
235
|
for line in output:
|
|
236
236
|
if re.search(r'^Reverted ', line) is None:
|
|
@@ -238,7 +238,7 @@ class Subversion(object):
|
|
|
238
238
|
return False
|
|
239
239
|
|
|
240
240
|
def get_revision(self):
|
|
241
|
-
|
|
241
|
+
"""Revision and URL of subversion working directory."""
|
|
242
242
|
text = '\n'.join(self._exec(["info", self.dest]))
|
|
243
243
|
rev = re.search(self.REVISION_RE, text, re.MULTILINE)
|
|
244
244
|
if rev:
|
|
@@ -255,7 +255,7 @@ class Subversion(object):
|
|
|
255
255
|
return rev, url
|
|
256
256
|
|
|
257
257
|
def get_remote_revision(self):
|
|
258
|
-
|
|
258
|
+
"""Revision and URL of subversion working directory."""
|
|
259
259
|
text = '\n'.join(self._exec(["info", self.repo]))
|
|
260
260
|
rev = re.search(self.REVISION_RE, text, re.MULTILINE)
|
|
261
261
|
if rev:
|
|
@@ -265,7 +265,7 @@ class Subversion(object):
|
|
|
265
265
|
return rev
|
|
266
266
|
|
|
267
267
|
def has_local_mods(self):
|
|
268
|
-
|
|
268
|
+
"""True if revisioned files have been added or modified. Unrevisioned files are ignored."""
|
|
269
269
|
lines = self._exec(["status", "--quiet", "--ignore-externals", self.dest])
|
|
270
270
|
# The --quiet option will return only modified files.
|
|
271
271
|
# Match only revisioned files, i.e. ignore status '?'.
|
ansible/modules/systemd.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
DOCUMENTATION =
|
|
9
|
+
DOCUMENTATION = """
|
|
10
10
|
module: systemd_service
|
|
11
11
|
author:
|
|
12
12
|
- Ansible Core Team
|
|
@@ -34,7 +34,7 @@ options:
|
|
|
34
34
|
choices: [ reloaded, restarted, started, stopped ]
|
|
35
35
|
enabled:
|
|
36
36
|
description:
|
|
37
|
-
- Whether the unit should start on boot. At least one of O(state)
|
|
37
|
+
- Whether the unit should start on boot. At least one of O(state) or O(enabled) are required.
|
|
38
38
|
- If set, requires O(name).
|
|
39
39
|
type: bool
|
|
40
40
|
force:
|
|
@@ -98,9 +98,9 @@ notes:
|
|
|
98
98
|
It has been reported that C(systemctl) can behave differently depending on the order of operations if you do the same manually.
|
|
99
99
|
requirements:
|
|
100
100
|
- A system managed by systemd.
|
|
101
|
-
|
|
101
|
+
"""
|
|
102
102
|
|
|
103
|
-
EXAMPLES =
|
|
103
|
+
EXAMPLES = """
|
|
104
104
|
- name: Make sure a service unit is running
|
|
105
105
|
ansible.builtin.systemd_service:
|
|
106
106
|
state: started
|
|
@@ -149,9 +149,9 @@ EXAMPLES = '''
|
|
|
149
149
|
scope: user
|
|
150
150
|
environment:
|
|
151
151
|
XDG_RUNTIME_DIR: "/run/user/{{ myuid }}"
|
|
152
|
-
|
|
152
|
+
"""
|
|
153
153
|
|
|
154
|
-
RETURN =
|
|
154
|
+
RETURN = """
|
|
155
155
|
status:
|
|
156
156
|
description: A dictionary with the key=value pairs returned from C(systemctl show).
|
|
157
157
|
returned: success
|
|
@@ -279,7 +279,7 @@ status:
|
|
|
279
279
|
"WatchdogTimestampMonotonic": "0",
|
|
280
280
|
"WatchdogUSec": "0",
|
|
281
281
|
}
|
|
282
|
-
|
|
282
|
+
""" # NOQA
|
|
283
283
|
|
|
284
284
|
import os
|
|
285
285
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
DOCUMENTATION =
|
|
9
|
+
DOCUMENTATION = """
|
|
10
10
|
module: systemd_service
|
|
11
11
|
author:
|
|
12
12
|
- Ansible Core Team
|
|
@@ -34,7 +34,7 @@ options:
|
|
|
34
34
|
choices: [ reloaded, restarted, started, stopped ]
|
|
35
35
|
enabled:
|
|
36
36
|
description:
|
|
37
|
-
- Whether the unit should start on boot. At least one of O(state)
|
|
37
|
+
- Whether the unit should start on boot. At least one of O(state) or O(enabled) are required.
|
|
38
38
|
- If set, requires O(name).
|
|
39
39
|
type: bool
|
|
40
40
|
force:
|
|
@@ -98,9 +98,9 @@ notes:
|
|
|
98
98
|
It has been reported that C(systemctl) can behave differently depending on the order of operations if you do the same manually.
|
|
99
99
|
requirements:
|
|
100
100
|
- A system managed by systemd.
|
|
101
|
-
|
|
101
|
+
"""
|
|
102
102
|
|
|
103
|
-
EXAMPLES =
|
|
103
|
+
EXAMPLES = """
|
|
104
104
|
- name: Make sure a service unit is running
|
|
105
105
|
ansible.builtin.systemd_service:
|
|
106
106
|
state: started
|
|
@@ -149,9 +149,9 @@ EXAMPLES = '''
|
|
|
149
149
|
scope: user
|
|
150
150
|
environment:
|
|
151
151
|
XDG_RUNTIME_DIR: "/run/user/{{ myuid }}"
|
|
152
|
-
|
|
152
|
+
"""
|
|
153
153
|
|
|
154
|
-
RETURN =
|
|
154
|
+
RETURN = """
|
|
155
155
|
status:
|
|
156
156
|
description: A dictionary with the key=value pairs returned from C(systemctl show).
|
|
157
157
|
returned: success
|
|
@@ -279,7 +279,7 @@ status:
|
|
|
279
279
|
"WatchdogTimestampMonotonic": "0",
|
|
280
280
|
"WatchdogUSec": "0",
|
|
281
281
|
}
|
|
282
|
-
|
|
282
|
+
""" # NOQA
|
|
283
283
|
|
|
284
284
|
import os
|
|
285
285
|
|
ansible/modules/sysvinit.py
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
DOCUMENTATION =
|
|
10
|
+
DOCUMENTATION = """
|
|
11
11
|
module: sysvinit
|
|
12
12
|
author:
|
|
13
13
|
- "Ansible Core Team"
|
|
@@ -77,9 +77,9 @@ notes:
|
|
|
77
77
|
- The service names might vary by specific OS/distribution.
|
|
78
78
|
requirements:
|
|
79
79
|
- That the service managed has a corresponding init script.
|
|
80
|
-
|
|
80
|
+
"""
|
|
81
81
|
|
|
82
|
-
EXAMPLES =
|
|
82
|
+
EXAMPLES = """
|
|
83
83
|
- name: Make sure apache2 is started
|
|
84
84
|
ansible.builtin.sysvinit:
|
|
85
85
|
name: apache2
|
|
@@ -88,9 +88,9 @@ EXAMPLES = '''
|
|
|
88
88
|
|
|
89
89
|
- name: Sleep for 5 seconds between stop and start command of badly behaving service
|
|
90
90
|
ansible.builtin.sysvinit:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
name: apache2
|
|
92
|
+
state: restarted
|
|
93
|
+
sleep: 5
|
|
94
94
|
|
|
95
95
|
- name: Make sure apache2 is started on runlevels 3 and 5
|
|
96
96
|
ansible.builtin.sysvinit:
|
|
@@ -100,9 +100,9 @@ EXAMPLES = '''
|
|
|
100
100
|
runlevels:
|
|
101
101
|
- 3
|
|
102
102
|
- 5
|
|
103
|
-
|
|
103
|
+
"""
|
|
104
104
|
|
|
105
|
-
RETURN = r
|
|
105
|
+
RETURN = r"""
|
|
106
106
|
results:
|
|
107
107
|
description: results from actions taken
|
|
108
108
|
returned: always
|
|
@@ -131,7 +131,7 @@ results:
|
|
|
131
131
|
"stdout": "Stopping web server: apache2.\n"
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
|
|
134
|
+
"""
|
|
135
135
|
|
|
136
136
|
import re
|
|
137
137
|
from time import sleep
|
ansible/modules/tempfile.py
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
DOCUMENTATION =
|
|
10
|
+
DOCUMENTATION = """
|
|
11
11
|
---
|
|
12
12
|
module: tempfile
|
|
13
13
|
version_added: "2.3"
|
|
@@ -53,7 +53,7 @@ seealso:
|
|
|
53
53
|
- module: ansible.windows.win_tempfile
|
|
54
54
|
author:
|
|
55
55
|
- Krzysztof Magosa (@krzysztof-magosa)
|
|
56
|
-
|
|
56
|
+
"""
|
|
57
57
|
|
|
58
58
|
EXAMPLES = """
|
|
59
59
|
- name: Create temporary build directory
|
|
@@ -80,17 +80,16 @@ EXAMPLES = """
|
|
|
80
80
|
when: tempfile_1.path is defined
|
|
81
81
|
"""
|
|
82
82
|
|
|
83
|
-
RETURN =
|
|
83
|
+
RETURN = """
|
|
84
84
|
path:
|
|
85
85
|
description: Path to created file or directory.
|
|
86
86
|
returned: success
|
|
87
87
|
type: str
|
|
88
88
|
sample: "/tmp/ansible.bMlvdk"
|
|
89
|
-
|
|
89
|
+
"""
|
|
90
90
|
|
|
91
91
|
from os import close
|
|
92
92
|
from tempfile import mkstemp, mkdtemp
|
|
93
|
-
from traceback import format_exc
|
|
94
93
|
|
|
95
94
|
from ansible.module_utils.basic import AnsibleModule
|
|
96
95
|
from ansible.module_utils.common.text.converters import to_native
|
|
@@ -123,7 +122,7 @@ def main():
|
|
|
123
122
|
|
|
124
123
|
module.exit_json(changed=True, path=path)
|
|
125
124
|
except Exception as e:
|
|
126
|
-
module.fail_json(msg=to_native(e)
|
|
125
|
+
module.fail_json(msg=to_native(e))
|
|
127
126
|
|
|
128
127
|
|
|
129
128
|
if __name__ == '__main__':
|
ansible/modules/template.py
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
DOCUMENTATION = r
|
|
11
|
+
DOCUMENTATION = r"""
|
|
12
12
|
---
|
|
13
13
|
module: template
|
|
14
14
|
version_added: historical
|
|
@@ -60,9 +60,9 @@ attributes:
|
|
|
60
60
|
support: full
|
|
61
61
|
vault:
|
|
62
62
|
support: full
|
|
63
|
-
|
|
63
|
+
"""
|
|
64
64
|
|
|
65
|
-
EXAMPLES = r
|
|
65
|
+
EXAMPLES = r"""
|
|
66
66
|
- name: Template a file to /etc/file.conf
|
|
67
67
|
ansible.builtin.template:
|
|
68
68
|
src: /mytemplates/foo.j2
|
|
@@ -108,9 +108,9 @@ EXAMPLES = r'''
|
|
|
108
108
|
mode: '0600'
|
|
109
109
|
validate: /usr/sbin/sshd -t -f %s
|
|
110
110
|
backup: yes
|
|
111
|
-
|
|
111
|
+
"""
|
|
112
112
|
|
|
113
|
-
RETURN = r
|
|
113
|
+
RETURN = r"""
|
|
114
114
|
dest:
|
|
115
115
|
description: Destination file/path, equal to the value passed to I(dest).
|
|
116
116
|
returned: success
|
|
@@ -161,4 +161,4 @@ src:
|
|
|
161
161
|
returned: changed
|
|
162
162
|
type: str
|
|
163
163
|
sample: /home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source
|
|
164
|
-
|
|
164
|
+
"""
|