Skip to content

Commit 204101c

Browse files
author
Shilpa Jagannath
committed
qa/multisite: add copy_object tests
Signed-off-by: Shilpa Jagannath <[email protected]>
1 parent 46eef5f commit 204101c

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

src/test/rgw/rgw_multi/tests.py

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3565,3 +3565,73 @@ def test_account_metadata_sync():
35653565
check_users_eq(source_conn, target_conn)
35663566
check_groups_eq(source_conn, target_conn)
35673567
check_oidc_providers_eq(source_conn, target_conn)
3568+
3569+
3570+
@attr('copy_object')
3571+
def test_copy_object_same_bucket():
3572+
zonegroup = realm.master_zonegroup()
3573+
zonegroup_conns = ZonegroupConns(zonegroup)
3574+
primary = zonegroup_conns.rw_zones[0]
3575+
secondary = zonegroup_conns.rw_zones[1]
3576+
3577+
bucket = primary.create_bucket(gen_bucket_name())
3578+
log.debug('created bucket=%s', bucket.name)
3579+
3580+
objname = 'dummy'
3581+
3582+
# upload a dummy object and wait for sync.
3583+
k = new_key(primary, bucket, objname)
3584+
k.set_contents_from_string('foo')
3585+
zonegroup_meta_checkpoint(zonegroup)
3586+
3587+
zonegroup_data_checkpoint(zonegroup_conns)
3588+
log.debug('created object=%s', objname)
3589+
3590+
zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
3591+
3592+
# copy object on primary zone
3593+
primary.s3_client.copy_object(Bucket=bucket.name,
3594+
CopySource=bucket.name + '/'+ objname,
3595+
Key= objname + '-copy1')
3596+
3597+
zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
3598+
3599+
# copy object on secondary zone
3600+
secondary.s3_client.copy_object(Bucket=bucket.name,
3601+
Key= objname + '-copy2',
3602+
CopySource=bucket.name + '/'+ objname)
3603+
3604+
zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
3605+
3606+
@attr('copy_object')
3607+
def test_copy_object_different_bucket():
3608+
zonegroup = realm.master_zonegroup()
3609+
zonegroup_conns = ZonegroupConns(zonegroup)
3610+
primary = zonegroup_conns.rw_zones[0]
3611+
secondary = zonegroup_conns.rw_zones[1]
3612+
3613+
source_bucket = primary.create_bucket(gen_bucket_name())
3614+
log.debug('created bucket=%s', source_bucket.name)
3615+
3616+
objname = 'dummy'
3617+
3618+
# upload a dummy object and wait for sync.
3619+
k = new_key(primary, source_bucket, objname)
3620+
k.set_contents_from_string('foo')
3621+
zonegroup_meta_checkpoint(zonegroup)
3622+
3623+
zonegroup_bucket_checkpoint(zonegroup_conns, source_bucket.name)
3624+
3625+
# create destination bucket
3626+
dest_bucket = primary.create_bucket(gen_bucket_name())
3627+
log.debug('created bucket=%s', dest_bucket.name)
3628+
3629+
zonegroup_meta_checkpoint(zonegroup)
3630+
3631+
# copy object on primary zone
3632+
primary.s3_client.copy_object(Bucket = dest_bucket.name,
3633+
Key = objname + '-copy',
3634+
CopySource = source_bucket.name + '/' + objname)
3635+
3636+
zonegroup_bucket_checkpoint(zonegroup_conns, dest_bucket.name)
3637+

0 commit comments

Comments
 (0)