Merge pull request #553 from jodh-intel/2.0-dev-agent-support-unix-address

server: Allow address to be specified
This commit is contained in:
James O. D. Hunt 2020-08-27 11:43:34 +01:00 committed by GitHub
commit fd3b9ff9ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 10 deletions

View File

@ -3,6 +3,7 @@
// SPDX-License-Identifier: Apache-2.0
//
use rustjail::errors::*;
use std::env;
use std::fs;
use std::time;
@ -17,6 +18,9 @@ const CONTAINER_PIPE_SIZE_OPTION: &str = "agent.container_pipe_size";
const DEFAULT_LOG_LEVEL: slog::Level = slog::Level::Info;
const DEFAULT_HOTPLUG_TIMEOUT: time::Duration = time::Duration::from_secs(3);
const DEFAULT_CONTAINER_PIPE_SIZE: i32 = 0;
const VSOCK_ADDR: &str = "vsock://-1";
const VSOCK_PORT: u16 = 1024;
const SERVER_ADDR_ENV_VAR: &str = "KATA_AGENT_SERVER_ADDR";
// FIXME: unused
const TRACE_MODE_FLAG: &str = "agent.trace";
@ -31,6 +35,7 @@ pub struct agentConfig {
pub debug_console_vport: i32,
pub log_vport: i32,
pub container_pipe_size: i32,
pub server_addr: String,
}
impl agentConfig {
@ -43,6 +48,7 @@ impl agentConfig {
debug_console_vport: 0,
log_vport: 0,
container_pipe_size: DEFAULT_CONTAINER_PIPE_SIZE,
server_addr: format!("{}:{}", VSOCK_ADDR, VSOCK_PORT),
}
}
@ -91,6 +97,10 @@ impl agentConfig {
}
}
if let Ok(addr) = env::var(SERVER_ADDR_ENV_VAR) {
self.server_addr = addr;
}
Ok(())
}
}

View File

@ -72,8 +72,6 @@ use uevent::watch_uevents;
mod rpc;
const NAME: &str = "kata-agent";
const VSOCK_ADDR: &str = "vsock://-1";
const VSOCK_PORT: u16 = 1024;
const KERNEL_CMDLINE_FILE: &str = "/proc/cmdline";
const CONSOLE_PATH: &str = "/dev/console";
@ -247,7 +245,7 @@ fn start_sandbox(logger: &Logger, config: &agentConfig, init_mode: bool) -> Resu
sandbox.lock().unwrap().sender = Some(tx);
//vsock:///dev/vsock, port
let mut server = rpc::start(sandbox.clone(), VSOCK_ADDR, VSOCK_PORT);
let mut server = rpc::start(sandbox.clone(), config.server_addr.as_str());
let _ = server.start().unwrap();

View File

@ -1452,7 +1452,7 @@ fn find_process<'a>(
Ok(p)
}
pub fn start<S: Into<String>>(s: Arc<Mutex<Sandbox>>, host: S, port: u16) -> ttrpc::Server {
pub fn start(s: Arc<Mutex<Sandbox>>, server_address: &str) -> ttrpc::Server {
let agent_service = Box::new(agentService {
sandbox: s,
test: 1,
@ -1468,17 +1468,13 @@ pub fn start<S: Into<String>>(s: Arc<Mutex<Sandbox>>, host: S, port: u16) -> ttr
let hservice = protocols::health_ttrpc::create_health(health_worker);
let mut addr: String = host.into();
addr.push_str(":");
addr.push_str(&port.to_string());
let server = ttrpc::Server::new()
.bind(addr.as_str())
.bind(server_address)
.unwrap()
.register_service(aservice)
.register_service(hservice);
info!(sl!(), "ttRPC server started");
info!(sl!(), "ttRPC server started"; "address" => server_address);
server
}