Merge pull request #8023 from cmaf/runtime-rs-ch-pause-resume

runtime-rs: Update status for pause and resume
This commit is contained in:
Chelsea Mafrica 2023-11-08 11:34:47 -08:00 committed by GitHub
commit 83e731328f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -366,28 +366,42 @@ impl Container {
}
pub async fn pause(&self) -> Result<()> {
let inner = self.inner.read().await;
if inner.init_process.get_status().await == ProcessStatus::Paused {
warn!(self.logger, "container is paused no need to pause");
let mut inner = self.inner.write().await;
let status = inner.init_process.get_status().await;
if status != ProcessStatus::Running {
warn!(
self.logger,
"container is in {:?} state, will not pause", status
);
return Ok(());
}
self.agent
.pause_container(self.container_id.clone().into())
.await
.context("agent pause container")?;
inner.set_state(ProcessStatus::Paused).await;
Ok(())
}
pub async fn resume(&self) -> Result<()> {
let inner = self.inner.read().await;
if inner.init_process.get_status().await == ProcessStatus::Running {
warn!(self.logger, "container is running no need to resume");
let mut inner = self.inner.write().await;
let status = inner.init_process.get_status().await;
if status != ProcessStatus::Paused {
warn!(
self.logger,
"container is in {:?} state, will not resume", status
);
return Ok(());
}
self.agent
.resume_container(self.container_id.clone().into())
.await
.context("agent pause container")?;
inner.set_state(ProcessStatus::Running).await;
Ok(())
}