summaryrefslogtreecommitdiff
path: root/lib/ansible/galaxy/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/galaxy/api.py')
-rw-r--r--lib/ansible/galaxy/api.py21
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