db: Move remaining 'nova.db.sqlalchemy' modules

The two remaining modules, 'api_models' and 'api_migrations', are
moved to the new 'nova.db.api' module.

Change-Id: I138670fe36b07546db5518f78c657197780c5040
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
Stephen Finucane 2021-02-13 17:18:53 +00:00
parent aec2ca9468
commit bf8b5fc7d0
54 changed files with 33 additions and 37 deletions

View File

@ -177,7 +177,7 @@ Schema Migrations
Schema migrations are defined in Schema migrations are defined in
``nova/db/main/legacy_migrations/versions`` and in ``nova/db/main/legacy_migrations/versions`` and in
``nova/db/sqlalchemy/api_migrations/migrate_repo/versions``. They are ``nova/db/api/legacy_migrations/versions``. They are
the routines that transform our database structure, which should be the routines that transform our database structure, which should be
additive and able to be applied to a running system before service additive and able to be applied to a running system before service
code has been upgraded. code has been upgraded.

View File

@ -15,7 +15,7 @@ from migrate import UniqueConstraint
import sqlalchemy as sa import sqlalchemy as sa
from sqlalchemy import dialects from sqlalchemy import dialects
from nova.db.sqlalchemy.api_models import MediumText from nova.db.api.models import MediumText
from nova.objects import keypair from nova.objects import keypair

View File

@ -45,9 +45,7 @@ def get_engine(database='main', context=None):
def find_migrate_repo(database='main'): def find_migrate_repo(database='main'):
"""Get the path for the migrate repository.""" """Get the path for the migrate repository."""
global _REPOSITORY global _REPOSITORY
rel_path = os.path.join('main', 'legacy_migrations') rel_path = os.path.join(database, 'legacy_migrations')
if database == 'api':
rel_path = os.path.join('sqlalchemy', 'api_migrations', 'migrate_repo')
path = os.path.join(os.path.abspath(os.path.dirname(__file__)), rel_path) path = os.path.join(os.path.abspath(os.path.dirname(__file__)), rel_path)
assert os.path.exists(path) assert os.path.exists(path)
if _REPOSITORY.get(database) is None: if _REPOSITORY.get(database) is None:

View File

@ -19,8 +19,8 @@ from oslo_utils import uuidutils
from sqlalchemy import orm from sqlalchemy import orm
from nova.compute import utils as compute_utils from nova.compute import utils as compute_utils
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova.i18n import _ from nova.i18n import _
from nova import objects from nova import objects

View File

@ -18,8 +18,8 @@ from oslo_serialization import jsonutils
from oslo_utils import versionutils from oslo_utils import versionutils
from oslo_versionedobjects import exception as ovoo_exc from oslo_versionedobjects import exception as ovoo_exc
from nova.db.api import models as api_models
from nova.db.main import api as db from nova.db.main import api as db
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova import objects from nova import objects
from nova.objects import base from nova.objects import base

View File

@ -18,8 +18,8 @@ from sqlalchemy import sql
from sqlalchemy.sql import expression from sqlalchemy.sql import expression
import nova.conf import nova.conf
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova.objects import base from nova.objects import base
from nova.objects import fields from nova.objects import fields

View File

@ -21,8 +21,8 @@ from sqlalchemy import sql
from sqlalchemy.sql import expression from sqlalchemy.sql import expression
import nova.conf import nova.conf
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova.notifications.objects import base as notification from nova.notifications.objects import base as notification
from nova.notifications.objects import flavor as flavor_notification from nova.notifications.objects import flavor as flavor_notification

View File

@ -14,8 +14,8 @@ from oslo_db import exception as db_exc
from sqlalchemy import orm from sqlalchemy import orm
from nova import context from nova import context
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova.i18n import _ from nova.i18n import _
from nova.objects import base from nova.objects import base

View File

@ -22,8 +22,8 @@ from oslo_utils import versionutils
from sqlalchemy import orm from sqlalchemy import orm
from nova.compute import utils as compute_utils from nova.compute import utils as compute_utils
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova import objects from nova import objects
from nova.objects import base from nova.objects import base

View File

@ -20,8 +20,8 @@ from sqlalchemy import sql
from sqlalchemy.sql import func from sqlalchemy.sql import func
from nova import context as nova_context from nova import context as nova_context
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova.i18n import _ from nova.i18n import _
from nova import objects from nova import objects

