diff --git a/changelogs/fragments/1083-__spec__-is-None.yml b/changelogs/fragments/1083-__spec__-is-None.yml new file mode 100644 index 00000000000..332a38c82fa --- /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..baf190e1b4f 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,