Skip to content

Commit bb4d512

Browse files
authored
Merge pull request ceph#62521 from idryomov/wip-rbd-mirror-pool-status-fixups
rbd: "rbd mirror pool status --verbose" output fixups Reviewed-by: Ramana Raja <[email protected]>
2 parents ec9065d + 8b1ab7e commit bb4d512

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

src/tools/rbd/action/MirrorImage.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ int execute_status(const po::variables_map &vm,
412412
auto name_it = peer_mirror_uuids_to_name.find(status.mirror_uuid);
413413
formatter->dump_string("site_name",
414414
(name_it != peer_mirror_uuids_to_name.end() ? name_it->second : ""));
415-
formatter->dump_string("mirror_uuids", status.mirror_uuid);
415+
formatter->dump_string("mirror_uuid", status.mirror_uuid);
416416

417417
formatter->dump_string("state", utils::mirror_image_site_status_state(
418418
status));

src/tools/rbd/action/MirrorPool.cc

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -606,11 +606,12 @@ class StatusImageRequest : public ImageRequestBase {
606606
const std::vector<librbd::mirror_peer_site_t>& mirror_peers,
607607
const std::map<std::string, std::string> &peer_mirror_uuids_to_name,
608608
const MirrorDaemonServiceInfo &daemon_service_info,
609-
at::Format::Formatter formatter)
609+
at::Format::Formatter formatter, bool* saw_image)
610610
: ImageRequestBase(io_ctx, throttle, image_name),
611611
m_instance_ids(instance_ids), m_mirror_peers(mirror_peers),
612612
m_peer_mirror_uuids_to_name(peer_mirror_uuids_to_name),
613-
m_daemon_service_info(daemon_service_info), m_formatter(formatter) {
613+
m_daemon_service_info(daemon_service_info), m_formatter(formatter),
614+
m_saw_image(saw_image) {
614615
}
615616

616617
protected:
@@ -679,7 +680,7 @@ class StatusImageRequest : public ImageRequestBase {
679680
m_formatter->dump_string("site_name",
680681
(name_it != m_peer_mirror_uuids_to_name.end() ?
681682
name_it->second : ""));
682-
m_formatter->dump_string("mirror_uuids", status.mirror_uuid);
683+
m_formatter->dump_string("mirror_uuid", status.mirror_uuid);
683684

684685
m_formatter->dump_string(
685686
"state", utils::mirror_image_site_status_state(status));
@@ -692,6 +693,7 @@ class StatusImageRequest : public ImageRequestBase {
692693
}
693694
m_formatter->close_section(); // image
694695
} else {
696+
*m_saw_image = true;
695697
std::cout << std::endl
696698
<< m_mirror_image_global_status.name << ":" << std::endl
697699
<< " global_id: "
@@ -741,6 +743,7 @@ class StatusImageRequest : public ImageRequestBase {
741743
const std::map<std::string, std::string> &m_peer_mirror_uuids_to_name;
742744
const MirrorDaemonServiceInfo &m_daemon_service_info;
743745
at::Format::Formatter m_formatter;
746+
bool *m_saw_image;
744747
std::string m_image_id;
745748
librbd::mirror_image_global_status_t m_mirror_image_global_status;
746749
};
@@ -1642,12 +1645,10 @@ int execute_status(const po::variables_map &vm,
16421645
}
16431646
formatter->close_section(); // daemons
16441647
} else {
1645-
std::cout << std::endl << "DAEMONS" << std::endl;
1646-
if (mirror_services.empty()) {
1647-
std::cout << " none" << std::endl;
1648-
}
1648+
std::cout << std::endl << "DAEMONS";
16491649
for (auto& mirror_service : mirror_services) {
1650-
std::cout << "service " << mirror_service.service_id << ":"
1650+
std::cout << std::endl
1651+
<< "service " << mirror_service.service_id << ":"
16511652
<< std::endl
16521653
<< " instance_id: " << mirror_service.instance_id
16531654
<< std::endl
@@ -1660,9 +1661,10 @@ int execute_status(const po::variables_map &vm,
16601661
if (!mirror_service.callouts.empty()) {
16611662
std::cout << " callouts: " << mirror_service.callouts << std::endl;
16621663
}
1663-
std::cout << std::endl;
16641664
}
1665-
std::cout << std::endl;
1665+
if (mirror_services.empty()) {
1666+
std::cout << std::endl << " none" << std::endl;
1667+
}
16661668
}
16671669

16681670
// dump per-image status
@@ -1676,7 +1678,7 @@ int execute_status(const po::variables_map &vm,
16761678
if (formatter != nullptr) {
16771679
formatter->open_array_section("images");
16781680
} else {
1679-
std::cout << "IMAGES";
1681+
std::cout << std::endl << "IMAGES";
16801682
}
16811683

16821684
std::map<std::string, std::string> instance_ids;
@@ -1703,13 +1705,18 @@ int execute_status(const po::variables_map &vm,
17031705
start_image_id = ids.rbegin()->first;
17041706
}
17051707

1708+
bool saw_image = false;
17061709
ImageRequestGenerator<StatusImageRequest> generator(
17071710
io_ctx, instance_ids, mirror_peers, peer_mirror_uuids_to_name,
1708-
daemon_service_info, formatter);
1711+
daemon_service_info, formatter, &saw_image);
17091712
ret = generator.execute();
17101713

17111714
if (formatter != nullptr) {
17121715
formatter->close_section(); // images
1716+
} else {
1717+
if (saw_image == false) {
1718+
std::cout << std::endl << " none" << std::endl;
1719+
}
17131720
}
17141721
}
17151722

0 commit comments

Comments
 (0)