{
std::vector<string> names;
int r = rbd.list(io_ctx, names);
- if (r < 0 || (names.size() == 0))
+ if (r < 0)
return r;
if (!lflag) {
if (f) {
f->close_section();
f->flush(cout);
- } else {
+ } else if (names.size()) {
cout << tbl;
}
int r;
r = image.snap_list(snaps);
- if (r < 0 || snaps.empty())
+ if (r < 0)
return r;
if (f) {
if (f) {
f->close_section();
f->flush(cout);
- } else {
+ } else if (snaps.size()) {
cout << t;
}
if (r < 0)
return r;
+ if (f) {
+ f->open_object_section("locks");
+ } else {
+ tbl.define_column("Locker", TextTable::LEFT, TextTable::LEFT);
+ tbl.define_column("ID", TextTable::LEFT, TextTable::LEFT);
+ tbl.define_column("Address", TextTable::LEFT, TextTable::LEFT);
+ }
+
if (lockers.size()) {
bool one = (lockers.size() == 1);
cout << "Lock tag: " << tag << "\n";
}
- if (f) {
- f->open_object_section("locks");
- } else {
- tbl.define_column("Locker", TextTable::LEFT, TextTable::LEFT);
- tbl.define_column("ID", TextTable::LEFT, TextTable::LEFT);
- tbl.define_column("Address", TextTable::LEFT, TextTable::LEFT);
- }
-
for (list<librbd::locker_t>::const_iterator it = lockers.begin();
it != lockers.end(); ++it) {
if (f) {
tbl << it->client << it->cookie << it->address << TextTable::endrow;
}
}
-
- if (f) {
- f->close_section();
- f->flush(cout);
- } else {
+ if (!f)
cout << tbl;
- }
+ }
+
+ if (f) {
+ f->close_section();
+ f->flush(cout);
}
return 0;
}