]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/rgw: add multisite test case for DeleteObjects
authorCasey Bodley <cbodley@redhat.com>
Fri, 9 Feb 2024 17:49:10 +0000 (12:49 -0500)
committerCasey Bodley <cbodley@redhat.com>
Mon, 19 Feb 2024 18:12:50 +0000 (13:12 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 3e6e36c9cc5662f4816ee47f4db4e47d168fc2b4)

src/test/rgw/rgw_multi/tests.py

index 3f5ae0fea5d3d84cf9a483521be255837f35fc32..923bea58888604ff5add8d0cb9357d3c07361df6 100644 (file)
@@ -666,6 +666,39 @@ def test_object_delete():
             zone_bucket_checkpoint(target_conn.zone, source_conn.zone, bucket.name)
             check_bucket_eq(source_conn, target_conn, bucket)
 
+def test_multi_object_delete():
+    zonegroup = realm.master_zonegroup()
+    zonegroup_conns = ZonegroupConns(zonegroup)
+    buckets, zone_bucket = create_bucket_per_zone(zonegroup_conns)
+
+    objnames = [f'obj{i}' for i in range(1,50)]
+    content = 'asdasd'
+
+    # don't wait for meta sync just yet
+    for zone, bucket in zone_bucket:
+        create_objects(zone, bucket, objnames, content)
+
+    zonegroup_meta_checkpoint(zonegroup)
+
+    # check objects exist
+    for source_conn, bucket in zone_bucket:
+        for target_conn in zonegroup_conns.zones:
+            if source_conn.zone == target_conn.zone:
+                continue
+
+            zone_bucket_checkpoint(target_conn.zone, source_conn.zone, bucket.name)
+            check_bucket_eq(source_conn, target_conn, bucket)
+
+    # check object removal
+    for source_conn, bucket in zone_bucket:
+        bucket.delete_keys(objnames)
+        for target_conn in zonegroup_conns.zones:
+            if source_conn.zone == target_conn.zone:
+                continue
+
+            zone_bucket_checkpoint(target_conn.zone, source_conn.zone, bucket.name)
+            check_bucket_eq(source_conn, target_conn, bucket)
+
 def get_latest_object_version(key):
     for k in key.bucket.list_versions(key.name):
         if k.is_latest: