mirror of
https://github.com/faas-rs/faasd-in-rust.git
synced 2025-06-21 22:33:25 +00:00
fix:修复了创建任务前snapshot被回收的bug (#110)
Co-authored-by: Samuka007 <samuka007@dragonos.org>
This commit is contained in:
@ -24,25 +24,6 @@ impl ContainerdProvider {
|
|||||||
})?;
|
})?;
|
||||||
log::trace!("Image '{}' fetch ok", &metadata.image);
|
log::trace!("Image '{}' fetch ok", &metadata.image);
|
||||||
|
|
||||||
let mounts = backend().prepare_snapshot(&metadata).await.map_err(|e| {
|
|
||||||
log::error!("Failed to prepare snapshot: {:?}", e);
|
|
||||||
DeployError::InternalError(e.to_string())
|
|
||||||
})?;
|
|
||||||
|
|
||||||
let snapshot_defer = scopeguard::guard((), |()| {
|
|
||||||
log::trace!("Cleaning up snapshot");
|
|
||||||
let endpoint = metadata.endpoint.clone();
|
|
||||||
tokio::spawn(async move { backend().remove_snapshot(&endpoint).await });
|
|
||||||
});
|
|
||||||
|
|
||||||
// let network = CNIEndpoint::new(&metadata.container_id, &metadata.namespace)?;
|
|
||||||
let (ip, netns) = cni::cni_impl::create_cni_network(&metadata.endpoint).map_err(|e| {
|
|
||||||
log::error!("Failed to create CNI network: {}", e);
|
|
||||||
DeployError::InternalError(e.to_string())
|
|
||||||
})?;
|
|
||||||
|
|
||||||
let netns_defer = guard(netns, |ns| ns.remove().unwrap());
|
|
||||||
|
|
||||||
let _ = backend().create_container(&metadata).await.map_err(|e| {
|
let _ = backend().create_container(&metadata).await.map_err(|e| {
|
||||||
log::error!("Failed to create container: {:?}", e);
|
log::error!("Failed to create container: {:?}", e);
|
||||||
DeployError::InternalError(e.to_string())
|
DeployError::InternalError(e.to_string())
|
||||||
@ -53,8 +34,26 @@ impl ContainerdProvider {
|
|||||||
tokio::spawn(async move { backend().delete_container(&endpoint).await });
|
tokio::spawn(async move { backend().delete_container(&endpoint).await });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// let network = CNIEndpoint::new(&metadata.container_id, &metadata.namespace)?;
|
||||||
|
let (ip, netns) = cni::cni_impl::create_cni_network(&metadata.endpoint).map_err(|e| {
|
||||||
|
log::error!("Failed to create CNI network: {}", e);
|
||||||
|
DeployError::InternalError(e.to_string())
|
||||||
|
})?;
|
||||||
|
|
||||||
|
let netns_defer = guard(netns, |ns| ns.remove().unwrap());
|
||||||
|
|
||||||
// TODO: Use ostree-ext
|
// TODO: Use ostree-ext
|
||||||
// let img_conf = BACKEND.get().unwrap().get_runtime_config(&metadata.image).unwrap();
|
// let img_conf = BACKEND.get().unwrap().get_runtime_config(&metadata.image).unwrap();
|
||||||
|
let mounts = backend().prepare_snapshot(&metadata).await.map_err(|e| {
|
||||||
|
log::error!("Failed to prepare snapshot: {:?}", e);
|
||||||
|
DeployError::InternalError(e.to_string())
|
||||||
|
})?;
|
||||||
|
|
||||||
|
let snapshot_defer = scopeguard::guard((), |()| {
|
||||||
|
log::trace!("Cleaning up snapshot");
|
||||||
|
let endpoint = metadata.endpoint.clone();
|
||||||
|
tokio::spawn(async move { backend().remove_snapshot(&endpoint).await });
|
||||||
|
});
|
||||||
|
|
||||||
backend().new_task(mounts, &metadata.endpoint).await?;
|
backend().new_task(mounts, &metadata.endpoint).await?;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user