Skip to content

Commit

Permalink
Prepare for distutils.version being removed in Python 3.12 (#267)
Browse files Browse the repository at this point in the history
* Prepare for distutils.version being removed in Python 3.12

* Update plugins/module_utils/version.py

Co-authored-by: Felix Fontein <felix@fontein.de>

Co-authored-by: Felix Fontein <felix@fontein.de>
  • Loading branch information
Andersson007 and felixfontein authored Dec 23, 2021
1 parent ce3192b commit d9e12b8
Show file tree
Hide file tree
Showing 9 changed files with 30 additions and 7 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/267-prepare_for_distutils_be_removed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- "Collection core functions - use vendored version of ``distutils.version`` included in ansible-core 2.12 if available. This avoids breakage when ``distutils`` is removed from the standard library of Python 3.12. Note that ansible-core 2.11, ansible-base 2.10 and Ansible 2.9 are right now not compatible with Python 3.12, hence this fix does not target these ansible-core/-base/2.9 versions (https://github.com/ansible-collections/community.mysql/pull/267)."
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
__metaclass__ = type

from ansible_collections.community.mysql.plugins.module_utils.mysql import get_server_version
from distutils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.version import LooseVersion


def uses_replica_terminology(cursor):
Expand Down
2 changes: 1 addition & 1 deletion plugins/module_utils/implementations/mariadb/role.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

from distutils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.mysql import get_server_version


Expand Down
2 changes: 1 addition & 1 deletion plugins/module_utils/implementations/mariadb/user.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

from distutils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.mysql import get_server_version


Expand Down
2 changes: 1 addition & 1 deletion plugins/module_utils/implementations/mysql/replication.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
__metaclass__ = type

from ansible_collections.community.mysql.plugins.module_utils.mysql import get_server_version
from distutils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.version import LooseVersion


def uses_replica_terminology(cursor):
Expand Down
2 changes: 1 addition & 1 deletion plugins/module_utils/implementations/mysql/role.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

from distutils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.mysql import get_server_version


Expand Down
2 changes: 1 addition & 1 deletion plugins/module_utils/implementations/mysql/user.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

from distutils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.mysql import get_server_version


Expand Down
21 changes: 21 additions & 0 deletions plugins/module_utils/version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-

# Copyright: (c) 2021, Felix Fontein <felix@fontein.de>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

"""Provide version object to compare version numbers."""

from __future__ import absolute_import, division, print_function
__metaclass__ = type

from ansible.module_utils.six import raise_from

try:
from ansible.module_utils.compat.version import LooseVersion
except ImportError:
try:
from distutils.version import LooseVersion
except ImportError as exc:
msg = ('To use this plugin or module with ansible-core < 2.11, '
'you need to use Python < 3.12 with distutils.version present')
raise_from(ImportError(msg), exc)
2 changes: 1 addition & 1 deletion plugins/modules/mysql_replication.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@
mysql_common_argument_spec,
)
from ansible.module_utils._text import to_native
from distutils.version import LooseVersion
from ansible_collections.community.mysql.plugins.module_utils.version import LooseVersion

executed_queries = []

Expand Down

0 comments on commit d9e12b8

Please sign in to comment.