}
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,
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);
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;
}
}
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;
}
librbd::RBD::AioCompletion* completion;
WorkerState state;
string name;
+ string id;
WorkerEntry() {
state = STATE_IDLE;
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");
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");
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);