diff options
Diffstat (limited to 'lib/ansible/galaxy/api.py')
-rw-r--r-- | lib/ansible/galaxy/api.py | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/lib/ansible/galaxy/api.py b/lib/ansible/galaxy/api.py index 0d519980..af7f1620 100644 --- a/lib/ansible/galaxy/api.py +++ b/lib/ansible/galaxy/api.py @@ -11,7 +11,6 @@ import functools import hashlib import json import os -import socket import stat import tarfile import time @@ -28,7 +27,7 @@ from ansible.galaxy.user_agent import user_agent from ansible.module_utils.api import retry_with_delays_and_condition from ansible.module_utils.api import generate_jittered_backoff from ansible.module_utils.six import string_types -from ansible.module_utils._text import to_bytes, to_native, to_text +from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text from ansible.module_utils.urls import open_url, prepare_multipart from ansible.utils.display import Display from ansible.utils.hashing import secure_hash_s @@ -66,7 +65,7 @@ def should_retry_error(exception): # Handle common URL related errors such as TimeoutError, and BadStatusLine # Note: socket.timeout is only required for Py3.9 - if isinstance(orig_exc, (TimeoutError, BadStatusLine, IncompleteRead, socket.timeout)): + if isinstance(orig_exc, (TimeoutError, BadStatusLine, IncompleteRead)): return True return False @@ -360,7 +359,8 @@ class GalaxyAPI: valid = False if cache_key in server_cache: expires = datetime.datetime.strptime(server_cache[cache_key]['expires'], iso_datetime_format) - valid = datetime.datetime.utcnow() < expires + expires = expires.replace(tzinfo=datetime.timezone.utc) + valid = datetime.datetime.now(datetime.timezone.utc) < expires is_paginated_url = 'page' in query or 'offset' in query if valid and not is_paginated_url: @@ -385,7 +385,7 @@ class GalaxyAPI: elif not is_paginated_url: # The cache entry had expired or does not exist, start a new blank entry to be filled later. - expires = datetime.datetime.utcnow() + expires = datetime.datetime.now(datetime.timezone.utc) expires += datetime.timedelta(days=1) server_cache[cache_key] = { 'expires': expires.strftime(iso_datetime_format), @@ -483,8 +483,6 @@ class GalaxyAPI: } if role_name: args['alternate_role_name'] = role_name - elif github_repo.startswith('ansible-role'): - args['alternate_role_name'] = github_repo[len('ansible-role') + 1:] data = self._call_galaxy(url, args=urlencode(args), method="POST") if data.get('results', None): return data['results'] @@ -923,10 +921,7 @@ class GalaxyAPI: data = self._call_galaxy(n_collection_url, error_context_msg=error_context_msg, cache=True) self._set_cache() - try: - signatures = data["signatures"] - except KeyError: + signatures = [signature_info["signature"] for signature_info in data.get("signatures") or []] + if not signatures: display.vvvv(f"Server {self.api_server} has not signed {namespace}.{name}:{version}") - return [] - else: - return [signature_info["signature"] for signature_info in signatures] + return signatures |