From 1dda62b42e691abc208b835757f63630d35935bd Mon Sep 17 00:00:00 2001 From: Shilpa Jagannath Date: Mon, 10 Feb 2025 19:14:40 +0000 Subject: [PATCH] qa/multisite: add a create_bucket test with tenanted user Signed-off-by: Shilpa Jagannath (cherry picked from commit d9b0e780013a73f865c1a1bc1296e034353c4bfa) Fixes: https://tracker.ceph.com/issues/70269 Signed-off-by: Adam C. Emerson --- qa/suites/rgw/multisite/tasks/test_multi.yaml | 1 - src/test/rgw/rgw_multi/tests.py | 44 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/qa/suites/rgw/multisite/tasks/test_multi.yaml b/qa/suites/rgw/multisite/tasks/test_multi.yaml index a72ac028a4a..422535db609 100644 --- a/qa/suites/rgw/multisite/tasks/test_multi.yaml +++ b/qa/suites/rgw/multisite/tasks/test_multi.yaml @@ -15,4 +15,3 @@ tasks: - rgw-multisite-tests: config: reconfigure_delay: 90 - tenant: testx diff --git a/src/test/rgw/rgw_multi/tests.py b/src/test/rgw/rgw_multi/tests.py index fe3e012b4b5..f04a4a1392d 100644 --- a/src/test/rgw/rgw_multi/tests.py +++ b/src/test/rgw/rgw_multi/tests.py @@ -584,6 +584,50 @@ def test_bucket_create(): for zone in zonegroup_conns.zones: assert check_all_buckets_exist(zone, buckets) +def test_bucket_create_with_tenant(): + + ''' create a bucket from secondary zone under tenant namespace. check if it successfully syncs + under the same namespace''' + + zonegroup = realm.master_zonegroup() + zonegroup_conns = ZonegroupConns(zonegroup) + primary = zonegroup_conns.rw_zones[0] + secondary = zonegroup_conns.rw_zones[1] + + access_key = 'abcd' + secret_key = 'efgh' + tenant = 'testx' + uid = 'test' + + tenant_secondary_conn = boto.s3.connection.S3Connection(aws_access_key_id=access_key, + aws_secret_access_key=secret_key, + is_secure=False, + port=secondary.zone.gateways[0].port, + host=secondary.zone.gateways[0].host, + calling_format='boto.s3.connection.OrdinaryCallingFormat') + + tenant_primary_conn = boto.s3.connection.S3Connection(aws_access_key_id=access_key, + aws_secret_access_key=secret_key, + is_secure=False, + port=primary.zone.gateways[0].port, + host=primary.zone.gateways[0].host, + calling_format='boto.s3.connection.OrdinaryCallingFormat') + + cmd = ['user', 'create', '--tenant', tenant, '--uid', uid, '--access-key', access_key, '--secret-key', secret_key, '--display-name', 'tenanted-user'] + primary.zone.cluster.admin(cmd) + zonegroup_meta_checkpoint(zonegroup) + try: + bucket = tenant_secondary_conn.create_bucket('tenanted-bucket') + zonegroup_meta_checkpoint(zonegroup) + assert tenant_primary_conn.get_bucket(bucket.name) + log.info("bucket exists in tenant namespace") + e = assert_raises(boto.exception.S3ResponseError, primary.get_bucket, bucket.name) + assert e.error_code == 'NoSuchBucket' + log.info("bucket does not exist in default user namespace") + finally: + cmd = ['user', 'rm', '--tenant', tenant, '--uid', uid, '--purge-data'] + primary.zone.cluster.admin(cmd) + def test_bucket_recreate(): zonegroup = realm.master_zonegroup() zonegroup_conns = ZonegroupConns(zonegroup) -- 2.39.5