Alerting: Fix rule API to accept 0 duration of field For (#50992)

* make 'for' pointer to distinguish between missing field and 0
* set 'for' to -1 if the value is missing but not allow negative in the request + path -1 with the value from original rule
* update store validation to not allow negative 'for'
* update usages to use pointer
This commit is contained in:
Yuriy Tseretyan
2022-06-30 11:46:26 -04:00
committed by GitHub
parent 0e7a495829
commit 8b3b667a47
13 changed files with 104 additions and 35 deletions

View File

@@ -388,7 +388,7 @@ func PatchPartialAlertRule(existingRule *AlertRule, ruleToPatch *AlertRule) {
if ruleToPatch.NoDataState == "" {
ruleToPatch.NoDataState = existingRule.NoDataState
}
if ruleToPatch.For == 0 {
if ruleToPatch.For == -1 {
ruleToPatch.For = existingRule.For
}
}

View File

@@ -113,9 +113,9 @@ func TestPatchPartialAlertRule(t *testing.T) {
},
},
{
name: "For is 0",
name: "For is -1",
mutator: func(r *AlertRule) {
r.For = 0
r.For = -1
},
},
}