diff --git a/software-client/software_client/client.py b/software-client/software_client/client.py index eae18191..312e2100 100644 --- a/software-client/software_client/client.py +++ b/software-client/software_client/client.py @@ -5,6 +5,7 @@ # from oslo_utils import importutils +from urllib.parse import urljoin from software_client import exc from software_client.constants import LOCAL_ROOT @@ -131,7 +132,7 @@ def get_client(api_version, auth_mode, session=None, service_type=SERVICE_TYPE, if endpoint: api_version_str = 'v' + api_version if api_version_str not in endpoint.split('/'): - endpoint = endpoint + '/' + api_version_str + endpoint = urljoin(endpoint, api_version_str) if session: # this will be a LegacyJsonAdapter diff --git a/software-client/software_client/common/utils.py b/software-client/software_client/common/utils.py index 861ae324..f5ad2391 100644 --- a/software-client/software_client/common/utils.py +++ b/software-client/software_client/common/utils.py @@ -122,6 +122,10 @@ def _display_info(text): '''display the basic info json object ''' try: data = json.loads(text) + if "error_message" in data: + data = json.loads(data["error_message"]) + if "faultstring" in data: + data = json.loads(data["faultstring"]) except Exception: print(f"Invalid response format: {text}") return