From 1b079a3d170ac309bb76fa43bc0bb4e811de508f Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:49 +0200 Subject: [PATCH 01/27] Fix deprecated imports in plugins/action/synchronize.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters - ansible.module_utils.common._collections_compat -> collections.abc - ansible.module_utils.six.string_types -> str - ansible.module_utils.six.moves.shlex_quote -> shlex.quote Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/action/synchronize.py | 9 ++++----- tests/sanity/ignore-2.21.txt | 1 - 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/plugins/action/synchronize.py b/plugins/action/synchronize.py index a171a2b..8f857c0 100644 --- a/plugins/action/synchronize.py +++ b/plugins/action/synchronize.py @@ -18,12 +18,11 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type import os.path +from collections.abc import MutableSequence +from shlex import quote as shlex_quote from ansible import constants as C -from ansible.module_utils.six import string_types -from ansible.module_utils.six.moves import shlex_quote -from ansible.module_utils._text import to_text -from ansible.module_utils.common._collections_compat import MutableSequence +from ansible.module_utils.common.text.converters import to_text from ansible.module_utils.parsing.convert_bool import boolean from ansible.plugins.action import ActionBase from ansible.plugins.loader import connection_loader @@ -417,7 +416,7 @@ class ActionModule(ActionBase): # Replicate what we do in the module argumentspec handling for lists if not isinstance(_tmp_args.get('rsync_opts'), MutableSequence): tmp_rsync_opts = _tmp_args.get('rsync_opts', []) - if isinstance(tmp_rsync_opts, string_types): + if isinstance(tmp_rsync_opts, str): tmp_rsync_opts = tmp_rsync_opts.split(',') elif isinstance(tmp_rsync_opts, (int, float)): tmp_rsync_opts = [to_text(tmp_rsync_opts)] diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index 9b5e162..ac7c171 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,5 +1,4 @@ tests/utils/shippable/timing.py shebang -plugins/action/synchronize.py pylint:ansible-bad-import-from plugins/callback/cgroup_perf_recap.py pylint:ansible-bad-import-from plugins/modules/mount.py pylint:ansible-bad-import-from plugins/modules/sysctl.py pylint:ansible-bad-import-from From bd5f969ef1c28400577512984825e14923d6acaa Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:49 +0200 Subject: [PATCH 02/27] Fix deprecated imports in plugins/modules/synchronize.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters - ansible.module_utils.six.moves.shlex_quote -> shlex.quote Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/synchronize.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/modules/synchronize.py b/plugins/modules/synchronize.py index d65e08f..37b080a 100644 --- a/plugins/modules/synchronize.py +++ b/plugins/modules/synchronize.py @@ -367,9 +367,16 @@ EXAMPLES = r''' import os import errno +# TODO(Python2): shlex.quote was added in Python 3.3. This module may run on +# target hosts with Python 2.7 (e.g., older RHEL systems in CI integration tests). +# Remove the try/except fallback to pipes.quote when Python 2 support is dropped. +try: + from shlex import quote as shlex_quote +except ImportError: + from pipes import quote as shlex_quote + from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils._text import to_bytes, to_native -from ansible.module_utils.six.moves import shlex_quote +from ansible.module_utils.common.text.converters import to_bytes, to_native client_addr = None From c1de972d385f6c7417300314635661237c8d7726 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:49 +0200 Subject: [PATCH 03/27] Fix deprecated imports in plugins/modules/mount.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters - ansible.module_utils.six.iteritems -> dict.items() Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/mount.py | 5 ++--- tests/sanity/ignore-2.21.txt | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/modules/mount.py b/plugins/modules/mount.py index 6e2425b..682fd4c 100644 --- a/plugins/modules/mount.py +++ b/plugins/modules/mount.py @@ -225,8 +225,7 @@ import platform from ansible.module_utils.basic import AnsibleModule from ansible_collections.ansible.posix.plugins.module_utils.mount import ismount -from ansible.module_utils.six import iteritems -from ansible.module_utils._text import to_bytes, to_native +from ansible.module_utils.common.text.converters import to_bytes, to_native from ansible.module_utils.parsing.convert_bool import boolean @@ -279,7 +278,7 @@ def _set_mount_save_old(module, args): old_lines = [] exists = False changed = False - escaped_args = dict([(k, _escape_fstab(v)) for k, v in iteritems(args)]) + escaped_args = dict([(k, _escape_fstab(v)) for k, v in args.items()]) new_line = '%(src)s %(name)s %(fstype)s %(opts)s %(dump)s %(passno)s\n' if platform.system() == 'SunOS': diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index ac7c171..2abdfc0 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,6 +1,5 @@ tests/utils/shippable/timing.py shebang plugins/callback/cgroup_perf_recap.py pylint:ansible-bad-import-from -plugins/modules/mount.py pylint:ansible-bad-import-from plugins/modules/sysctl.py pylint:ansible-bad-import-from plugins/shell/csh.py pylint:ansible-bad-import-from plugins/shell/fish.py pylint:ansible-bad-import-from From b6198df6ab795b5f1b5295b2bf2d907634ab79a8 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 04/27] Fix deprecated imports in plugins/action/patch.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/action/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/action/patch.py b/plugins/action/patch.py index 3b477d7..ea82ed6 100644 --- a/plugins/action/patch.py +++ b/plugins/action/patch.py @@ -21,7 +21,7 @@ __metaclass__ = type import os from ansible.errors import AnsibleError, AnsibleAction, _AnsibleActionDone, AnsibleActionFail -from ansible.module_utils._text import to_native +from ansible.module_utils.common.text.converters import to_native from ansible.module_utils.parsing.convert_bool import boolean from ansible.plugins.action import ActionBase From c6693517777c55354978df418452cb74516a90ba Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 05/27] Fix deprecated imports in plugins/callback/cgroup_perf_recap.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters - ansible.module_utils.six.with_metaclass -> Python 3 metaclass syntax Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/callback/cgroup_perf_recap.py | 5 ++--- tests/sanity/ignore-2.21.txt | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/callback/cgroup_perf_recap.py b/plugins/callback/cgroup_perf_recap.py index 6721a03..58a4f37 100644 --- a/plugins/callback/cgroup_perf_recap.py +++ b/plugins/callback/cgroup_perf_recap.py @@ -141,8 +141,7 @@ from abc import ABCMeta, abstractmethod from functools import partial -from ansible.module_utils._text import to_bytes, to_text -from ansible.module_utils.six import with_metaclass +from ansible.module_utils.common.text.converters import to_bytes, to_text from ansible.parsing.ajson import AnsibleJSONEncoder from ansible.plugins.callback import CallbackBase @@ -158,7 +157,7 @@ def dict_fromkeys(keys, default=None): return d -class BaseProf(with_metaclass(ABCMeta, threading.Thread)): +class BaseProf(threading.Thread, metaclass=ABCMeta): def __init__(self, path, obj=None, writer=None): threading.Thread.__init__(self) # pylint: disable=non-parent-init-called self.obj = obj diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index 2abdfc0..a261578 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,5 +1,4 @@ tests/utils/shippable/timing.py shebang -plugins/callback/cgroup_perf_recap.py pylint:ansible-bad-import-from plugins/modules/sysctl.py pylint:ansible-bad-import-from plugins/shell/csh.py pylint:ansible-bad-import-from plugins/shell/fish.py pylint:ansible-bad-import-from From ce6b409abe943d830959364cabe23c83b100d1b4 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 06/27] Fix deprecated imports in plugins/callback/json.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/callback/json.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/callback/json.py b/plugins/callback/json.py index 6f86bd1..1dcb6bb 100644 --- a/plugins/callback/json.py +++ b/plugins/callback/json.py @@ -48,7 +48,7 @@ import json from functools import partial from ansible.inventory.host import Host -from ansible.module_utils._text import to_text +from ansible.module_utils.common.text.converters import to_text from ansible.parsing.ajson import AnsibleJSONEncoder from ansible.plugins.callback import CallbackBase From 0f02dc8960d2283fb541743eed69e78c8c7779b1 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 07/27] Fix deprecated imports in plugins/callback/jsonl.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/callback/jsonl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/callback/jsonl.py b/plugins/callback/jsonl.py index 1e03163..2d45d15 100644 --- a/plugins/callback/jsonl.py +++ b/plugins/callback/jsonl.py @@ -50,7 +50,7 @@ import copy from functools import partial from ansible.inventory.host import Host -from ansible.module_utils._text import to_text +from ansible.module_utils.common.text.converters import to_text from ansible.parsing.ajson import AnsibleJSONEncoder from ansible.plugins.callback import CallbackBase From d0f576d3bde94ecafd1a9aeae740cb45994e3e4a Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 08/27] Fix deprecated imports in plugins/callback/profile_roles.py Replace deprecated module_utils import: - ansible.module_utils.six.moves.reduce -> functools.reduce Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/callback/profile_roles.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/callback/profile_roles.py b/plugins/callback/profile_roles.py index 4d58014..d5d1adc 100644 --- a/plugins/callback/profile_roles.py +++ b/plugins/callback/profile_roles.py @@ -33,7 +33,7 @@ import collections import time from ansible.plugins.callback import CallbackBase -from ansible.module_utils.six.moves import reduce +from functools import reduce # define start time t0 = tn = time.time() From 7e4cf566f4ac839e5fa7dea63a5a50d7248fcccd Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 09/27] Fix deprecated imports in plugins/callback/profile_tasks.py Replace deprecated module_utils import: - ansible.module_utils.six.moves.reduce -> functools.reduce Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/callback/profile_tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/callback/profile_tasks.py b/plugins/callback/profile_tasks.py index 2945bf9..4b7783e 100644 --- a/plugins/callback/profile_tasks.py +++ b/plugins/callback/profile_tasks.py @@ -86,7 +86,7 @@ import collections from datetime import datetime -from ansible.module_utils.six.moves import reduce +from functools import reduce from ansible.plugins.callback import CallbackBase From f6c77b5e457b86f31a992886ed6ad6749a6ac294 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 10/27] Fix deprecated imports in plugins/modules/acl.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/acl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/acl.py b/plugins/modules/acl.py index 4cc94e7..56e8de8 100644 --- a/plugins/modules/acl.py +++ b/plugins/modules/acl.py @@ -147,7 +147,7 @@ import os import platform from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils._text import to_native +from ansible.module_utils.common.text.converters import to_native def split_entry(entry): From 027c46f1195197c30bfcc4373f2c63d0d52d393a Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 23:14:59 +0200 Subject: [PATCH 11/27] Fix deprecated imports in plugins/modules/authorized_key.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters - ansible.module_utils.six.moves.urllib.parse -> urllib.parse Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/authorized_key.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/modules/authorized_key.py b/plugins/modules/authorized_key.py index d712a10..5908610 100644 --- a/plugins/modules/authorized_key.py +++ b/plugins/modules/authorized_key.py @@ -229,10 +229,17 @@ import errno import traceback from operator import itemgetter -from ansible.module_utils._text import to_native +# TODO(Python2): urllib.parse is available in Python 3. This module may run on +# target hosts with Python 2.7 (e.g., older RHEL systems in CI integration tests). +# Remove the try/except fallback to urlparse when Python 2 support is dropped. +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse + from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.common.text.converters import to_native from ansible.module_utils.urls import fetch_url -from ansible.module_utils.six.moves.urllib.parse import urlparse class keydict(dict): From bdf59991d35516165e0ea3a3e8852df0ac855e42 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 12/27] Fix deprecated imports in plugins/modules/firewalld_info.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/firewalld_info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/firewalld_info.py b/plugins/modules/firewalld_info.py index 0da6dd3..94654ee 100644 --- a/plugins/modules/firewalld_info.py +++ b/plugins/modules/firewalld_info.py @@ -210,7 +210,7 @@ firewalld_info: ''' from ansible.module_utils.basic import AnsibleModule, missing_required_lib -from ansible.module_utils._text import to_native +from ansible.module_utils.common.text.converters import to_native from ansible_collections.ansible.posix.plugins.module_utils._respawn import respawn_module, HAS_RESPAWN_UTIL from ansible_collections.ansible.posix.plugins.module_utils.version import StrictVersion From 0c384a4d5bfc96edc7d70793a02361e714bf0155 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 13/27] Fix deprecated imports in plugins/modules/patch.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/patch.py b/plugins/modules/patch.py index 39744a7..2ecd262 100644 --- a/plugins/modules/patch.py +++ b/plugins/modules/patch.py @@ -106,7 +106,7 @@ import os import platform from traceback import format_exc from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils._text import to_native +from ansible.module_utils.common.text.converters import to_native class PatchError(Exception): From 7c01879f0eec3f1bd18be28ff37dcc62624ac9b9 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 14/27] Fix deprecated imports in plugins/modules/rhel_rpm_ostree.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/rhel_rpm_ostree.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/rhel_rpm_ostree.py b/plugins/modules/rhel_rpm_ostree.py index 0aafb54..dfab26a 100644 --- a/plugins/modules/rhel_rpm_ostree.py +++ b/plugins/modules/rhel_rpm_ostree.py @@ -73,7 +73,7 @@ import os import traceback from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils._text import to_text +from ansible.module_utils.common.text.converters import to_text def locally_installed(module, pkgname): From b4823e10a896e9ecb69e5684055dc638b5b28f16 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 15/27] Fix deprecated imports in plugins/modules/rpm_ostree_upgrade.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/rpm_ostree_upgrade.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/rpm_ostree_upgrade.py b/plugins/modules/rpm_ostree_upgrade.py index 16689ca..40f9720 100644 --- a/plugins/modules/rpm_ostree_upgrade.py +++ b/plugins/modules/rpm_ostree_upgrade.py @@ -71,7 +71,7 @@ import os import traceback from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils._text import to_native, to_text +from ansible.module_utils.common.text.converters import to_native, to_text def rpm_ostree_transaction(module): From 9eeacedd72ba4b6522acc47277b30a41d35f4d67 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 16/27] Fix deprecated imports in plugins/modules/seboolean.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/seboolean.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/seboolean.py b/plugins/modules/seboolean.py index 8580c62..a23c473 100644 --- a/plugins/modules/seboolean.py +++ b/plugins/modules/seboolean.py @@ -73,7 +73,7 @@ except ImportError: HAVE_SEMANAGE = False from ansible.module_utils.basic import AnsibleModule, missing_required_lib -from ansible.module_utils._text import to_text +from ansible.module_utils.common.text.converters import to_text from ansible_collections.ansible.posix.plugins.module_utils._respawn import respawn_module, HAS_RESPAWN_UTIL From b8b424e4ee04124813fc97f022f8e2b9353ccbb5 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 17/27] Fix deprecated imports in plugins/modules/sysctl.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters - ansible.module_utils.six.string_types -> str Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/modules/sysctl.py | 5 ++--- tests/sanity/ignore-2.21.txt | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/modules/sysctl.py b/plugins/modules/sysctl.py index 86712db..b85ac2d 100644 --- a/plugins/modules/sysctl.py +++ b/plugins/modules/sysctl.py @@ -110,9 +110,8 @@ import re import tempfile from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.six import string_types +from ansible.module_utils.common.text.converters import to_native from ansible.module_utils.parsing.convert_bool import BOOLEANS_FALSE, BOOLEANS_TRUE -from ansible.module_utils._text import to_native class SysctlModule(object): @@ -224,7 +223,7 @@ class SysctlModule(object): return '1' else: return '0' - elif isinstance(value, string_types): + elif isinstance(value, str): if value.lower() in BOOLEANS_TRUE: return '1' elif value.lower() in BOOLEANS_FALSE: diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index a261578..17e042d 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,5 +1,4 @@ tests/utils/shippable/timing.py shebang -plugins/modules/sysctl.py pylint:ansible-bad-import-from plugins/shell/csh.py pylint:ansible-bad-import-from plugins/shell/fish.py pylint:ansible-bad-import-from tests/unit/mock/procenv.py pylint:ansible-bad-import-from From 1d76c2ff5fc953b7389863a91cc1850cfdcaae9b Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 18/27] Fix deprecated imports in plugins/shell/csh.py Replace deprecated module_utils imports: - ansible.module_utils.six.text_type -> str - ansible.module_utils.six.moves.shlex_quote -> shlex.quote Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/shell/csh.py | 5 ++--- tests/sanity/ignore-2.21.txt | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/shell/csh.py b/plugins/shell/csh.py index 9baae25..3b2e28f 100644 --- a/plugins/shell/csh.py +++ b/plugins/shell/csh.py @@ -13,8 +13,7 @@ DOCUMENTATION = ''' - shell_common ''' -from ansible.module_utils.six import text_type -from ansible.module_utils.six.moves import shlex_quote +from shlex import quote as shlex_quote from ansible.plugins.shell import ShellBase @@ -43,5 +42,5 @@ class ShellModule(ShellBase): ret = [] # All the -u options must be first, so we process them first ret += ['-u %s' % k for k, v in kwargs.items() if v is None] - ret += ['%s=%s' % (k, shlex_quote(text_type(v))) for k, v in kwargs.items() if v is not None] + ret += ['%s=%s' % (k, shlex_quote(str(v))) for k, v in kwargs.items() if v is not None] return 'env %s' % ' '.join(ret) diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index 17e042d..62cea54 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,5 +1,4 @@ tests/utils/shippable/timing.py shebang -plugins/shell/csh.py pylint:ansible-bad-import-from plugins/shell/fish.py pylint:ansible-bad-import-from tests/unit/mock/procenv.py pylint:ansible-bad-import-from tests/unit/mock/yaml_helper.py pylint:ansible-bad-import-from From a9bdfed19413e393a04cc1344b49fb9bc7efcc53 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 19/27] Fix deprecated imports in plugins/shell/fish.py Replace deprecated module_utils imports: - ansible.module_utils.six.text_type -> str - ansible.module_utils.six.moves.shlex_quote -> shlex.quote Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- plugins/shell/fish.py | 5 ++--- tests/sanity/ignore-2.21.txt | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/shell/fish.py b/plugins/shell/fish.py index b96efa5..43b1463 100644 --- a/plugins/shell/fish.py +++ b/plugins/shell/fish.py @@ -13,8 +13,7 @@ DOCUMENTATION = ''' - shell_common ''' -from ansible.module_utils.six import text_type -from ansible.module_utils.six.moves import shlex_quote +from shlex import quote as shlex_quote from ansible.plugins.shell.sh import ShellModule as ShModule @@ -42,7 +41,7 @@ class ShellModule(ShModule): if v is None: ret.append('set -e %s;' % k) else: - ret.append('set -lx %s %s;' % (k, shlex_quote(text_type(v)))) + ret.append('set -lx %s %s;' % (k, shlex_quote(str(v)))) return ' '.join(ret) def build_module_command(self, env_string, shebang, cmd, arg_path=None): diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index 62cea54..bc694e0 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,5 +1,4 @@ tests/utils/shippable/timing.py shebang -plugins/shell/fish.py pylint:ansible-bad-import-from tests/unit/mock/procenv.py pylint:ansible-bad-import-from tests/unit/mock/yaml_helper.py pylint:ansible-bad-import-from tests/unit/modules/conftest.py pylint:ansible-bad-import-from From be431d23b55a7e1becf4227adffcfa8a433d38b0 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 20/27] Fix deprecated imports in tests/unit/mock/loader.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- tests/unit/mock/loader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/mock/loader.py b/tests/unit/mock/loader.py index edeac45..ed59720 100644 --- a/tests/unit/mock/loader.py +++ b/tests/unit/mock/loader.py @@ -23,7 +23,7 @@ import os from ansible.errors import AnsibleParserError from ansible.parsing.dataloader import DataLoader -from ansible.module_utils._text import to_bytes, to_text +from ansible.module_utils.common.text.converters import to_bytes, to_text class DictDataLoader(DataLoader): From 0c210428cfc7ccb6d274b013bf5aaa181a2c5681 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 21/27] Fix deprecated imports in tests/unit/mock/procenv.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters - ansible.module_utils.six.PY3 -> removed (Python 2 code paths removed) Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- tests/sanity/ignore-2.21.txt | 1 - tests/unit/mock/procenv.py | 15 ++++----------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index bc694e0..3ebf710 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,4 +1,3 @@ tests/utils/shippable/timing.py shebang -tests/unit/mock/procenv.py pylint:ansible-bad-import-from tests/unit/mock/yaml_helper.py pylint:ansible-bad-import-from tests/unit/modules/conftest.py pylint:ansible-bad-import-from diff --git a/tests/unit/mock/procenv.py b/tests/unit/mock/procenv.py index 4740452..f1541a8 100644 --- a/tests/unit/mock/procenv.py +++ b/tests/unit/mock/procenv.py @@ -26,8 +26,7 @@ import json from contextlib import contextmanager from io import BytesIO, StringIO from ansible_collections.ansible.posix.tests.unit.compat import unittest -from ansible.module_utils.six import PY3 -from ansible.module_utils._text import to_bytes +from ansible.module_utils.common.text.converters import to_bytes @contextmanager @@ -38,11 +37,8 @@ def swap_stdin_and_argv(stdin_data='', argv_data=tuple()): real_stdin = sys.stdin real_argv = sys.argv - if PY3: - fake_stream = StringIO(stdin_data) - fake_stream.buffer = BytesIO(to_bytes(stdin_data)) - else: - fake_stream = BytesIO(to_bytes(stdin_data)) + fake_stream = StringIO(stdin_data) + fake_stream.buffer = BytesIO(to_bytes(stdin_data)) try: sys.stdin = fake_stream @@ -61,10 +57,7 @@ def swap_stdout(): """ old_stdout = sys.stdout - if PY3: - fake_stream = StringIO() - else: - fake_stream = BytesIO() + fake_stream = StringIO() try: sys.stdout = fake_stream From b5c50b68819b76882872926197ab64fc1252a77e Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 22/27] Fix deprecated imports in tests/unit/mock/vault_helper.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- tests/unit/mock/vault_helper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/mock/vault_helper.py b/tests/unit/mock/vault_helper.py index dcce9c7..5b2fdd2 100644 --- a/tests/unit/mock/vault_helper.py +++ b/tests/unit/mock/vault_helper.py @@ -15,7 +15,7 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -from ansible.module_utils._text import to_bytes +from ansible.module_utils.common.text.converters import to_bytes from ansible.parsing.vault import VaultSecret From ab24f41cbddfd58b72f1a5d37d3477c1ab4c814b Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 23/27] Fix deprecated imports in tests/unit/mock/yaml_helper.py Replace deprecated module_utils import: - ansible.module_utils.six.PY3 -> removed (Python 2 code paths removed) Related to #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- tests/sanity/ignore-2.21.txt | 1 - tests/unit/mock/yaml_helper.py | 27 ++++++--------------------- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index 3ebf710..90f9d69 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,3 +1,2 @@ tests/utils/shippable/timing.py shebang -tests/unit/mock/yaml_helper.py pylint:ansible-bad-import-from tests/unit/modules/conftest.py pylint:ansible-bad-import-from diff --git a/tests/unit/mock/yaml_helper.py b/tests/unit/mock/yaml_helper.py index a4c2d6d..c6e0f33 100644 --- a/tests/unit/mock/yaml_helper.py +++ b/tests/unit/mock/yaml_helper.py @@ -5,7 +5,6 @@ __metaclass__ = type import io import yaml -from ansible.module_utils.six import PY3 from ansible.parsing.yaml.loader import AnsibleLoader from ansible.parsing.yaml.dumper import AnsibleDumper @@ -20,17 +19,11 @@ class YamlTestUtils(object): def _dump_stream(self, obj, stream, dumper=None): """Dump to a py2-unicode or py3-string stream.""" - if PY3: - return yaml.dump(obj, stream, Dumper=dumper) - else: - return yaml.dump(obj, stream, Dumper=dumper, encoding=None) + return yaml.dump(obj, stream, Dumper=dumper) def _dump_string(self, obj, dumper=None): """Dump to a py2-unicode or py3-string""" - if PY3: - return yaml.dump(obj, Dumper=dumper) - else: - return yaml.dump(obj, Dumper=dumper, encoding=None) + return yaml.dump(obj, Dumper=dumper) def _dump_load_cycle(self, obj): # Each pass though a dump or load revs the 'generation' @@ -88,12 +81,8 @@ class YamlTestUtils(object): stream_obj_from_stream = io.StringIO() stream_obj_from_string = io.StringIO() - if PY3: - yaml.dump(obj_from_stream, stream_obj_from_stream, Dumper=AnsibleDumper) - yaml.dump(obj_from_stream, stream_obj_from_string, Dumper=AnsibleDumper) - else: - yaml.dump(obj_from_stream, stream_obj_from_stream, Dumper=AnsibleDumper, encoding=None) - yaml.dump(obj_from_stream, stream_obj_from_string, Dumper=AnsibleDumper, encoding=None) + yaml.dump(obj_from_stream, stream_obj_from_stream, Dumper=AnsibleDumper) + yaml.dump(obj_from_stream, stream_obj_from_string, Dumper=AnsibleDumper) yaml_string_stream_obj_from_stream = stream_obj_from_stream.getvalue() yaml_string_stream_obj_from_string = stream_obj_from_string.getvalue() @@ -101,12 +90,8 @@ class YamlTestUtils(object): stream_obj_from_stream.seek(0) stream_obj_from_string.seek(0) - if PY3: - yaml_string_obj_from_stream = yaml.dump(obj_from_stream, Dumper=AnsibleDumper) - yaml_string_obj_from_string = yaml.dump(obj_from_string, Dumper=AnsibleDumper) - else: - yaml_string_obj_from_stream = yaml.dump(obj_from_stream, Dumper=AnsibleDumper, encoding=None) - yaml_string_obj_from_string = yaml.dump(obj_from_string, Dumper=AnsibleDumper, encoding=None) + yaml_string_obj_from_stream = yaml.dump(obj_from_stream, Dumper=AnsibleDumper) + yaml_string_obj_from_string = yaml.dump(obj_from_string, Dumper=AnsibleDumper) assert yaml_string == yaml_string_obj_from_stream assert yaml_string == yaml_string_obj_from_stream == yaml_string_obj_from_string From 7bc21b6b41fa7ea086bd14a2423b9971473efcba Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 24/27] Fix deprecated imports in tests/unit/modules/conftest.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters - ansible.module_utils.six.string_types -> str - ansible.module_utils.common._collections_compat -> collections.abc Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- tests/sanity/ignore-2.21.txt | 1 - tests/unit/modules/conftest.py | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/sanity/ignore-2.21.txt b/tests/sanity/ignore-2.21.txt index 90f9d69..3cf68c0 100644 --- a/tests/sanity/ignore-2.21.txt +++ b/tests/sanity/ignore-2.21.txt @@ -1,2 +1 @@ tests/utils/shippable/timing.py shebang -tests/unit/modules/conftest.py pylint:ansible-bad-import-from diff --git a/tests/unit/modules/conftest.py b/tests/unit/modules/conftest.py index 6eb5883..01b5593 100644 --- a/tests/unit/modules/conftest.py +++ b/tests/unit/modules/conftest.py @@ -9,14 +9,14 @@ import json import pytest -from ansible.module_utils.six import string_types -from ansible.module_utils._text import to_bytes -from ansible.module_utils.common._collections_compat import MutableMapping +from collections.abc import MutableMapping + +from ansible.module_utils.common.text.converters import to_bytes @pytest.fixture def patch_ansible_module(request, mocker): - if isinstance(request.param, string_types): + if isinstance(request.param, str): args = request.param elif isinstance(request.param, MutableMapping): if 'ANSIBLE_MODULE_ARGS' not in request.param: From f42364d515f16e806867dae18029b197050f02cd Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 25/27] Fix deprecated imports in tests/unit/modules/system/test_mount.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- tests/unit/modules/system/test_mount.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/modules/system/test_mount.py b/tests/unit/modules/system/test_mount.py index 73086cc..b7390a1 100644 --- a/tests/unit/modules/system/test_mount.py +++ b/tests/unit/modules/system/test_mount.py @@ -7,7 +7,7 @@ import tempfile from ansible_collections.ansible.posix.tests.unit.compat import unittest from ansible_collections.ansible.posix.tests.unit.compat.mock import MagicMock -from ansible.module_utils._text import to_bytes +from ansible.module_utils.common.text.converters import to_bytes from ansible_collections.ansible.posix.plugins.modules.mount import ( get_linux_mounts, From 98fda8f4b77acbb731842167bcb68f914ccdf83f Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 26/27] Fix deprecated imports in tests/unit/modules/utils.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- tests/unit/modules/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/modules/utils.py b/tests/unit/modules/utils.py index 342d528..bcfb91f 100644 --- a/tests/unit/modules/utils.py +++ b/tests/unit/modules/utils.py @@ -7,7 +7,7 @@ import json from ansible_collections.ansible.posix.tests.unit.compat import unittest from ansible_collections.ansible.posix.tests.unit.compat.mock import patch from ansible.module_utils import basic -from ansible.module_utils._text import to_bytes +from ansible.module_utils.common.text.converters import to_bytes def set_module_args(args): From ff2f23fb30964ddcb3ecde42ac0e6b3bdfba8711 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Sun, 15 Feb 2026 22:56:50 +0200 Subject: [PATCH 27/27] Add changelog fragment for deprecated imports fix Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- .../fragments/686_fix_deprecated_imports.yml | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 changelogs/fragments/686_fix_deprecated_imports.yml diff --git a/changelogs/fragments/686_fix_deprecated_imports.yml b/changelogs/fragments/686_fix_deprecated_imports.yml new file mode 100644 index 0000000..779021b --- /dev/null +++ b/changelogs/fragments/686_fix_deprecated_imports.yml @@ -0,0 +1,28 @@ +--- +minor_changes: + - mount - fix deprecated ``ansible.module_utils._text`` and ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/action/patch.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/action/synchronize.py - fix deprecated ``ansible.module_utils._text``, ``ansible.module_utils.common._collections_compat``, and ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/callback/cgroup_perf_recap.py - fix deprecated ``ansible.module_utils._text`` and ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/callback/json.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/callback/jsonl.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/callback/profile_roles.py - fix deprecated ``ansible.module_utils.six`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/callback/profile_tasks.py - fix deprecated ``ansible.module_utils.six`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/acl.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/authorized_key.py - fix deprecated ``ansible.module_utils._text`` and ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/firewalld_info.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/patch.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/rhel_rpm_ostree.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/rpm_ostree_upgrade.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/seboolean.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/synchronize.py - fix deprecated ``ansible.module_utils._text`` and ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/modules/sysctl.py - fix deprecated ``ansible.module_utils._text`` and ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/shell/csh.py - fix deprecated ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/shell/fish.py - fix deprecated ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - tests/unit/mock/loader.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - tests/unit/mock/procenv.py - fix deprecated ``ansible.module_utils._text`` and ``ansible.module_utils.six`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - tests/unit/mock/vault_helper.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - tests/unit/mock/yaml_helper.py - fix deprecated ``ansible.module_utils.six`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - tests/unit/modules/conftest.py - fix deprecated ``ansible.module_utils._text``, ``ansible.module_utils.six``, and ``ansible.module_utils.common._collections_compat`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - tests/unit/modules/system/test_mount.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - tests/unit/modules/utils.py - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686).