From aefadf272a9c8e6a30ad7822846e0a2bab908bc3 Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Thu, 24 May 2018 16:32:01 +0300 Subject: [PATCH] tools/ceph-bluestore-tool: add support for proper setting size, btime, description, osd_uuid fields Signed-off-by: Igor Fedotov (cherry picked from commit ffac450da5d6e09cf14b8363b35f21819b48f38b) --- src/os/bluestore/bluestore_tool.cc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/os/bluestore/bluestore_tool.cc b/src/os/bluestore/bluestore_tool.cc index bc733735977ff..fc21750542eca 100644 --- a/src/os/bluestore/bluestore_tool.cc +++ b/src/os/bluestore/bluestore_tool.cc @@ -421,7 +421,22 @@ int main(int argc, char **argv) << cpp_strerror(r) << std::endl; exit(EXIT_FAILURE); } - label.meta[key] = value; + if (key == "size") { + label.size = strtoull(value.c_str(), nullptr, 10); + } else if (key =="osd_uuid") { + label.osd_uuid.parse(value.c_str()); + } else if (key =="btime") { + uint64_t epoch; + uint64_t nsec; + int r = utime_t::parse_date(value.c_str(), &epoch, &nsec); + if (r == 0) { + label.btime = utime_t(epoch, nsec); + } + } else if (key =="description") { + label.description = value; + } else { + label.meta[key] = value; + } r = BlueStore::_write_bdev_label(cct.get(), devs.front(), label); if (r < 0) { cerr << "unable to write label for " << devs.front() << ": " -- 2.39.5