]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
src/test/rgw: Adding a test for check
authorKalpesh Pandya <kapandya@redhat.com>
Mon, 15 Apr 2024 03:23:54 +0000 (08:53 +0530)
committerAdam C. Emerson <aemerson@redhat.com>
Fri, 14 Mar 2025 18:43:27 +0000 (14:43 -0400)
Addition of a test to rgw_multi to check the
working of deleting an object with null version.

Signed-off-by: Kalpesh Pandya <kapandya@redhat.com>
(cherry picked from commit 7103b310d5a6f51737e20dd44f784f92a4383cf6)

Fixes: https://tracker.ceph.com/issues/67152
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
src/test/rgw/rgw_multi/tests.py

index fe3e012b4b509177b30a1c29be6138d2a85b5886..f3f3d33712048c02f5597bd467d0c4a5b0496532 100644 (file)
@@ -919,6 +919,38 @@ def test_versioned_object_incremental_sync():
     for _, bucket in zone_bucket:
         zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
 
+def test_null_version_id_delete():
+    zonegroup = realm.master_zonegroup()
+    zonegroup_conns = ZonegroupConns(zonegroup)
+
+    zone = zonegroup_conns.rw_zones[0]
+
+    # create a non-versioned bucket
+    bucket = zone.create_bucket(gen_bucket_name())
+    log.debug('created bucket=%s', bucket.name)
+    zonegroup_meta_checkpoint(zonegroup)
+    obj = 'obj'
+
+    # upload an initial object
+    key1 = new_key(zone, bucket, obj)
+    key1.set_contents_from_string('')
+    log.debug('created initial version id=%s', key1.version_id)
+    zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
+
+    # enable versioning
+    bucket.configure_versioning(True)
+    zonegroup_meta_checkpoint(zonegroup)
+
+    # re-upload the object as a new version
+    key2 = new_key(zone, bucket, obj)
+    key2.set_contents_from_string('')
+    log.debug('created new version id=%s', key2.version_id)
+    zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
+
+    bucket.delete_key(obj, version_id='null')
+
+    zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
+
 def test_concurrent_versioned_object_incremental_sync():
     zonegroup = realm.master_zonegroup()
     zonegroup_conns = ZonegroupConns(zonegroup)