view_builder: view_build_statuses: use topology::for_each_node

Instead of tmptr->get_endpoint_to_host_id_map_for_reading.

Signed-off-by: Benny Halevy <bhalevy@scylladb.com>
This commit is contained in:
Benny Halevy
2023-04-11 15:57:02 +03:00
parent d89fb02d24
commit 535b71eba3

View File

@@ -2093,13 +2093,14 @@ future<> view_builder::calculate_shard_build_step(view_builder_init_state& vbi)
future<std::unordered_map<sstring, sstring>>
view_builder::view_build_statuses(sstring keyspace, sstring view_name) const {
return _sys_dist_ks.view_status(std::move(keyspace), std::move(view_name)).then([] (std::unordered_map<locator::host_id, sstring> status) {
auto endpoint_to_host_id = service::get_local_storage_proxy().get_token_metadata_ptr()->get_endpoint_to_host_id_map_for_reading();
return boost::copy_range<std::unordered_map<sstring, sstring>>(endpoint_to_host_id
| boost::adaptors::transformed([&status] (const std::pair<gms::inet_address, locator::host_id>& p) {
auto it = status.find(p.second);
auto s = it != status.end() ? std::move(it->second) : "UNKNOWN";
return std::pair(p.first.to_sstring(), std::move(s));
}));
std::unordered_map<sstring, sstring> status_map;
const auto& topo = service::get_local_storage_proxy().get_token_metadata_ptr()->get_topology();
topo.for_each_node([&] (const locator::node *node) {
auto it = status.find(node->host_id());
auto s = it != status.end() ? std::move(it->second) : "UNKNOWN";
status_map.emplace(node->endpoint().to_sstring(), std::move(s));
});
return status_map;
});
}