From e0cfad08b670affd3468be4eabccd7d5d8285cf8 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Thu, 16 Jul 2020 20:08:56 +0800 Subject: [PATCH] mon: refactor ServiceMap::Service::get_task_summary() for better readability Signed-off-by: Kefu Chai --- src/mgr/ServiceMap.cc | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/mgr/ServiceMap.cc b/src/mgr/ServiceMap.cc index 490b118bcf0c6..812691a84781c 100644 --- a/src/mgr/ServiceMap.cc +++ b/src/mgr/ServiceMap.cc @@ -3,6 +3,8 @@ #include "mgr/ServiceMap.h" +#include + #include "common/Formatter.h" using ceph::bufferlist; @@ -67,7 +69,7 @@ void ServiceMap::Daemon::generate_test_instances(std::list& ls) std::string ServiceMap::Service::get_summary() const { - if (summary.size()) { + if (!summary.empty()) { return summary; } if (daemons.empty()) { @@ -105,24 +107,19 @@ std::string ServiceMap::Service::get_task_summary(const std::string_view task_pr // {"service2 status" -> {"service2.0" -> "idle"}, // {"service2.1" -> "running"}} std::map> by_task; - for (const auto &p : daemons) { - std::stringstream d; - d << task_prefix << "." << p.first; - for (const auto &q : p.second.task_status) { - auto p1 = by_task.emplace(q.first, std::map{}).first; - auto p2 = p1->second.emplace(d.str(), std::string()).first; - p2->second = q.second; + for (const auto& [service_id, daemon] : daemons) { + for (const auto& [task_name, status] : daemon.task_status) { + by_task[task_name].emplace(fmt::format("{}.{}", task_prefix, service_id), + status); } } - std::stringstream ss; - for (const auto &p : by_task) { - ss << "\n " << p.first << ":"; - for (auto q : p.second) { - ss << "\n " << q.first << ": " << q.second; + for (const auto &[task_name, status_by_service] : by_task) { + ss << "\n " << task_name << ":"; + for (auto& [service, status] : status_by_service) { + ss << "\n " << service << ": " << status; } } - return ss.str(); } -- 2.39.5