]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add created_at and ceph_version_when_created meta 53858/head
authorRyotaro Banno <ryotaro.banno@gmail.com>
Fri, 12 Jan 2024 09:10:30 +0000 (09:10 +0000)
committerRyotaro Banno <ryotaro.banno@gmail.com>
Wed, 17 Jan 2024 09:09:58 +0000 (09:09 +0000)
Fixes: https://tracker.ceph.com/issues/57515
Signed-off-by: Ryotaro Banno <ryotaro.banno@gmail.com>
src/mon/Monitor.cc
src/mon/MonitorDBStore.h

index 5543ff316fff27de5bf5207d57b8d18013ee863f..a0fe3fa038e6047179e47e0ddcf814d768fc95e9 100644 (file)
@@ -2377,6 +2377,19 @@ void Monitor::collect_metadata(Metadata *m)
   for (auto& i : errs) {
     dout(1) << __func__ << " " << i.first << ": " << i.second << dendl;
   }
+
+  string ceph_version_when_created;
+  int r = store->read_meta("ceph_version_when_created", &ceph_version_when_created);
+  if (r < 0 || ceph_version_when_created.empty()) {
+    ceph_version_when_created = "";
+  }
+  (*m)["ceph_version_when_created"] = ceph_version_when_created;
+  string created_at;
+  r = store->read_meta("created_at", &created_at);
+  if (r < 0 || created_at.empty()) {
+    created_at = "";
+  }
+  (*m)["created_at"] = created_at;
 }
 
 void Monitor::finish_election()
index b7dfc50b0a171a6fb3ae4009abe66067773a7cac..a0718f439b642e9b9cfcdccedfd48cc88ba3be6f 100644 (file)
@@ -31,6 +31,7 @@
 #include "common/safe_io.h"
 #include "common/blkdev.h"
 #include "common/PriorityCache.h"
+#include "common/version.h"
 
 #define dout_context g_ceph_context
 
@@ -698,9 +699,20 @@ class MonitorDBStore
   }
 
   int create_and_open(std::ostream &out) {
+    int r = write_meta("ceph_version_when_created", pretty_version_to_str());
+    if (r < 0)
+      return r;
+
+    std::ostringstream created_at;
+    utime_t now = ceph_clock_now();
+    now.gmtime(created_at);
+    r = write_meta("created_at", created_at.str());
+    if (r < 0)
+      return r;
+
     // record the type before open
     std::string kv_type;
-    int r = read_meta("kv_backend", &kv_type);
+    r = read_meta("kv_backend", &kv_type);
     if (r < 0) {
       kv_type = g_conf()->mon_keyvaluedb;
       r = write_meta("kv_backend", kv_type);