fix filter by split

This commit is contained in:
mbecker20
2024-06-05 15:16:30 -07:00
parent d2b2aa0550
commit 36a49210a0
4 changed files with 60 additions and 34 deletions

View File

@@ -16,6 +16,7 @@ use monitor_client::entities::{
}; };
use mungos::mongodb::Collection; use mungos::mongodb::Collection;
use periphery_client::api::container::RemoveContainer; use periphery_client::api::container::RemoveContainer;
use serror::serialize_error_pretty;
use crate::{ use crate::{
helpers::{ helpers::{
@@ -177,42 +178,64 @@ impl super::MonitorResource for Deployment {
DeploymentState::NotDeployed | DeploymentState::Unknown DeploymentState::NotDeployed | DeploymentState::Unknown
) { ) {
// container needs to be destroyed // container needs to be destroyed
let server = let server = match super::get::<Server>(
super::get::<Server>(&deployment.config.server_id).await; &deployment.config.server_id,
if let Err(e) = server { )
update.push_error_log( .await
"remove container", {
format!( Ok(server) => server,
"failed to retrieve server at {} from db | {e:#?}", Err(e) => {
deployment.config.server_id update.push_error_log(
),
);
} else if let Ok(server) = server {
match periphery_client(&server) {
Ok(periphery) => match periphery
.request(RemoveContainer {
name: deployment.name.clone(),
signal: deployment.config.termination_signal.into(),
time: deployment.config.termination_timeout.into(),
})
.await
{
Ok(log) => update.logs.push(log),
Err(e) => update.push_error_log(
"remove container",
format!(
"failed to remove container on periphery | {e:#?}"
),
),
},
Err(e) => update.push_error_log(
"remove container", "remove container",
format!( format!(
"failed to remove container on periphery | {e:#?}" "failed to retrieve server at {} from db.\n\nerror: {}",
deployment.config.server_id,
serialize_error_pretty(&e)
), ),
), );
}; return Ok(());
}
};
if !server.config.enabled {
// Don't need to
update.push_simple_log(
"remove container",
"skipping container removal, server is disabled.",
);
return Ok(());
} }
let periphery = match periphery_client(&server) {
Ok(periphery) => periphery,
Err(e) => {
// This case won't ever happen, as periphery_client only fallible if the server is disabled.
// Leaving it for completeness sake
update.push_error_log(
"remove container",
format!(
"failed to remove container on periphery.\n\nerror: {}",
serialize_error_pretty(&e),
),
);
return Ok(());
}
};
match periphery
.request(RemoveContainer {
name: deployment.name.clone(),
signal: deployment.config.termination_signal.into(),
time: deployment.config.termination_timeout.into(),
})
.await
{
Ok(log) => update.logs.push(log),
Err(e) => update.push_error_log(
"remove container",
format!(
"failed to remove container.\n\nerror: {}",
serialize_error_pretty(&e)
),
),
};
} }
Ok(()) Ok(())
} }

View File

@@ -47,6 +47,9 @@ pub struct CopyDeployment {
/// Deletes the deployment at the given id, and returns the deleted deployment. /// Deletes the deployment at the given id, and returns the deleted deployment.
/// Response: [Deployment]. /// Response: [Deployment].
///
/// Note. If the associated container is running, it will be deleted as part of
/// the deployment clean up.
#[typeshare] #[typeshare]
#[derive( #[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits, Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,

View File

@@ -475,7 +475,7 @@ const Stage = ({
const new_stage = () => ({ const new_stage = () => ({
name: "Stage", name: "Stage",
enabled: true, enabled: true,
executions: [], executions: [default_enabled_execution()],
}); });
const default_enabled_execution: () => Types.EnabledExecution = () => ({ const default_enabled_execution: () => Types.EnabledExecution = () => ({

View File

@@ -167,7 +167,7 @@ export const filterBySplit = <T>(
return ( return (
(split.length (split.length
? items?.filter((item) => { ? items?.filter((item) => {
const target = extract(item); const target = extract(item).toLowerCase();
return split.every((term) => target.includes(term)); return split.every((term) => target.includes(term));
}) })
: items) ?? [] : items) ?? []