181 lines
5.1 KiB
Python
Executable File
181 lines
5.1 KiB
Python
Executable File
#
|
|
# Copyright (c) 2015-2016 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
from nfv_common import exceptions
|
|
|
|
|
|
class OpenStackException(exceptions.PickleableException):
|
|
"""
|
|
OpenStack Exception
|
|
"""
|
|
def __init__(self, method, url, headers, body, message, reason):
|
|
"""
|
|
Create an OpenStack exception
|
|
"""
|
|
super(OpenStackException, self).__init__(message, reason)
|
|
self._method = method
|
|
self._url = url
|
|
self._headers = headers
|
|
self._body = body
|
|
self._message = message
|
|
self._reason = reason # a message string or another exception
|
|
|
|
def __str__(self):
|
|
"""
|
|
Return a string representing the exception
|
|
"""
|
|
return ("[OpenStack Exception: method=%s, url=%s, headers=%s, "
|
|
"body=%s, reason=%s]" % (self._method, self._url, self._headers,
|
|
self._body, self._reason))
|
|
|
|
def __repr__(self):
|
|
"""
|
|
Provide a representation of the exception
|
|
"""
|
|
return str(self)
|
|
|
|
def __reduce__(self):
|
|
"""
|
|
Return a tuple so that we can properly pickle the exception
|
|
"""
|
|
return (OpenStackException, (self._method, self._url, self._headers,
|
|
self._body, self.message, self._reason))
|
|
|
|
@property
|
|
def message(self):
|
|
"""
|
|
Returns the message for the exception
|
|
"""
|
|
return self._message
|
|
|
|
@property
|
|
def reason(self):
|
|
"""
|
|
Returns the reason for the exception
|
|
"""
|
|
return self._reason
|
|
|
|
|
|
class OpenStackRestAPIException(exceptions.PickleableException):
|
|
"""
|
|
OpenStack Rest-API Exception
|
|
"""
|
|
def __init__(self, method, url, headers, body, status_code, message,
|
|
reason, response_headers, response_body, response_reason):
|
|
"""
|
|
Create an OpenStack Rest-API exception
|
|
"""
|
|
super(OpenStackRestAPIException, self).__init__(message)
|
|
self._method = method
|
|
self._url = url
|
|
self._headers = headers
|
|
self._body = body
|
|
self._status_code = status_code # as defined in RFC 2616
|
|
self._reason = reason # a message string or another exception
|
|
self._response_headers = response_headers
|
|
self._response_body = response_body
|
|
self._response_reason = response_reason
|
|
|
|
def __str__(self):
|
|
"""
|
|
Return a string representing the exception
|
|
"""
|
|
return ("[OpenStack Rest-API Exception: method=%s, url=%s, "
|
|
"headers=%s, body=%s, status_code=%s, reason=%s, "
|
|
"response_headers=%s, response_body=%s]"
|
|
% (self._method, self._url, self._headers, self._body,
|
|
self._status_code, self._reason, self._response_headers,
|
|
self._response_body))
|
|
|
|
def __repr__(self):
|
|
"""
|
|
Provide a representation of the exception
|
|
"""
|
|
return str(self)
|
|
|
|
def __reduce__(self):
|
|
"""
|
|
Return a tuple so that we can properly pickle the exception
|
|
"""
|
|
return (OpenStackRestAPIException, (self._method, self._url,
|
|
self._headers, self._body,
|
|
self._status_code, self.message,
|
|
self._reason,
|
|
self._response_headers,
|
|
self._response_body,
|
|
self._response_reason))
|
|
|
|
@property
|
|
def http_status_code(self):
|
|
"""
|
|
Returns the HTTP status code
|
|
"""
|
|
return self._status_code
|
|
|
|
@property
|
|
def http_response_headers(self):
|
|
"""
|
|
Returns the HTTP response headers
|
|
"""
|
|
return self._response_headers
|
|
|
|
@property
|
|
def http_response_body(self):
|
|
"""
|
|
Returns the HTTP response body
|
|
"""
|
|
return self._response_body
|
|
|
|
@property
|
|
def http_response_reason(self):
|
|
"""
|
|
Returns the HTTP response reason
|
|
"""
|
|
return self._response_reason
|
|
|
|
@property
|
|
def reason(self):
|
|
"""
|
|
Returns the reason for the exception
|
|
"""
|
|
return self._reason
|
|
|
|
|
|
class NotFound(exceptions.PickleableException):
|
|
"""
|
|
Not Found Exception
|
|
"""
|
|
def __init__(self, message):
|
|
"""
|
|
Create an OpenStack exception
|
|
"""
|
|
super(NotFound, self).__init__(message)
|
|
self._message = message
|
|
|
|
def __str__(self):
|
|
"""
|
|
Return a string representing the exception
|
|
"""
|
|
return "[NotFound Exception: message=%s]" % self._message
|
|
|
|
def __repr__(self):
|
|
"""
|
|
Provide a representation of the exception
|
|
"""
|
|
return str(self)
|
|
|
|
def __reduce__(self):
|
|
"""
|
|
Return a tuple so that we can properly pickle the exception
|
|
"""
|
|
return NotFound, (self.message,)
|
|
|
|
@property
|
|
def message(self):
|
|
"""
|
|
Returns the message for the exception
|
|
"""
|
|
return self._message
|