Skip to content

Commit cf76969

Browse files
authored
Make call SchedulerServer::new once in ballista-scheduler process (#1537)
* Make call SchedulerServer::new once in ballista-scheduler process * cargo fmt * fix wrong annotation
1 parent 794b92b commit cf76969

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

ballista/rust/scheduler/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ impl SchedulerServer {
120120
.as_millis(),
121121
}
122122
}
123+
124+
pub fn set_caller_ip(&mut self, ip: IpAddr) {
125+
self.caller_ip = ip;
126+
}
123127
}
124128

125129
const INFLIGHT_TASKS_METRIC_NAME: &str = "inflight_tasks";

ballista/rust/scheduler/src/main.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use ballista_scheduler::externalscaler::external_scaler_server::ExternalScalerSe
2222
use futures::future::{self, Either, TryFutureExt};
2323
use hyper::{server::conn::AddrStream, service::make_service_fn, Server};
2424
use std::convert::Infallible;
25+
use std::net::{IpAddr, Ipv4Addr};
2526
use std::{net::SocketAddr, sync::Arc};
2627
use tonic::transport::Server as TonicServer;
2728
use tower::Service;
@@ -62,14 +63,18 @@ async fn start_server(
6263
"Ballista v{} Scheduler listening on {:?}",
6364
BALLISTA_VERSION, addr
6465
);
66+
//should only call SchedulerServer::new() once in the process
67+
let scheduler_server_without_caller_ip = SchedulerServer::new(
68+
config_backend.clone(),
69+
namespace.clone(),
70+
IpAddr::V4(Ipv4Addr::UNSPECIFIED),
71+
);
6572

6673
Ok(Server::bind(&addr)
6774
.serve(make_service_fn(move |request: &AddrStream| {
68-
let scheduler_server = SchedulerServer::new(
69-
config_backend.clone(),
70-
namespace.clone(),
71-
request.remote_addr().ip(),
72-
);
75+
let mut scheduler_server = scheduler_server_without_caller_ip.clone();
76+
scheduler_server.set_caller_ip(request.remote_addr().ip());
77+
7378
let scheduler_grpc_server =
7479
SchedulerGrpcServer::new(scheduler_server.clone());
7580

0 commit comments

Comments
 (0)