api: Shorten get_host_to_id_map() handler
The handler does - gets host IDs from local token metadata - for each ID gets the host IP and generates IP:ID std::pair - converts the sequence of generated pairs into std::unordered_map - converts the unordered map into vector of jsonable key:value objects This patch removes the 3rd step and makes the needed jsonable object in step 2 directly, thus eliminating the interposing unordered_map creation. Signed-off-by: Pavel Emelyanov <xemul@scylladb.com> Closes scylladb/scylladb#24354
This commit is contained in:
committed by
Botond Dénes
parent
428edd41f5
commit
12420dc644
@@ -74,11 +74,14 @@ void set_token_metadata(http_context& ctx, routes& r, sharded<locator::shared_to
|
||||
});
|
||||
|
||||
ss::get_host_id_map.set(r, [&tm, &g](const_req req) {
|
||||
std::vector<ss::mapper> res;
|
||||
auto map = tm.local().get()->get_host_ids() |
|
||||
std::views::transform([&g] (locator::host_id id) { return std::make_pair(g.local().get_address_map().get(id), id); }) |
|
||||
std::ranges::to<std::unordered_map>();
|
||||
return map_to_key_value(std::move(map), res);
|
||||
return tm.local().get()->get_host_ids()
|
||||
| std::views::transform([&g] (locator::host_id id) {
|
||||
ss::mapper m;
|
||||
m.key = fmt::to_string(g.local().get_address_map().get(id));
|
||||
m.value = fmt::to_string(id);
|
||||
return m;
|
||||
})
|
||||
| std::ranges::to<std::vector<ss::mapper>>();
|
||||
});
|
||||
|
||||
static auto host_or_broadcast = [&tm](const_req req) {
|
||||
|
||||
Reference in New Issue
Block a user