ansible-core 2.18.7__py3-none-any.whl → 2.19.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ansible-core might be problematic. Click here for more details.
- 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.7.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.7.dist-info/RECORD +0 -992
- ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py +0 -411
- {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/WHEEL +0 -0
- {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/entry_points.txt +0 -0
- {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/COPYING +0 -0
- {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/Apache-License.txt +0 -0
- {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/MIT-license.txt +0 -0
- {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/PSF-license.txt +0 -0
- {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/licenses/licenses/simplified_bsd.txt +0 -0
- {ansible_core-2.18.7.dist-info → ansible_core-2.19.0.dist-info}/top_level.txt +0 -0
ansible/modules/git.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: git
|
|
12
12
|
author:
|
|
@@ -21,6 +21,10 @@ options:
|
|
|
21
21
|
repo:
|
|
22
22
|
description:
|
|
23
23
|
- git, SSH, or HTTP(S) protocol address of the git repository.
|
|
24
|
+
- Avoid embedding usernames and passwords within Git repository URLs.
|
|
25
|
+
This practice is insecure and can lead to unauthorized access to your repositories.
|
|
26
|
+
For secure authentication, configure SSH keys (recommended) or use a credential helper.
|
|
27
|
+
See Git documentation on SSH keys/credential helpers for instructions.
|
|
24
28
|
type: str
|
|
25
29
|
required: true
|
|
26
30
|
aliases: [ name ]
|
|
@@ -236,9 +240,9 @@ notes:
|
|
|
236
240
|
one solution is to use the option accept_hostkey. Another solution is to
|
|
237
241
|
add the remote host public key in C(/etc/ssh/ssh_known_hosts) before calling
|
|
238
242
|
the git module, with the following command: C(ssh-keyscan -H remote_host.com >> /etc/ssh/ssh_known_hosts)."
|
|
239
|
-
|
|
243
|
+
"""
|
|
240
244
|
|
|
241
|
-
EXAMPLES =
|
|
245
|
+
EXAMPLES = """
|
|
242
246
|
- name: Git checkout
|
|
243
247
|
ansible.builtin.git:
|
|
244
248
|
repo: 'https://github.com/ansible/ansible.git'
|
|
@@ -295,9 +299,9 @@ EXAMPLES = '''
|
|
|
295
299
|
environment:
|
|
296
300
|
GIT_TERMINAL_PROMPT: 0 # reports "terminal prompts disabled" on missing password
|
|
297
301
|
# or GIT_ASKPASS: /bin/true # for git before version 2.3.0, reports "Authentication failed" on missing password
|
|
298
|
-
|
|
302
|
+
"""
|
|
299
303
|
|
|
300
|
-
RETURN =
|
|
304
|
+
RETURN = """
|
|
301
305
|
after:
|
|
302
306
|
description: Last commit revision of the repository retrieved during the update.
|
|
303
307
|
returned: success
|
|
@@ -313,11 +317,6 @@ remote_url_changed:
|
|
|
313
317
|
returned: success
|
|
314
318
|
type: bool
|
|
315
319
|
sample: True
|
|
316
|
-
warnings:
|
|
317
|
-
description: List of warnings if requested features were not available due to a too old git version.
|
|
318
|
-
returned: error
|
|
319
|
-
type: str
|
|
320
|
-
sample: git version is too old to fully support the depth argument. Falling back to full checkouts.
|
|
321
320
|
git_dir_now:
|
|
322
321
|
description: Contains the new path of .git directory if it is changed.
|
|
323
322
|
returned: success
|
|
@@ -328,7 +327,7 @@ git_dir_before:
|
|
|
328
327
|
returned: success
|
|
329
328
|
type: str
|
|
330
329
|
sample: /path/to/old/git/dir
|
|
331
|
-
|
|
330
|
+
"""
|
|
332
331
|
|
|
333
332
|
import filecmp
|
|
334
333
|
import os
|
|
@@ -358,24 +357,23 @@ def relocate_repo(module, result, repo_dir, old_repo_dir, worktree_dir):
|
|
|
358
357
|
dot_git_file.write('gitdir: %s' % repo_dir)
|
|
359
358
|
result['git_dir_before'] = old_repo_dir
|
|
360
359
|
result['git_dir_now'] = repo_dir
|
|
361
|
-
except
|
|
360
|
+
except OSError as ex:
|
|
362
361
|
# if we already moved the .git dir, roll it back
|
|
363
362
|
if os.path.exists(repo_dir):
|
|
364
363
|
shutil.move(repo_dir, old_repo_dir)
|
|
365
|
-
|
|
364
|
+
raise Exception('Unable to move git dir.') from ex
|
|
366
365
|
|
|
367
366
|
|
|
368
367
|
def head_splitter(headfile, remote, module=None, fail_on_error=False):
|
|
369
|
-
|
|
368
|
+
"""Extract the head reference"""
|
|
370
369
|
# https://github.com/ansible/ansible-modules-core/pull/907
|
|
371
370
|
|
|
372
371
|
res = None
|
|
373
372
|
if os.path.exists(headfile):
|
|
374
373
|
rawdata = None
|
|
375
374
|
try:
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
f.close()
|
|
375
|
+
with open(headfile, 'r') as f:
|
|
376
|
+
rawdata = f.readline()
|
|
379
377
|
except Exception:
|
|
380
378
|
if fail_on_error and module:
|
|
381
379
|
module.fail_json(msg="Unable to read %s" % headfile)
|
|
@@ -429,11 +427,11 @@ def get_submodule_update_params(module, git_path, cwd):
|
|
|
429
427
|
|
|
430
428
|
|
|
431
429
|
def write_ssh_wrapper(module):
|
|
432
|
-
|
|
430
|
+
"""
|
|
433
431
|
This writes an shell wrapper for ssh options to be used with git
|
|
434
432
|
this is only relevant for older versions of gitthat cannot
|
|
435
433
|
handle the options themselves. Returns path to the script
|
|
436
|
-
|
|
434
|
+
"""
|
|
437
435
|
try:
|
|
438
436
|
# make sure we have full permission to the module_dir, which
|
|
439
437
|
# may not be the case if we're sudo'ing to a non-root user
|
|
@@ -441,7 +439,7 @@ def write_ssh_wrapper(module):
|
|
|
441
439
|
fd, wrapper_path = tempfile.mkstemp(prefix=module.tmpdir + '/')
|
|
442
440
|
else:
|
|
443
441
|
raise OSError
|
|
444
|
-
except
|
|
442
|
+
except OSError:
|
|
445
443
|
fd, wrapper_path = tempfile.mkstemp()
|
|
446
444
|
|
|
447
445
|
# use existing git_ssh/ssh_command, fallback to 'ssh'
|
|
@@ -466,10 +464,10 @@ def write_ssh_wrapper(module):
|
|
|
466
464
|
|
|
467
465
|
|
|
468
466
|
def set_git_ssh_env(key_file, ssh_opts, git_version, module):
|
|
469
|
-
|
|
467
|
+
"""
|
|
470
468
|
use environment variables to configure git's ssh execution,
|
|
471
469
|
which varies by version but this function should handle all.
|
|
472
|
-
|
|
470
|
+
"""
|
|
473
471
|
|
|
474
472
|
# initialise to existing ssh opts and/or append user provided
|
|
475
473
|
if ssh_opts is None:
|
|
@@ -519,7 +517,7 @@ def set_git_ssh_env(key_file, ssh_opts, git_version, module):
|
|
|
519
517
|
|
|
520
518
|
|
|
521
519
|
def get_version(module, git_path, dest, ref="HEAD"):
|
|
522
|
-
|
|
520
|
+
""" samples the version of the git repo """
|
|
523
521
|
|
|
524
522
|
cmd = "%s rev-parse %s" % (git_path, ref)
|
|
525
523
|
rc, stdout, stderr = module.run_command(cmd, cwd=dest)
|
|
@@ -571,7 +569,7 @@ def get_submodule_versions(git_path, module, dest, version='HEAD'):
|
|
|
571
569
|
|
|
572
570
|
def clone(git_path, module, repo, dest, remote, depth, version, bare,
|
|
573
571
|
reference, refspec, git_version_used, verify_commit, separate_git_dir, result, gpg_allowlist, single_branch):
|
|
574
|
-
|
|
572
|
+
""" makes a new git repo if it does not already exist """
|
|
575
573
|
dest_dirname = os.path.dirname(dest)
|
|
576
574
|
try:
|
|
577
575
|
os.makedirs(dest_dirname)
|
|
@@ -653,17 +651,17 @@ def has_local_mods(module, git_path, dest, bare):
|
|
|
653
651
|
|
|
654
652
|
|
|
655
653
|
def reset(git_path, module, dest):
|
|
656
|
-
|
|
654
|
+
"""
|
|
657
655
|
Resets the index and working tree to HEAD.
|
|
658
656
|
Discards any changes to tracked files in working
|
|
659
657
|
tree since that commit.
|
|
660
|
-
|
|
658
|
+
"""
|
|
661
659
|
cmd = "%s reset --hard HEAD" % (git_path,)
|
|
662
660
|
return module.run_command(cmd, check_rc=True, cwd=dest)
|
|
663
661
|
|
|
664
662
|
|
|
665
663
|
def get_diff(module, git_path, dest, repo, remote, depth, bare, before, after):
|
|
666
|
-
|
|
664
|
+
""" Return the difference between 2 versions """
|
|
667
665
|
if before is None:
|
|
668
666
|
return {'prepared': '>> Newly checked out %s' % after}
|
|
669
667
|
elif before != after:
|
|
@@ -817,22 +815,23 @@ def get_repo_path(dest, bare):
|
|
|
817
815
|
|
|
818
816
|
|
|
819
817
|
def get_head_branch(git_path, module, dest, remote, bare=False):
|
|
820
|
-
|
|
818
|
+
"""
|
|
821
819
|
Determine what branch HEAD is associated with. This is partly
|
|
822
820
|
taken from lib/ansible/utils/__init__.py. It finds the correct
|
|
823
821
|
path to .git/HEAD and reads from that file the branch that HEAD is
|
|
824
822
|
associated with. In the case of a detached HEAD, this will look
|
|
825
823
|
up the branch in .git/refs/remotes/<remote>/HEAD.
|
|
826
|
-
|
|
824
|
+
"""
|
|
827
825
|
try:
|
|
828
826
|
repo_path = get_repo_path(dest, bare)
|
|
829
|
-
except (
|
|
827
|
+
except (OSError, ValueError) as ex:
|
|
830
828
|
# No repo path found
|
|
831
829
|
# ``.git`` file does not have a valid format for detached Git dir.
|
|
832
830
|
module.fail_json(
|
|
833
831
|
msg='Current repo does not have a valid reference to a '
|
|
834
832
|
'separate Git dir or it refers to the invalid path',
|
|
835
|
-
details=
|
|
833
|
+
details=str(ex),
|
|
834
|
+
exception=ex,
|
|
836
835
|
)
|
|
837
836
|
# Read .git/HEAD for the name of the branch.
|
|
838
837
|
# If we're in a detached HEAD state, look up the branch associated with
|
|
@@ -845,7 +844,7 @@ def get_head_branch(git_path, module, dest, remote, bare=False):
|
|
|
845
844
|
|
|
846
845
|
|
|
847
846
|
def get_remote_url(git_path, module, dest, remote):
|
|
848
|
-
|
|
847
|
+
"""Return URL of remote source for repo."""
|
|
849
848
|
command = [git_path, 'ls-remote', '--get-url', remote]
|
|
850
849
|
(rc, out, err) = module.run_command(command, cwd=dest)
|
|
851
850
|
if rc != 0:
|
|
@@ -856,7 +855,7 @@ def get_remote_url(git_path, module, dest, remote):
|
|
|
856
855
|
|
|
857
856
|
|
|
858
857
|
def set_remote_url(git_path, module, repo, dest, remote):
|
|
859
|
-
|
|
858
|
+
""" updates repo from remote sources """
|
|
860
859
|
# Return if remote URL isn't changing.
|
|
861
860
|
remote_url = get_remote_url(git_path, module, dest, remote)
|
|
862
861
|
if remote_url == repo or unfrackgitpath(remote_url) == unfrackgitpath(repo):
|
|
@@ -874,7 +873,7 @@ def set_remote_url(git_path, module, repo, dest, remote):
|
|
|
874
873
|
|
|
875
874
|
|
|
876
875
|
def fetch(git_path, module, repo, dest, version, remote, depth, bare, refspec, git_version_used, force=False):
|
|
877
|
-
|
|
876
|
+
""" updates repo from remote sources """
|
|
878
877
|
set_remote_url(git_path, module, repo, dest, remote)
|
|
879
878
|
commands = []
|
|
880
879
|
|
|
@@ -981,7 +980,7 @@ def submodules_fetch(git_path, module, remote, track_submodules, dest):
|
|
|
981
980
|
|
|
982
981
|
|
|
983
982
|
def submodule_update(git_path, module, dest, track_submodules, force=False):
|
|
984
|
-
|
|
983
|
+
""" init and update any submodules """
|
|
985
984
|
|
|
986
985
|
# get the valid submodule params
|
|
987
986
|
params = get_submodule_update_params(module, git_path, dest)
|
|
@@ -1237,7 +1236,7 @@ def main():
|
|
|
1237
1236
|
archive_prefix = module.params['archive_prefix']
|
|
1238
1237
|
separate_git_dir = module.params['separate_git_dir']
|
|
1239
1238
|
|
|
1240
|
-
result = dict(changed=False
|
|
1239
|
+
result = dict(changed=False)
|
|
1241
1240
|
|
|
1242
1241
|
if module.params['accept_hostkey']:
|
|
1243
1242
|
if ssh_opts is not None:
|
|
@@ -1292,13 +1291,14 @@ def main():
|
|
|
1292
1291
|
if not module.check_mode:
|
|
1293
1292
|
relocate_repo(module, result, separate_git_dir, repo_path, dest)
|
|
1294
1293
|
repo_path = separate_git_dir
|
|
1295
|
-
except (
|
|
1294
|
+
except (OSError, ValueError) as ex:
|
|
1296
1295
|
# No repo path found
|
|
1297
1296
|
# ``.git`` file does not have a valid format for detached Git dir.
|
|
1298
1297
|
module.fail_json(
|
|
1299
1298
|
msg='Current repo does not have a valid reference to a '
|
|
1300
1299
|
'separate Git dir or it refers to the invalid path',
|
|
1301
|
-
details=
|
|
1300
|
+
details=str(ex),
|
|
1301
|
+
exception=ex,
|
|
1302
1302
|
)
|
|
1303
1303
|
gitconfig = os.path.join(repo_path, 'config')
|
|
1304
1304
|
|
ansible/modules/group.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: group
|
|
12
12
|
version_added: "0.0.2"
|
|
@@ -91,9 +91,9 @@ seealso:
|
|
|
91
91
|
- module: ansible.windows.win_group
|
|
92
92
|
author:
|
|
93
93
|
- Stephen Fromm (@sfromm)
|
|
94
|
-
|
|
94
|
+
"""
|
|
95
95
|
|
|
96
|
-
EXAMPLES =
|
|
96
|
+
EXAMPLES = """
|
|
97
97
|
- name: Ensure group "somegroup" exists
|
|
98
98
|
ansible.builtin.group:
|
|
99
99
|
name: somegroup
|
|
@@ -104,9 +104,9 @@ EXAMPLES = '''
|
|
|
104
104
|
name: docker
|
|
105
105
|
state: present
|
|
106
106
|
gid: 1750
|
|
107
|
-
|
|
107
|
+
"""
|
|
108
108
|
|
|
109
|
-
RETURN = r
|
|
109
|
+
RETURN = r"""
|
|
110
110
|
gid:
|
|
111
111
|
description: Group ID of the group.
|
|
112
112
|
returned: When O(state) is C(present)
|
|
@@ -127,7 +127,7 @@ system:
|
|
|
127
127
|
returned: When O(state) is C(present)
|
|
128
128
|
type: bool
|
|
129
129
|
sample: False
|
|
130
|
-
|
|
130
|
+
"""
|
|
131
131
|
|
|
132
132
|
import grp
|
|
133
133
|
import os
|
ansible/modules/group_by.py
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
DOCUMENTATION = r
|
|
10
|
+
DOCUMENTATION = r"""
|
|
11
11
|
---
|
|
12
12
|
module: group_by
|
|
13
13
|
short_description: Create Ansible groups based on facts
|
|
@@ -65,9 +65,9 @@ seealso:
|
|
|
65
65
|
- module: ansible.builtin.add_host
|
|
66
66
|
author:
|
|
67
67
|
- Jeroen Hoekx (@jhoekx)
|
|
68
|
-
|
|
68
|
+
"""
|
|
69
69
|
|
|
70
|
-
EXAMPLES = r
|
|
70
|
+
EXAMPLES = r"""
|
|
71
71
|
- name: Create groups based on the machine architecture
|
|
72
72
|
ansible.builtin.group_by:
|
|
73
73
|
key: machine_{{ ansible_machine }}
|
|
@@ -85,4 +85,4 @@ EXAMPLES = r'''
|
|
|
85
85
|
- name: Add all active hosts to a static group
|
|
86
86
|
ansible.builtin.group_by:
|
|
87
87
|
key: done
|
|
88
|
-
|
|
88
|
+
"""
|
ansible/modules/hostname.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#!/usr/bin/python
|
|
2
1
|
# -*- coding: utf-8 -*-
|
|
3
2
|
|
|
4
3
|
# Copyright: (c) 2013, Hiroaki Nakamura <hnakamur@gmail.com>
|
|
@@ -7,7 +6,7 @@
|
|
|
7
6
|
from __future__ import annotations
|
|
8
7
|
|
|
9
8
|
|
|
10
|
-
DOCUMENTATION =
|
|
9
|
+
DOCUMENTATION = """
|
|
11
10
|
---
|
|
12
11
|
module: hostname
|
|
13
12
|
author:
|
|
@@ -52,9 +51,9 @@ attributes:
|
|
|
52
51
|
support: full
|
|
53
52
|
platform:
|
|
54
53
|
platforms: posix
|
|
55
|
-
|
|
54
|
+
"""
|
|
56
55
|
|
|
57
|
-
EXAMPLES =
|
|
56
|
+
EXAMPLES = """
|
|
58
57
|
- name: Set a hostname
|
|
59
58
|
ansible.builtin.hostname:
|
|
60
59
|
name: web01
|
|
@@ -63,14 +62,12 @@ EXAMPLES = '''
|
|
|
63
62
|
ansible.builtin.hostname:
|
|
64
63
|
name: web01
|
|
65
64
|
use: systemd
|
|
66
|
-
|
|
65
|
+
"""
|
|
67
66
|
|
|
68
67
|
import os
|
|
69
68
|
import platform
|
|
70
69
|
import socket
|
|
71
|
-
import
|
|
72
|
-
|
|
73
|
-
import ansible.module_utils.compat.typing as t
|
|
70
|
+
import typing as t
|
|
74
71
|
|
|
75
72
|
from ansible.module_utils.basic import (
|
|
76
73
|
AnsibleModule,
|
|
@@ -209,17 +206,14 @@ class FileStrategy(BaseStrategy):
|
|
|
209
206
|
return get_file_content(self.FILE, default='', strip=True)
|
|
210
207
|
except Exception as e:
|
|
211
208
|
self.module.fail_json(
|
|
212
|
-
msg="failed to read hostname: %s" % to_native(e)
|
|
213
|
-
exception=traceback.format_exc())
|
|
209
|
+
msg="failed to read hostname: %s" % to_native(e))
|
|
214
210
|
|
|
215
211
|
def set_permanent_hostname(self, name):
|
|
216
212
|
try:
|
|
217
213
|
with open(self.FILE, 'w+') as f:
|
|
218
214
|
f.write("%s\n" % name)
|
|
219
215
|
except Exception as e:
|
|
220
|
-
self.module.fail_json(
|
|
221
|
-
msg="failed to update hostname: %s" % to_native(e),
|
|
222
|
-
exception=traceback.format_exc())
|
|
216
|
+
self.module.fail_json(msg="failed to update hostname: %s" % to_native(e))
|
|
223
217
|
|
|
224
218
|
|
|
225
219
|
class SLESStrategy(FileStrategy):
|
|
@@ -249,8 +243,7 @@ class RedHatStrategy(BaseStrategy):
|
|
|
249
243
|
)
|
|
250
244
|
except Exception as e:
|
|
251
245
|
self.module.fail_json(
|
|
252
|
-
msg="failed to read hostname: %s" % to_native(e)
|
|
253
|
-
exception=traceback.format_exc())
|
|
246
|
+
msg="failed to read hostname: %s" % to_native(e))
|
|
254
247
|
|
|
255
248
|
def set_permanent_hostname(self, name):
|
|
256
249
|
try:
|
|
@@ -269,9 +262,7 @@ class RedHatStrategy(BaseStrategy):
|
|
|
269
262
|
with open(self.NETWORK_FILE, 'w+') as f:
|
|
270
263
|
f.writelines(lines)
|
|
271
264
|
except Exception as e:
|
|
272
|
-
self.module.fail_json(
|
|
273
|
-
msg="failed to update hostname: %s" % to_native(e),
|
|
274
|
-
exception=traceback.format_exc())
|
|
265
|
+
self.module.fail_json(msg="failed to update hostname: %s" % to_native(e))
|
|
275
266
|
|
|
276
267
|
|
|
277
268
|
class AlpineStrategy(FileStrategy):
|
|
@@ -361,9 +352,7 @@ class OpenRCStrategy(BaseStrategy):
|
|
|
361
352
|
if line.startswith('hostname='):
|
|
362
353
|
return line[10:].strip('"')
|
|
363
354
|
except Exception as e:
|
|
364
|
-
self.module.fail_json(
|
|
365
|
-
msg="failed to read hostname: %s" % to_native(e),
|
|
366
|
-
exception=traceback.format_exc())
|
|
355
|
+
self.module.fail_json(msg="failed to read hostname: %s" % to_native(e))
|
|
367
356
|
|
|
368
357
|
def set_permanent_hostname(self, name):
|
|
369
358
|
try:
|
|
@@ -377,9 +366,7 @@ class OpenRCStrategy(BaseStrategy):
|
|
|
377
366
|
with open(self.FILE, 'w') as f:
|
|
378
367
|
f.write('\n'.join(lines) + '\n')
|
|
379
368
|
except Exception as e:
|
|
380
|
-
self.module.fail_json(
|
|
381
|
-
msg="failed to update hostname: %s" % to_native(e),
|
|
382
|
-
exception=traceback.format_exc())
|
|
369
|
+
self.module.fail_json(msg="failed to update hostname: %s" % to_native(e))
|
|
383
370
|
|
|
384
371
|
|
|
385
372
|
class OpenBSDStrategy(FileStrategy):
|
|
@@ -481,9 +468,7 @@ class FreeBSDStrategy(BaseStrategy):
|
|
|
481
468
|
if line.startswith('hostname='):
|
|
482
469
|
return line[10:].strip('"')
|
|
483
470
|
except Exception as e:
|
|
484
|
-
self.module.fail_json(
|
|
485
|
-
msg="failed to read hostname: %s" % to_native(e),
|
|
486
|
-
exception=traceback.format_exc())
|
|
471
|
+
self.module.fail_json(msg="failed to read hostname: %s" % to_native(e))
|
|
487
472
|
|
|
488
473
|
def set_permanent_hostname(self, name):
|
|
489
474
|
try:
|
|
@@ -500,9 +485,7 @@ class FreeBSDStrategy(BaseStrategy):
|
|
|
500
485
|
with open(self.FILE, 'w') as f:
|
|
501
486
|
f.write('\n'.join(lines) + '\n')
|
|
502
487
|
except Exception as e:
|
|
503
|
-
self.module.fail_json(
|
|
504
|
-
msg="failed to update hostname: %s" % to_native(e),
|
|
505
|
-
exception=traceback.format_exc())
|
|
488
|
+
self.module.fail_json(msg="failed to update hostname: %s" % to_native(e))
|
|
506
489
|
|
|
507
490
|
|
|
508
491
|
class DarwinStrategy(BaseStrategy):
|
|
@@ -625,8 +608,8 @@ class Hostname(object):
|
|
|
625
608
|
self.use = module.params['use']
|
|
626
609
|
|
|
627
610
|
if self.use is not None:
|
|
628
|
-
|
|
629
|
-
self.strategy =
|
|
611
|
+
strategy = globals()['%sStrategy' % STRATS[self.use]]
|
|
612
|
+
self.strategy = strategy(module)
|
|
630
613
|
elif platform.system() == 'Linux' and ServiceMgrFactCollector.is_systemd_managed(module):
|
|
631
614
|
# This is Linux and systemd is active
|
|
632
615
|
self.strategy = SystemdStrategy(module)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
DOCUMENTATION = r
|
|
9
|
+
DOCUMENTATION = r"""
|
|
10
10
|
---
|
|
11
11
|
author: Ansible Core Team (@ansible)
|
|
12
12
|
module: import_playbook
|
|
@@ -42,9 +42,9 @@ seealso:
|
|
|
42
42
|
- module: ansible.builtin.include_tasks
|
|
43
43
|
- ref: playbooks_reuse
|
|
44
44
|
description: More information related to including and importing playbooks, roles and tasks.
|
|
45
|
-
|
|
45
|
+
"""
|
|
46
46
|
|
|
47
|
-
EXAMPLES = r
|
|
47
|
+
EXAMPLES = r"""
|
|
48
48
|
- hosts: localhost
|
|
49
49
|
tasks:
|
|
50
50
|
- ansible.builtin.debug:
|
|
@@ -69,8 +69,8 @@ EXAMPLES = r'''
|
|
|
69
69
|
|
|
70
70
|
- name: This fails because I'm inside a play already
|
|
71
71
|
ansible.builtin.import_playbook: stuff.yaml
|
|
72
|
-
|
|
72
|
+
"""
|
|
73
73
|
|
|
74
|
-
RETURN = r
|
|
74
|
+
RETURN = r"""
|
|
75
75
|
# This module does not return anything except plays to execute.
|
|
76
|
-
|
|
76
|
+
"""
|
ansible/modules/import_role.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
|
author: Ansible Core Team (@ansible)
|
|
11
11
|
module: import_role
|
|
@@ -87,9 +87,9 @@ seealso:
|
|
|
87
87
|
- module: ansible.builtin.include_tasks
|
|
88
88
|
- ref: playbooks_reuse
|
|
89
89
|
description: More information related to including and importing playbooks, roles and tasks.
|
|
90
|
-
|
|
90
|
+
"""
|
|
91
91
|
|
|
92
|
-
EXAMPLES = r
|
|
92
|
+
EXAMPLES = r"""
|
|
93
93
|
- hosts: all
|
|
94
94
|
tasks:
|
|
95
95
|
- ansible.builtin.import_role:
|
|
@@ -110,8 +110,8 @@ EXAMPLES = r'''
|
|
|
110
110
|
ansible.builtin.import_role:
|
|
111
111
|
name: myrole
|
|
112
112
|
when: not idontwanttorun
|
|
113
|
-
|
|
113
|
+
"""
|
|
114
114
|
|
|
115
|
-
RETURN = r
|
|
115
|
+
RETURN = r"""
|
|
116
116
|
# This module does not return anything except tasks to execute.
|
|
117
|
-
|
|
117
|
+
"""
|
ansible/modules/import_tasks.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
|
author: Ansible Core Team (@ansible)
|
|
12
12
|
module: import_tasks
|
|
@@ -46,9 +46,9 @@ seealso:
|
|
|
46
46
|
- module: ansible.builtin.include_tasks
|
|
47
47
|
- ref: playbooks_reuse
|
|
48
48
|
description: More information related to including and importing playbooks, roles and tasks.
|
|
49
|
-
|
|
49
|
+
"""
|
|
50
50
|
|
|
51
|
-
EXAMPLES = r
|
|
51
|
+
EXAMPLES = r"""
|
|
52
52
|
- hosts: all
|
|
53
53
|
tasks:
|
|
54
54
|
- ansible.builtin.debug:
|
|
@@ -69,8 +69,8 @@ EXAMPLES = r'''
|
|
|
69
69
|
- name: Apply conditional to all imported tasks
|
|
70
70
|
ansible.builtin.import_tasks: stuff.yaml
|
|
71
71
|
when: hostvar is defined
|
|
72
|
-
|
|
72
|
+
"""
|
|
73
73
|
|
|
74
|
-
RETURN = r
|
|
74
|
+
RETURN = r"""
|
|
75
75
|
# This module does not return anything except tasks to execute.
|
|
76
|
-
|
|
76
|
+
"""
|
ansible/modules/include_role.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
|
author: Ansible Core Team (@ansible)
|
|
12
12
|
module: include_role
|
|
@@ -92,9 +92,9 @@ seealso:
|
|
|
92
92
|
- module: ansible.builtin.include_tasks
|
|
93
93
|
- ref: playbooks_reuse
|
|
94
94
|
description: More information related to including and importing playbooks, roles and tasks.
|
|
95
|
-
|
|
95
|
+
"""
|
|
96
96
|
|
|
97
|
-
EXAMPLES = r
|
|
97
|
+
EXAMPLES = r"""
|
|
98
98
|
- ansible.builtin.include_role:
|
|
99
99
|
name: myrole
|
|
100
100
|
|
|
@@ -131,8 +131,8 @@ EXAMPLES = r'''
|
|
|
131
131
|
- install
|
|
132
132
|
tags:
|
|
133
133
|
- always
|
|
134
|
-
|
|
134
|
+
"""
|
|
135
135
|
|
|
136
|
-
RETURN = r
|
|
136
|
+
RETURN = r"""
|
|
137
137
|
# This module does not return anything except tasks to execute.
|
|
138
|
-
|
|
138
|
+
"""
|
ansible/modules/include_tasks.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
|
author: Ansible Core Team (@ansible)
|
|
12
12
|
module: include_tasks
|
|
@@ -50,9 +50,9 @@ seealso:
|
|
|
50
50
|
- module: ansible.builtin.include_role
|
|
51
51
|
- ref: playbooks_reuse
|
|
52
52
|
description: More information related to including and importing playbooks, roles and tasks.
|
|
53
|
-
|
|
53
|
+
"""
|
|
54
54
|
|
|
55
|
-
EXAMPLES = r
|
|
55
|
+
EXAMPLES = r"""
|
|
56
56
|
- hosts: all
|
|
57
57
|
tasks:
|
|
58
58
|
- ansible.builtin.debug:
|
|
@@ -91,8 +91,8 @@ EXAMPLES = r'''
|
|
|
91
91
|
- install
|
|
92
92
|
tags:
|
|
93
93
|
- always
|
|
94
|
-
|
|
94
|
+
"""
|
|
95
95
|
|
|
96
|
-
RETURN = r
|
|
96
|
+
RETURN = r"""
|
|
97
97
|
# This module does not return anything except tasks to execute.
|
|
98
|
-
|
|
98
|
+
"""
|
ansible/modules/include_vars.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
|
author: Allen Sanabria (@linuxdynasty)
|
|
11
11
|
module: include_vars
|
|
@@ -112,9 +112,9 @@ seealso:
|
|
|
112
112
|
- module: ansible.builtin.set_fact
|
|
113
113
|
- ref: playbooks_delegation
|
|
114
114
|
description: More information related to task delegation.
|
|
115
|
-
|
|
115
|
+
"""
|
|
116
116
|
|
|
117
|
-
EXAMPLES = r
|
|
117
|
+
EXAMPLES = r"""
|
|
118
118
|
- name: Include vars of stuff.yaml into the 'stuff' variable (2.2).
|
|
119
119
|
ansible.builtin.include_vars:
|
|
120
120
|
file: stuff.yaml
|
|
@@ -179,9 +179,9 @@ EXAMPLES = r'''
|
|
|
179
179
|
- 'yaml'
|
|
180
180
|
- 'yml'
|
|
181
181
|
- 'json'
|
|
182
|
-
|
|
182
|
+
"""
|
|
183
183
|
|
|
184
|
-
RETURN = r
|
|
184
|
+
RETURN = r"""
|
|
185
185
|
ansible_facts:
|
|
186
186
|
description: Variables that were included and their values
|
|
187
187
|
returned: success
|
|
@@ -193,4 +193,4 @@ ansible_included_var_files:
|
|
|
193
193
|
type: list
|
|
194
194
|
sample: [ /path/to/file.json, /path/to/file.yaml ]
|
|
195
195
|
version_added: '2.4'
|
|
196
|
-
|
|
196
|
+
"""
|