From: Ryotaro Banno Date: Fri, 12 Jan 2024 09:10:30 +0000 (+0000) Subject: mon: add created_at and ceph_version_when_created meta X-Git-Tag: v20.0.0~2401^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=315616783a652f2e3880d1a32088b1bc4ad2d509;p=ceph.git mon: add created_at and ceph_version_when_created meta Fixes: https://tracker.ceph.com/issues/57515 Signed-off-by: Ryotaro Banno --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 5543ff316fff..a0fe3fa038e6 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -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() diff --git a/src/mon/MonitorDBStore.h b/src/mon/MonitorDBStore.h index b7dfc50b0a17..a0718f439b64 100644 --- a/src/mon/MonitorDBStore.h +++ b/src/mon/MonitorDBStore.h @@ -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);