]> 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)
committerJan Fajerski <jfajerski@suse.com>
Wed, 9 Oct 2019 11:51:17 +0000 (13:51 +0200)
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>
(cherry picked from commit 028757813282f764ebcce05572f9e4b76ea4e552)

src/ceph-volume/ceph_volume/api/lvm.py

index 016fa4cb565ec05698d2c455cd0dba1cd053a878..255436037800c65151700dca025d47a17ac46035 100644 (file)
@@ -762,15 +762,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):
         """