Skip to content

Commit ba9e2ce

Browse files
Standardize setting empty ID (#1667)
Two things: - No need to do it in delete functions - Use `common.WarnMissing` so that we have a consistent diagnostic and log
1 parent 3b74b81 commit ba9e2ce

17 files changed

+27
-131
lines changed

Diff for: internal/resources/cloud/resource_cloud_stack.go

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"bytes"
55
"context"
66
"fmt"
7-
"log"
87
"net/http"
98
"net/url"
109
"regexp"
@@ -338,9 +337,7 @@ func readStack(ctx context.Context, d *schema.ResourceData, client *gcom.APIClie
338337
}
339338

340339
if stack.Status == "deleted" {
341-
log.Printf("[WARN] removing stack %s from state because it was deleted outside of Terraform", stack.Name)
342-
d.SetId("")
343-
return nil
340+
return common.WarnMissing("stack", d)
344341
}
345342

346343
connectionsReq := client.InstancesAPI.GetConnections(ctx, id.(string))

Diff for: internal/resources/cloud/resource_cloud_stack_service_account.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,7 @@ func readStackServiceAccount(ctx context.Context, d *schema.ResourceData, cloudC
124124

125125
resp, httpResp, err := cloudClient.InstancesAPI.GetInstanceServiceAccount(ctx, stackSlug, strconv.FormatInt(serviceAccountID, 10)).Execute()
126126
if httpResp != nil && httpResp.StatusCode == 404 {
127-
d.SetId("")
128-
return nil
127+
return common.WarnMissing("stack service account", d)
129128
}
130129
if err != nil {
131130
return diag.FromErr(err)

Diff for: internal/resources/cloud/resource_cloud_stack_service_account_token.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package cloud
33
import (
44
"context"
55
"fmt"
6-
"log"
76
"strconv"
87
"time"
98

@@ -155,10 +154,7 @@ func stackServiceAccountTokenRead(ctx context.Context, d *schema.ResourceData, c
155154
}
156155
}
157156

158-
log.Printf("[WARN] removing service account token %d from state because it no longer exists in grafana", id)
159-
d.SetId("")
160-
161-
return nil
157+
return common.WarnMissing("stack service account token", d)
162158
}
163159

164160
func stackServiceAccountTokenDelete(ctx context.Context, d *schema.ResourceData, cloudClient *gcom.APIClient) diag.Diagnostics {

Diff for: internal/resources/cloud/resource_synthetic_monitoring_installation.go

+3-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package cloud
33
import (
44
"context"
55
"fmt"
6-
"log"
76
"strings"
87

98
"github.com/grafana/grafana-com-public-clients/go/gcom"
@@ -114,8 +113,7 @@ func resourceInstallationRead(ctx context.Context, d *schema.ResourceData, meta
114113
apiURL := strings.Split(d.Id(), ";")[0]
115114
tempClient := SMAPI.NewClient(apiURL, d.Get("sm_access_token").(string), nil)
116115
if err := tempClient.ValidateToken(ctx); err != nil {
117-
log.Printf("[WARN] removing SM installation from state because it is no longer valid")
118-
d.SetId("")
116+
return common.WarnMissing("synthetic monitoring installation", d)
119117
}
120118

121119
return nil
@@ -124,9 +122,6 @@ func resourceInstallationRead(ctx context.Context, d *schema.ResourceData, meta
124122
func resourceInstallationDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
125123
apiURL := strings.Split(d.Id(), ";")[0]
126124
tempClient := SMAPI.NewClient(apiURL, d.Get("sm_access_token").(string), nil)
127-
if err := tempClient.DeleteToken(ctx); err != nil {
128-
return diag.FromErr(err)
129-
}
130-
d.SetId("")
131-
return nil
125+
err := tempClient.DeleteToken(ctx)
126+
return diag.FromErr(err)
132127
}

Diff for: internal/resources/grafana/resource_service_account_token.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package grafana
22

33
import (
44
"context"
5-
"log"
65
"strconv"
76

87
"github.com/grafana/grafana-openapi-client-go/client/service_accounts"
@@ -138,10 +137,7 @@ func serviceAccountTokenRead(ctx context.Context, d *schema.ResourceData, m inte
138137
}
139138
}
140139

141-
log.Printf("[WARN] removing service account token%d from state because it no longer exists in grafana", id)
142-
d.SetId("")
143-
144-
return nil
140+
return common.WarnMissing("service account token", d)
145141
}
146142

147143
func serviceAccountTokenDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {

Diff for: internal/resources/machinelearning/resource_holiday.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,7 @@ func resourceHolidayUpdate(ctx context.Context, d *schema.ResourceData, meta int
180180
func resourceHolidayDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
181181
c := meta.(*common.Client).MLAPI
182182
err := c.DeleteHoliday(ctx, d.Id())
183-
if err != nil {
184-
return diag.FromErr(err)
185-
}
186-
d.SetId("")
187-
return nil
183+
return diag.FromErr(err)
188184
}
189185

190186
func makeMLHoliday(d *schema.ResourceData) (mlapi.Holiday, error) {

Diff for: internal/resources/machinelearning/resource_job.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,7 @@ func resourceJobUpdate(ctx context.Context, d *schema.ResourceData, meta interfa
175175
func resourceJobDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
176176
c := meta.(*common.Client).MLAPI
177177
err := c.DeleteJob(ctx, d.Id())
178-
if err != nil {
179-
return diag.FromErr(err)
180-
}
181-
d.SetId("")
182-
return nil
178+
return diag.FromErr(err)
183179
}
184180

185181
func makeMLJob(d *schema.ResourceData, meta interface{}) (mlapi.Job, error) {

Diff for: internal/resources/machinelearning/resource_outlier_detector.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,7 @@ func resourceOutlierUpdate(ctx context.Context, d *schema.ResourceData, meta int
186186
func resourceOutlierDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
187187
c := meta.(*common.Client).MLAPI
188188
err := c.DeleteOutlierDetector(ctx, d.Id())
189-
if err != nil {
190-
return diag.FromErr(err)
191-
}
192-
d.SetId("")
193-
return nil
189+
return diag.FromErr(err)
194190
}
195191

196192
func convertToSetStructure(al mlapi.OutlierAlgorithm) []interface{} {

Diff for: internal/resources/oncall/resource_escalation.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package oncall
33
import (
44
"context"
55
"fmt"
6-
"log"
76
"net/http"
87
"strings"
98

@@ -356,9 +355,7 @@ func resourceEscalationRead(ctx context.Context, d *schema.ResourceData, client
356355
escalation, r, err := client.Escalations.GetEscalation(d.Id(), &onCallAPI.GetEscalationOptions{})
357356
if err != nil {
358357
if r != nil && r.StatusCode == http.StatusNotFound {
359-
log.Printf("[WARN] removing escalation %s from state because it no longer exists", d.Id())
360-
d.SetId("")
361-
return nil
358+
return common.WarnMissing("escalation", d)
362359
}
363360
return diag.FromErr(err)
364361
}
@@ -473,11 +470,5 @@ func resourceEscalationUpdate(ctx context.Context, d *schema.ResourceData, clien
473470

474471
func resourceEscalationDelete(ctx context.Context, d *schema.ResourceData, client *onCallAPI.Client) diag.Diagnostics {
475472
_, err := client.Escalations.DeleteEscalation(d.Id(), &onCallAPI.DeleteEscalationOptions{})
476-
if err != nil {
477-
return diag.FromErr(err)
478-
}
479-
480-
d.SetId("")
481-
482-
return nil
473+
return diag.FromErr(err)
483474
}

Diff for: internal/resources/oncall/resource_escalation_chain.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package oncall
22

33
import (
44
"context"
5-
"log"
65
"net/http"
76

87
onCallAPI "github.com/grafana/amixr-api-go-client"
@@ -80,9 +79,7 @@ func resourceEscalationChainRead(ctx context.Context, d *schema.ResourceData, cl
8079
escalationChain, r, err := client.EscalationChains.GetEscalationChain(d.Id(), &onCallAPI.GetEscalationChainOptions{})
8180
if err != nil {
8281
if r != nil && r.StatusCode == http.StatusNotFound {
83-
log.Printf("[WARN] removing escalation chain %s from state because it no longer exists", d.Get("name").(string))
84-
d.SetId("")
85-
return nil
82+
return common.WarnMissing("escalation chain", d)
8683
}
8784
return diag.FromErr(err)
8885
}
@@ -113,11 +110,5 @@ func resourceEscalationChainUpdate(ctx context.Context, d *schema.ResourceData,
113110

114111
func resourceEscalationChainDelete(ctx context.Context, d *schema.ResourceData, client *onCallAPI.Client) diag.Diagnostics {
115112
_, err := client.EscalationChains.DeleteEscalationChain(d.Id(), &onCallAPI.DeleteEscalationChainOptions{})
116-
if err != nil {
117-
return diag.FromErr(err)
118-
}
119-
120-
d.SetId("")
121-
122-
return nil
113+
return diag.FromErr(err)
123114
}

Diff for: internal/resources/oncall/resource_integration.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package oncall
33
import (
44
"context"
55
"fmt"
6-
"log"
76
"net/http"
87
"strings"
98

@@ -345,9 +344,7 @@ func resourceIntegrationRead(ctx context.Context, d *schema.ResourceData, client
345344
integration, r, err := client.Integrations.GetIntegration(d.Id(), options)
346345
if err != nil {
347346
if r != nil && r.StatusCode == http.StatusNotFound {
348-
log.Printf("[WARN] removing integreation %s from state because it no longer exists", d.Get("name").(string))
349-
d.SetId("")
350-
return nil
347+
return common.WarnMissing("integration", d)
351348
}
352349
return diag.FromErr(err)
353350
}
@@ -365,13 +362,7 @@ func resourceIntegrationRead(ctx context.Context, d *schema.ResourceData, client
365362
func resourceIntegrationDelete(ctx context.Context, d *schema.ResourceData, client *onCallAPI.Client) diag.Diagnostics {
366363
options := &onCallAPI.DeleteIntegrationOptions{}
367364
_, err := client.Integrations.DeleteIntegration(d.Id(), options)
368-
if err != nil {
369-
return diag.FromErr(err)
370-
}
371-
372-
d.SetId("")
373-
374-
return nil
365+
return diag.FromErr(err)
375366
}
376367

377368
func flattenRouteSlack(in *onCallAPI.SlackRoute) []map[string]interface{} {

Diff for: internal/resources/oncall/resource_outgoing_webhook.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package oncall
22

33
import (
44
"context"
5-
"log"
65
"net/http"
76

87
onCallAPI "github.com/grafana/amixr-api-go-client"
@@ -206,9 +205,7 @@ func resourceOutgoingWebhookRead(ctx context.Context, d *schema.ResourceData, cl
206205
outgoingWebhook, r, err := client.Webhooks.GetWebhook(d.Id(), &onCallAPI.GetWebhookOptions{})
207206
if err != nil {
208207
if r != nil && r.StatusCode == http.StatusNotFound {
209-
log.Printf("[WARN] removing outgoingWebhook %s from state because it no longer exists", d.Get("name").(string))
210-
d.SetId("")
211-
return nil
208+
return common.WarnMissing("outgoing webhook", d)
212209
}
213210
return diag.FromErr(err)
214211
}
@@ -309,11 +306,5 @@ func resourceOutgoingWebhookUpdate(ctx context.Context, d *schema.ResourceData,
309306

310307
func resourceOutgoingWebhookDelete(ctx context.Context, d *schema.ResourceData, client *onCallAPI.Client) diag.Diagnostics {
311308
_, err := client.Webhooks.DeleteWebhook(d.Id(), &onCallAPI.DeleteWebhookOptions{})
312-
if err != nil {
313-
return diag.FromErr(err)
314-
}
315-
316-
d.SetId("")
317-
318-
return nil
309+
return diag.FromErr(err)
319310
}

Diff for: internal/resources/oncall/resource_route.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package oncall
33
import (
44
"context"
55
"fmt"
6-
"log"
76
"net/http"
87
"strings"
98

@@ -185,9 +184,7 @@ func resourceRouteRead(ctx context.Context, d *schema.ResourceData, client *onCa
185184
route, r, err := client.Routes.GetRoute(d.Id(), &onCallAPI.GetRouteOptions{})
186185
if err != nil {
187186
if r != nil && r.StatusCode == http.StatusNotFound {
188-
log.Printf("[WARN] removing route %s from state because it no longer exists", d.Id())
189-
d.SetId("")
190-
return nil
187+
return common.WarnMissing("route", d)
191188
}
192189
return diag.FromErr(err)
193190
}
@@ -246,11 +243,5 @@ func resourceRouteUpdate(ctx context.Context, d *schema.ResourceData, client *on
246243

247244
func resourceRouteDelete(ctx context.Context, d *schema.ResourceData, client *onCallAPI.Client) diag.Diagnostics {
248245
_, err := client.Routes.DeleteRoute(d.Id(), &onCallAPI.DeleteRouteOptions{})
249-
if err != nil {
250-
return diag.FromErr(err)
251-
}
252-
253-
d.SetId("")
254-
255-
return nil
246+
return diag.FromErr(err)
256247
}

Diff for: internal/resources/oncall/resource_schedule.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package oncall
22

33
import (
44
"context"
5-
"log"
65
"net/http"
76
"strings"
87

@@ -252,9 +251,7 @@ func resourceScheduleRead(ctx context.Context, d *schema.ResourceData, client *o
252251
schedule, r, err := client.Schedules.GetSchedule(d.Id(), options)
253252
if err != nil {
254253
if r != nil && r.StatusCode == http.StatusNotFound {
255-
log.Printf("[WARN] removing schedule %s from state because it no longer exists", d.Get("name").(string))
256-
d.SetId("")
257-
return nil
254+
return common.WarnMissing("schedule", d)
258255
}
259256
return diag.FromErr(err)
260257
}
@@ -275,13 +272,7 @@ func resourceScheduleRead(ctx context.Context, d *schema.ResourceData, client *o
275272
func resourceScheduleDelete(ctx context.Context, d *schema.ResourceData, client *onCallAPI.Client) diag.Diagnostics {
276273
options := &onCallAPI.DeleteScheduleOptions{}
277274
_, err := client.Schedules.DeleteSchedule(d.Id(), options)
278-
if err != nil {
279-
return diag.FromErr(err)
280-
}
281-
282-
d.SetId("")
283-
284-
return nil
275+
return diag.FromErr(err)
285276
}
286277

287278
func flattenScheduleSlack(in *onCallAPI.SlackSchedule) []map[string]interface{} {

Diff for: internal/resources/oncall/resource_shift.go

+2-11
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package oncall
33
import (
44
"context"
55
"fmt"
6-
"log"
76
"net/http"
87
"strings"
98

@@ -448,9 +447,7 @@ func resourceOnCallShiftRead(ctx context.Context, d *schema.ResourceData, client
448447
onCallShift, r, err := client.OnCallShifts.GetOnCallShift(d.Id(), options)
449448
if err != nil {
450449
if r != nil && r.StatusCode == http.StatusNotFound {
451-
log.Printf("[WARN] removing on-call shift %s from state because it no longer exists", d.Id())
452-
d.SetId("")
453-
return nil
450+
return common.WarnMissing("on-call shift", d)
454451
}
455452
return diag.FromErr(err)
456453
}
@@ -478,11 +475,5 @@ func resourceOnCallShiftRead(ctx context.Context, d *schema.ResourceData, client
478475
func resourceOnCallShiftDelete(ctx context.Context, d *schema.ResourceData, client *onCallAPI.Client) diag.Diagnostics {
479476
options := &onCallAPI.DeleteOnCallShiftOptions{}
480477
_, err := client.OnCallShifts.DeleteOnCallShift(d.Id(), options)
481-
if err != nil {
482-
return diag.FromErr(err)
483-
}
484-
485-
d.SetId("")
486-
487-
return nil
478+
return diag.FromErr(err)
488479
}

0 commit comments

Comments
 (0)