mirror of
https://github.com/moghtech/komodo.git
synced 2026-03-11 17:44:19 -05:00
fix filter by split
This commit is contained in:
@@ -16,6 +16,7 @@ use monitor_client::entities::{
|
||||
};
|
||||
use mungos::mongodb::Collection;
|
||||
use periphery_client::api::container::RemoveContainer;
|
||||
use serror::serialize_error_pretty;
|
||||
|
||||
use crate::{
|
||||
helpers::{
|
||||
@@ -177,42 +178,64 @@ impl super::MonitorResource for Deployment {
|
||||
DeploymentState::NotDeployed | DeploymentState::Unknown
|
||||
) {
|
||||
// container needs to be destroyed
|
||||
let server =
|
||||
super::get::<Server>(&deployment.config.server_id).await;
|
||||
if let Err(e) = server {
|
||||
update.push_error_log(
|
||||
"remove container",
|
||||
format!(
|
||||
"failed to retrieve server at {} from db | {e:#?}",
|
||||
deployment.config.server_id
|
||||
),
|
||||
);
|
||||
} 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(
|
||||
let server = match super::get::<Server>(
|
||||
&deployment.config.server_id,
|
||||
)
|
||||
.await
|
||||
{
|
||||
Ok(server) => server,
|
||||
Err(e) => {
|
||||
update.push_error_log(
|
||||
"remove container",
|
||||
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(())
|
||||
}
|
||||
|
||||
@@ -47,6 +47,9 @@ pub struct CopyDeployment {
|
||||
|
||||
/// Deletes the deployment at the given id, and returns the deleted deployment.
|
||||
/// Response: [Deployment].
|
||||
///
|
||||
/// Note. If the associated container is running, it will be deleted as part of
|
||||
/// the deployment clean up.
|
||||
#[typeshare]
|
||||
#[derive(
|
||||
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
|
||||
|
||||
@@ -475,7 +475,7 @@ const Stage = ({
|
||||
const new_stage = () => ({
|
||||
name: "Stage",
|
||||
enabled: true,
|
||||
executions: [],
|
||||
executions: [default_enabled_execution()],
|
||||
});
|
||||
|
||||
const default_enabled_execution: () => Types.EnabledExecution = () => ({
|
||||
|
||||
@@ -167,7 +167,7 @@ export const filterBySplit = <T>(
|
||||
return (
|
||||
(split.length
|
||||
? items?.filter((item) => {
|
||||
const target = extract(item);
|
||||
const target = extract(item).toLowerCase();
|
||||
return split.every((term) => target.includes(term));
|
||||
})
|
||||
: items) ?? []
|
||||
|
||||
Reference in New Issue
Block a user