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:
Amrith Kumar 2014-12-10 15:04:04 -05:00 committed by amrith
parent 109ba58680
commit fb83a84e62
4 changed files with 142 additions and 3 deletions

View File

@ -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

View File

@ -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"

View File

@ -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 _

View File

@ -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