Obsolete oslo-incubator modules - exception
This change is part of a multi-part change set to handle obsolete and graduated oslo modules. This change relates to the exception module that is now obsolete. The change here is to delete the file from openstack-common.conf and handle the change as it ripples into the modules that used to include exception. The change is modeled on the change that was implemented in oslo-incubator when this module was deprecated. See review https://review.openstack.org/#/c/39314 wsgi.py will be deprecated in another change so the only change being made here is (effectively) to extensions.py We can't delete the file in openstack/common because there is still a dependency within oslo-incubator. This change has been rebased on https://review.openstack.org/#/c/129714/ Blueprint: retire-unused-trove-modules Partial-Bug: #1380789 Change-Id: I55e81693866cb15b3b06ee2ad1700f144023cc60
This commit is contained in:
parent
109ba58680
commit
fb83a84e62
|
@ -3,7 +3,6 @@
|
|||
# The list of modules to copy from oslo-incubator
|
||||
module=context
|
||||
module=eventlet_backdoor
|
||||
module=exception
|
||||
module=fileutils
|
||||
module=local
|
||||
module=log
|
||||
|
|
|
@ -0,0 +1,140 @@
|
|||
# Copyright 2014 Tesora, Inc.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
"""
|
||||
Exceptions common to OpenStack projects
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from trove.openstack.common.gettextutils import _
|
||||
|
||||
_FATAL_EXCEPTION_FORMAT_ERRORS = False
|
||||
|
||||
|
||||
class Error(Exception):
|
||||
def __init__(self, message=None):
|
||||
super(Error, self).__init__(message)
|
||||
|
||||
|
||||
class ApiError(Error):
|
||||
def __init__(self, message='Unknown', code='Unknown'):
|
||||
self.message = message
|
||||
self.code = code
|
||||
super(ApiError, self).__init__('%s: %s' % (code, message))
|
||||
|
||||
|
||||
class NotFound(Error):
|
||||
pass
|
||||
|
||||
|
||||
class UnknownScheme(Error):
|
||||
|
||||
msg = "Unknown scheme '%s' found in URI"
|
||||
|
||||
def __init__(self, scheme):
|
||||
msg = self.__class__.msg % scheme
|
||||
super(UnknownScheme, self).__init__(msg)
|
||||
|
||||
|
||||
class BadStoreUri(Error):
|
||||
|
||||
msg = "The Store URI %s was malformed. Reason: %s"
|
||||
|
||||
def __init__(self, uri, reason):
|
||||
msg = self.__class__.msg % (uri, reason)
|
||||
super(BadStoreUri, self).__init__(msg)
|
||||
|
||||
|
||||
class Duplicate(Error):
|
||||
pass
|
||||
|
||||
|
||||
class NotAuthorized(Error):
|
||||
pass
|
||||
|
||||
|
||||
class NotEmpty(Error):
|
||||
pass
|
||||
|
||||
|
||||
class Invalid(Error):
|
||||
pass
|
||||
|
||||
|
||||
class BadInputError(Exception):
|
||||
"""Error resulting from a client sending bad input to a server"""
|
||||
pass
|
||||
|
||||
|
||||
class MissingArgumentError(Error):
|
||||
pass
|
||||
|
||||
|
||||
class DatabaseMigrationError(Error):
|
||||
pass
|
||||
|
||||
|
||||
class ClientConnectionError(Exception):
|
||||
"""Error resulting from a client connecting to a server"""
|
||||
pass
|
||||
|
||||
|
||||
def wrap_exception(f):
|
||||
def _wrap(*args, **kw):
|
||||
try:
|
||||
return f(*args, **kw)
|
||||
except Exception as e:
|
||||
if not isinstance(e, Error):
|
||||
#exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||
logging.exception(_('Uncaught exception'))
|
||||
#logging.error(traceback.extract_stack(exc_traceback))
|
||||
raise Error(str(e))
|
||||
raise
|
||||
_wrap.func_name = f.func_name
|
||||
return _wrap
|
||||
|
||||
|
||||
class OpenstackException(Exception):
|
||||
"""
|
||||
Base Exception
|
||||
|
||||
To correctly use this class, inherit from it and define
|
||||
a 'message' property. That message will get printf'd
|
||||
with the keyword arguments provided to the constructor.
|
||||
"""
|
||||
message = "An unknown exception occurred"
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
try:
|
||||
self._error_string = self.message % kwargs
|
||||
|
||||
except Exception as e:
|
||||
if _FATAL_EXCEPTION_FORMAT_ERRORS:
|
||||
raise e
|
||||
else:
|
||||
# at least get the core message out if something happened
|
||||
self._error_string = self.message
|
||||
|
||||
def __str__(self):
|
||||
return self._error_string
|
||||
|
||||
|
||||
class MalformedRequestBody(OpenstackException):
|
||||
message = "Malformed message body: %(reason)s"
|
||||
|
||||
|
||||
class InvalidContentType(OpenstackException):
|
||||
message = "Invalid content type %(content_type)s"
|
|
@ -18,7 +18,7 @@
|
|||
import re
|
||||
|
||||
from trove.openstack.common import log as logging
|
||||
from trove.openstack.common import exception as openstack_exception
|
||||
from trove.common import base_exception as openstack_exception
|
||||
from trove.openstack.common import processutils
|
||||
from trove.common.i18n import _
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ import trove.openstack.common.wsgi as os_wsgi
|
|||
|
||||
from lxml import etree
|
||||
from trove.openstack.common import log as logging
|
||||
from trove.openstack.common import exception
|
||||
from trove.common import base_exception as exception
|
||||
from trove.common import cfg
|
||||
from trove.common import wsgi
|
||||
from trove.common.i18n import _ # noqa
|
||||
|
|
Loading…
Reference in New Issue