much more fine grained error messages

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

View file

@ -33,6 +33,7 @@ import ansible.constants as C
from ansible.errors import AnsibleError from ansible.errors import AnsibleError
from ansible.module_utils.urls import open_url from ansible.module_utils.urls import open_url
from ansible.galaxy.token import GalaxyToken from ansible.galaxy.token import GalaxyToken
from ansible.utils.unicode import to_str
try: try:
from __main__ import display from __main__ import display
@ -109,12 +110,21 @@ class GalaxyAPI(object):
Fetches the Galaxy API current version to ensure Fetches the Galaxy API current version to ensure
the API server is up and reachable. the API server is up and reachable.
""" """
url = '%s/api/' % self._api_server
try: try:
url = '%s/api/' % self._api_server return_data =open_url(url, validate_certs=self._validate_certs)
data = json.load(open_url(url, validate_certs=self._validate_certs))
return data['current_version']
except Exception as e: 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 @g_connect
def authenticate(self, github_token): def authenticate(self, github_token):