diff options
| author | Russell Bryant <rbryant@redhat.com> | 2012-05-02 13:44:20 -0400 |
|---|---|---|
| committer | Russell Bryant <rbryant@redhat.com> | 2012-05-02 13:44:20 -0400 |
| commit | 524bfb84f5119315af56556cc9911f92c538b5b0 (patch) | |
| tree | be07f04cd673d18244f5e646df3c73d7e0daefcf /nova/openstack | |
| parent | 994bba6ae7156a565bd160fc8f0f8e8578c28d1b (diff) | |
| download | nova-524bfb84f5119315af56556cc9911f92c538b5b0.tar.gz nova-524bfb84f5119315af56556cc9911f92c538b5b0.tar.xz nova-524bfb84f5119315af56556cc9911f92c538b5b0.zip | |
Update common.importutils from openstack-common.
This patch updates common.importutils from openstack-common. The change
was to remove the usage of common.exception. The rest of the patch
includes the changes required in nova to no longer use common.exception,
as well.
Change-Id: Iacd186b2c466cba84248ae10589ffbb5a9cec0ba
Diffstat (limited to 'nova/openstack')
| -rw-r--r-- | nova/openstack/common/exception.py | 147 | ||||
| -rw-r--r-- | nova/openstack/common/importutils.py | 7 |
2 files changed, 3 insertions, 151 deletions
diff --git a/nova/openstack/common/exception.py b/nova/openstack/common/exception.py deleted file mode 100644 index ba32da550..000000000 --- a/nova/openstack/common/exception.py +++ /dev/null @@ -1,147 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2011 OpenStack LLC. -# 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 - - -class ProcessExecutionError(IOError): - def __init__(self, stdout=None, stderr=None, exit_code=None, cmd=None, - description=None): - if description is None: - description = "Unexpected error while running command." - if exit_code is None: - exit_code = '-' - message = "%s\nCommand: %s\nExit code: %s\nStdout: %r\nStderr: %r" % ( - description, cmd, exit_code, stdout, stderr) - IOError.__init__(self, message) - - -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, 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: - # 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" diff --git a/nova/openstack/common/importutils.py b/nova/openstack/common/importutils.py index 2d8bc09a9..7654af5b9 100644 --- a/nova/openstack/common/importutils.py +++ b/nova/openstack/common/importutils.py @@ -21,8 +21,6 @@ Import related utilities and helper functions. import sys -from nova.openstack.common import exception - def import_class(import_str): """Returns a class from a string including module and class""" @@ -30,8 +28,9 @@ def import_class(import_str): try: __import__(mod_str) return getattr(sys.modules[mod_str], class_str) - except (ImportError, ValueError, AttributeError): - raise exception.NotFound('Class %s cannot be found' % class_str) + except (ImportError, ValueError, AttributeError), exc: + raise ImportError('Class %s cannot be found (%s)' % + (class_str, str(exc))) def import_object(import_str, *args, **kwargs): |
