Browse Source

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

changes/91/744591/1
Zuul 2 weeks ago
committed by Gerrit Code Review
parent
commit
2ecda828e9
2 changed files with 8 additions and 3 deletions
  1. +2
    -1
      cinder/db/sqlalchemy/api.py
  2. +6
    -2
      cinder/tests/unit/test_db_api.py

+ 2
- 1
cinder/db/sqlalchemy/api.py View File

@@ -621,7 +621,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()



+ 6
- 2
cinder/tests/unit/test_db_api.py 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)


Loading…
Cancel
Save