vmm: http: Error out earlier if we can't create API server

This removes a panic inside the API thread.

Fixes: #2395

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
Rob Bradford 2021-03-17 09:19:30 +00:00
parent 78f9ddc6be
commit 9440304183
2 changed files with 5 additions and 1 deletions

View File

@ -261,6 +261,7 @@ pub fn start_http_thread(
) -> Result<thread::JoinHandle<Result<()>>> {
std::fs::remove_file(path).unwrap_or_default();
let socket_path = PathBuf::from(path);
let mut server = HttpServer::new(socket_path).map_err(Error::CreatingAPIServer)?;
// Retrieve seccomp filter for API thread
let api_seccomp_filter =
@ -272,7 +273,6 @@ pub fn start_http_thread(
// Apply seccomp filter for API thread.
SeccompFilter::apply(api_seccomp_filter).map_err(Error::ApplySeccompFilter)?;
let mut server = HttpServer::new(socket_path).unwrap();
server.start_server().unwrap();
loop {
match server.requests() {

View File

@ -140,6 +140,10 @@ pub enum Error {
/// Error activating virtio devices
#[error("Error activating virtio devices: {0:?}")]
ActivateVirtioDevices(VmError),
/// Error creating API server
#[error("Error creating API server {0:?}")]
CreatingAPIServer(micro_http::ServerError),
}
pub type Result<T> = result::Result<T, Error>;