From 1c1a048d3feba36030cf990d93d7f5f16409aaec Mon Sep 17 00:00:00 2001 From: Benny Halevy Date: Thu, 30 Nov 2023 18:11:54 +0200 Subject: [PATCH] ec2_snitch: coroutinize load_config Fixes #16241 Signed-off-by: Benny Halevy --- locator/ec2_snitch.cc | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/locator/ec2_snitch.cc b/locator/ec2_snitch.cc index 7a108c68d1..697e493220 100644 --- a/locator/ec2_snitch.cc +++ b/locator/ec2_snitch.cc @@ -24,8 +24,9 @@ future<> ec2_snitch::load_config(bool prefer_local) { using namespace boost::algorithm; if (this_shard_id() == io_cpu_id()) { - auto token = aws_api_call(AWS_QUERY_SERVER_ADDR, AWS_QUERY_SERVER_PORT, TOKEN_REQ_ENDPOINT, std::nullopt).get0(); - return aws_api_call(AWS_QUERY_SERVER_ADDR, AWS_QUERY_SERVER_PORT, ZONE_NAME_QUERY_REQ, token).then([this, prefer_local](sstring az) { + auto token = co_await aws_api_call(AWS_QUERY_SERVER_ADDR, AWS_QUERY_SERVER_PORT, TOKEN_REQ_ENDPOINT, std::nullopt); + auto az = co_await aws_api_call(AWS_QUERY_SERVER_ADDR, AWS_QUERY_SERVER_PORT, ZONE_NAME_QUERY_REQ, token); + // FIXME: indentation assert(az.size()); std::vector splits; @@ -42,18 +43,14 @@ future<> ec2_snitch::load_config(bool prefer_local) { my_dc = az.substr(0, az.size() - 3); } - return read_property_file().then([this, prefer_local, my_dc, my_rack] (sstring datacenter_suffix) mutable { + auto datacenter_suffix = co_await read_property_file(); my_dc += datacenter_suffix; logger().info("Ec2Snitch using region: {}, zone: {}.", my_dc, my_rack); - return container().invoke_on_all([prefer_local, my_dc, my_rack] (snitch_ptr& local_s) { + co_await container().invoke_on_all([prefer_local, my_dc, my_rack] (snitch_ptr& local_s) { local_s->set_my_dc_and_rack(my_dc, my_rack); local_s->set_prefer_local(prefer_local); }); - }); - }); } - - return make_ready_future<>(); } future<> ec2_snitch::start() {