Use SnapshotStatus enum field

The SnapshotStatus and SnapshotStatusField have been defined already, This
change just replace the omissive snapshot status string with snapshot enum
field.
Follow up https://review.openstack.org/#/c/284825/

Change-Id: I175398bcad863eaead8b35095d7ff84f9f63aadb
Partial-Implements: bp cinder-object-fields
This commit is contained in:
junboli 2017-07-02 17:40:54 +08:00 committed by junbo.li
parent 2c315309df
commit aea33343c6
3 changed files with 24 additions and 14 deletions

View File

@ -368,9 +368,10 @@ class FakeGateDriver(lvm.LVMVolumeDriver):
snapshot_model_update = {'id': snapshot.id}
try:
self.create_snapshot(snapshot)
snapshot_model_update['status'] = 'available'
snapshot_model_update['status'] = (
fields.SnapshotStatus.AVAILABLE)
except Exception:
snapshot_model_update['status'] = 'error'
snapshot_model_update['status'] = fields.SnapshotStatus.ERROR
model_update['status'] = 'error'
snapshot_model_updates.append(snapshot_model_update)
@ -384,11 +385,14 @@ class FakeGateDriver(lvm.LVMVolumeDriver):
snapshot_model_update = {'id': snapshot.id}
try:
self.delete_snapshot(snapshot)
snapshot_model_update['status'] = 'deleted'
snapshot_model_update['status'] = (
fields.SnapshotStatus.DELETED)
except exception.SnapshotIsBusy:
snapshot_model_update['status'] = 'available'
snapshot_model_update['status'] = (
fields.SnapshotStatus.AVAILABLE)
except Exception:
snapshot_model_update['status'] = 'error'
snapshot_model_update['status'] = (
fields.SnapshotStatus.ERROR)
model_update['status'] = 'error'
snapshot_model_updates.append(snapshot_model_update)

View File

@ -706,7 +706,8 @@ class GroupsAPITestCase(test.TestCase):
self.group1.status = fields.GroupStatus.AVAILABLE
self.group1.save()
vol = utils.create_volume(self.ctxt, group_id=self.group1.id)
utils.create_snapshot(self.ctxt, vol.id, status='deleted',
utils.create_snapshot(self.ctxt, vol.id,
status=fields.SnapshotStatus.DELETED,
deleted=True)
req = fakes.HTTPRequest.blank('/v3/%s/groups/%s/action' %
(fake.PROJECT_ID, self.group1.id),

View File

@ -764,7 +764,7 @@ class VolumeManager(manager.CleanableManager,
snapshots = objects.SnapshotList.get_all_for_volume(context,
volume.id)
for s in snapshots:
if s.status != 'deleting':
if s.status != fields.SnapshotStatus.DELETING:
self._clear_db(context, is_migrating_dest, volume,
'error_deleting')
@ -3653,9 +3653,11 @@ class VolumeManager(manager.CleanableManager,
driver_update.pop('id', None)
snapshot_model_update.update(driver_update)
if 'status' not in snapshot_model_update:
snapshot_model_update['status'] = 'available'
snapshot_model_update['status'] = (
fields.SnapshotStatus.AVAILABLE)
except Exception:
snapshot_model_update['status'] = 'error'
snapshot_model_update['status'] = (
fields.SnapshotStatus.ERROR)
model_update['status'] = 'error'
snapshot_model_updates.append(snapshot_model_update)
@ -3670,11 +3672,14 @@ class VolumeManager(manager.CleanableManager,
snapshot_model_update = {'id': snapshot.id}
try:
self.driver.delete_snapshot(snapshot)
snapshot_model_update['status'] = 'deleted'
snapshot_model_update['status'] = (
fields.SnapshotStatus.DELETED)
except exception.SnapshotIsBusy:
snapshot_model_update['status'] = 'available'
snapshot_model_update['status'] = (
fields.SnapshotStatus.AVAILABLE)
except Exception:
snapshot_model_update['status'] = 'error'
snapshot_model_update['status'] = (
fields.SnapshotStatus.ERROR)
model_update['status'] = 'error'
snapshot_model_updates.append(snapshot_model_update)
@ -3891,7 +3896,7 @@ class VolumeManager(manager.CleanableManager,
volume.save()
for snapshot in volume.snapshots:
snapshot.status = 'error'
snapshot.status = fields.SnapshotStatus.ERROR
snapshot.save()
volume_update_list = None
@ -3973,7 +3978,7 @@ class VolumeManager(manager.CleanableManager,
update.setdefault('status', 'error')
# Set all volume snapshots to error
for snapshot in volume.snapshots:
snapshot.status = 'error'
snapshot.status = fields.SnapshotStatus.ERROR
snapshot.save()
if 'status' in update:
update['previous_status'] = volume.status