]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: use higher precision time when encoding / decoding external apis
authorYehuda Sadeh <yehuda@redhat.com>
Tue, 15 Mar 2016 20:31:31 +0000 (13:31 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Tue, 15 Mar 2016 20:31:31 +0000 (13:31 -0700)
When dealing with external entities (e.g., remote rgw), use higher precision time
format for object mtime.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/cls/rgw/cls_rgw_types.cc
src/rgw/rgw_data_sync.cc
src/rgw/rgw_metadata.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rest_conn.cc
src/rgw/rgw_rest_s3.cc

index 30c43e037f7e2e206cdc7b9b0b425531ed61bd71..79a52722d669bdd5cab1741784c121e2113112a3 100644 (file)
@@ -407,7 +407,7 @@ void rgw_bi_log_entry::dump(Formatter *f) const
 
   f->dump_int("index_ver", index_ver);
   utime_t ut(timestamp);
-  ut.gmtime(f->dump_stream("timestamp"));
+  ut.gmtime_nsec(f->dump_stream("timestamp"));
   f->open_object_section("ver");
   ver.dump(f);
   f->close_section();
index ce4484c9c8281fc76550ebe3c6f944768e8ccded..79f4721bcf53705013428522d078264379340f4f 100644 (file)
@@ -1673,7 +1673,7 @@ struct bucket_list_entry {
     JSONDecoder::decode_json("VersionId", key.instance, obj);
     JSONDecoder::decode_json("IsLatest", is_latest, obj);
     string mtime_str;
-    JSONDecoder::decode_json("LastModified", mtime_str, obj);
+    JSONDecoder::decode_json("RgwxMtime", mtime_str, obj);
 
     struct tm t;
     uint32_t nsec;
index dce26ae521958627c4b6fcb56a195a1265fbc1e7..3160ce0b19896c6312902fa6df955bdfe47bd44c 100644 (file)
@@ -739,7 +739,7 @@ void RGWMetadataManager::dump_log_entry(cls_log_entry& entry, Formatter *f)
   f->dump_string("id", entry.id);
   f->dump_string("section", entry.section);
   f->dump_string("name", entry.name);
-  entry.timestamp.gmtime(f->dump_stream("timestamp"));
+  entry.timestamp.gmtime_nsec(f->dump_stream("timestamp"));
 
   try {
     RGWMetadataLogData log_data;
index bc0495e4e856ae7b5a65f82886c05cee9d714ac2..7e4c3749fd044f3d442bd48965f0325671c0ec34 100644 (file)
@@ -11759,7 +11759,7 @@ void RGWStateLog::dump_entry(const cls_statelog_entry& entry, Formatter *f)
   f->dump_string("client_id", entry.client_id);
   f->dump_string("op_id", entry.op_id);
   f->dump_string("object", entry.object);
-  entry.timestamp.gmtime(f->dump_stream("timestamp"));
+  entry.timestamp.gmtime_nsec(f->dump_stream("timestamp"));
   if (!dump_entry_internal(entry, f)) {
     f->dump_int("state", entry.state);
   }
index 2a8995b6993573b44c67c211f32c7c57594e40fa..f45e94a729df33db4e2a2cb6205972c700675eb7 100644 (file)
@@ -102,7 +102,7 @@ static void set_date_header(const real_time *t, map<string, string>& headers, co
   }
   stringstream s;
   utime_t tm = utime_t(*t);
-  tm.gmtime(s);
+  tm.gmtime_nsec(s);
   headers[header_name] = s.str();
 }
 
index 4afd90ae20665944e371b7ae66a44436b923de50..2ab3514b28ef4e4edb5c404dc9e68c29dc2fdaa5 100644 (file)
@@ -511,6 +511,8 @@ void RGWListBucket_ObjStore_S3::send_versioned_response()
           s->formatter->dump_int("VersionedEpoch", iter->versioned_epoch);
         }
         s->formatter->dump_string("RgwxTag", iter->tag);
+        utime_t ut(iter->mtime);
+        ut.gmtime_nsec(s->formatter->dump_stream("RgwxMtime"));
       }
       s->formatter->dump_string("VersionId", version_id);
       s->formatter->dump_bool("IsLatest", iter->is_current());