From e7577a077347b1edd145041f588d3e4ff9d1e7a2 Mon Sep 17 00:00:00 2001 From: Yuri Hummel Date: Mon, 26 Feb 2024 14:58:00 -0300 Subject: [PATCH] fix: error when refreshing state --- latitudesh/resource_project.go | 8 +++++++- latitudesh/resource_server.go | 8 +++++++- latitudesh/resource_ssh_key.go | 8 +++++++- latitudesh/resource_user_data.go | 8 +++++++- latitudesh/resource_virtual_network.go | 8 +++++++- latitudesh/resource_vlan_assignment.go | 8 +++++++- 6 files changed, 42 insertions(+), 6 deletions(-) diff --git a/latitudesh/resource_project.go b/latitudesh/resource_project.go index ebcbb5c..3f2d172 100644 --- a/latitudesh/resource_project.go +++ b/latitudesh/resource_project.go @@ -3,6 +3,7 @@ package latitudesh import ( "context" "errors" + "net/http" "strings" "time" @@ -84,8 +85,13 @@ func resourceProjectRead(ctx context.Context, d *schema.ResourceData, m interfac projectID := d.Id() - project, _, err := c.Projects.Get(projectID, nil) + project, resp, err := c.Projects.Get(projectID, nil) if err != nil { + if resp.StatusCode == http.StatusNotFound { + d.SetId("") + return diags + } + return diag.FromErr(err) } diff --git a/latitudesh/resource_server.go b/latitudesh/resource_server.go index 2d69798..dc75cab 100644 --- a/latitudesh/resource_server.go +++ b/latitudesh/resource_server.go @@ -2,6 +2,7 @@ package latitudesh import ( "context" + "net/http" "strconv" "time" @@ -131,8 +132,13 @@ func resourceServerRead(ctx context.Context, d *schema.ResourceData, m interface serverID := d.Id() - server, _, err := c.Servers.Get(serverID, nil) + server, resp, err := c.Servers.Get(serverID, nil) if err != nil { + if resp.StatusCode == http.StatusNotFound { + d.SetId("") + return diags + } + return diag.FromErr(err) } diff --git a/latitudesh/resource_ssh_key.go b/latitudesh/resource_ssh_key.go index 6ef1671..e9db6ac 100644 --- a/latitudesh/resource_ssh_key.go +++ b/latitudesh/resource_ssh_key.go @@ -2,6 +2,7 @@ package latitudesh import ( "context" + "net/http" "time" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" @@ -83,8 +84,13 @@ func resourceSSHKeyRead(ctx context.Context, d *schema.ResourceData, m interface keyID := d.Id() - key, _, err := c.SSHKeys.Get(keyID, d.Get("project").(string), nil) + key, resp, err := c.SSHKeys.Get(keyID, d.Get("project").(string), nil) if err != nil { + if resp.StatusCode == http.StatusNotFound { + d.SetId("") + return diags + } + return diag.FromErr(err) } diff --git a/latitudesh/resource_user_data.go b/latitudesh/resource_user_data.go index cb3cd7c..3124445 100644 --- a/latitudesh/resource_user_data.go +++ b/latitudesh/resource_user_data.go @@ -2,6 +2,7 @@ package latitudesh import ( "context" + "net/http" "time" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" @@ -83,8 +84,13 @@ func resourceUserDataRead(ctx context.Context, d *schema.ResourceData, m interfa userDataID := d.Id() - userData, _, err := c.UserData.Get(userDataID, d.Get("project").(string), nil) + userData, resp, err := c.UserData.Get(userDataID, d.Get("project").(string), nil) if err != nil { + if resp.StatusCode == http.StatusNotFound { + d.SetId("") + return diags + } + return diag.FromErr(err) } diff --git a/latitudesh/resource_virtual_network.go b/latitudesh/resource_virtual_network.go index daba2ad..4f9af9f 100644 --- a/latitudesh/resource_virtual_network.go +++ b/latitudesh/resource_virtual_network.go @@ -2,6 +2,7 @@ package latitudesh import ( "context" + "net/http" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -84,8 +85,13 @@ func resourceVirtualNetworkRead(ctx context.Context, d *schema.ResourceData, m i virtualNetworkID := d.Id() - virtualNetwork, _, err := c.VirtualNetworks.Get(virtualNetworkID, nil) + virtualNetwork, resp, err := c.VirtualNetworks.Get(virtualNetworkID, nil) if err != nil { + if resp.StatusCode == http.StatusNotFound { + d.SetId("") + return diags + } + return diag.FromErr(err) } diff --git a/latitudesh/resource_vlan_assignment.go b/latitudesh/resource_vlan_assignment.go index 421c5d6..dc196c6 100644 --- a/latitudesh/resource_vlan_assignment.go +++ b/latitudesh/resource_vlan_assignment.go @@ -2,6 +2,7 @@ package latitudesh import ( "context" + "net/http" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -92,8 +93,13 @@ func resourceVlanAssignmentRead(ctx context.Context, d *schema.ResourceData, m i vlanAssignmentID := d.Id() - vlanAssignment, _, err := c.VlanAssignments.Get(vlanAssignmentID) + vlanAssignment, resp, err := c.VlanAssignments.Get(vlanAssignmentID) if err != nil { + if resp.StatusCode == http.StatusNotFound { + d.SetId("") + return diags + } + return diag.FromErr(err) }