Alerting: Check if TimeInterval is used in ActiveTimings when deleting (#110691)
* check for active timing in route * Update test * Add integration test
This commit is contained in:
+14
-2
@@ -14,10 +14,13 @@
|
||||
]
|
||||
],
|
||||
"mute_time_intervals": [
|
||||
"test-interval", "persisted-interval"
|
||||
"test-interval",
|
||||
"persisted-interval"
|
||||
],
|
||||
"active_time_intervals": [
|
||||
"test-interval", "persisted-interval"
|
||||
"test-interval",
|
||||
"persisted-interval",
|
||||
"test-interval-for-active-time-interval"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -40,6 +43,15 @@
|
||||
"end_time": "23:59"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "test-interval-for-active-time-interval",
|
||||
"time_intervals": [
|
||||
{
|
||||
"start_time": "06:00",
|
||||
"end_time": "23:59"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"receivers": [
|
||||
|
||||
@@ -675,7 +675,7 @@ func TestIntegrationTimeIntervalReferentialIntegrity(t *testing.T) {
|
||||
|
||||
intervals, err := adminClient.List(ctx, v1.ListOptions{})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, intervals.Items, 2)
|
||||
require.Len(t, intervals.Items, 3)
|
||||
intervalIdx := slices.IndexFunc(intervals.Items, func(interval v0alpha1.TimeInterval) bool {
|
||||
return interval.Spec.Name == "test-interval"
|
||||
})
|
||||
@@ -764,6 +764,16 @@ func TestIntegrationTimeIntervalReferentialIntegrity(t *testing.T) {
|
||||
err = adminClient.Delete(ctx, interval.Name, v1.DeleteOptions{})
|
||||
require.Truef(t, errors.IsConflict(err), "Expected Conflict, got: %s", err)
|
||||
})
|
||||
|
||||
t.Run("should fail to delete if time interval is used in route as an active time interval", func(t *testing.T) {
|
||||
idx := slices.IndexFunc(intervals.Items, func(interval v0alpha1.TimeInterval) bool {
|
||||
return interval.Spec.Name == "test-interval-for-active-time-interval"
|
||||
})
|
||||
intervalToDelete := intervals.Items[idx]
|
||||
|
||||
err = adminClient.Delete(ctx, intervalToDelete.Name, v1.DeleteOptions{})
|
||||
require.Truef(t, errors.IsConflict(err), "Expected Conflict, got: %s", err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user