]> git.apps.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>
Thu, 24 May 2018 13:32:01 +0000 (16:32 +0300)
description, osd_uuid fields

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
src/os/bluestore/bluestore_tool.cc

index bc733735977fff8853d95423e9adb7e70bbd4f56..fc21750542ecaccdbf657531c063c99526eb6753 100644 (file)
@@ -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() << ": "