summaryrefslogtreecommitdiffstats
path: root/nova/openstack
diff options
context:
space:
mode:
authorMark McLoughlin <markmc@redhat.com>2013-02-04 18:01:30 +0000
committerMark McLoughlin <markmc@redhat.com>2013-02-05 10:13:15 +0000
commita34bdd63b1598e9fc268eb725f917571d78b6c2d (patch)
tree3b7d881b29367f8058267fa8071881db82ace82c /nova/openstack
parentcd0c765ced2823c05b16126d6ba6a823bb66fe7d (diff)
downloadnova-a34bdd63b1598e9fc268eb725f917571d78b6c2d.tar.gz
nova-a34bdd63b1598e9fc268eb725f917571d78b6c2d.tar.xz
nova-a34bdd63b1598e9fc268eb725f917571d78b6c2d.zip
Sync latest db and importutils from oslo
Changes include: 7c0e25a Use importutils.try_import() for MySQLdb 33b12d3 Implement importutils.try_import. cf705c5 Make project pyflakes clean. Change-Id: I448f5208919d06ca0af54d2057b8f5e042862cd6
Diffstat (limited to 'nova/openstack')
-rw-r--r--nova/openstack/common/db/sqlalchemy/session.py10
-rw-r--r--nova/openstack/common/importutils.py10
2 files changed, 13 insertions, 7 deletions
diff --git a/nova/openstack/common/db/sqlalchemy/session.py b/nova/openstack/common/db/sqlalchemy/session.py
index 2125b006d..bc889fc36 100644
--- a/nova/openstack/common/db/sqlalchemy/session.py
+++ b/nova/openstack/common/db/sqlalchemy/session.py
@@ -246,12 +246,6 @@ import time
from eventlet import db_pool
from eventlet import greenthread
-try:
- import MySQLdb
- from MySQLdb.constants import CLIENT as mysql_client_constants
-except ImportError:
- MySQLdb = None
- mysql_client_constants = None
from sqlalchemy.exc import DisconnectionError, OperationalError, IntegrityError
import sqlalchemy.interfaces
import sqlalchemy.orm
@@ -259,10 +253,14 @@ from sqlalchemy.pool import NullPool, StaticPool
from sqlalchemy.sql.expression import literal_column
from nova.openstack.common import cfg
+from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common.gettextutils import _
from nova.openstack.common import timeutils
+MySQLdb = importutils.try_import('MySQLdb')
+if MySQLdb is not None:
+ from MySQLdb.constants import CLIENT as mysql_client_constants
sql_opts = [
cfg.StrOpt('sql_connection',
diff --git a/nova/openstack/common/importutils.py b/nova/openstack/common/importutils.py
index f45372b4d..9dec764fb 100644
--- a/nova/openstack/common/importutils.py
+++ b/nova/openstack/common/importutils.py
@@ -29,7 +29,7 @@ def import_class(import_str):
try:
__import__(mod_str)
return getattr(sys.modules[mod_str], class_str)
- except (ValueError, AttributeError), exc:
+ except (ValueError, AttributeError):
raise ImportError('Class %s cannot be found (%s)' %
(class_str,
traceback.format_exception(*sys.exc_info())))
@@ -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