]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
tools/ceph-bluestore-tool: add support for proper setting size, btime,
authorIgor Fedotov <ifedotov@suse.com>
Thu, 24 May 2018 13:32:01 +0000 (16:32 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Tue, 20 Nov 2018 17:24:46 +0000 (20:24 +0300)
description, osd_uuid fields

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit ffac450da5d6e09cf14b8363b35f21819b48f38b)

src/os/bluestore/bluestore_tool.cc

index 1320df831b83f5682e4bc155452a220e41b5f41e..5840b00b9ffeefc7c188b10d8f483f5c32210580 100644 (file)
@@ -403,7 +403,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() << ": "