mirror of
https://github.com/moghtech/komodo.git
synced 2026-09-10 16:01:20 +00:00
add alerter blacklist
This commit is contained in:
@@ -62,7 +62,12 @@ async fn send_alert(alerters: &[Alerter], alert: &Alert) {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
// Don't send if resource target not configured on the alerter
|
||||
// Don't send if resource is in the blacklist
|
||||
if alerter.config.except_resources.contains(&alert.target) {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
// Don't send if whitelist configured and target is not included
|
||||
if !alerter.config.resources.is_empty()
|
||||
&& !alerter.config.resources.contains(&alert.target)
|
||||
{
|
||||
|
||||
@@ -60,6 +60,11 @@ pub struct AlerterConfig {
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub resources: Vec<ResourceTarget>,
|
||||
|
||||
/// DON'T send alerts on these resources.
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub except_resources: Vec<ResourceTarget>,
|
||||
}
|
||||
|
||||
impl AlerterConfig {
|
||||
@@ -76,9 +81,10 @@ impl Default for AlerterConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
enabled: default_enabled(),
|
||||
endpoint: Default::default(),
|
||||
alert_types: Default::default(),
|
||||
resources: Default::default(),
|
||||
endpoint: Default::default(),
|
||||
except_resources: Default::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,6 +279,8 @@ export interface AlerterConfig {
|
||||
* If empty, will send alerts for all resources.
|
||||
*/
|
||||
resources?: ResourceTarget[];
|
||||
/** DON'T send alerts on these resources. */
|
||||
except_resources?: ResourceTarget[];
|
||||
}
|
||||
|
||||
export type Alerter = Resource<AlerterConfig, undefined>;
|
||||
|
||||
@@ -53,6 +53,15 @@ export const AlerterConfig = ({ id }: { id: string }) => {
|
||||
resources={resources!}
|
||||
set={(resources) => set({ resources })}
|
||||
disabled={disabled}
|
||||
blacklist={false}
|
||||
/>
|
||||
),
|
||||
except_resources: (resources, set) => (
|
||||
<ResourcesConfig
|
||||
resources={resources!}
|
||||
set={(except_resources) => set({ except_resources })}
|
||||
disabled={disabled}
|
||||
blacklist={true}
|
||||
/>
|
||||
),
|
||||
},
|
||||
|
||||
@@ -22,10 +22,12 @@ export const ResourcesConfig = ({
|
||||
resources,
|
||||
set,
|
||||
disabled,
|
||||
blacklist,
|
||||
}: {
|
||||
resources: Types.ResourceTarget[];
|
||||
set: (resources: Types.ResourceTarget[]) => void;
|
||||
disabled: boolean;
|
||||
blacklist: boolean;
|
||||
}) => {
|
||||
const [open, setOpen] = useState(false);
|
||||
const [search, setSearch] = useState("");
|
||||
@@ -59,9 +61,7 @@ export const ResourcesConfig = ({
|
||||
type: "Build",
|
||||
id: build.id,
|
||||
name: build.name.toLowerCase(),
|
||||
enabled: resources.find(
|
||||
(r) => r.type === "Build" && r.id === build.id
|
||||
)
|
||||
enabled: resources.find((r) => r.type === "Build" && r.id === build.id)
|
||||
? true
|
||||
: false,
|
||||
})),
|
||||
@@ -152,7 +152,10 @@ export const ResourcesConfig = ({
|
||||
{
|
||||
accessorKey: "enabled",
|
||||
header: ({ column }) => (
|
||||
<SortableHeader column={column} title="Enabled" />
|
||||
<SortableHeader
|
||||
column={column}
|
||||
title={blacklist ? "Blacklist" : "Whitelist"}
|
||||
/>
|
||||
),
|
||||
cell: ({ row }) => {
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user