From: Casey Bodley Date: Wed, 7 Jun 2017 16:56:20 +0000 (-0400) Subject: test/rgw: fixes for test_multi_period_incremental_sync() X-Git-Tag: v10.2.10~31^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=97ffe49defb213c26288744ed572fbb5b158583a;p=ceph.git test/rgw: fixes for test_multi_period_incremental_sync() test was only creating objects in subsequent periods, which wasn't adding any entries to the mdlog. this wasn't correctly testing incremental metadata sync across periods Signed-off-by: Casey Bodley (cherry picked from commit 2976fd36cded95f68766f8ba485d43f932e97db2) --- diff --git a/src/test/rgw/test_multi.py b/src/test/rgw/test_multi.py index 3de96ea5bd8..da5f08f5929 100644 --- a/src/test/rgw/test_multi.py +++ b/src/test/rgw/test_multi.py @@ -749,16 +749,17 @@ def test_multi_period_incremental_sync(): from nose.plugins.skip import SkipTest raise SkipTest("test_multi_period_incremental_sync skipped. Requires 3 or more clusters.") - buckets, zone_bucket = create_bucket_per_zone() + all_zones = realm.get_zones() - all_zones = [] - for z in zone_bucket: - all_zones.append(z) + # create a bucket in each zone + buckets = [] + for zone in all_zones: + conn = zone.get_connection(user) + bucket_name = gen_bucket_name() + log(1, 'create bucket zone=', zone.zone_name, ' name=', bucket_name) + bucket = conn.create_bucket(bucket_name) + buckets.append(bucket_name) - for zone, bucket_name in zone_bucket.iteritems(): - for objname in [ 'p1', '_p1' ]: - k = new_key(zone, bucket_name, objname) - k.set_contents_from_string('asdasd') realm.meta_checkpoint() # kill zone 3 gateway to freeze sync status to incremental in first period @@ -768,12 +769,15 @@ def test_multi_period_incremental_sync(): # change master to zone 2 -> period 2 realm.set_master_zone(realm.get_zone('us-2')) - for zone, bucket_name in zone_bucket.iteritems(): + # create another bucket in each zone, except for z3 + for zone in all_zones: if zone == z3: continue - for objname in [ 'p2', '_p2' ]: - k = new_key(zone, bucket_name, objname) - k.set_contents_from_string('qweqwe') + conn = zone.get_connection(user) + bucket_name = gen_bucket_name() + log(1, 'create bucket zone=', zone.zone_name, ' name=', bucket_name) + bucket = conn.create_bucket(bucket_name) + buckets.append(bucket_name) # wait for zone 1 to sync realm.zone_meta_checkpoint(realm.get_zone('us-1')) @@ -781,25 +785,22 @@ def test_multi_period_incremental_sync(): # change master back to zone 1 -> period 3 realm.set_master_zone(realm.get_zone('us-1')) - for zone, bucket_name in zone_bucket.iteritems(): + for zone in all_zones: if zone == z3: continue - for objname in [ 'p3', '_p3' ]: - k = new_key(zone, bucket_name, objname) - k.set_contents_from_string('zxczxc') + conn = zone.get_connection(user) + bucket_name = gen_bucket_name() + log(1, 'create bucket zone=', zone.zone_name, ' name=', bucket_name) + bucket = conn.create_bucket(bucket_name) + buckets.append(bucket_name) # restart zone 3 gateway and wait for sync z3.cluster.start_rgw() realm.meta_checkpoint() - # verify that we end up with the same objects - for source_zone, bucket in zone_bucket.iteritems(): - for target_zone in all_zones: - if source_zone.zone_name == target_zone.zone_name: - continue - - realm.zone_bucket_checkpoint(target_zone, source_zone, bucket.name) - + # verify that we end up with the same buckets + for bucket_name in buckets: + for source_zone, target_zone in itertools.combinations(all_zones, 2): check_bucket_eq(source_zone, target_zone, bucket) # TODO: test this in isolation, so it doesn't have side effects on other tests