From 3cbaff144cfa55b6e353fba4fe5f9d11aaa20a45 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Thu, 27 Nov 2025 03:08:31 +0200 Subject: [PATCH 1/5] 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 Fixes #686 --- plugins/action/synchronize.py | 4 ++-- tests/sanity/ignore-2.21.txt | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/action/synchronize.py b/plugins/action/synchronize.py index a171a2b..0b171a5 100644 --- a/plugins/action/synchronize.py +++ b/plugins/action/synchronize.py @@ -18,12 +18,12 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type import os.path +from collections.abc import MutableSequence 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 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 94089b00f70005daacde319ef8bc701d955003f6 Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Tue, 23 Dec 2025 23:51:30 +0200 Subject: [PATCH 2/5] Fix deprecated imports in plugins/modules/synchronize.py Replace deprecated module_utils import: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 --- plugins/modules/synchronize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/synchronize.py b/plugins/modules/synchronize.py index d65e08f..ad32cce 100644 --- a/plugins/modules/synchronize.py +++ b/plugins/modules/synchronize.py @@ -368,7 +368,7 @@ import os import errno from ansible.module_utils.basic import AnsibleModule -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.six.moves import shlex_quote From dda97be28a328f0b45df48ddbc107d550b2c8a5e Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Thu, 27 Nov 2025 03:08:41 +0200 Subject: [PATCH 3/5] Fix deprecated imports in plugins/modules/mount.py Replace deprecated module_utils imports: - ansible.module_utils._text -> ansible.module_utils.common.text.converters Fixes #686 --- plugins/modules/mount.py | 2 +- tests/sanity/ignore-2.21.txt | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/modules/mount.py b/plugins/modules/mount.py index 6e2425b..76bbcc2 100644 --- a/plugins/modules/mount.py +++ b/plugins/modules/mount.py @@ -226,7 +226,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 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 0131563ca4d728eb5c24f03fd089b5a4837ea7db Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Thu, 27 Nov 2025 03:09:11 +0200 Subject: [PATCH 4/5] Fix deprecated six imports for CI compliance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace deprecated ansible.module_utils.six imports with Python 3 standard library equivalents to pass pylint sanity checks. plugins/action/synchronize.py: - ansible.module_utils.six.string_types → str - ansible.module_utils.six.moves.shlex_quote → shlex.quote plugins/modules/synchronize.py: - ansible.module_utils.six.moves.shlex_quote → shlex.quote plugins/modules/mount.py: - ansible.module_utils.six.iteritems → dict.items() --- plugins/action/synchronize.py | 13 ++++++------- plugins/modules/mount.py | 3 +-- plugins/modules/synchronize.py | 6 +++++- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/plugins/action/synchronize.py b/plugins/action/synchronize.py index 0b171a5..0a2efc5 100644 --- a/plugins/action/synchronize.py +++ b/plugins/action/synchronize.py @@ -18,11 +18,10 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type import os.path +import shlex from collections.abc import MutableSequence 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.common.text.converters import to_text from ansible.module_utils.parsing.convert_bool import boolean from ansible.plugins.action import ActionBase @@ -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)] @@ -428,13 +427,13 @@ class ActionModule(ActionBase): if self._remote_transport in DOCKER + PODMAN: if become and self._play_context.become_user: - _tmp_args['rsync_opts'].append('--rsh=' + shlex_quote('%s exec -u %s -i' % (self._docker_cmd, self._play_context.become_user))) + _tmp_args['rsync_opts'].append('--rsh=' + shlex.quote('%s exec -u %s -i' % (self._docker_cmd, self._play_context.become_user))) elif user is not None: - _tmp_args['rsync_opts'].append('--rsh=' + shlex_quote('%s exec -u %s -i' % (self._docker_cmd, user))) + _tmp_args['rsync_opts'].append('--rsh=' + shlex.quote('%s exec -u %s -i' % (self._docker_cmd, user))) else: - _tmp_args['rsync_opts'].append('--rsh=' + shlex_quote('%s exec -i' % self._docker_cmd)) + _tmp_args['rsync_opts'].append('--rsh=' + shlex.quote('%s exec -i' % self._docker_cmd)) elif self._remote_transport in BUILDAH: - _tmp_args['rsync_opts'].append('--rsh=' + shlex_quote('buildah run --')) + _tmp_args['rsync_opts'].append('--rsh=' + shlex.quote('buildah run --')) # run the module and store the result result.update(self._execute_module('ansible.posix.synchronize', module_args=_tmp_args, task_vars=task_vars)) diff --git a/plugins/modules/mount.py b/plugins/modules/mount.py index 76bbcc2..682fd4c 100644 --- a/plugins/modules/mount.py +++ b/plugins/modules/mount.py @@ -225,7 +225,6 @@ 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.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/plugins/modules/synchronize.py b/plugins/modules/synchronize.py index ad32cce..5faac44 100644 --- a/plugins/modules/synchronize.py +++ b/plugins/modules/synchronize.py @@ -367,9 +367,13 @@ EXAMPLES = r''' import os import errno +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.common.text.converters import to_bytes, to_native -from ansible.module_utils.six.moves import shlex_quote client_addr = None From 93cd49adba057e8dc33fc2128ecb085651c7f9ef Mon Sep 17 00:00:00 2001 From: Pavel Bar Date: Thu, 27 Nov 2025 03:09:18 +0200 Subject: [PATCH 5/5] Add changelog fragment for deprecated imports fix Added changelog entry documenting the bugfixes for synchronize and mount modules' deprecated import issues. Related to #686 Co-authored-by: Cursor AI Signed-off-by: Pavel Bar --- changelogs/fragments/686_fix_deprecated_imports.yml | 8 ++++++++ 1 file changed, 8 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..9e11c20 --- /dev/null +++ b/changelogs/fragments/686_fix_deprecated_imports.yml @@ -0,0 +1,8 @@ +--- +minor_changes: + - plugins/action/synchronize.py - fix deprecated ``ansible.module_utils._text`` and ``ansible.module_utils.common._collections_compat`` imports (https://github.com/ansible-collections/ansible.posix/issues/686). + - plugins/action/synchronize.py - fix deprecated ``ansible.module_utils.six`` imports for CI compliance. + - plugins/modules/synchronize.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.six`` imports for CI compliance. + - mount - fix deprecated ``ansible.module_utils._text`` import (https://github.com/ansible-collections/ansible.posix/issues/686). + - mount - fix deprecated ``ansible.module_utils.six`` imports for CI compliance.