]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/multisite: add object set acl test 58545/head
authorShilpa Jagannath <smanjara@redhat.com>
Wed, 27 Mar 2024 06:14:44 +0000 (02:14 -0400)
committerShilpa Jagannath <smanjara@redhat.com>
Thu, 11 Jul 2024 20:32:36 +0000 (16:32 -0400)
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
(cherry picked from commit d18b722557af8fc082d578547fa7be07a8ffc49e)

src/test/rgw/rgw_multi/tests.py

index f0b36865ed1c5afbd7c22bcb1c70fce85d04b0e2..78c8d722b2ff7210848754fbeba01e177d5f1369 100644 (file)
@@ -1921,6 +1921,36 @@ def test_role_delete_sync():
                       zone.iam_conn.get_role, RoleName=role_name)
         log.info(f'success, zone: {zone.name} does not have role: {role_name}')
 
+def test_object_acl():
+    zonegroup = realm.master_zonegroup()
+    zonegroup_conns = ZonegroupConns(zonegroup)
+    primary = zonegroup_conns.rw_zones[0]
+    secondary = zonegroup_conns.rw_zones[1]
+
+    bucket = primary.create_bucket(gen_bucket_name())
+    log.debug('created bucket=%s', bucket.name)
+
+    # upload a dummy object and wait for sync.
+    k = new_key(primary, bucket, 'dummy')
+    k.set_contents_from_string('foo')
+    zonegroup_meta_checkpoint(zonegroup)
+    zonegroup_data_checkpoint(zonegroup_conns)
+
+    #check object on secondary before setacl
+    bucket2 = get_bucket(secondary, bucket.name)
+    before_set_acl = bucket2.get_acl(k)
+    assert(len(before_set_acl.acl.grants) == 1)
+
+    #set object acl on primary and wait for sync.
+    bucket.set_canned_acl('public-read', key_name=k)
+    log.debug('set acl=%s', bucket.name)
+    zonegroup_data_checkpoint(zonegroup_conns)
+    zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
+
+    #check object secondary after setacl
+    bucket2 = get_bucket(secondary, bucket.name)
+    after_set_acl = bucket2.get_acl(k)
+    assert(len(after_set_acl.acl.grants) == 2) # read grant added on AllUsers
 
 @attr('data_sync_init')
 def test_bucket_full_sync_after_data_sync_init():