From 1742827ed9647cadee4445c10312e9c54cdceec8 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 10 Oct 2023 18:01:06 -0400 Subject: [PATCH] ergonomics --- .../cli/kube_pod_cleanup/src/delete_pods.rs | 2 -- crates/cli/kube_pod_cleanup/src/main.rs | 20 ++++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/crates/cli/kube_pod_cleanup/src/delete_pods.rs b/crates/cli/kube_pod_cleanup/src/delete_pods.rs index 8a01df84bc..a0c64c331f 100644 --- a/crates/cli/kube_pod_cleanup/src/delete_pods.rs +++ b/crates/cli/kube_pod_cleanup/src/delete_pods.rs @@ -5,8 +5,6 @@ use log::info; use errors::AnyhowResult; pub fn delete_pods(pod_names: Vec) -> AnyhowResult<()> { - //let pod_names = pod_names.join(" "); - let mut args = Vec::from(["delete".to_string(), "pods".to_string()]); args.extend(pod_names); diff --git a/crates/cli/kube_pod_cleanup/src/main.rs b/crates/cli/kube_pod_cleanup/src/main.rs index 82ca6b3ea5..cfb18b4e38 100644 --- a/crates/cli/kube_pod_cleanup/src/main.rs +++ b/crates/cli/kube_pod_cleanup/src/main.rs @@ -1,11 +1,13 @@ use std::ops::Index; +use std::thread; +use std::time::Duration; use log::info; use config::shared_constants::DEFAULT_RUST_LOG; use errors::AnyhowResult; -use crate::delete_pods::delete_pods; +use crate::delete_pods::delete_pods; use crate::list_pods::list_pods; pub mod list_pods; @@ -20,9 +22,12 @@ pub fn main() -> AnyhowResult<()> { "Running", ]; - const POD_STATUSES_TO_CLEAR : [&str; 3] = [ + const POD_STATUSES_TO_ALWAYS_CLEAR : [&str; 2] = [ "Error", "Evicted", + ]; + + const POD_STATUSES_TO_SOMETIMES_CLEAR : [&str; 1] = [ "ContainerStatusUnknown", ]; @@ -30,15 +35,20 @@ pub fn main() -> AnyhowResult<()> { let pods_to_clear = all_pods.iter() .filter(|pod| !POD_STATUSES_TO_KEEP.contains(&pod.status.as_str())) - .filter(|pod| POD_STATUSES_TO_CLEAR.contains(&pod.status.as_str())) + .filter(|pod| POD_STATUSES_TO_ALWAYS_CLEAR.contains(&pod.status.as_str())) .collect::>(); - info!("Clearing {} pods...", pods_to_clear.len()); + info!("Clearing {} / {} pods...", pods_to_clear.len(), all_pods.len()); + + let wait_duration = Duration::from_secs(10); + + info!("Clearing in {} seconds... (Last chance to cancel!)", wait_duration.as_secs()); + + thread::sleep(wait_duration); let pod_names_to_clear = pods_to_clear.iter() .map(|pod| pod.name.to_string()) .collect::>(); - //.join(" "); info!("Clearing pods: {:?}", &pod_names_to_clear);