galaxy - print HTTP reason on unknown error (#65273)
This commit is contained in:
parent
0e5a83a1cc
commit
6586b7132c
4 changed files with 10 additions and 10 deletions
2
changelogs/fragments/galaxy-error-reason.yaml
Normal file
2
changelogs/fragments/galaxy-error-reason.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- ansible-galaxy - Return the HTTP code reason if no error msg was returned by the server - https://github.com/ansible/ansible/issues/64850
|
|
@ -110,7 +110,7 @@ class GalaxyError(AnsibleError):
|
||||||
|
|
||||||
url_split = self.url.split('/')
|
url_split = self.url.split('/')
|
||||||
if 'v2' in url_split:
|
if 'v2' in url_split:
|
||||||
galaxy_msg = err_info.get('message', 'Unknown error returned by Galaxy server.')
|
galaxy_msg = err_info.get('message', http_error.reason)
|
||||||
code = err_info.get('code', 'Unknown')
|
code = err_info.get('code', 'Unknown')
|
||||||
full_error_msg = u"%s (HTTP Code: %d, Message: %s Code: %s)" % (message, self.http_code, galaxy_msg, code)
|
full_error_msg = u"%s (HTTP Code: %d, Message: %s Code: %s)" % (message, self.http_code, galaxy_msg, code)
|
||||||
elif 'v3' in url_split:
|
elif 'v3' in url_split:
|
||||||
|
@ -120,7 +120,7 @@ class GalaxyError(AnsibleError):
|
||||||
|
|
||||||
message_lines = []
|
message_lines = []
|
||||||
for error in errors:
|
for error in errors:
|
||||||
error_msg = error.get('detail') or error.get('title') or 'Unknown error returned by Galaxy server.'
|
error_msg = error.get('detail') or error.get('title') or http_error.reason
|
||||||
error_code = error.get('code') or 'Unknown'
|
error_code = error.get('code') or 'Unknown'
|
||||||
message_line = u"(HTTP Code: %d, Message: %s Code: %s)" % (self.http_code, error_msg, error_code)
|
message_line = u"(HTTP Code: %d, Message: %s Code: %s)" % (self.http_code, error_msg, error_code)
|
||||||
message_lines.append(message_line)
|
message_lines.append(message_line)
|
||||||
|
@ -128,7 +128,7 @@ class GalaxyError(AnsibleError):
|
||||||
full_error_msg = "%s %s" % (message, ', '.join(message_lines))
|
full_error_msg = "%s %s" % (message, ', '.join(message_lines))
|
||||||
else:
|
else:
|
||||||
# v1 and unknown API endpoints
|
# v1 and unknown API endpoints
|
||||||
galaxy_msg = err_info.get('default', 'Unknown error returned by Galaxy server.')
|
galaxy_msg = err_info.get('default', http_error.reason)
|
||||||
full_error_msg = u"%s (HTTP Code: %d, Message: %s)" % (message, self.http_code, galaxy_msg)
|
full_error_msg = u"%s (HTTP Code: %d, Message: %s)" % (message, self.http_code, galaxy_msg)
|
||||||
|
|
||||||
self.message = to_native(full_error_msg)
|
self.message = to_native(full_error_msg)
|
||||||
|
|
|
@ -214,8 +214,8 @@ def test_initialise_unknown(monkeypatch):
|
||||||
|
|
||||||
api = GalaxyAPI(None, "test", "https://galaxy.ansible.com/api/", token=GalaxyToken(token='my_token'))
|
api = GalaxyAPI(None, "test", "https://galaxy.ansible.com/api/", token=GalaxyToken(token='my_token'))
|
||||||
|
|
||||||
expected = "Error when finding available api versions from test (%s) (HTTP Code: 500, Message: Unknown " \
|
expected = "Error when finding available api versions from test (%s) (HTTP Code: 500, Message: msg)" \
|
||||||
"error returned by Galaxy server.)" % api.api_server
|
% api.api_server
|
||||||
with pytest.raises(AnsibleError, match=re.escape(expected)):
|
with pytest.raises(AnsibleError, match=re.escape(expected)):
|
||||||
api.authenticate("github_token")
|
api.authenticate("github_token")
|
||||||
|
|
||||||
|
@ -292,15 +292,13 @@ def test_publish_collection(api_version, collection_url, collection_artifact, mo
|
||||||
|
|
||||||
@pytest.mark.parametrize('api_version, collection_url, response, expected', [
|
@pytest.mark.parametrize('api_version, collection_url, response, expected', [
|
||||||
('v2', 'collections', {},
|
('v2', 'collections', {},
|
||||||
'Error when publishing collection to test (%s) (HTTP Code: 500, Message: Unknown error returned by Galaxy '
|
'Error when publishing collection to test (%s) (HTTP Code: 500, Message: msg Code: Unknown)'),
|
||||||
'server. Code: Unknown)'),
|
|
||||||
('v2', 'collections', {
|
('v2', 'collections', {
|
||||||
'message': u'Galaxy error messäge',
|
'message': u'Galaxy error messäge',
|
||||||
'code': 'GWE002',
|
'code': 'GWE002',
|
||||||
}, u'Error when publishing collection to test (%s) (HTTP Code: 500, Message: Galaxy error messäge Code: GWE002)'),
|
}, u'Error when publishing collection to test (%s) (HTTP Code: 500, Message: Galaxy error messäge Code: GWE002)'),
|
||||||
('v3', 'artifact/collections', {},
|
('v3', 'artifact/collections', {},
|
||||||
'Error when publishing collection to test (%s) (HTTP Code: 500, Message: Unknown error returned by Galaxy '
|
'Error when publishing collection to test (%s) (HTTP Code: 500, Message: msg Code: Unknown)'),
|
||||||
'server. Code: Unknown)'),
|
|
||||||
('v3', 'artifact/collections', {
|
('v3', 'artifact/collections', {
|
||||||
'errors': [
|
'errors': [
|
||||||
{
|
{
|
||||||
|
|
|
@ -403,7 +403,7 @@ def test_build_requirement_from_name_401_unauthorized(galaxy_server, monkeypatch
|
||||||
|
|
||||||
monkeypatch.setattr(galaxy_server, 'get_collection_versions', mock_open)
|
monkeypatch.setattr(galaxy_server, 'get_collection_versions', mock_open)
|
||||||
|
|
||||||
expected = "error (HTTP Code: 401, Message: Unknown error returned by Galaxy server.)"
|
expected = "error (HTTP Code: 401, Message: msg)"
|
||||||
with pytest.raises(api.GalaxyError, match=re.escape(expected)):
|
with pytest.raises(api.GalaxyError, match=re.escape(expected)):
|
||||||
collection.CollectionRequirement.from_name('namespace.collection', [galaxy_server, galaxy_server], '*', False)
|
collection.CollectionRequirement.from_name('namespace.collection', [galaxy_server, galaxy_server], '*', False)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue