@@ -1921,6 +1921,36 @@ def test_role_delete_sync():
19211921 zone .iam_conn .get_role , RoleName = role_name )
19221922 log .info (f'success, zone: { zone .name } does not have role: { role_name } ' )
19231923
1924+ def test_object_acl ():
1925+ zonegroup = realm .master_zonegroup ()
1926+ zonegroup_conns = ZonegroupConns (zonegroup )
1927+ primary = zonegroup_conns .rw_zones [0 ]
1928+ secondary = zonegroup_conns .rw_zones [1 ]
1929+
1930+ bucket = primary .create_bucket (gen_bucket_name ())
1931+ log .debug ('created bucket=%s' , bucket .name )
1932+
1933+ # upload a dummy object and wait for sync.
1934+ k = new_key (primary , bucket , 'dummy' )
1935+ k .set_contents_from_string ('foo' )
1936+ zonegroup_meta_checkpoint (zonegroup )
1937+ zonegroup_data_checkpoint (zonegroup_conns )
1938+
1939+ #check object on secondary before setacl
1940+ bucket2 = get_bucket (secondary , bucket .name )
1941+ before_set_acl = bucket2 .get_acl (k )
1942+ assert (len (before_set_acl .acl .grants ) == 1 )
1943+
1944+ #set object acl on primary and wait for sync.
1945+ bucket .set_canned_acl ('public-read' , key_name = k )
1946+ log .debug ('set acl=%s' , bucket .name )
1947+ zonegroup_data_checkpoint (zonegroup_conns )
1948+ zonegroup_bucket_checkpoint (zonegroup_conns , bucket .name )
1949+
1950+ #check object secondary after setacl
1951+ bucket2 = get_bucket (secondary , bucket .name )
1952+ after_set_acl = bucket2 .get_acl (k )
1953+ assert (len (after_set_acl .acl .grants ) == 2 ) # read grant added on AllUsers
19241954
19251955@attr ('data_sync_init' )
19261956def test_bucket_full_sync_after_data_sync_init ():
0 commit comments