From 8c74b37f5bdf1141b8c3724c8df460e6562d1985 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Tue, 19 Jun 2012 17:08:35 -0400 Subject: 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: I00cefb9ebf9d6a71ef491204d81765e30e7941f6 --- openstack/common/importutils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'openstack') diff --git a/openstack/common/importutils.py b/openstack/common/importutils.py index 67d94ad..2fbb029 100644 --- a/openstack/common/importutils.py +++ b/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