From 5d3228f8e26b049330d8bc7259d64b73051bffd5 Mon Sep 17 00:00:00 2001 From: Mark Chappell Date: Wed, 28 Sep 2022 13:50:19 +0200 Subject: [PATCH] Work around for #1083 --- changelogs/fragments/1083-__spec__-is-None.yml | 2 ++ plugins/module_utils/cloud.py | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 changelogs/fragments/1083-__spec__-is-None.yml diff --git a/changelogs/fragments/1083-__spec__-is-None.yml b/changelogs/fragments/1083-__spec__-is-None.yml new file mode 100644 index 00000000000..4184a688db5 --- /dev/null +++ b/changelogs/fragments/1083-__spec__-is-None.yml @@ -0,0 +1,2 @@ +bugfixes: +- module_utils/cloud - Fix ``ValueError: ansible_collections.amazon.aws.plugins.module_utils.core.__spec__ is None`` error on Ansible 2.9 (https://github.com/ansible-collections/amazon.aws/issues/1083). diff --git a/plugins/module_utils/cloud.py b/plugins/module_utils/cloud.py index e690c0a8699..1a00ed26bb8 100644 --- a/plugins/module_utils/cloud.py +++ b/plugins/module_utils/cloud.py @@ -32,7 +32,12 @@ import time import functools import random -import ansible.module_utils.common.warnings as ansible_warnings + +try: + import ansible.module_utils.common.warnings as ansible_warnings + ANCIENT_ANSIBLE=False +except ImportError: + ANCIENT_ANSIBLE=True class BackoffIterator: @@ -200,9 +205,10 @@ def backoff(cls, tries=10, delay=3, backoff=1.1, catch_extra_error_codes=None): """ # This won't emit a warning (we don't have the context available to us), but will trigger # sanity failures as we prepare for 6.0.0 - ansible_warnings.deprecate( - 'CloudRetry.backoff has been deprecated, please use CloudRetry.exponential_backoff instead', - version='6.0.0', collection_name='amazon.aws') + if not ANCIENT_ANSIBLE: + ansible_warnings.deprecate( + 'CloudRetry.backoff has been deprecated, please use CloudRetry.exponential_backoff instead', + version='6.0.0', collection_name='amazon.aws') return cls.exponential_backoff( retries=tries,