diff options
| author | Russell Bryant <rbryant@redhat.com> | 2012-04-03 17:05:37 -0400 |
|---|---|---|
| committer | Russell Bryant <rbryant@redhat.com> | 2012-04-11 02:30:14 -0400 |
| commit | 4acd7829ab0857356594dce3b841f4d785cf2aa1 (patch) | |
| tree | 1a13b5a384b6864f3768bba527d0d2f7c8450a21 /openstack/common/utils.py | |
| parent | 4fec57161a42914fae59f931879678c79470d49b (diff) | |
| download | oslo-4acd7829ab0857356594dce3b841f4d785cf2aa1.tar.gz oslo-4acd7829ab0857356594dce3b841f4d785cf2aa1.tar.xz oslo-4acd7829ab0857356594dce3b841f4d785cf2aa1.zip | |
Change behavior in utils.import_object().
Fix bug 972859.
Prior to this patch, utils.import_object(foo) and
utils.import_class(foo) would return the same thing if foo was the path
to a class. This patch changes utils.import_object() to return an
instance of the class, instead, also allowing you to pass in arguments
to the constructor.
This patch also removes the odd behavior of import_object() to be able
to also import a module. Instead, a new function import_module() has
been added.
Finally, the three import helpers have been moved to a new module,
importutils.
Change-Id: Ia2ea64c965692f8c3a29adec332dd93a83980070
Diffstat (limited to 'openstack/common/utils.py')
| -rw-r--r-- | openstack/common/utils.py | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/openstack/common/utils.py b/openstack/common/utils.py index f9dfe73..dee09ac 100644 --- a/openstack/common/utils.py +++ b/openstack/common/utils.py @@ -23,7 +23,6 @@ import logging import os import random import shlex -import sys from eventlet import greenthread from eventlet.green import subprocess @@ -139,22 +138,3 @@ def execute(*cmd, **kwargs): # call clean something up in between calls, without # it two execute calls in a row hangs the second one greenthread.sleep(0) - - -def import_class(import_str): - """Returns a class from a string including module and class""" - mod_str, _sep, class_str = import_str.rpartition('.') - 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) - - -def import_object(import_str): - """Returns an object including a module or module and class""" - try: - __import__(import_str) - return sys.modules[import_str] - except ImportError: - return import_class(import_str) |
