]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: VolumeGroups.filter shouldn't purge itself
authorRishabh Dave <ridave@redhat.com>
Thu, 3 Oct 2019 12:09:37 +0000 (17:39 +0530)
committerRishabh Dave <ridave@redhat.com>
Thu, 3 Oct 2019 13:35:17 +0000 (19:05 +0530)
VolumeGroups.filter remove VGs from the list that do no match filter.
Instead of doing that, return a new list that contains VGs that match
the fiter so that VolumeGroups object held by code calling it is not
modified.

Fixes: https://tracker.ceph.com/issues/42171
Signed-off-by: Rishabh Dave <ridave@redhat.com>
src/ceph-volume/ceph_volume/api/lvm.py

index c3d0922018601b49f3a60c83ea94f17237cf3a7a..f243627b2d2c9389b718bdb2f561e7f8dad5cc34 100644 (file)
@@ -764,15 +764,10 @@ class VolumeGroups(list):
         """
         if not any([vg_name, vg_tags]):
             raise TypeError('.filter() requires vg_name or vg_tags (none given)')
-        # first find the filtered volumes with the values in self
-        filtered_groups = self._filter(
-            vg_name=vg_name,
-            vg_tags=vg_tags
-        )
-        # then purge everything
-        self._purge()
-        # and add the filtered items
-        self.extend(filtered_groups)
+
+        filtered_vgs = VolumeGroups(populate=False)
+        filtered_vgs.extend(self._filter(vg_name, vg_tags))
+        return filtered_vgs
 
     def get(self, vg_name=None, vg_tags=None):
         """