View File

@ -17,8 +17,8 @@ from oslo_db.sqlalchemy import utils as sqlalchemyutils
from oslo_log import log as logging from oslo_log import log as logging
from oslo_utils import versionutils from oslo_utils import versionutils
from nova.db.api import models as api_models
from nova.db.main import api as db from nova.db.main import api as db
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova import objects from nova import objects
from nova.objects import base from nova.objects import base

View File

@ -16,9 +16,9 @@ import collections
from oslo_db import exception as db_exc from oslo_db import exception as db_exc
from nova.db.api import models as api_models
from nova.db.main import api as db from nova.db.main import api as db
from nova.db.main import models as main_models from nova.db.main import models as main_models
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova.objects import base from nova.objects import base
from nova.objects import fields from nova.objects import fields

View File

@ -20,8 +20,8 @@ from oslo_log import log as logging
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
from oslo_utils import versionutils from oslo_utils import versionutils
from nova.db.api import models as api_models
from nova.db.main import api as db from nova.db.main import api as db
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova import objects from nova import objects
from nova.objects import base from nova.objects import base

View File

@ -24,8 +24,8 @@ from sqlalchemy import sql
import nova.conf import nova.conf
from nova import context as nova_context from nova import context as nova_context
from nova.db.api import models as api_models
from nova.db.main import api as db from nova.db.main import api as db
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova import objects from nova import objects
from nova.scheduler.client import report from nova.scheduler.client import report

View File

@ -37,9 +37,9 @@ from oslo_db.sqlalchemy import test_fixtures
from oslo_db.sqlalchemy import test_migrations from oslo_db.sqlalchemy import test_migrations
import testtools import testtools
from nova.db.api import legacy_migrations
from nova.db.api import models
from nova.db import migration from nova.db import migration
from nova.db.sqlalchemy.api_migrations import migrate_repo
from nova.db.sqlalchemy import api_models
from nova import test from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
@ -63,7 +63,7 @@ class NovaAPIModelsSync(test_migrations.ModelsMigrationsSync):
return self.migrate_engine return self.migrate_engine
def get_metadata(self): def get_metadata(self):
return api_models.API_BASE.metadata return models.API_BASE.metadata
def include_object(self, object_, name, type_, reflected, compare_to): def include_object(self, object_, name, type_, reflected, compare_to):
if type_ == 'table': if type_ == 'table':
@ -154,7 +154,7 @@ class NovaAPIMigrationsWalk(test_migrations.WalkVersionsMixin):
@property @property
def REPOSITORY(self): def REPOSITORY(self):
return repository.Repository( return repository.Repository(
os.path.abspath(os.path.dirname(migrate_repo.__file__))) os.path.abspath(os.path.dirname(legacy_migrations.__file__)))
@property @property
def migration_api(self): def migration_api(self):

View File

