Skip to content

Commit badd506

Browse files
authored
Fix retryable alerting API errors (#2304)
1 parent daf879b commit badd506

File tree

5 files changed

+14
-17
lines changed

5 files changed

+14
-17
lines changed

internal/resources/grafana/resource_alerting_contact_point.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func listContactPoints(ctx context.Context, client *goapi.GrafanaHTTPAPI, orgID
115115
if err := retry.RetryContext(ctx, 2*time.Minute, func() *retry.RetryError {
116116
resp, err := client.Provisioning.GetContactpoints(provisioning.NewGetContactpointsParams())
117117
if err != nil {
118-
if orgID > 1 && (err.(*runtime.APIError).IsCode(500) || err.(*runtime.APIError).IsCode(403)) {
118+
if err.(runtime.ClientResponseStatus).IsCode(500) || err.(runtime.ClientResponseStatus).IsCode(403) {
119119
return retry.RetryableError(err)
120120
}
121121
return retry.NonRetryableError(err)
@@ -196,9 +196,10 @@ func updateContactPoint(ctx context.Context, data *schema.ResourceData, meta int
196196
params.SetXDisableProvenance(&provenanceDisabled)
197197
}
198198
resp, err := client.Provisioning.PostContactpoints(params)
199-
if orgID > 1 && err != nil && err.(*runtime.APIError).IsCode(500) {
200-
return retry.RetryableError(err)
201-
} else if err != nil {
199+
if err != nil {
200+
if err.(runtime.ClientResponseStatus).IsCode(500) {
201+
return retry.RetryableError(err)
202+
}
202203
return retry.NonRetryableError(err)
203204
}
204205
uid = resp.Payload.UID

internal/resources/grafana/resource_alerting_message_template.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func listMessageTemplate(ctx context.Context, client *goapi.GrafanaHTTPAPI, orgI
7676
if err := retry.RetryContext(ctx, 2*time.Minute, func() *retry.RetryError {
7777
resp, err := client.Provisioning.GetTemplates()
7878
if err != nil {
79-
if orgID > 1 && (err.(*runtime.APIError).IsCode(500) || err.(*runtime.APIError).IsCode(403)) {
79+
if err.(runtime.ClientResponseStatus).IsCode(500) || err.(runtime.ClientResponseStatus).IsCode(403) {
8080
return retry.RetryableError(err)
8181
}
8282
return retry.NonRetryableError(err)
@@ -127,7 +127,7 @@ func putMessageTemplate(ctx context.Context, data *schema.ResourceData, meta int
127127
params.SetXDisableProvenance(&provenanceDisabled)
128128
}
129129
if _, err := client.Provisioning.PutTemplate(params); err != nil {
130-
if orgID > 1 && err.(*runtime.APIError).IsCode(500) {
130+
if err.(runtime.ClientResponseStatus).IsCode(500) {
131131
return retry.RetryableError(err)
132132
}
133133
return retry.NonRetryableError(err)

internal/resources/grafana/resource_alerting_mute_timing.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ func listMuteTimings(ctx context.Context, client *goapi.GrafanaHTTPAPI, orgID in
143143
if err := retry.RetryContext(ctx, 2*time.Minute, func() *retry.RetryError {
144144
resp, err := client.Provisioning.GetMuteTimings()
145145
if err != nil {
146-
if orgID > 1 && (err.(*runtime.APIError).IsCode(500) || err.(*runtime.APIError).IsCode(403)) {
146+
if err.(runtime.ClientResponseStatus).IsCode(500) || err.(runtime.ClientResponseStatus).IsCode(403) {
147147
return retry.RetryableError(err)
148148
}
149149
return retry.NonRetryableError(err)
@@ -194,12 +194,10 @@ func createMuteTiming(ctx context.Context, data *schema.ResourceData, meta inter
194194
err := retry.RetryContext(ctx, 2*time.Minute, func() *retry.RetryError {
195195
var postErr error
196196
resp, postErr = client.Provisioning.PostMuteTiming(params)
197-
if orgID > 1 && postErr != nil {
198-
if apiError, ok := postErr.(*runtime.APIError); ok && (apiError.IsCode(500) || apiError.IsCode(404)) {
197+
if postErr != nil {
198+
if postErr.(runtime.ClientResponseStatus).IsCode(500) || postErr.(runtime.ClientResponseStatus).IsCode(403) {
199199
return retry.RetryableError(postErr)
200200
}
201-
}
202-
if postErr != nil {
203201
return retry.NonRetryableError(postErr)
204202
}
205203
return nil

internal/resources/grafana/resource_alerting_notification_policy.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func listNotificationPolicies(ctx context.Context, client *goapi.GrafanaHTTPAPI,
206206
if err := retry.RetryContext(ctx, 2*time.Minute, func() *retry.RetryError {
207207
_, err := client.Provisioning.GetPolicyTree()
208208
if err != nil {
209-
if orgID > 1 && (err.(*runtime.APIError).IsCode(500) || err.(*runtime.APIError).IsCode(403)) {
209+
if err.(runtime.ClientResponseStatus).IsCode(500) || err.(runtime.ClientResponseStatus).IsCode(403) {
210210
return retry.RetryableError(err)
211211
}
212212
return retry.NonRetryableError(err)
@@ -251,12 +251,10 @@ func putNotificationPolicy(ctx context.Context, data *schema.ResourceData, meta
251251

252252
err = retry.RetryContext(ctx, 2*time.Minute, func() *retry.RetryError {
253253
_, err := client.Provisioning.PutPolicyTree(putParams)
254-
if orgID > 1 && err != nil {
255-
if apiError, ok := err.(*runtime.APIError); ok && (apiError.IsCode(500) || apiError.IsCode(404)) {
254+
if err != nil {
255+
if err.(runtime.ClientResponseStatus).IsCode(500) || err.(runtime.ClientResponseStatus).IsCode(404) {
256256
return retry.RetryableError(err)
257257
}
258-
}
259-
if err != nil {
260258
return retry.NonRetryableError(err)
261259
}
262260
return nil

internal/resources/grafana/resource_alerting_rule_group.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ func listRuleGroups(ctx context.Context, client *goapi.GrafanaHTTPAPI, orgID int
327327
if err := retry.RetryContext(ctx, 2*time.Minute, func() *retry.RetryError {
328328
resp, err := client.Provisioning.GetAlertRules()
329329
if err != nil {
330-
if orgID > 1 && (err.(*runtime.APIError).IsCode(500) || err.(*runtime.APIError).IsCode(403)) {
330+
if err.(runtime.ClientResponseStatus).IsCode(500) || err.(runtime.ClientResponseStatus).IsCode(403) {
331331
return retry.RetryableError(err)
332332
}
333333
return retry.NonRetryableError(err)

0 commit comments

Comments
 (0)