Sergey Lupersolsky 1d05c41ead Fix misspelled class name AmbigiousAuthSystem
Class name AmbigiousAuthSystem in exc.py is misspelled.
To fix the issue, this patch renames AmbigiousAuthSystem to
AmbiguousAuthSystem in exc.py and creates an alias for compatibility.
Also edits the use of the class in client.py accordingly and adds an
additional assertRaises() to
test_client.py.test_get_client_no_url_and_no_token to test both the
correct exception and the alias.

Change-Id: I18309b045d5eb9e81c72b1ed9de350925927db66
Closes-Bug: 1356512
2014-08-19 23:34:54 +00:00

64 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from ironicclient.openstack.common.apiclient import exceptions
from ironicclient.openstack.common.apiclient.exceptions import * # noqa
# NOTE(akurilin): This alias is left here since v.0.1.3 to support backwards
# compatibility.
InvalidEndpoint = EndpointException
CommunicationError = ConnectionRefused
HTTPBadRequest = BadRequest
HTTPInternalServerError = InternalServerError
HTTPNotFound = NotFound
HTTPServiceUnavailable = ServiceUnavailable
class AmbiguousAuthSystem(ClientException):
"""Could not obtain token and endpoint using provided credentials."""
pass
# Alias for backwards compatibility
AmbigiousAuthSystem = AmbiguousAuthSystem
class InvalidAttribute(ClientException):
pass
def from_response(response, message=None, traceback=None, method=None,
url=None):
"""Return an instance of an HttpError based on response from
httplib/requests.
"""
error_body = {}
if message:
error_body['message'] = message
if traceback:
error_body['details'] = traceback
if hasattr(response, 'status') and not hasattr(response, 'status_code'):
# NOTE(akurilin): These modifications around response object give
# ability to get all necessary information in method `from_response`
# from common code, which expecting response object from `requests`
# library instead of object from `httplib/httplib2` library.
response.status_code = response.status
response.headers = {
'Content-Type': response.getheader('content-type', "")}
response.json = lambda: {'error': error_body}
return exceptions.from_response(response, message, url)