]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume lvm.api all lv tags should match, not just one
authorAlfredo Deza <adeza@redhat.com>
Thu, 7 Sep 2017 20:59:53 +0000 (16:59 -0400)
committerAlfredo Deza <adeza@redhat.com>
Mon, 11 Sep 2017 13:08:46 +0000 (09:08 -0400)
Signed-off-by: Alfredo Deza <adeza@redhat.com>
src/ceph-volume/ceph_volume/devices/lvm/api.py

index eb3e25a664154de098d74c98bdc45cacbf130b03..b68f4bc4dfd521061598d4d43b1ef6043039b0e2 100644 (file)
@@ -390,13 +390,11 @@ class Volumes(list):
         # actual filtered list if any filters were applied
         if lv_tags:
             tag_filtered = []
-            for k, v in lv_tags.items():
-                for volume in filtered:
-                    if volume.tags.get(k) == str(v):
-                        if volume not in tag_filtered:
-                            tag_filtered.append(volume)
-            # return the tag_filtered volumes here, the `filtered` list is no
-            # longer useable
+            for volume in filtered:
+                # all the tags we got need to match on the volume
+                matches = all(volume.tags.get(k) == str(v) for k, v in lv_tags.items())
+                if matches:
+                    tag_filtered.append(volume)
             return tag_filtered
 
         return filtered