diff options
| author | Mark McLoughlin <markmc@redhat.com> | 2013-02-04 18:01:30 +0000 |
|---|---|---|
| committer | Mark McLoughlin <markmc@redhat.com> | 2013-02-05 10:13:15 +0000 |
| commit | a34bdd63b1598e9fc268eb725f917571d78b6c2d (patch) | |
| tree | 3b7d881b29367f8058267fa8071881db82ace82c /nova/openstack | |
| parent | cd0c765ced2823c05b16126d6ba6a823bb66fe7d (diff) | |
| download | nova-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.py | 10 | ||||
| -rw-r--r-- | nova/openstack/common/importutils.py | 10 |
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 |