@ -18,8 +18,8 @@ from oslo_utils.fixture import uuidsentinel
from oslo_utils import timeutils from oslo_utils import timeutils
from nova import context from nova import context
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
import nova.objects.aggregate as aggregate_obj import nova.objects.aggregate as aggregate_obj
from nova import test from nova import test
@ -401,8 +401,9 @@ class AggregateObjectDbTestCase(test.TestCase):
def test_aggregate_metadata_add_retry(self): def test_aggregate_metadata_add_retry(self):
result = _create_aggregate(self.context, metadata=None) result = _create_aggregate(self.context, metadata=None)
with mock.patch('nova.db.sqlalchemy.api_models.' with mock.patch(
'AggregateMetadata.__table__.insert') as insert_mock: 'nova.db.api.models.AggregateMetadata.__table__.insert'
) as insert_mock:
insert_mock.side_effect = db_exc.DBDuplicateEntry insert_mock.side_effect = db_exc.DBDuplicateEntry
self.assertRaises(db_exc.DBDuplicateEntry, self.assertRaises(db_exc.DBDuplicateEntry,
aggregate_obj._metadata_add_to_db, aggregate_obj._metadata_add_to_db,

View File

@ -10,8 +10,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from nova.db.api import models as api_models
from nova.db.main import models from nova.db.main import models
from nova.db.sqlalchemy import api_models
from nova import test from nova import test

View File

@ -11,8 +11,8 @@
# under the License. # under the License.
from nova import context from nova import context
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova import objects from nova import objects
from nova import test from nova import test

View File

@ -10,8 +10,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from nova.db.api import models as api_models
from nova.db.main import models from nova.db.main import models
from nova.db.sqlalchemy import api_models
from nova import test from nova import test

View File

@ -15,7 +15,7 @@ from oslo_utils.fixture import uuidsentinel as uuids
from oslo_versionedobjects import fixture as ovo_fixture from oslo_versionedobjects import fixture as ovo_fixture
from nova import context from nova import context
from nova.db.sqlalchemy import api_models from nova.db.api import models as api_models
from nova import exception from nova import exception
from nova import objects from nova import objects
from nova.objects import base from nova.objects import base

View File

@ -10,8 +10,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from nova.db.api import models as api_models
from nova.db.main import models from nova.db.main import models
from nova.db.sqlalchemy import api_models
from nova import test from nova import test

View File

@ -39,8 +39,8 @@ from nova.conductor.tasks import live_migrate
from nova.conductor.tasks import migrate from nova.conductor.tasks import migrate
from nova import conf from nova import conf
from nova import context from nova import context
from nova.db.api import models as api_models
from nova.db.main import api as db from nova.db.main import api as db
from nova.db.sqlalchemy import api_models
from nova import exception as exc from nova import exception as exc
from nova.image import glance as image_api from nova.image import glance as image_api
from nova import objects from nova import objects

View File

@ -274,10 +274,7 @@ class ProjectTestCase(test.NoDBTestCase):
includes_downgrade = [] includes_downgrade = []
for directory in ( for directory in (
os.path.join(topdir, 'db', 'main', 'legacy_migrations'), os.path.join(topdir, 'db', 'main', 'legacy_migrations'),
os.path.join( os.path.join(topdir, 'db', 'api', 'legacy_migrations'),
topdir, 'db', 'sqlalchemy', 'api_migrations',
'migrate_repo',
),
): ):
py_glob = os.path.join(directory, 'versions', '*.py') py_glob = os.path.join(directory, 'versions', '*.py')
for path in glob.iglob(py_glob): for path in glob.iglob(py_glob):

View File

@ -13,8 +13,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from nova.db.api import models as api_models
from nova.db.main import models from nova.db.main import models
from nova.db.sqlalchemy import api_models
from nova import test from nova import test

View File

@ -19,8 +19,8 @@ from oslo_db import exception as db_exc
from oslo_utils import uuidutils from oslo_utils import uuidutils
from nova import context as nova_context from nova import context as nova_context
from nova.db.api import models as api_models
from nova.db.main import api as db_api from nova.db.main import api as db_api
from nova.db.sqlalchemy import api_models
from nova import exception from nova import exception
from nova import objects from nova import objects
from nova.objects import fields from nova.objects import fields
@ -189,7 +189,7 @@ class _TestFlavor(object):
flavor = flavor_obj.Flavor(context=self.context, id=123) flavor = flavor_obj.Flavor(context=self.context, id=123)
self.assertRaises(exception.ObjectActionError, flavor.create) self.assertRaises(exception.ObjectActionError, flavor.create)
@mock.patch('nova.db.sqlalchemy.api_models.Flavors') @mock.patch('nova.db.api.models.Flavors')
def test_create_duplicate(self, mock_flavors): def test_create_duplicate(self, mock_flavors):
mock_flavors.return_value.save.side_effect = db_exc.DBDuplicateEntry mock_flavors.return_value.save.side_effect = db_exc.DBDuplicateEntry
fields = dict(fake_flavor) fields = dict(fake_flavor)

View File

@ -6,7 +6,7 @@ import os
import subprocess import subprocess
BASE = 'nova/db/main/legacy_migrations/versions'.split('/') BASE = 'nova/db/main/legacy_migrations/versions'.split('/')
API_BASE = 'nova/db/sqlalchemy/api_migrations/migrate_repo/versions'.split('/') API_BASE = 'nova/db/api/legacy_migrations/versions'.split('/')
STUB = \ STUB = \
"""# Licensed under the Apache License, Version 2.0 (the "License"); you may """# Licensed under the Apache License, Version 2.0 (the "License"); you may