Can delete network filter
This commit is contained in:
@ -5,7 +5,7 @@ use crate::libvirt_lib_structures::nwfilter::*;
|
||||
use crate::libvirt_lib_structures::*;
|
||||
use crate::libvirt_rest_structures::hypervisor::*;
|
||||
use crate::libvirt_rest_structures::net::*;
|
||||
use crate::libvirt_rest_structures::nw_filter::NetworkFilter;
|
||||
use crate::libvirt_rest_structures::nw_filter::{NetworkFilter, NetworkFilterName};
|
||||
use crate::libvirt_rest_structures::vm::*;
|
||||
use actix::{Actor, Context, Handler, Message};
|
||||
use image::ImageOutputFormat;
|
||||
@ -618,3 +618,27 @@ impl Handler<DefineNWFilterReq> for LibVirtActor {
|
||||
Ok(uuid)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Message)]
|
||||
#[rtype(result = "anyhow::Result<()>")]
|
||||
pub struct DeleteNetworkFilter(pub XMLUuid);
|
||||
|
||||
impl Handler<DeleteNetworkFilter> for LibVirtActor {
|
||||
type Result = anyhow::Result<()>;
|
||||
|
||||
fn handle(&mut self, msg: DeleteNetworkFilter, _ctx: &mut Self::Context) -> Self::Result {
|
||||
log::debug!("Delete network filter: {}\n", msg.0.as_string());
|
||||
let nw_filter = NWFilter::lookup_by_uuid_string(&self.m, &msg.0.as_string())?;
|
||||
let nw_filter_name = nw_filter.get_name()?;
|
||||
nw_filter.undefine()?;
|
||||
|
||||
// Remove backup definition
|
||||
let backup_definition =
|
||||
AppConfig::get().net_filter_definition_path(&NetworkFilterName(nw_filter_name));
|
||||
if backup_definition.exists() {
|
||||
std::fs::remove_file(backup_definition)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user