1
0
Fork 0
mirror of https://codeberg.org/icewind/haze.git synced 2026-06-03 17:14:08 +02:00

delete orphaned networks

This commit is contained in:
Robin Appelman 2021-08-13 15:39:04 +02:00
commit cbb987065d
2 changed files with 24 additions and 0 deletions

View file

@ -2,6 +2,7 @@ use crate::args::{ExecService, HazeArgs};
use crate::cloud::{Cloud, CloudOptions}; use crate::cloud::{Cloud, CloudOptions};
use crate::config::HazeConfig; use crate::config::HazeConfig;
use crate::exec::container_logs; use crate::exec::container_logs;
use crate::network::clear_networks;
use crate::service::Service; use crate::service::Service;
use crate::service::ServiceTrait; use crate::service::ServiceTrait;
use bollard::Docker; use bollard::Docker;
@ -14,6 +15,7 @@ mod database;
mod exec; mod exec;
mod image; mod image;
mod mapping; mod mapping;
mod network;
mod php; mod php;
mod service; mod service;
@ -33,6 +35,7 @@ async fn main() -> Result<()> {
eprintln!("Error while removing cloud: {:#}", e); eprintln!("Error while removing cloud: {:#}", e);
} }
} }
clear_networks(&docker).await?;
} }
HazeArgs::List { filter } => { HazeArgs::List { filter } => {
let list = Cloud::list(&mut docker, filter, &config).await?; let list = Cloud::list(&mut docker, filter, &config).await?;

21
src/network.rs Normal file
View file

@ -0,0 +1,21 @@
use bollard::Docker;
use color_eyre::{eyre::WrapErr, Result};
pub async fn clear_networks(docker: &Docker) -> Result<()> {
let networks = docker
.list_networks::<&str>(None)
.await
.wrap_err("Failed to list docker networks")?;
for network in networks {
match network.name.as_deref() {
Some(name) if name.starts_with("haze-") => {
docker
.remove_network(name)
.await
.wrap_err("Failed to remove docker network")?;
}
_ => {}
}
}
Ok(())
}