From: songweibin Date: Mon, 29 Jul 2019 06:14:30 +0000 (+0800) Subject: rbd/action: display image id in rbd du/list json/xml formated output X-Git-Tag: v15.1.0~1827^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=a29ce747bb615ddf836988a36033f96bf1bd47ff;p=ceph-ci.git rbd/action: display image id in rbd du/list json/xml formated output Signed-off-by: songweibin --- diff --git a/src/tools/rbd/action/DiskUsage.cc b/src/tools/rbd/action/DiskUsage.cc index 649f39a7252..1506a892c77 100644 --- a/src/tools/rbd/action/DiskUsage.cc +++ b/src/tools/rbd/action/DiskUsage.cc @@ -31,7 +31,9 @@ static int disk_usage_callback(uint64_t offset, size_t len, int exists, } static int compute_image_disk_usage(const std::string& name, + const std::string& id, const std::string& snap_name, + uint64_t snap_id, const std::string& from_snap_name, librbd::Image &image, uint64_t size, bool exact, TextTable& tbl, Formatter *f, @@ -66,8 +68,10 @@ static int compute_image_disk_usage(const std::string& name, if (f) { f->open_object_section("image"); f->dump_string("name", name); + f->dump_string("id", id); if (!snap_name.empty()) { f->dump_string("snapshot", snap_name); + f->dump_unsigned("snapshot_id", snap_id); } f->dump_unsigned("provisioned_size", size); f->dump_unsigned("used_size" , *used_size); @@ -211,9 +215,9 @@ static int do_disk_usage(librbd::RBD &rbd, librados::IoCtx &io_ctx, if (imgname == nullptr || found_from_snap || (found_from_snap && snapname != nullptr && snap->name == snapname)) { - r = compute_image_disk_usage(image_spec.name, snap->name, - last_snap_name, snap_image, snap->size, - exact, tbl, f, &used_size); + r = compute_image_disk_usage(image_spec.name, image_spec.id, snap->name, + snap->id, last_snap_name, snap_image, + snap->size, exact, tbl, f, &used_size); if (r < 0) { goto out; } @@ -236,8 +240,9 @@ static int do_disk_usage(librbd::RBD &rbd, librados::IoCtx &io_ctx, } if (snapname == NULL) { - r = compute_image_disk_usage(image_spec.name, "", last_snap_name, image, - info.size, exact, tbl, f, &used_size); + r = compute_image_disk_usage(image_spec.name, image_spec.id, "", CEPH_NOSNAP, + last_snap_name, image, info.size, exact, tbl, + f, &used_size); if (r < 0) { goto out; } diff --git a/src/tools/rbd/action/List.cc b/src/tools/rbd/action/List.cc index e60254183ad..67d9e4f8414 100644 --- a/src/tools/rbd/action/List.cc +++ b/src/tools/rbd/action/List.cc @@ -34,6 +34,7 @@ struct WorkerEntry { librbd::RBD::AioCompletion* completion; WorkerState state; string name; + string id; WorkerEntry() { state = STATE_IDLE; @@ -86,6 +87,7 @@ int list_process_image(librados::Rados* rados, WorkerEntry* w, bool lflag, Forma if (f) { f->open_object_section("image"); f->dump_string("image", w->name); + f->dump_string("id", w->id); f->dump_unsigned("size", info.size); if (has_parent) { f->open_object_section("parent"); @@ -135,7 +137,9 @@ int list_process_image(librados::Rados* rados, WorkerEntry* w, bool lflag, Forma if (f) { f->open_object_section("snapshot"); f->dump_string("image", w->name); + f->dump_string("id", w->id); f->dump_string("snapshot", s->name); + f->dump_unsigned("snapshot_id", s->id); f->dump_unsigned("size", s->size); if (has_parent) { f->open_object_section("parent"); @@ -240,6 +244,7 @@ int do_list(const std::string &pool_name, const std::string& namespace_name, continue; } comp->name = i->name; + comp->id = i->id; comp->completion = new librbd::RBD::AioCompletion(nullptr, nullptr); r = rbd.aio_open_read_only(ioctx, comp->img, i->name.c_str(), nullptr, comp->completion);