]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: calculate etag for SLOs of Swift API.
authorRadoslaw Zarzynski <rzarzynski@mirantis.com>
Wed, 24 Feb 2016 12:39:09 +0000 (13:39 +0100)
committerRadoslaw Zarzynski <rzarzynski@mirantis.com>
Mon, 29 Feb 2016 11:16:42 +0000 (12:16 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
src/rgw/rgw_op.cc

index f9b05bd39e57c09dbe1c9b83f6cac71a73b847e0..8b543dc5e50bfd5e1a86ce7977c1d6092b85f16d 100644 (file)
@@ -971,6 +971,7 @@ int RGWGetObj::handle_slo_manifest(bufferlist& bl)
 
   map<uint64_t, rgw_slo_part> slo_parts;
 
+  MD5 etag_sum;
   total_len = 0;
 
   for (vector<rgw_slo_entry>::iterator iter = slo_info.entries.begin(); iter != slo_info.entries.end(); ++iter) {
@@ -1033,10 +1034,15 @@ int RGWGetObj::handle_slo_manifest(bufferlist& bl)
                       << " etag=" << part.etag
                       << dendl;
 
+    etag_sum.Update((const byte *)iter->etag.c_str(),
+                    iter->etag.length());
+
     slo_parts[total_len] = part;
     total_len += part.size;
   }
 
+  complete_etag(etag_sum, &lo_etag);
+
   s->obj_size = slo_info.total_size;
   ldout(s->cct, 20) << "s->obj_size=" << s->obj_size << dendl;