
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
64 lines
2.2 KiB
Python
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)
|