vmm: Provide vmm version to start_vmm_thread

When vmm.ping give a response, we expect get the version from
the VMM not the vmm create

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
This commit is contained in:
Jose Carlos Venegas Munoz 2019-11-21 18:32:39 +00:00 committed by Sebastien Boeuf
parent a518651402
commit 1d852e9ce5
2 changed files with 7 additions and 3 deletions

View File

@ -358,6 +358,7 @@ fn main() {
let http_sender = api_request_sender.clone(); let http_sender = api_request_sender.clone();
let vmm_thread = match vmm::start_vmm_thread( let vmm_thread = match vmm::start_vmm_thread(
env!("CARGO_PKG_VERSION").to_string(),
api_socket_path, api_socket_path,
api_evt.try_clone().unwrap(), api_evt.try_clone().unwrap(),
http_sender, http_sender,

View File

@ -148,6 +148,7 @@ impl AsRawFd for EpollContext {
} }
pub fn start_vmm_thread( pub fn start_vmm_thread(
vmm_version: String,
http_path: &str, http_path: &str,
api_event: EventFd, api_event: EventFd,
api_sender: Sender<ApiRequest>, api_sender: Sender<ApiRequest>,
@ -158,7 +159,7 @@ pub fn start_vmm_thread(
let thread = thread::Builder::new() let thread = thread::Builder::new()
.name("vmm".to_string()) .name("vmm".to_string())
.spawn(move || { .spawn(move || {
let mut vmm = Vmm::new(api_event)?; let mut vmm = Vmm::new(vmm_version.to_string(), api_event)?;
vmm.control_loop(Arc::new(api_receiver)) vmm.control_loop(Arc::new(api_receiver))
}) })
@ -175,12 +176,13 @@ pub struct Vmm {
exit_evt: EventFd, exit_evt: EventFd,
reset_evt: EventFd, reset_evt: EventFd,
api_evt: EventFd, api_evt: EventFd,
version: String,
vm: Option<Vm>, vm: Option<Vm>,
vm_config: Option<Arc<VmConfig>>, vm_config: Option<Arc<VmConfig>>,
} }
impl Vmm { impl Vmm {
fn new(api_evt: EventFd) -> Result<Self> { fn new(vmm_version: String, api_evt: EventFd) -> Result<Self> {
let mut epoll = EpollContext::new().map_err(Error::Epoll)?; let mut epoll = EpollContext::new().map_err(Error::Epoll)?;
let exit_evt = EventFd::new(EFD_NONBLOCK).map_err(Error::EventFdCreate)?; let exit_evt = EventFd::new(EFD_NONBLOCK).map_err(Error::EventFdCreate)?;
let reset_evt = EventFd::new(EFD_NONBLOCK).map_err(Error::EventFdCreate)?; let reset_evt = EventFd::new(EFD_NONBLOCK).map_err(Error::EventFdCreate)?;
@ -206,6 +208,7 @@ impl Vmm {
exit_evt, exit_evt,
reset_evt, reset_evt,
api_evt, api_evt,
version: vmm_version,
vm: None, vm: None,
vm_config: None, vm_config: None,
}) })
@ -304,7 +307,7 @@ impl Vmm {
fn vmm_ping(&self) -> result::Result<VmmPingResponse, ApiError> { fn vmm_ping(&self) -> result::Result<VmmPingResponse, ApiError> {
Ok(VmmPingResponse { Ok(VmmPingResponse {
version: env!("CARGO_PKG_VERSION").to_string(), version: self.version.clone(),
}) })
} }