Skip to content

Commit 2a3124d

Browse files
authored
fix: Resources should be recreated when removed outside of Terraform (#160)
1 parent b9eda25 commit 2a3124d

16 files changed

+114
-15
lines changed

internal/resource_digitalcertificate.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"time"
89

@@ -234,8 +235,13 @@ func (r *digitalCertificateResource) Read(ctx context.Context, req resource.Read
234235
}
235236
}
236237

237-
certificateResponse, response, err := r.client.digitalCertificatesApi.RetrieveDigitalCertificateByIDApi.GetCertificate(ctx, CertificateID).Execute() //nolint
238+
certificateResponse, response, err := r.client.digitalCertificatesApi.
239+
RetrieveDigitalCertificateByIDApi.GetCertificate(ctx, CertificateID).Execute() //nolint
238240
if err != nil {
241+
if response.StatusCode == http.StatusNotFound {
242+
resp.State.RemoveResource(ctx)
243+
return
244+
}
239245
bodyBytes, errReadAll := io.ReadAll(response.Body)
240246
if errReadAll != nil {
241247
resp.Diagnostics.AddError(

internal/resource_dnssec.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"time"
89

@@ -207,7 +208,8 @@ func (r *dnssecResource) Create(ctx context.Context, req resource.CreateRequest,
207208
}
208209
}
209210

210-
func (r *dnssecResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
211+
func (r *dnssecResource) Read(
212+
ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
211213
var state dnssecResourceModel
212214
diags := req.State.Get(ctx, &state)
213215
resp.Diagnostics.Append(diags...)
@@ -232,6 +234,10 @@ func (r *dnssecResource) Read(ctx context.Context, req resource.ReadRequest, res
232234
getDnsSec, response, err := r.client.idnsApi.DNSSECAPI.
233235
GetZoneDnsSec(ctx, zoneID32).Execute() //nolint
234236
if err != nil {
237+
if response.StatusCode == http.StatusNotFound {
238+
resp.State.RemoveResource(ctx)
239+
return
240+
}
235241
bodyBytes, errReadAll := io.ReadAll(response.Body)
236242
if errReadAll != nil {
237243
resp.Diagnostics.AddError(

internal/resource_domain.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"time"
89

@@ -212,8 +213,13 @@ func (r *domainResource) Read(ctx context.Context, req resource.ReadRequest, res
212213
domainId = state.ID.ValueString()
213214
}
214215

215-
getDomain, response, err := r.client.domainsApi.DomainsAPI.GetDomain(ctx, domainId).Execute() //nolint
216+
getDomain, response, err := r.client.domainsApi.DomainsAPI.
217+
GetDomain(ctx, domainId).Execute() //nolint
216218
if err != nil {
219+
if response.StatusCode == http.StatusNotFound {
220+
resp.State.RemoveResource(ctx)
221+
return
222+
}
217223
bodyBytes, errReadAll := io.ReadAll(response.Body)
218224
if errReadAll != nil {
219225
resp.Diagnostics.AddError(

internal/resource_edgeFunction.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"time"
89

@@ -249,8 +250,13 @@ func (r *edgeFunctionResource) Read(ctx context.Context, req resource.ReadReques
249250
}
250251
}
251252

252-
getEdgeFunction, response, err := r.client.edgefunctionsApi.EdgeFunctionsAPI.EdgeFunctionsIdGet(ctx, edgeFunctionId).Execute() //nolint
253+
getEdgeFunction, response, err := r.client.edgefunctionsApi.EdgeFunctionsAPI.
254+
EdgeFunctionsIdGet(ctx, edgeFunctionId).Execute() //nolint
253255
if err != nil {
256+
if response.StatusCode == http.StatusNotFound {
257+
resp.State.RemoveResource(ctx)
258+
return
259+
}
254260
bodyBytes, errReadAll := io.ReadAll(response.Body)
255261
if errReadAll != nil {
256262
resp.Diagnostics.AddError(

internal/resource_edge_application_cache_setting.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"strings"
89
"time"
@@ -420,8 +421,15 @@ func (r *edgeApplicationCacheSettingsResource) Read(ctx context.Context, req res
420421
return
421422
}
422423

423-
cacheSettingResponse, response, err := r.client.edgeApplicationsApi.EdgeApplicationsCacheSettingsAPI.EdgeApplicationsEdgeApplicationIdCacheSettingsCacheSettingsIdGet(ctx, EdgeApplicationId, CacheSettingId).Execute() //nolint
424+
cacheSettingResponse, response, err := r.client.edgeApplicationsApi.
425+
EdgeApplicationsCacheSettingsAPI.
426+
EdgeApplicationsEdgeApplicationIdCacheSettingsCacheSettingsIdGet(
427+
ctx, EdgeApplicationId, CacheSettingId).Execute() //nolint
424428
if err != nil {
429+
if response.StatusCode == http.StatusNotFound {
430+
resp.State.RemoveResource(ctx)
431+
return
432+
}
425433
bodyBytes, errReadAll := io.ReadAll(response.Body)
426434
if errReadAll != nil {
427435
resp.Diagnostics.AddError(

internal/resource_edge_application_edge_functions_instance.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"strings"
89
"time"
@@ -220,8 +221,15 @@ func (r *edgeFunctionsInstanceResource) Read(ctx context.Context, req resource.R
220221
return
221222
}
222223

223-
edgeFunctionInstancesResponse, response, err := r.client.edgeApplicationsApi.EdgeApplicationsEdgeFunctionsInstancesAPI.EdgeApplicationsEdgeApplicationIdFunctionsInstancesFunctionsInstancesIdGet(ctx, ApplicationID, functionsInstancesId).Execute() //nolint
224+
edgeFunctionInstancesResponse, response, err := r.client.edgeApplicationsApi.
225+
EdgeApplicationsEdgeFunctionsInstancesAPI.
226+
EdgeApplicationsEdgeApplicationIdFunctionsInstancesFunctionsInstancesIdGet(
227+
ctx, ApplicationID, functionsInstancesId).Execute() //nolint
224228
if err != nil {
229+
if response.StatusCode == http.StatusNotFound {
230+
resp.State.RemoveResource(ctx)
231+
return
232+
}
225233
bodyBytes, errReadAll := io.ReadAll(response.Body)
226234
if errReadAll != nil {
227235
resp.Diagnostics.AddError(

internal/resource_edge_application_main_setting.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"sync"
89
"time"
@@ -367,6 +368,10 @@ func (r *edgeApplicationResource) Read(ctx context.Context, req resource.ReadReq
367368
EdgeApplicationsMainSettingsAPI.
368369
EdgeApplicationsIdGet(ctx, state.ID.ValueString()).Execute() //nolint
369370
if err != nil {
371+
if response.StatusCode == http.StatusNotFound {
372+
resp.State.RemoveResource(ctx)
373+
return
374+
}
370375
bodyBytes, errReadAll := io.ReadAll(response.Body)
371376
if errReadAll != nil {
372377
resp.Diagnostics.AddError(

internal/resource_edge_application_origin.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"strings"
89
"time"
@@ -367,8 +368,14 @@ func (r *originResource) Read(ctx context.Context, req resource.ReadRequest, res
367368
return
368369
}
369370

370-
originResponse, response, err := r.client.edgeApplicationsApi.EdgeApplicationsOriginsAPI.EdgeApplicationsEdgeApplicationIdOriginsOriginKeyGet(ctx, ApplicationID, OriginKey).Execute() //nolint
371+
originResponse, response, err := r.client.edgeApplicationsApi.
372+
EdgeApplicationsOriginsAPI.EdgeApplicationsEdgeApplicationIdOriginsOriginKeyGet(
373+
ctx, ApplicationID, OriginKey).Execute() //nolint
371374
if err != nil {
375+
if response.StatusCode == http.StatusNotFound {
376+
resp.State.RemoveResource(ctx)
377+
return
378+
}
372379
bodyBytes, errReadAll := io.ReadAll(response.Body)
373380
if errReadAll != nil {
374381
resp.Diagnostics.AddError(

internal/resource_edge_application_rule_engine.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,8 +471,15 @@ func (r *rulesEngineResource) Read(ctx context.Context, req resource.ReadRequest
471471
phase = "request"
472472
}
473473

474-
ruleEngineResponse, response, err := r.client.edgeApplicationsApi.EdgeApplicationsRulesEngineAPI.EdgeApplicationsEdgeApplicationIdRulesEnginePhaseRulesRuleIdGet(ctx, edgeApplicationID, phase, ruleID).Execute() //nolint
474+
ruleEngineResponse, response, err := r.client.edgeApplicationsApi.
475+
EdgeApplicationsRulesEngineAPI.
476+
EdgeApplicationsEdgeApplicationIdRulesEnginePhaseRulesRuleIdGet(
477+
ctx, edgeApplicationID, phase, ruleID).Execute() //nolint
475478
if err != nil {
479+
if response.StatusCode == http.StatusNotFound {
480+
resp.State.RemoveResource(ctx)
481+
return
482+
}
476483
bodyBytes, errReadAll := io.ReadAll(response.Body)
477484
if errReadAll != nil {
478485
resp.Diagnostics.AddError(

internal/resource_edge_firewall_edge_functions_instance.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"strings"
89
"time"
@@ -230,10 +231,15 @@ func (r *edgeFirewallFunctionsInstanceResource) Read(ctx context.Context, req re
230231
return
231232
}
232233

233-
edgeFunctionInstancesResponse, response, err := r.client.edgefunctionsinstanceEdgefirewallApi.DefaultAPI.
234-
EdgeFirewallEdgeFirewallIdFunctionsInstancesEdgeFunctionInstanceIdGet(ctx, edgeFirewallID, functionsInstancesId).
235-
Execute() //nolint
234+
edgeFunctionInstancesResponse, response, err := r.client.
235+
edgefunctionsinstanceEdgefirewallApi.DefaultAPI.
236+
EdgeFirewallEdgeFirewallIdFunctionsInstancesEdgeFunctionInstanceIdGet(
237+
ctx, edgeFirewallID, functionsInstancesId).Execute() //nolint
236238
if err != nil {
239+
if response.StatusCode == http.StatusNotFound {
240+
resp.State.RemoveResource(ctx)
241+
return
242+
}
237243
bodyBytes, errReadAll := io.ReadAll(response.Body)
238244
if errReadAll != nil {
239245
resp.Diagnostics.AddError(

internal/resource_edge_firewall_main_setting.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"time"
89

@@ -217,8 +218,13 @@ func (r *edgeFirewallResource) Read(ctx context.Context, req resource.ReadReques
217218
edgeFirewallID = state.ID.ValueString()
218219
}
219220

220-
edgeFirewallResponse, response, err := r.client.edgeFirewallApi.DefaultAPI.EdgeFirewallUuidGet(ctx, edgeFirewallID).Execute() //nolint
221+
edgeFirewallResponse, response, err := r.client.edgeFirewallApi.DefaultAPI.
222+
EdgeFirewallUuidGet(ctx, edgeFirewallID).Execute() //nolint
221223
if err != nil {
224+
if response.StatusCode == http.StatusNotFound {
225+
resp.State.RemoveResource(ctx)
226+
return
227+
}
222228
bodyBytes, errReadAll := io.ReadAll(response.Body)
223229
if errReadAll != nil {
224230
resp.Diagnostics.AddError(

internal/resource_environment_variable.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"time"
78

89
"github.com/aziontech/azionapi-go-sdk/variables"
@@ -193,8 +194,13 @@ func (r *environmentVariableResource) Read(ctx context.Context, req resource.Rea
193194
uuid = state.ID.ValueString()
194195
}
195196

196-
getEnvironmentVariable, response, err := r.client.variablesApi.VariablesAPI.ApiVariablesRetrieve(ctx, uuid).Execute() //nolint
197+
getEnvironmentVariable, response, err := r.client.variablesApi.VariablesAPI.
198+
ApiVariablesRetrieve(ctx, uuid).Execute() //nolint
197199
if err != nil {
200+
if response.StatusCode == http.StatusNotFound {
201+
resp.State.RemoveResource(ctx)
202+
return
203+
}
198204
bodyBytes, errReadAll := io.ReadAll(response.Body)
199205
if errReadAll != nil {
200206
resp.Diagnostics.AddError(

internal/resource_network_list.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"time"
89

@@ -196,8 +197,13 @@ func (r *networkListResource) Read(ctx context.Context, req resource.ReadRequest
196197
networkListId = state.ID.ValueString()
197198
}
198199

199-
getNetworkList, response, err := r.client.networkListApi.DefaultAPI.NetworkListsUuidGet(ctx, networkListId).Execute() //nolint
200+
getNetworkList, response, err := r.client.networkListApi.DefaultAPI.
201+
NetworkListsUuidGet(ctx, networkListId).Execute() //nolint
200202
if err != nil {
203+
if response.StatusCode == http.StatusNotFound {
204+
resp.State.RemoveResource(ctx)
205+
return
206+
}
201207
bodyBytes, errReadAll := io.ReadAll(response.Body)
202208
if errReadAll != nil {
203209
resp.Diagnostics.AddError(

internal/resource_record.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"io"
7+
"net/http"
78
"strconv"
89
"strings"
910
"time"
@@ -263,8 +264,13 @@ func (r *recordResource) Read(ctx context.Context, req resource.ReadRequest, res
263264
idRecord = utils.AtoiNoError(valueFromCmd[1], resp)
264265
}
265266

266-
recordsResponse, httpResponse, err := r.client.idnsApi.RecordsAPI.GetZoneRecords(ctx, idZone).PageSize(largeRecordsPageSize).Execute() //nolint
267+
recordsResponse, httpResponse, err := r.client.idnsApi.RecordsAPI.
268+
GetZoneRecords(ctx, idZone).PageSize(largeRecordsPageSize).Execute() //nolint
267269
if err != nil {
270+
if httpResponse.StatusCode == http.StatusNotFound {
271+
resp.State.RemoveResource(ctx)
272+
return
273+
}
268274
usrMsg, errMsg := errorPrint(httpResponse.StatusCode, err)
269275
resp.Diagnostics.AddError(usrMsg, errMsg)
270276
return

internal/resource_waf_rule_set.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"time"
89

@@ -295,6 +296,10 @@ func (r *wafRuleSetResource) Read(ctx context.Context, req resource.ReadRequest,
295296

296297
wafResponse, response, err := r.client.wafApi.WAFAPI.GetWAFRuleset(ctx, wafRuleSetID).Execute() //nolint
297298
if err != nil {
299+
if response.StatusCode == http.StatusNotFound {
300+
resp.State.RemoveResource(ctx)
301+
return
302+
}
298303
bodyBytes, errReadAll := io.ReadAll(response.Body)
299304
if errReadAll != nil {
300305
resp.Diagnostics.AddError(

internal/resource_zones.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"io"
6+
"net/http"
67
"strconv"
78
"time"
89

@@ -210,6 +211,10 @@ func (r *zoneResource) Read(ctx context.Context, req resource.ReadRequest, resp
210211

211212
order, response, err := r.client.idnsApi.ZonesAPI.GetZone(ctx, int32(idPlan)).Execute() //nolint
212213
if err != nil {
214+
if response.StatusCode == http.StatusNotFound {
215+
resp.State.RemoveResource(ctx)
216+
return
217+
}
213218
bodyBytes, errReadAll := io.ReadAll(response.Body)
214219
if errReadAll != nil {
215220
resp.Diagnostics.AddError(

0 commit comments

Comments
 (0)