From aea33343c65e158e6af21ea0f44b383a51ef2fd0 Mon Sep 17 00:00:00 2001 From: junboli Date: Sun, 2 Jul 2017 17:40:54 +0800 Subject: [PATCH] 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 --- cinder/tests/fake_driver.py | 14 +++++++++----- cinder/tests/unit/api/v3/test_groups.py | 3 ++- cinder/volume/manager.py | 21 +++++++++++++-------- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/cinder/tests/fake_driver.py b/cinder/tests/fake_driver.py index 929e240e027..853cb566280 100644 --- a/cinder/tests/fake_driver.py +++ b/cinder/tests/fake_driver.py @@ -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) diff --git a/cinder/tests/unit/api/v3/test_groups.py b/cinder/tests/unit/api/v3/test_groups.py index 4ee2b74c709..79162a94a7b 100644 --- a/cinder/tests/unit/api/v3/test_groups.py +++ b/cinder/tests/unit/api/v3/test_groups.py @@ -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), diff --git a/cinder/volume/manager.py b/cinder/volume/manager.py index 83f54c77ea1..07823a630ed 100644 --- a/cinder/volume/manager.py +++ b/cinder/volume/manager.py @@ -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