]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add created_at and ceph_version_when_created meta 56681/head
authorRyotaro Banno <ryotaro.banno@gmail.com>
Fri, 12 Jan 2024 09:10:30 +0000 (09:10 +0000)
committerRyotaro Banno <ryotaro.banno@gmail.com>
Thu, 4 Apr 2024 02:34:11 +0000 (02:34 +0000)
Fixes: https://tracker.ceph.com/issues/57515
Signed-off-by: Ryotaro Banno <ryotaro.banno@gmail.com>
(cherry picked from commit 315616783a652f2e3880d1a32088b1bc4ad2d509)

src/mon/Monitor.cc
src/mon/MonitorDBStore.h

index 002a02fe00edbe347102415b285721ed30ad7a0e..1dd545f0a0d36fad2635bb6a0d5272b1cdfe6842 100644 (file)
@@ -2380,6 +2380,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 c33d35e486d4424d1bd3f057a1d0d4816aa59255..662ca26e3ff7cc3ccb9dee958d974e05b4608e4a 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
 
@@ -690,9 +691,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);