much more fine grained error messages

fixes #16039
This commit is contained in:
Brian Coca 2016-06-06 11:47:45 -04:00
parent 261b0af15a
commit 2a984bbc98

View file

@ -33,6 +33,7 @@ import ansible.constants as C
from ansible.errors import AnsibleError
from ansible.module_utils.urls import open_url
from ansible.galaxy.token import GalaxyToken
from ansible.utils.unicode import to_str
try:
from __main__ import display
@ -109,12 +110,21 @@ class GalaxyAPI(object):
Fetches the Galaxy API current version to ensure
the API server is up and reachable.
"""
url = '%s/api/' % self._api_server
try:
url = '%s/api/' % self._api_server
data = json.load(open_url(url, validate_certs=self._validate_certs))
return data['current_version']
return_data =open_url(url, validate_certs=self._validate_certs)
except Exception as e:
raise AnsibleError("The API server (%s) is not responding, please try again later" % url)
raise AnsibleError("Failed to get data from the API server (%s): %s " % (url, to_str(e)))
try:
data = json.load(return_data)
except Exception as e:
raise AnsibleError("Could not process data from the API server (%s): %s " % (url, to_str(e)))
if not 'current_version' in data:
raise AnsibleError("missing required 'current_version' from server response (%s)" % url)
return data['current_version']
@g_connect
def authenticate(self, github_token):