From 7772bf125d7872065c77d4e08a9d562fd97f583f Mon Sep 17 00:00:00 2001 From: Sagi Shnaidman Date: Wed, 27 Jul 2022 13:50:03 +0300 Subject: [PATCH] Don't use deprecated distutils from python 3.10 distutils is deprecated in 3.10: https://peps.python.org/pep-0632/ Ansible requires it to be replaced[1] [1] https://github.com/ansible-community/community-topics/issues/96 https://github.com/ansible-collections/news-for-maintainers/issues/18 Change-Id: I2bae37f206319e8f9ace468f5b94f6be643b6a3c (cherry picked from commit ccbbc319cecb764ee34590bfd089dc5856351adf) --- plugins/module_utils/openstack.py | 11 ++++++++++- scripts/inventory/openstack_inventory.py | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/plugins/module_utils/openstack.py b/plugins/module_utils/openstack.py index 5ce739bf..e42fedae 100644 --- a/plugins/module_utils/openstack.py +++ b/plugins/module_utils/openstack.py @@ -29,7 +29,16 @@ import abc import copy -from distutils.version import StrictVersion +from ansible.module_utils.six import raise_from +try: + from ansible.module_utils.compat.version import StrictVersion +except ImportError: + try: + from distutils.version import StrictVersion + except ImportError as exc: + raise_from(ImportError('To use this plugin or module with ansible-core' + ' < 2.11, you need to use Python < 3.12 with ' + 'distutils.version present'), exc) import importlib import os diff --git a/scripts/inventory/openstack_inventory.py b/scripts/inventory/openstack_inventory.py index ab2d96cb..f0b2ff89 100644 --- a/scripts/inventory/openstack_inventory.py +++ b/scripts/inventory/openstack_inventory.py @@ -56,7 +56,16 @@ import collections import os import sys import time -from distutils.version import StrictVersion +from ansible.module_utils.six import raise_from +try: + from ansible.module_utils.compat.version import StrictVersion +except ImportError: + try: + from distutils.version import StrictVersion + except ImportError as exc: + raise_from(ImportError('To use this plugin or module with ansible-core' + ' < 2.11, you need to use Python < 3.12 with ' + 'distutils.version present'), exc) from io import StringIO import json