]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa/multisite: test trimming bilog on all zonegroups
authorShilpa Jagannath <smanjara@redhat.com>
Sat, 7 Dec 2024 00:38:20 +0000 (19:38 -0500)
committerShilpa Jagannath <smanjara@redhat.com>
Fri, 4 Apr 2025 17:16:54 +0000 (13:16 -0400)
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
src/test/rgw/rgw_multi/tests.py

index afe73ac37f672d5a7ac8b7335b07425e4ae2ce00..2e09f9a5e7bd25b8f9496f10829820313e53bd2f 100644 (file)
@@ -111,7 +111,8 @@ def bilog_list(zone, bucket, args = None):
     return json.loads(bilog)
 
 def bilog_autotrim(zone, args = None):
-    zone.cluster.admin(['bilog', 'autotrim'] + (args or []))
+    cmd = ['bilog', 'autotrim'] + zone.zone_args()
+    zone.cluster.admin(cmd, read_only=True)
 
 def bucket_layout(zone, bucket, args = None):
     (bl_output,_) = zone.cluster.admin(['bucket', 'layout', '--bucket', bucket] + (args or []))
@@ -1770,12 +1771,13 @@ def test_bucket_reshard_index_log_trim():
     test_bilog = bilog_list(zone.zone, test_bucket.name)
     assert(len(test_bilog) > 0)
 
-def test_bucket_log_trim_after_delete_bucket():
+@attr('bucket_trim')
+def test_bucket_log_trim_after_delete_bucket_primary_reshard():
+
     zonegroup = realm.master_zonegroup()
     zonegroup_conns = ZonegroupConns(zonegroup)
 
     primary = zonegroup_conns.rw_zones[0]
-    secondary = zonegroup_conns.rw_zones[1]
 
     # create a test bucket, upload some objects, and wait for sync
     def make_test_bucket():
@@ -1793,10 +1795,9 @@ def test_bucket_log_trim_after_delete_bucket():
     test_bucket = make_test_bucket()
 
     # Resharding the bucket
-    secondary.zone.cluster.admin(['bucket', 'reshard',
+    primary.zone.cluster.admin(['bucket', 'reshard',
         '--bucket', test_bucket.name,
-        '--num-shards', '13',
-        '--yes-i-really-mean-it'])
+        '--num-shards', '13'])
 
     # Delete the objects
     for obj in ('a', 'b', 'c', 'd'):
@@ -1805,28 +1806,34 @@ def test_bucket_log_trim_after_delete_bucket():
         cmd += ['--object', obj]
         primary.zone.cluster.admin(cmd)
 
-
     # delete bucket and test bilog autotrim
     primary.conn.delete_bucket(test_bucket.name)
-
     zonegroup_data_checkpoint(zonegroup_conns)
-    zonegroup_meta_checkpoint(zonegroup)
 
-    # run bilog trim twice to clean up previous gen
-    bilog_autotrim(secondary.zone)
+    bilog_autotrim(primary.zone)
     time.sleep(config.checkpoint_delay)
 
-    # trim bilog on primary
     bilog_autotrim(primary.zone)
-    time.sleep(config.checkpoint_delay)
+
+    for zonegroup in realm.current_period.zonegroups:
+        zonegroup_conns = ZonegroupConns(zonegroup)
+        zonegroup_meta_checkpoint(zonegroup)
+
+        for zone in zonegroup_conns.zones:
+            log.info('trimming on zone=%s', zone.name)
+            bilog_autotrim(zone.zone)
+            time.sleep(config.checkpoint_delay)
+
+    # run bilog trim twice on primary zone where the bucket was resharded
+    bilog_autotrim(primary.zone)
     
-    bilog_autotrim(secondary.zone)
+    for zonegroup in realm.current_period.zonegroups:
+        for zone in zonegroup_conns.zones:
+            assert check_bucket_instance_metadata(zone.zone, test_bucket.name)
 
-    # verify the bucket instance has been removed on both zones
-    assert check_bucket_instance_metadata(secondary.zone, test_bucket.name)
-    assert check_bucket_instance_metadata(primary.zone, test_bucket.name)
+@attr('bucket_trim')
+def test_bucket_log_trim_after_delete_bucket_secondary_reshard():
 
-def test_bucket_log_trim_after_delete_bucket_primary_reshard():
     zonegroup = realm.master_zonegroup()
     zonegroup_conns = ZonegroupConns(zonegroup)
 
@@ -1848,10 +1855,11 @@ def test_bucket_log_trim_after_delete_bucket_primary_reshard():
     # create a 'test' bucket
     test_bucket = make_test_bucket()
 
-    # Resharding the bucket
-    primary.zone.cluster.admin(['bucket', 'reshard',
+    # Resharding the bucket on secondary
+    secondary.zone.cluster.admin(['bucket', 'reshard',
         '--bucket', test_bucket.name,
-        '--num-shards', '13'])
+        '--num-shards', '13',
+        '--yes-i-really-mean-it'])
 
     # Delete the objects
     for obj in ('a', 'b', 'c', 'd'):
@@ -1862,24 +1870,29 @@ def test_bucket_log_trim_after_delete_bucket_primary_reshard():
 
     # delete bucket and test bilog autotrim
     primary.conn.delete_bucket(test_bucket.name)
-
     zonegroup_data_checkpoint(zonegroup_conns)
-    zonegroup_meta_checkpoint(zonegroup)
 
-    # run bilog trim twice to clean up previous gen
-    bilog_autotrim(primary.zone)
+    bilog_autotrim(secondary.zone)
     time.sleep(config.checkpoint_delay)
-    
-    bilog_autotrim(primary.zone)
 
-    # trim bilog on secondary
+    bilog_autotrim(secondary.zone)
+
+    for zonegroup in realm.current_period.zonegroups:
+        zonegroup_conns = ZonegroupConns(zonegroup)
+        zonegroup_meta_checkpoint(zonegroup)
+
+        for zone in zonegroup_conns.zones:
+            log.info('trimming on zone=%s', zone.name)
+            bilog_autotrim(zone.zone)
+            time.sleep(config.checkpoint_delay)
+
+    # run bilog trim twice on primary zone where the bucket was resharded
     bilog_autotrim(secondary.zone)
     time.sleep(config.checkpoint_delay)
 
-    bilog_autotrim(primary.zone)
-    # verify the bucket instance has been removed on both zones
-    assert check_bucket_instance_metadata(primary.zone, test_bucket.name)
-    assert check_bucket_instance_metadata(secondary.zone, test_bucket.name)
+    for zonegroup in realm.current_period.zonegroups:
+        for zone in zonegroup_conns.zones:
+            assert check_bucket_instance_metadata(zone.zone, test_bucket.name)
 
 
 @attr('bucket_reshard')