Merge "Fix service_uuid migration for volumes with no host" into stable/rocky

This commit is contained in:
Zuul 2020-01-03 19:33:02 +00:00 committed by Gerrit Code Review
commit 9ccd04b907
2 changed files with 8 additions and 3 deletions

View File

@ -622,7 +622,8 @@ def volume_service_uuids_online_data_migration(context, max_count):
updated = 0
query = model_query(context,
models.Volume).filter_by(service_uuid=None)
models.Volume).filter_by(service_uuid=None).\
filter(models.Volume.host.isnot(None))
total = query.count()
vol_refs = query.limit(max_count).all()

View File

@ -494,6 +494,8 @@ class DBAPIServiceTestCase(BaseTest):
self.ctxt, {'host': 'host1@lvm-driver1#lvm-driver1'})
db.volume_create(
self.ctxt, {'host': 'host1@lvm-driver1#lvm-driver1'})
# Entries with no host should be skipped
db.volume_create(self.ctxt, {'host': None})
values = {
'host': 'host1@lvm-driver1',
@ -506,12 +508,14 @@ class DBAPIServiceTestCase(BaseTest):
total, updated = db.volume_service_uuids_online_data_migration(
self.ctxt, 2)
# total = number of volumes that have hosts and don't have a
# service_uuid
self.assertEqual(3, total)
self.assertEqual(2, updated)
# Now get the ,last one (intentionally setting max > expected)
# Now get the last one (intentionally setting max > expected)
total, updated = db.volume_service_uuids_online_data_migration(
self.ctxt, 2)
self.ctxt, 99)
self.assertEqual(1, total)
self.assertEqual(1, updated)