summaryrefslogtreecommitdiffstats
path: root/openstack
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2013-01-14 12:54:43 -0500
committerDan Prince <dprince@redhat.com>2013-01-14 12:54:43 -0500
commit33b12d3c18a35f85785227267347f9ac7f7273a4 (patch)
tree5f512d33ae60ced0002a4d691a8d1430688b2309 /openstack
parentd74668fbedc29aa4b7868fd3fb8a28d326f43d52 (diff)
downloadoslo-33b12d3c18a35f85785227267347f9ac7f7273a4.tar.gz
oslo-33b12d3c18a35f85785227267347f9ac7f7273a4.tar.xz
oslo-33b12d3c18a35f85785227267347f9ac7f7273a4.zip
Implement importutils.try_import.
Adds a new (simple) importutils.try_import function which can return a module name or a default (by default this is None). This should help clean up some of our try: import foo except... blocks in modules. This commit also drops the dependency on python-extras which is no longer needed. Fixes LP Bug #1099501. Change-Id: I8591f79983bdad67a50d1aaae6dce8428dfce084
Diffstat (limited to 'openstack')
-rw-r--r--openstack/common/importutils.py8
-rw-r--r--openstack/common/service.py4
2 files changed, 10 insertions, 2 deletions
diff --git a/openstack/common/importutils.py b/openstack/common/importutils.py
index 2a28b45..9dec764 100644
--- a/openstack/common/importutils.py
+++ b/openstack/common/importutils.py
@@ -57,3 +57,11 @@ def import_module(import_str):
"""Import a module."""
__import__(import_str)
return sys.modules[import_str]
+
+
+def try_import(import_str, default=None):
+ """Try to import a module and if it fails return default."""
+ try:
+ return import_module(import_str)
+ except ImportError:
+ return default
diff --git a/openstack/common/service.py b/openstack/common/service.py
index 740378f..6b180aa 100644
--- a/openstack/common/service.py
+++ b/openstack/common/service.py
@@ -27,17 +27,17 @@ import sys
import time
import eventlet
-import extras
import logging as std_logging
from openstack.common import cfg
from openstack.common import eventlet_backdoor
from openstack.common.gettextutils import _
+from openstack.common import importutils
from openstack.common import log as logging
from openstack.common import threadgroup
-rpc = extras.try_import('openstack.common.rpc')
+rpc = importutils.try_import('openstack.common.rpc')
CONF = cfg.CONF
LOG = logging.getLogger(__name__)