]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Switch Pure volume drivers to use Snapshot Objects
authorPatrick East <patrick.east@purestorage.com>
Tue, 11 Aug 2015 21:48:51 +0000 (14:48 -0700)
committerPatrick East <patrick.east@purestorage.com>
Thu, 13 Aug 2015 18:32:56 +0000 (11:32 -0700)
Some consistency group operations require looking up snapshot objects
and returning them. Now that we have Snapshot objects we should be using
those.

Change-Id: Ib4ff7fa3f7d768abb33e3b9436f7e64a3cd81f4c
Closes-Bug: #1458126

cinder/tests/unit/test_pure.py
cinder/volume/drivers/pure.py

index 68704fdc8f532fe8731fe7796543acc4a7052aef..9bfd469a478078c5ba8ae9a3cf4fe99e535cc42c 100644 (file)
@@ -826,17 +826,16 @@ class PureBaseVolumeDriverTestCase(PureDriverTestCase):
             remvollist=[]
         )
 
-    def test_create_cgsnapshot(self):
+    @mock.patch('cinder.objects.snapshot.SnapshotList.get_all_for_cgsnapshot')
+    def test_create_cgsnapshot(self, mock_snap_list):
         mock_cgsnap = mock.Mock()
         mock_cgsnap.id = "4a2f7e3a-312a-40c5-96a8-536b8a0fe074"
         mock_cgsnap.consistencygroup_id = \
             "4a2f7e3a-312a-40c5-96a8-536b8a0fe075"
         mock_context = mock.Mock()
-        self.driver.db = mock.Mock()
         mock_snap = mock.MagicMock()
         expected_snaps = [mock_snap]
-        self.driver.db.snapshot_get_all_for_cgsnapshot.return_value = \
-            expected_snaps
+        mock_snap_list.return_value = expected_snaps
 
         model_update, snapshots = \
             self.driver.create_cgsnapshot(mock_context, mock_cgsnap)
@@ -857,18 +856,17 @@ class PureBaseVolumeDriverTestCase(PureDriverTestCase):
 
     @mock.patch(BASE_DRIVER_OBJ + "._get_pgroup_snap_name",
                 spec=pure.PureBaseVolumeDriver._get_pgroup_snap_name)
-    def test_delete_cgsnapshot(self, mock_get_snap_name):
+    @mock.patch('cinder.objects.snapshot.SnapshotList.get_all_for_cgsnapshot')
+    def test_delete_cgsnapshot(self, mock_snap_list, mock_get_snap_name):
         snap_name = "consisgroup-4a2f7e3a-312a-40c5-96a8-536b8a0f" \
                     "e074-cinder.4a2f7e3a-312a-40c5-96a8-536b8a0fe075"
         mock_get_snap_name.return_value = snap_name
         mock_cgsnap = mock.Mock()
         mock_cgsnap.status = 'deleted'
         mock_context = mock.Mock()
-        mock_snap = mock.MagicMock()
+        mock_snap = mock.Mock()
         expected_snaps = [mock_snap]
-        self.driver.db = mock.Mock()
-        self.driver.db.snapshot_get_all_for_cgsnapshot.return_value = \
-            expected_snaps
+        mock_snap_list.return_value = expected_snaps
 
         model_update, snapshots = \
             self.driver.delete_cgsnapshot(mock_context, mock_cgsnap)
index 9227f0e06aafe97fae9475b30c2c061d86e47b2d..967b228c6885c566b0e8ecdbafb59cfd748aa06b 100644 (file)
@@ -30,6 +30,7 @@ from oslo_utils import units
 
 from cinder import exception
 from cinder.i18n import _, _LE, _LI, _LW
+from cinder import objects
 from cinder import utils
 from cinder.volume import driver
 from cinder.volume.drivers.san import san
@@ -406,7 +407,7 @@ class PureBaseVolumeDriver(san.SanDriver):
         pgsnap_suffix = self._get_pgroup_snap_suffix(cgsnapshot)
         self._array.create_pgroup_snapshot(pgroup_name, suffix=pgsnap_suffix)
 
-        snapshots = self.db.snapshot_get_all_for_cgsnapshot(
+        snapshots = objects.SnapshotList().get_all_for_cgsnapshot(
             context, cgsnapshot.id)
 
         for snapshot in snapshots:
@@ -437,7 +438,7 @@ class PureBaseVolumeDriver(san.SanDriver):
                     LOG.warning(_LW("Unable to delete Protection Group "
                                     "Snapshot: %s"), err.text)
 
-        snapshots = self.db.snapshot_get_all_for_cgsnapshot(
+        snapshots = objects.SnapshotList.get_all_for_cgsnapshot(
             context, cgsnapshot.id)
 
         for snapshot in snapshots: