From ce28f91bbcb3c7d560741b4c62e431890c5d94c2 Mon Sep 17 00:00:00 2001 From: Shreyas Goenka Date: Mon, 19 Jan 2026 14:33:12 +0100 Subject: [PATCH] Fix: support trigger_pause_status preset in alerts --- .../mutator/resourcemutator/apply_presets.go | 12 +++++++- .../resourcemutator/apply_target_mode_test.go | 29 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/bundle/config/mutator/resourcemutator/apply_presets.go b/bundle/config/mutator/resourcemutator/apply_presets.go index 1311f3660f..8749103b47 100644 --- a/bundle/config/mutator/resourcemutator/apply_presets.go +++ b/bundle/config/mutator/resourcemutator/apply_presets.go @@ -239,12 +239,22 @@ func (m *applyPresets) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnos // Apps: No presets - // Alerts: Prefix + // Alerts: Prefix, TriggerPauseStatus for _, a := range r.Alerts { if a == nil { continue } a.DisplayName = prefix + a.DisplayName + if t.TriggerPauseStatus != "" { + paused := sql.SchedulePauseStatusPaused + if t.TriggerPauseStatus == config.Unpaused { + paused = sql.SchedulePauseStatusUnpaused + } + // Only set pause status if a schedule is defined and pause status is not already set + if a.Schedule.QuartzCronSchedule != "" && a.Schedule.PauseStatus == "" { + a.Schedule.PauseStatus = paused + } + } } // SQL Warehouses: Prefix, Tags diff --git a/bundle/config/mutator/resourcemutator/apply_target_mode_test.go b/bundle/config/mutator/resourcemutator/apply_target_mode_test.go index ec7980348f..1db22cb89b 100644 --- a/bundle/config/mutator/resourcemutator/apply_target_mode_test.go +++ b/bundle/config/mutator/resourcemutator/apply_target_mode_test.go @@ -191,6 +191,23 @@ func mockBundle(mode config.Mode) *bundle.Bundle { "alert1": { AlertV2: sql.AlertV2{ DisplayName: "alert1", + Schedule: sql.CronSchedule{ + QuartzCronSchedule: "0 0 12 * * ?", + }, + }, + }, + "alert2": { + AlertV2: sql.AlertV2{ + DisplayName: "alert2", + Schedule: sql.CronSchedule{ + QuartzCronSchedule: "0 0 12 * * ?", + PauseStatus: sql.SchedulePauseStatusUnpaused, + }, + }, + }, + "alert3": { + AlertV2: sql.AlertV2{ + DisplayName: "alert3", }, }, }, @@ -258,6 +275,18 @@ func TestProcessTargetModeDevelopment(t *testing.T) { // Dashboards assert.Equal(t, "[dev lennart] dashboard1", b.Config.Resources.Dashboards["dashboard1"].DisplayName) + + // Alert 1: has schedule without pause status set - should be paused + assert.Equal(t, "[dev lennart] alert1", b.Config.Resources.Alerts["alert1"].DisplayName) + assert.Equal(t, sql.SchedulePauseStatusPaused, b.Config.Resources.Alerts["alert1"].Schedule.PauseStatus) + + // Alert 2: has schedule with pause status already set to unpaused - should remain unpaused + assert.Equal(t, "[dev lennart] alert2", b.Config.Resources.Alerts["alert2"].DisplayName) + assert.Equal(t, sql.SchedulePauseStatusUnpaused, b.Config.Resources.Alerts["alert2"].Schedule.PauseStatus) + + // Alert 3: no schedule - pause status should remain empty + assert.Equal(t, "[dev lennart] alert3", b.Config.Resources.Alerts["alert3"].DisplayName) + assert.Empty(t, b.Config.Resources.Alerts["alert3"].Schedule.PauseStatus) } func TestProcessTargetModeDevelopmentTagNormalizationForAws(t *testing.T) {