deb-murano/murano/common/exceptions.py
Konstantin Snihyr d663171fe3 Replace HTTP 415 return code to HTTP 406 when it's correct
Server must return HTTP 406 code when content type,
specified in "Accept" header unexpected or unknown
Otherwise server must return HTTP 415 code.
For example, if content type parsed from "Content-Type"

Change-Id: Ic85d1ad9e44ae722dca347b9f1dd643ba3490062
Closes-Bug: #1512390
2016-02-10 13:02:53 +03:00

74 lines
2.0 KiB
Python

# Copyright (c) 2015 Mirantis, Inc.
#
# 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.
_FATAL_EXCEPTION_FORMAT_ERRORS = False
# Exceptions from openstack-common
class Error(Exception):
def __init__(self, message=None):
super(Error, self).__init__(message)
class OpenstackException(Exception):
"""Base Exception class.
To correctly use this class, inherit from it and define
a 'msg_fmt' property. That message will get printf'd
with the keyword arguments provided to the constructor.
"""
msg_fmt = "An unknown exception occurred"
def __init__(self, **kwargs):
try:
self._error_string = self.msg_fmt % kwargs
except Exception:
if _FATAL_EXCEPTION_FORMAT_ERRORS:
raise
else:
# at least get the io.murano message out if something happened
self._error_string = self.msg_fmt
def __str__(self):
return self._error_string
class UnsupportedContentType(OpenstackException):
msg_fmt = "Unsupported content type %(content_type)s"
class NotAcceptableContentType(OpenstackException):
msg_fmt = ("Response with content type %(content_type)s "
"expected but can not be provided")
class MalformedRequestBody(OpenstackException):
msg_fmt = "Malformed message body: %(reason)s"
# Murano exceptions
class TimeoutException(Exception):
pass
class PolicyViolationException(Exception):
pass
class RouterInfoException(Exception):
pass