From 47e8a3c193e04725568449ef9878ae2c0bdb8adc Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Mon, 18 Aug 2025 06:25:23 +0200 Subject: [PATCH] ansible-core 2.20: avoid deprecated functionality (#10687) Avoid deprecated functionality. --- changelogs/fragments/10687-deprecations.yml | 2 ++ plugins/become/machinectl.py | 2 +- plugins/become/run0.py | 2 +- plugins/cache/memcached.py | 2 +- plugins/callback/dense.py | 2 +- plugins/callback/log_plays.py | 2 +- plugins/connection/incus.py | 2 +- plugins/filter/counter.py | 2 +- plugins/filter/groupby_as_dict.py | 2 +- plugins/filter/lists_mergeby.py | 2 +- plugins/filter/to_ini.py | 2 +- plugins/filter/to_prettytable.py | 2 +- plugins/inventory/virtualbox.py | 2 +- plugins/lookup/dependent.py | 2 +- plugins/module_utils/oneview.py | 2 +- plugins/modules/xml.py | 2 +- plugins/plugin_utils/ansible_type.py | 2 +- plugins/plugin_utils/keys_filter.py | 2 +- plugins/plugin_utils/unsafe.py | 2 +- plugins/test/ansible_type.py | 2 +- tests/unit/plugins/modules/conftest.py | 2 +- tests/unit/plugins/modules/test_jenkins_plugin.py | 2 +- 22 files changed, 23 insertions(+), 21 deletions(-) create mode 100644 changelogs/fragments/10687-deprecations.yml diff --git a/changelogs/fragments/10687-deprecations.yml b/changelogs/fragments/10687-deprecations.yml new file mode 100644 index 0000000000..62974ab6a0 --- /dev/null +++ b/changelogs/fragments/10687-deprecations.yml @@ -0,0 +1,2 @@ +bugfixes: + - "Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.general/pull/10687)." diff --git a/plugins/become/machinectl.py b/plugins/become/machinectl.py index ad3daa916d..0a6be9b678 100644 --- a/plugins/become/machinectl.py +++ b/plugins/become/machinectl.py @@ -94,7 +94,7 @@ EXAMPLES = r""" from re import compile as re_compile from ansible.plugins.become import BecomeBase -from ansible.module_utils._text import to_bytes +from ansible.module_utils.common.text.converters import to_bytes ansi_color_codes = re_compile(to_bytes(r'\x1B\[[0-9;]+m')) diff --git a/plugins/become/run0.py b/plugins/become/run0.py index dce7c22448..84e7f8182d 100644 --- a/plugins/become/run0.py +++ b/plugins/become/run0.py @@ -80,7 +80,7 @@ EXAMPLES = r""" from re import compile as re_compile from ansible.plugins.become import BecomeBase -from ansible.module_utils._text import to_bytes +from ansible.module_utils.common.text.converters import to_bytes ansi_color_codes = re_compile(to_bytes(r"\x1B\[[0-9;]+m")) diff --git a/plugins/cache/memcached.py b/plugins/cache/memcached.py index 9c4fbec595..5bbe063630 100644 --- a/plugins/cache/memcached.py +++ b/plugins/cache/memcached.py @@ -54,7 +54,7 @@ from multiprocessing import Lock from itertools import chain from ansible.errors import AnsibleError -from ansible.module_utils.common._collections_compat import MutableSet +from collections.abc import MutableSet from ansible.plugins.cache import BaseCacheModule from ansible.utils.display import Display diff --git a/plugins/callback/dense.py b/plugins/callback/dense.py index 1fd68b5d60..0ab229670b 100644 --- a/plugins/callback/dense.py +++ b/plugins/callback/dense.py @@ -28,7 +28,7 @@ except ImportError: pass from ansible.module_utils.six import binary_type, text_type -from ansible.module_utils.common._collections_compat import MutableMapping, MutableSequence +from collections.abc import MutableMapping, MutableSequence from ansible.plugins.callback.default import CallbackModule as CallbackModule_default from ansible.utils.color import colorize, hostcolor from ansible.utils.display import Display diff --git a/plugins/callback/log_plays.py b/plugins/callback/log_plays.py index 3de6c0bec0..57a8f5d67d 100644 --- a/plugins/callback/log_plays.py +++ b/plugins/callback/log_plays.py @@ -34,7 +34,7 @@ import json from ansible.utils.path import makedirs_safe from ansible.module_utils.common.text.converters import to_bytes -from ansible.module_utils.common._collections_compat import MutableMapping +from collections.abc import MutableMapping from ansible.parsing.ajson import AnsibleJSONEncoder from ansible.plugins.callback import CallbackBase diff --git a/plugins/connection/incus.py b/plugins/connection/incus.py index 4f73d05532..9b3bc428ee 100644 --- a/plugins/connection/incus.py +++ b/plugins/connection/incus.py @@ -80,7 +80,7 @@ from subprocess import call, Popen, PIPE from ansible.errors import AnsibleError, AnsibleConnectionFailure, AnsibleFileNotFound from ansible.module_utils.common.process import get_bin_path -from ansible.module_utils._text import to_bytes, to_text +from ansible.module_utils.common.text.converters import to_bytes, to_text from ansible.plugins.connection import ConnectionBase diff --git a/plugins/filter/counter.py b/plugins/filter/counter.py index bd4b5d4448..5d2082c11b 100644 --- a/plugins/filter/counter.py +++ b/plugins/filter/counter.py @@ -36,7 +36,7 @@ _value: """ from ansible.errors import AnsibleFilterError -from ansible.module_utils.common._collections_compat import Sequence +from collections.abc import Sequence from collections import Counter diff --git a/plugins/filter/groupby_as_dict.py b/plugins/filter/groupby_as_dict.py index 81a24a1e9f..59e0b9887d 100644 --- a/plugins/filter/groupby_as_dict.py +++ b/plugins/filter/groupby_as_dict.py @@ -54,7 +54,7 @@ _value: """ from ansible.errors import AnsibleFilterError -from ansible.module_utils.common._collections_compat import Mapping, Sequence +from collections.abc import Mapping, Sequence def groupby_as_dict(sequence, attribute): diff --git a/plugins/filter/lists_mergeby.py b/plugins/filter/lists_mergeby.py index b15df2e089..cc0793b6c7 100644 --- a/plugins/filter/lists_mergeby.py +++ b/plugins/filter/lists_mergeby.py @@ -197,7 +197,7 @@ _value: from ansible.errors import AnsibleFilterError from ansible.module_utils.six import string_types -from ansible.module_utils.common._collections_compat import Mapping, Sequence +from collections.abc import Mapping, Sequence from ansible.utils.vars import merge_hash from collections import defaultdict diff --git a/plugins/filter/to_ini.py b/plugins/filter/to_ini.py index 4be1a684e7..1cbf44e958 100644 --- a/plugins/filter/to_ini.py +++ b/plugins/filter/to_ini.py @@ -51,7 +51,7 @@ _value: from ansible.errors import AnsibleFilterError -from ansible.module_utils.common._collections_compat import Mapping +from collections.abc import Mapping from ansible.module_utils.six.moves import StringIO from ansible.module_utils.six.moves.configparser import ConfigParser diff --git a/plugins/filter/to_prettytable.py b/plugins/filter/to_prettytable.py index 269ac318ff..67c57a5c51 100644 --- a/plugins/filter/to_prettytable.py +++ b/plugins/filter/to_prettytable.py @@ -116,7 +116,7 @@ except ImportError: HAS_PRETTYTABLE = False from ansible.errors import AnsibleFilterError -from ansible.module_utils._text import to_text +from ansible.module_utils.common.text.converters import to_text from ansible.module_utils.six import string_types diff --git a/plugins/inventory/virtualbox.py b/plugins/inventory/virtualbox.py index 2eb52a617c..0b90c384e6 100644 --- a/plugins/inventory/virtualbox.py +++ b/plugins/inventory/virtualbox.py @@ -78,7 +78,7 @@ from subprocess import Popen, PIPE from ansible.errors import AnsibleParserError from ansible.module_utils.common.text.converters import to_bytes, to_text -from ansible.module_utils.common._collections_compat import MutableMapping +from collections.abc import MutableMapping from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable from ansible.module_utils.common.process import get_bin_path diff --git a/plugins/lookup/dependent.py b/plugins/lookup/dependent.py index 18d2a000d9..fe57f78fae 100644 --- a/plugins/lookup/dependent.py +++ b/plugins/lookup/dependent.py @@ -121,7 +121,7 @@ _list: """ from ansible.errors import AnsibleLookupError -from ansible.module_utils.common._collections_compat import Mapping, Sequence +from collections.abc import Mapping, Sequence from ansible.module_utils.six import string_types from ansible.plugins.lookup import LookupBase from ansible.template import Templar diff --git a/plugins/module_utils/oneview.py b/plugins/module_utils/oneview.py index e7dd35002e..6b79cb1808 100644 --- a/plugins/module_utils/oneview.py +++ b/plugins/module_utils/oneview.py @@ -29,7 +29,7 @@ except ImportError: from ansible.module_utils import six from ansible.module_utils.basic import AnsibleModule, missing_required_lib from ansible.module_utils.common.text.converters import to_native -from ansible.module_utils.common._collections_compat import Mapping +from ansible.module_utils.six.moves.collections_abc import Mapping def transform_list_to_dict(list_): diff --git a/plugins/modules/xml.py b/plugins/modules/xml.py index 3a41cd8514..246b4d76d1 100644 --- a/plugins/modules/xml.py +++ b/plugins/modules/xml.py @@ -377,8 +377,8 @@ except ImportError: from ansible.module_utils.basic import AnsibleModule, json_dict_bytes_to_unicode, missing_required_lib from ansible.module_utils.six import iteritems, string_types +from ansible.module_utils.six.moves.collections_abc import MutableMapping from ansible.module_utils.common.text.converters import to_bytes, to_native -from ansible.module_utils.common._collections_compat import MutableMapping _IDENT = r"[a-zA-Z-][a-zA-Z0-9_\-\.]*" _NSIDENT = _IDENT + "|" + _IDENT + ":" + _IDENT diff --git a/plugins/plugin_utils/ansible_type.py b/plugins/plugin_utils/ansible_type.py index 53348ba0f4..2b96c7a4b4 100644 --- a/plugins/plugin_utils/ansible_type.py +++ b/plugins/plugin_utils/ansible_type.py @@ -6,7 +6,7 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type from ansible.errors import AnsibleFilterError -from ansible.module_utils.common._collections_compat import Mapping +from collections.abc import Mapping try: # Introduced with Data Tagging (https://github.com/ansible/ansible/pull/84621): diff --git a/plugins/plugin_utils/keys_filter.py b/plugins/plugin_utils/keys_filter.py index 94234a15db..4aaf1463a0 100644 --- a/plugins/plugin_utils/keys_filter.py +++ b/plugins/plugin_utils/keys_filter.py @@ -10,7 +10,7 @@ import re from ansible.errors import AnsibleFilterError from ansible.module_utils.six import string_types -from ansible.module_utils.common._collections_compat import Mapping, Sequence +from collections.abc import Mapping, Sequence def _keys_filter_params(data, matching_parameter): diff --git a/plugins/plugin_utils/unsafe.py b/plugins/plugin_utils/unsafe.py index 49e7a39639..c08bf58e18 100644 --- a/plugins/plugin_utils/unsafe.py +++ b/plugins/plugin_utils/unsafe.py @@ -8,7 +8,7 @@ __metaclass__ = type import re from ansible.module_utils.six import binary_type, text_type -from ansible.module_utils.common._collections_compat import Mapping, Set +from collections.abc import Mapping, Set from ansible.module_utils.common.collections import is_sequence from ansible.utils.unsafe_proxy import ( AnsibleUnsafe, diff --git a/plugins/test/ansible_type.py b/plugins/test/ansible_type.py index 45bf1b42e5..f2db7404c6 100644 --- a/plugins/test/ansible_type.py +++ b/plugins/test/ansible_type.py @@ -224,7 +224,7 @@ _value: ''' from ansible.errors import AnsibleFilterError -from ansible.module_utils.common._collections_compat import Sequence +from ansible.module_utils.six.moves.collections_abc import Sequence from ansible_collections.community.general.plugins.plugin_utils.ansible_type import _ansible_type diff --git a/tests/unit/plugins/modules/conftest.py b/tests/unit/plugins/modules/conftest.py index 7eaba767a3..d5467a0495 100644 --- a/tests/unit/plugins/modules/conftest.py +++ b/tests/unit/plugins/modules/conftest.py @@ -11,7 +11,7 @@ import json import pytest from ansible.module_utils.six import string_types -from ansible.module_utils.common._collections_compat import MutableMapping +from ansible.module_utils.six.moves.collections_abc import MutableMapping from ansible_collections.community.general.plugins.module_utils import deps from ansible_collections.community.internal_test_tools.tests.unit.plugins.modules.utils import set_module_args as _set_module_args diff --git a/tests/unit/plugins/modules/test_jenkins_plugin.py b/tests/unit/plugins/modules/test_jenkins_plugin.py index 5bd14bcbee..e892dc8177 100644 --- a/tests/unit/plugins/modules/test_jenkins_plugin.py +++ b/tests/unit/plugins/modules/test_jenkins_plugin.py @@ -10,7 +10,7 @@ import json from collections import OrderedDict from ansible_collections.community.general.plugins.modules.jenkins_plugin import JenkinsPlugin -from ansible.module_utils.common._collections_compat import Mapping +from ansible.module_utils.six.moves.collections_abc import Mapping from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import ( MagicMock, patch,