summaryrefslogtreecommitdiff
path: root/ceilometerclient/openstack/common/importutils.py
diff options
context:
space:
mode:
authorgordon chung <gord@live.ca>2014-09-03 16:21:46 -0400
committergordon chung <gord@live.ca>2014-10-02 15:10:45 +0000
commit7316dd16b8850270db27c1298dcf5a2223f2f1e1 (patch)
treee3b4f5b6f333e4889e2f4364168825f154dd961f /ceilometerclient/openstack/common/importutils.py
parent5aa2a69f36c1738d9cc24470e81651732f180859 (diff)
downloadpython-ceilometerclient-stable/icehouse.tar.gz
- sync code up to Change-Id: Ie6064e73abe4b0729498a0343d50e1be35684b75 - includes fix to resolve alarm-evaluator failure - does not include openstack/common/strutils sync as it requires test update Co-Authored-By: Vaibhav Kale <vaibhav_kale@persistent.co.in> Closes-Bug: #1357343 Change-Id: Ieec08520cb39c5bf2e795dfeb3e36e52c6fd2a82
Diffstat (limited to 'ceilometerclient/openstack/common/importutils.py')
-rw-r--r--ceilometerclient/openstack/common/importutils.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/ceilometerclient/openstack/common/importutils.py b/ceilometerclient/openstack/common/importutils.py
index 4fd9ae2..a7972e0 100644
--- a/ceilometerclient/openstack/common/importutils.py
+++ b/ceilometerclient/openstack/common/importutils.py
@@ -24,10 +24,10 @@ import traceback
def import_class(import_str):
"""Returns a class from a string including module and class."""
mod_str, _sep, class_str = import_str.rpartition('.')
+ __import__(mod_str)
try:
- __import__(mod_str)
return getattr(sys.modules[mod_str], class_str)
- except (ValueError, AttributeError):
+ except AttributeError:
raise ImportError('Class %s cannot be found (%s)' %
(class_str,
traceback.format_exception(*sys.exc_info())))
@@ -58,6 +58,13 @@ def import_module(import_str):
return sys.modules[import_str]
+def import_versioned_module(version, submodule=None):
+ module = 'ceilometerclient.v%s' % version
+ if submodule:
+ module = '.'.join((module, submodule))
+ return import_module(module)
+
+
def try_import(import_str, default=None):
"""Try to import a module and if it fails return default."""
try: