]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/rgw: add test_multipart_object_sync
authorCasey Bodley <cbodley@redhat.com>
Wed, 11 Oct 2017 23:27:55 +0000 (19:27 -0400)
committerKarol Mroz <kmroz@suse.de>
Mon, 16 Oct 2017 22:34:52 +0000 (15:34 -0700)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit 1c14d4daf9201d58b1d0038bdd733a16275e037a)

src/test/rgw/rgw_multi/tests.py

index 0109a02138db9ae358ee7d874808328878206fec..61e531af92cc43caa0dcf71d3501f502cae4a594 100644 (file)
@@ -10,6 +10,7 @@ try:
 except ImportError:
     from itertools import zip_longest
 from itertools import combinations
+from cStringIO import StringIO
 
 import boto
 import boto.s3.connection
@@ -931,6 +932,27 @@ def test_bucket_sync_disable_enable():
     for bucket_name in buckets:
         zonegroup_bucket_checkpoint(zonegroup_conns, bucket_name)
 
+def test_multipart_object_sync():
+    zonegroup = realm.master_zonegroup()
+    zonegroup_conns = ZonegroupConns(zonegroup)
+    buckets, zone_bucket = create_bucket_per_zone(zonegroup_conns)
+
+    _, bucket = zone_bucket[0]
+
+    # initiate a multipart upload
+    upload = bucket.initiate_multipart_upload('MULTIPART')
+    mp = boto.s3.multipart.MultiPartUpload(bucket)
+    mp.key_name = upload.key_name
+    mp.id = upload.id
+    part_size = 5 * 1024 * 1024 # 5M min part size
+    mp.upload_part_from_file(StringIO('a' * part_size), 1)
+    mp.upload_part_from_file(StringIO('b' * part_size), 2)
+    mp.upload_part_from_file(StringIO('c' * part_size), 3)
+    mp.upload_part_from_file(StringIO('d' * part_size), 4)
+    mp.complete_upload()
+
+    zonegroup_bucket_checkpoint(zonegroup_conns, bucket.name)
+
 def test_encrypted_object_sync():
     zonegroup = realm.master_zonegroup()
     zonegroup_conns = ZonegroupConns(zonegroup)