diff options
author | Stephen Finucane <stephenfin@redhat.com> | 2022-01-20 16:18:47 +0000 |
---|---|---|
committer | Stephen Finucane <stephenfin@redhat.com> | 2022-01-24 16:25:41 +0000 |
commit | 1885f81576f6cf9231d34454ba462b571fb117a9 (patch) | |
tree | 7e0f6856842f3d611cef9605785f412f394aec4c | |
parent | 0b906c65294ac9f0723ab9f598f7f9f4c660d667 (diff) | |
download | keystone-1885f81576f6cf9231d34454ba462b571fb117a9.tar.gz |
sql: Move test-only code to tests
Also remove more dead code.
Change-Id: Iad00d202c41e6c06fe81eb60e0bfe7296ae91888
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
-rw-r--r-- | keystone/common/sql/upgrades.py | 44 | ||||
-rw-r--r-- | keystone/tests/unit/test_sql_upgrade.py | 51 |
2 files changed, 53 insertions, 42 deletions
diff --git a/keystone/common/sql/upgrades.py b/keystone/common/sql/upgrades.py index 00d21aed7..f0657e01a 100644 --- a/keystone/common/sql/upgrades.py +++ b/keystone/common/sql/upgrades.py @@ -24,6 +24,7 @@ import sqlalchemy as sa from keystone.common import sql from keystone import exception +from keystone.i18n import _ INITIAL_VERSION = 72 LATEST_VERSION = 79 @@ -32,43 +33,6 @@ DATA_MIGRATION_REPO = 'data_migration_repo' CONTRACT_REPO = 'contract_repo' -class Repository(object): - def __init__(self, engine, repo_name): - self.repo_name = repo_name - - self.repo_path = _get_migrate_repo_path(self.repo_name) - self.min_version = INITIAL_VERSION - self.schema_ = migrate_api.ControlledSchema.create( - engine, self.repo_path, self.min_version) - self.max_version = self.schema_.repository.version().version - - def upgrade(self, version=None, current_schema=None): - version = version or self.max_version - err = '' - upgrade = True - version = migrate_api._migrate_version( - self.schema_, version, upgrade, err) - validate_upgrade_order(self.repo_name, target_repo_version=version) - if not current_schema: - current_schema = self.schema_ - changeset = current_schema.changeset(version) - for ver, change in changeset: - self.schema_.runchange(ver, change, changeset.step) - - if self.schema_.version != version: - raise Exception( - 'Actual version (%s) of %s does not equal expected ' - 'version (%s)' % ( - self.schema_.version, self.repo_name, version)) - - @property - def version(self): - with sql.session_for_read() as session: - return _migrate_db_version( - session.get_bind(), self.repo_path, self.min_version, - ) - - def _get_migrate_repo_path(repo_name): abs_path = os.path.abspath( os.path.join( @@ -235,8 +199,10 @@ def validate_upgrade_order(repo_name, target_repo_version=None): """ # Initialize a dict to have each key assigned a repo with their value being # the repo that comes before. - db_sync_order = {DATA_MIGRATION_REPO: EXPAND_REPO, - CONTRACT_REPO: DATA_MIGRATION_REPO} + db_sync_order = { + DATA_MIGRATION_REPO: EXPAND_REPO, + CONTRACT_REPO: DATA_MIGRATION_REPO, + } if repo_name == EXPAND_REPO: return diff --git a/keystone/tests/unit/test_sql_upgrade.py b/keystone/tests/unit/test_sql_upgrade.py index bb5b19208..09c99dcb0 100644 --- a/keystone/tests/unit/test_sql_upgrade.py +++ b/keystone/tests/unit/test_sql_upgrade.py @@ -43,6 +43,7 @@ import glob import os import fixtures +from migrate.versioning import api as migrate_api from migrate.versioning import script from oslo_db import exception as db_exception from oslo_db.sqlalchemy import enginefacade @@ -229,6 +230,50 @@ INITIAL_TABLE_STRUCTURE = { } +class Repository: + + def __init__(self, engine, repo_name): + self.repo_name = repo_name + + self.repo_path = upgrades._get_migrate_repo_path(self.repo_name) + self.min_version = upgrades.INITIAL_VERSION + self.schema_ = migrate_api.ControlledSchema.create( + engine, self.repo_path, self.min_version, + ) + self.max_version = self.schema_.repository.version().version + + def upgrade(self, version=None, current_schema=None): + version = version or self.max_version + err = '' + upgrade = True + version = migrate_api._migrate_version( + self.schema_, version, upgrade, err, + ) + upgrades.validate_upgrade_order( + self.repo_name, target_repo_version=version, + ) + if not current_schema: + current_schema = self.schema_ + changeset = current_schema.changeset(version) + for ver, change in changeset: + self.schema_.runchange(ver, change, changeset.step) + + if self.schema_.version != version: + raise Exception( + 'Actual version (%s) of %s does not equal expected ' + 'version (%s)' % ( + self.schema_.version, self.repo_name, version, + ), + ) + + @property + def version(self): + with sql.session_for_read() as session: + return upgrades._migrate_db_version( + session.get_bind(), self.repo_path, self.min_version, + ) + + class MigrateBase( db_fixtures.OpportunisticDBTestMixin, test_base.BaseTestCase, @@ -261,13 +306,13 @@ class MigrateBase( self.addCleanup(sql.cleanup) self.repos = { - upgrades.EXPAND_REPO: upgrades.Repository( + upgrades.EXPAND_REPO: Repository( self.engine, upgrades.EXPAND_REPO, ), - upgrades.DATA_MIGRATION_REPO: upgrades.Repository( + upgrades.DATA_MIGRATION_REPO: Repository( self.engine, upgrades.DATA_MIGRATION_REPO, ), - upgrades.CONTRACT_REPO: upgrades.Repository( + upgrades.CONTRACT_REPO: Repository( self.engine, upgrades.CONTRACT_REPO, ), } |