{
"block_name_prefix": "rb.0.*", (glob)
"format": 1,
+ "id": "",
"name": "foo",
"object_size": 4194304,
"objects": 256,
$ rbd info foo --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>foo</name>
+ <id></id>
<size>1073741824</size>
<objects>256</objects>
<order>22</order>
{
"block_name_prefix": "rb.0.*", (glob)
"format": 1,
+ "id": "",
"name": "foo",
"object_size": 4194304,
"objects": 256,
$ rbd info foo@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>foo</name>
+ <id></id>
<size>1073741824</size>
<objects>256</objects>
<order>22</order>
rbd image 'bar':
\tsize 1024 MB in 256 objects (esc)
\torder 22 (4096 kB objects) (esc)
+ \tid:* (glob)
[^^]+ (re)
\tformat: 2 (esc)
\tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
],
"flags": [],
"format": 2,
+ "id": "*", (glob)
"name": "bar",
"object_size": 4194304,
"objects": 256,
$ rbd info bar --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>bar</name>
+ <id>*</id> (glob)
<size>1073741824</size>
<objects>256</objects>
<order>22</order>
rbd image 'bar':
\tsize 512 MB in 128 objects (esc)
\torder 22 (4096 kB objects) (esc)
+ \tid:* (glob)
[^^]+ (re)
\tformat: 2 (esc)
\tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
],
"flags": [],
"format": 2,
+ "id": "*", (glob)
"name": "bar",
"object_size": 4194304,
"objects": 128,
$ rbd info bar@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>bar</name>
+ <id>*</id> (glob)
<size>536870912</size>
<objects>128</objects>
<order>22</order>
rbd image 'bar':
\tsize 1024 MB in 256 objects (esc)
\torder 22 (4096 kB objects) (esc)
+ \tid:* (glob)
[^^]+ (re)
\tformat: 2 (esc)
\tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
],
"flags": [],
"format": 2,
+ "id": "*", (glob)
"name": "bar",
"object_size": 4194304,
"objects": 256,
$ rbd info bar@snap2 --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>bar</name>
+ <id>*</id> (glob)
<size>1073741824</size>
<objects>256</objects>
<order>22</order>
rbd image 'baz':
\tsize 2048 MB in 512 objects (esc)
\torder 22 (4096 kB objects) (esc)
+ \tid:* (glob)
[^^]+ (re)
\tformat: 2 (esc)
\tfeatures: layering (esc)
],
"flags": [],
"format": 2,
+ "id": "*", (glob)
"name": "baz",
"object_size": 4194304,
"objects": 512,
$ rbd info baz --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>baz</name>
+ <id>*</id> (glob)
<size>2147483648</size>
<objects>512</objects>
<order>22</order>
{
"block_name_prefix": "rb.0.*", (glob)
"format": 1,
+ "id": "",
"name": "quux",
"object_size": 4194304,
"objects": 1,
$ rbd info quux --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>quux</name>
+ <id></id>
<size>1048576</size>
<objects>1</objects>
<order>22</order>
rbd image 'child':
\tsize 512 MB in 128 objects (esc)
\torder 22 (4096 kB objects) (esc)
+ \tid:* (glob)
[^^]+ (re)
\tformat: 2 (esc)
\tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
],
"flags": [],
"format": 2,
+ "id": "*", (glob)
"name": "child",
"object_size": 4194304,
"objects": 128,
$ rbd info rbd_other/child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>child</name>
+ <id>*</id> (glob)
<size>536870912</size>
<objects>128</objects>
<order>22</order>
rbd image 'child':
\tsize 512 MB in 128 objects (esc)
\torder 22 (4096 kB objects) (esc)
+ \tid:* (glob)
[^^]+ (re)
\tformat: 2 (esc)
\tfeatures: layering, exclusive-lock, object-map, fast-diff (esc)
],
"flags": [],
"format": 2,
+ "id": "*", (glob)
"name": "child",
"object_size": 4194304,
"objects": 128,
$ rbd info rbd_other/child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>child</name>
+ <id>*</id> (glob)
<size>536870912</size>
<objects>128</objects>
<order>22</order>
rbd image 'deep-flatten-child':
\tsize 512 MB in 128 objects (esc)
\torder 22 (4096 kB objects) (esc)
+ \tid:* (glob)
[^^]+ (re)
\tformat: 2 (esc)
\tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
],
"flags": [],
"format": 2,
+ "id": "*", (glob)
"name": "deep-flatten-child",
"object_size": 4194304,
"objects": 128,
$ rbd info rbd_other/deep-flatten-child --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>deep-flatten-child</name>
+ <id>*</id> (glob)
<size>536870912</size>
<objects>128</objects>
<order>22</order>
rbd image 'deep-flatten-child':
\tsize 512 MB in 128 objects (esc)
\torder 22 (4096 kB objects) (esc)
+ \tid:* (glob)
[^^]+ (re)
\tformat: 2 (esc)
\tfeatures: layering, exclusive-lock, object-map, fast-diff, deep-flatten (esc)
],
"flags": [],
"format": 2,
+ "id": "*", (glob)
"name": "deep-flatten-child",
"object_size": 4194304,
"objects": 128,
$ rbd info rbd_other/deep-flatten-child@snap --format xml | xml_pp 2>&1 | grep -v '^new version at /usr/bin/xml_pp'
<image>
<name>deep-flatten-child</name>
+ <id>*</id> (glob)
<size>536870912</size>
<objects>128</objects>
<order>22</order>
}
static int do_show_info(librados::IoCtx &io_ctx, librbd::Image& image,
- const std::string &imgname, const std::string &imgid,
const std::string &snapname, Formatter *f)
{
librbd::image_info_t info;
librbd::mirror_image_info_t mirror_image;
int r;
+ std::string imgname;
+ r = image.get_name(&imgname);
+ if (r < 0)
+ return r;
+
r = image.stat(info, sizeof(info));
if (r < 0)
return r;
if (r < 0)
return r;
+ std::string imgid;
+ if (!old_format) {
+ r = image.get_id(&imgid);
+ if (r < 0)
+ return r;
+ }
+
std::string data_pool;
if (!old_format) {
int64_t data_pool_id = image.get_data_pool_id();
if (f) {
f->open_object_section("image");
- if (!imgname.empty()) {
- f->dump_string("name", imgname);
- } else {
- f->dump_string("id", imgid);
- }
+ f->dump_string("name", imgname);
+ f->dump_string("id", imgid);
f->dump_unsigned("size", info.size);
f->dump_unsigned("objects", info.num_objs);
f->dump_int("order", info.order);
f->dump_string("block_name_prefix", prefix);
f->dump_int("format", (old_format ? 1 : 2));
} else {
- std::cout << "rbd image '" << (imgname.empty() ? imgid : imgname) << "':\n"
+ std::cout << "rbd image '" << imgname << "':\n"
<< "\tsize " << prettybyte_t(info.size) << " in "
<< info.num_objs << " objects"
<< std::endl
<< "\torder " << info.order
<< " (" << prettybyte_t(info.obj_size) << " objects)"
<< std::endl;
+ if (!imgid.empty()) {
+ std::cout << "\tid: " << imgid << std::endl;
+ }
if (!data_pool.empty()) {
std::cout << "\tdata_pool: " << data_pool << std::endl;
}
return r;
}
- r = do_show_info(io_ctx, image, image_name, image_id, snap_name,
- formatter.get());
+ r = do_show_info(io_ctx, image, snap_name, formatter.get());
if (r < 0) {
std::cerr << "rbd: info: " << cpp_strerror(r) << std::endl;
return r;