diff --git a/nova/db/sqlalchemy/migration.py b/nova/db/sqlalchemy/migration.py index 9f23032786cf..1ba39529582e 100644 --- a/nova/db/sqlalchemy/migration.py +++ b/nova/db/sqlalchemy/migration.py @@ -16,48 +16,18 @@ # License for the specific language governing permissions and limitations # under the License. -import distutils.version as dist_version import os +from migrate import exceptions as versioning_exceptions +from migrate.versioning import api as versioning_api +from migrate.versioning.repository import Repository +import sqlalchemy + from nova import exception from nova.openstack.common.db.sqlalchemy import session as db_session from nova.openstack.common.gettextutils import _ - -import migrate -from migrate.versioning import util as migrate_util -import sqlalchemy - INIT_VERSION = 132 - - -@migrate_util.decorator -def patched_with_engine(f, *a, **kw): - url = a[0] - engine = migrate_util.construct_engine(url, **kw) - - try: - kw['engine'] = engine - return f(*a, **kw) - finally: - if isinstance(engine, migrate_util.Engine) and engine is not url: - migrate_util.log.debug('Disposing SQLAlchemy engine %s', engine) - engine.dispose() - - -# TODO(jkoelker) When migrate 0.7.3 is released and nova depends -# on that version or higher, this can be removed -MIN_PKG_VERSION = dist_version.StrictVersion('0.7.3') -if (not hasattr(migrate, '__version__') or - dist_version.StrictVersion(migrate.__version__) < MIN_PKG_VERSION): - migrate_util.with_engine = patched_with_engine - - -# NOTE(jkoelker) Delay importing migrate until we are patched -from migrate import exceptions as versioning_exceptions -from migrate.versioning import api as versioning_api -from migrate.versioning.repository import Repository - _REPOSITORY = None get_engine = db_session.get_engine diff --git a/nova/virt/baremetal/db/sqlalchemy/migration.py b/nova/virt/baremetal/db/sqlalchemy/migration.py index 4b3c9874f325..d243f75f6888 100644 --- a/nova/virt/baremetal/db/sqlalchemy/migration.py +++ b/nova/virt/baremetal/db/sqlalchemy/migration.py @@ -16,10 +16,11 @@ # License for the specific language governing permissions and limitations # under the License. -import distutils.version as dist_version -import migrate -from migrate.versioning import util as migrate_util import os + +from migrate import exceptions as versioning_exceptions +from migrate.versioning import api as versioning_api +from migrate.versioning.repository import Repository import sqlalchemy from nova import exception @@ -27,36 +28,6 @@ from nova.openstack.common.gettextutils import _ from nova.virt.baremetal.db.sqlalchemy import session INIT_VERSION = 0 - - -@migrate_util.decorator -def patched_with_engine(f, *a, **kw): - url = a[0] - engine = migrate_util.construct_engine(url, **kw) - - try: - kw['engine'] = engine - return f(*a, **kw) - finally: - if isinstance(engine, migrate_util.Engine) and engine is not url: - migrate_util.log.debug('Disposing SQLAlchemy engine %s', engine) - engine.dispose() - - -# TODO(jkoelker) When migrate 0.7.3 is released and nova depends -# on that version or higher, this can be removed -MIN_PKG_VERSION = dist_version.StrictVersion('0.7.3') -if (not hasattr(migrate, '__version__') or - dist_version.StrictVersion(migrate.__version__) < MIN_PKG_VERSION): - migrate_util.with_engine = patched_with_engine - - -# NOTE(jkoelker) Delay importing migrate until we are patched -from migrate import exceptions as versioning_exceptions -from migrate.versioning import api as versioning_api -from migrate.versioning.repository import Repository - - _REPOSITORY = None diff --git a/requirements.txt b/requirements.txt index 2e7a7a620d63..65c808d68bcd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,7 @@ WebOb>=1.2.3,<1.3 greenlet>=0.3.2 PasteDeploy>=1.5.0 Paste -sqlalchemy-migrate>=0.7.2 +sqlalchemy-migrate>=0.8.2 netaddr>=0.7.6 suds>=0.4 paramiko>=1.8.0