From 43677fc6dab76d9b6ad0375eba4b3c2a78e5b405 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Fri, 13 Jul 2012 12:10:48 -0400 Subject: Sync importutils from openstack-common. commit 8c74b37f5bdf1141b8c3724c8df460e6562d1985 Author: Russell Bryant Date: Tue Jun 19 17:08:35 2012 -0400 Improve exception from importutils.import_class(). The ImportError raised by import_class() attempted to tell you what the original error was by just doing str() on the original exception. Sometimes that's helpful, but sometimes a full traceback is needed. This patch includes a traceback for debugging purposes. Change-Id: I83b167baf99feacef1a3f91089b758c6cf9531d3 --- nova/openstack/common/importutils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'nova/openstack') diff --git a/nova/openstack/common/importutils.py b/nova/openstack/common/importutils.py index 67d94ad5f..2fbb0291a 100644 --- a/nova/openstack/common/importutils.py +++ b/nova/openstack/common/importutils.py @@ -20,6 +20,7 @@ Import related utilities and helper functions. """ import sys +import traceback def import_class(import_str): @@ -30,7 +31,8 @@ def import_class(import_str): return getattr(sys.modules[mod_str], class_str) except (ImportError, ValueError, AttributeError), exc: raise ImportError('Class %s cannot be found (%s)' % - (class_str, str(exc))) + (class_str, + traceback.format_exception(*sys.exc_info()))) def import_object(import_str, *args, **kwargs): -- cgit