Alerting: Provisioning API returns 403 on quota exceeded for rule group PUT (#106409)
This commit is contained in:
@@ -499,6 +499,9 @@ func (srv *ProvisioningSrv) RoutePutAlertRuleGroup(c *contextmodel.ReqContext, a
|
||||
if errors.Is(err, store.ErrOptimisticLock) {
|
||||
return ErrResp(http.StatusConflict, err, "")
|
||||
}
|
||||
if errors.Is(err, alerting_models.ErrQuotaReached) {
|
||||
return ErrResp(http.StatusForbidden, err, "")
|
||||
}
|
||||
if err != nil {
|
||||
return response.ErrOrFallback(http.StatusInternalServerError, "", err)
|
||||
}
|
||||
|
||||
@@ -645,6 +645,20 @@ func TestProvisioningApi(t *testing.T) {
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("have reached the rule quota, PUT returns 403", func(t *testing.T) {
|
||||
env := createTestEnv(t, testConfig)
|
||||
quotas := provisioning.MockQuotaChecker{}
|
||||
quotas.EXPECT().LimitExceeded()
|
||||
env.quotas = "as
|
||||
sut := createProvisioningSrvSutFromEnv(t, &env)
|
||||
group := createTestAlertRuleGroup(1)
|
||||
rc := createTestRequestCtx()
|
||||
|
||||
response := sut.RoutePutAlertRuleGroup(&rc, group, "folder-uid", group.Title)
|
||||
|
||||
require.Equal(t, 403, response.Status())
|
||||
})
|
||||
|
||||
t.Run("are valid", func(t *testing.T) {
|
||||
t.Run("PUT returns 200", func(t *testing.T) {
|
||||
sut := createProvisioningSrvSut(t)
|
||||
|
||||
Reference in New Issue
Block a user