summaryrefslogtreecommitdiffstats
path: root/nova/openstack
diff options
context:
space:
mode:
authorRussell Bryant <rbryant@redhat.com>2012-05-02 13:44:20 -0400
committerRussell Bryant <rbryant@redhat.com>2012-05-02 13:44:20 -0400
commit524bfb84f5119315af56556cc9911f92c538b5b0 (patch)
treebe07f04cd673d18244f5e646df3c73d7e0daefcf /nova/openstack
parent994bba6ae7156a565bd160fc8f0f8e8578c28d1b (diff)
downloadnova-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.py147
-rw-r--r--nova/openstack/common/importutils.py7
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):