main: start the http server in the first step
This change set the http server to start as the first step in the boot order. It is helpfull if some other step takes a long time or stuck. Fixes #725 Signed-off-by: Amnon Heiman <amnon@scylladb.com>
This commit is contained in:
committed by
Pekka Enberg
parent
c8b09a69a9
commit
f0d68e4161
22
main.cc
22
main.cc
@@ -263,6 +263,17 @@ int main(int ac, char** av) {
|
||||
return i_endpoint_snitch::create_snitch(cfg->endpoint_snitch()).then([] {
|
||||
// #293 - do not stop anything
|
||||
// engine().at_exit([] { return i_endpoint_snitch::stop_snitch(); });
|
||||
}).then([api_address] {
|
||||
return dns::gethostbyname(api_address);
|
||||
}).then([&db, api_address, api_port, &ctx] (dns::hostent e){
|
||||
auto ip = e.addresses[0].in.s_addr;
|
||||
ctx.http_server.start().then([api_address, api_port, ip, &ctx] {
|
||||
return set_server(ctx);
|
||||
}).then([api_address, api_port, ip, &ctx] {
|
||||
ctx.http_server.listen(ipv4_addr{ip, api_port});
|
||||
}).then([api_address, api_port] {
|
||||
print("Seastar HTTP server listening on %s:%s ...\n", api_address, api_port);
|
||||
});
|
||||
}).then([&db] {
|
||||
return init_storage_service(db);
|
||||
}).then([&db, cfg] {
|
||||
@@ -401,17 +412,6 @@ int main(int ac, char** av) {
|
||||
}
|
||||
return make_ready_future<>();
|
||||
});
|
||||
}).then([api_address] {
|
||||
return dns::gethostbyname(api_address);
|
||||
}).then([&db, api_address, api_port, &ctx] (dns::hostent e){
|
||||
auto ip = e.addresses[0].in.s_addr;
|
||||
ctx.http_server.start().then([api_address, api_port, ip, &ctx] {
|
||||
return set_server(ctx);
|
||||
}).then([api_address, api_port, ip, &ctx] {
|
||||
ctx.http_server.listen(ipv4_addr{ip, api_port});
|
||||
}).then([api_address, api_port] {
|
||||
print("Seastar HTTP server listening on %s:%s ...\n", api_address, api_port);
|
||||
});
|
||||
});
|
||||
}).or_terminate();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user