From 89c95226b528847331295412aff8998a0fecbdd3 Mon Sep 17 00:00:00 2001 From: Roland Urbano Date: Thu, 6 May 2021 11:17:38 +0200 Subject: [PATCH 1/8] Cleanup Code Signed-off-by: Roland Urbano --- anxcloud/resource_virtual_server.go | 58 +++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/anxcloud/resource_virtual_server.go b/anxcloud/resource_virtual_server.go index 0f5f7d86..db36e00b 100644 --- a/anxcloud/resource_virtual_server.go +++ b/anxcloud/resource_virtual_server.go @@ -42,9 +42,9 @@ func resourceVirtualServer() *schema.Resource { Schema: schemaVirtualServer(), CustomizeDiff: customdiff.All( customdiff.ForceNewIf("network", func(ctx context.Context, d *schema.ResourceDiff, meta interface{}) bool { - old, new := d.GetChange("network") + old, newNetworks := d.GetChange("network") oldNets := expandVirtualServerNetworks(old.([]interface{})) - newNets := expandVirtualServerNetworks(new.([]interface{})) + newNets := expandVirtualServerNetworks(newNetworks.([]interface{})) if len(oldNets) > len(newNets) { // some network has been deleted @@ -71,13 +71,18 @@ func resourceVirtualServer() *schema.Resource { } } - if len(n.IPs) != len(oldNets[i].IPs) { + if len(n.IPs) < len(oldNets[i].IPs) { + // IPs are missing key := fmt.Sprintf("network.%d.ips", i) if err := d.ForceNew(key); err != nil { log.Fatalf("[ERROR] unable to force new '%s': %v", key, err) } } else { for j, ip := range n.IPs { + // skip additional IPs + if j >= len(oldNets[i].IPs) { + continue + } if ip != oldNets[i].IPs[j] { key := fmt.Sprintf("network.%d.ips", i) if err := d.ForceNew(key); err != nil { @@ -247,7 +252,6 @@ func resourceVirtualServerCreate(ctx context.Context, d *schema.ResourceData, m if read := resourceVirtualServerRead(ctx, d, m); read.HasError() { return read } - initialDisks := expandVirtualServerDisks(d.Get("disk").([]interface{})) if update := updateVirtualServerDisk(ctx, c, d.Id(), disks, initialDisks); update != nil { return update @@ -321,7 +325,9 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in specNetworks := expandVirtualServerNetworks(d.Get("network").([]interface{})) networks := make([]vm.Network, 0, len(info.Network)) + //networks := specNetworks for i, net := range info.Network { + log.Println("looping VM network: ", i, net) if len(nicTypes) < net.NIC { diags = append(diags, diag.Diagnostic{ Severity: diag.Error, @@ -331,22 +337,43 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in continue } - network := vm.Network{ - NICType: nicTypes[net.NIC-1], - VLAN: net.VLAN, - } + log.Println("VM networks: ", net) + if len(specNetworks) > i { + log.Println("TF networks: ", specNetworks[i]) + expectedIPMap := make(map[string]struct{}, len(specNetworks[i].IPs)) + for _, ip := range specNetworks[i].IPs { + expectedIPMap[ip] = struct{}{} + } - // in spec it's not required to set an IP address - // however when it's set we have to reflect that in the state - if i+1 < len(specNetworks) && len(specNetworks[i].IPs) > 0 { - fmt.Println("add IPs to network") - network.IPs = append(net.IPv4, net.IPv6...) - } + network := vm.Network{ + NICType: nicTypes[net.NIC-1], + VLAN: net.VLAN, + } - networks = append(networks, network) + for _, ipv4 := range net.IPv4 { + if _, ok := expectedIPMap[ipv4]; ok { + log.Println("Adding: ", ipv4) + network.IPs = append(network.IPs, ipv4) + delete(expectedIPMap, ipv4) + } + } + + for _, ipv6 := range net.IPv6 { + if _, ok := expectedIPMap[ipv6]; ok { + log.Println("Adding: ", ipv6) + network.IPs = append(network.IPs, ipv6) + delete(expectedIPMap, ipv6) + } + } + networks = append(networks, network) + + log.Println("remaining expectd networks: ", expectedIPMap) + log.Println("updated network[i]: ", network.IPs) + } } flattenedNetworks := flattenVirtualServerNetwork(networks) + log.Println("flattened networks: ", flattenedNetworks) if err = d.Set("network", flattenedNetworks); err != nil { diags = append(diags, diag.FromErr(err)...) } @@ -356,6 +383,7 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in diags = append(diags, diag.FromErr(err)...) } + log.Println("=====================================") return diags } From 166f2599a974c81bbb5d11a617311ad3429229d4 Mon Sep 17 00:00:00 2001 From: Roland Urbano Date: Fri, 14 May 2021 08:26:10 +0200 Subject: [PATCH 2/8] Improvements on detecting drift on network resource Signed-off-by: Roland Urbano --- anxcloud/resource_virtual_server.go | 119 ++++++++++++++++------------ 1 file changed, 69 insertions(+), 50 deletions(-) diff --git a/anxcloud/resource_virtual_server.go b/anxcloud/resource_virtual_server.go index db36e00b..5e7e4738 100644 --- a/anxcloud/resource_virtual_server.go +++ b/anxcloud/resource_virtual_server.go @@ -51,39 +51,54 @@ func resourceVirtualServer() *schema.Resource { return true } - for i, n := range newNets { + for i, newNet := range newNets { if i+1 > len(oldNets) { // new networks were added break } - if n.VLAN != oldNets[i].VLAN { + if newNet.VLAN != oldNets[i].VLAN { key := fmt.Sprintf("network.%d.vlan_id", i) if err := d.ForceNew(key); err != nil { log.Fatalf("[ERROR] unable to force new '%s': %v", key, err) } } - if n.NICType != oldNets[i].NICType { + if newNet.NICType != oldNets[i].NICType { key := fmt.Sprintf("network.%d.nic_type", i) if err := d.ForceNew(key); err != nil { log.Fatalf("[ERROR] unable to force new '%s': %v", key, err) } } - if len(n.IPs) < len(oldNets[i].IPs) { + if len(newNet.IPs) < len(oldNets[i].IPs) { // IPs are missing key := fmt.Sprintf("network.%d.ips", i) if err := d.ForceNew(key); err != nil { log.Fatalf("[ERROR] unable to force new '%s': %v", key, err) } } else { - for j, ip := range n.IPs { - // skip additional IPs - if j >= len(oldNets[i].IPs) { - continue + info := d.Get("info").([]interface{}) + infoObject := info[0].(map[string]interface{}) + infoNetworks := infoObject["network"].([]interface{}) + + vmIPMap := make(map[string]struct{}) + for _, vmNet := range infoNetworks { + vmNetObject := vmNet.(map[string]interface{}) + vmNetObjectIPs := vmNetObject["ips"].([]string) + for _, ip := range vmNetObjectIPs { + vmIPMap[ip] = struct{}{} } - if ip != oldNets[i].IPs[j] { + } + + for j, ip := range newNet.IPs { + // skip additional IPs + if j >= len(oldNets[i].IPs) || ip != oldNets[i].IPs[j] { + // TODO check if new IP is in the VM info + if _, ipExpected := vmIPMap[ip]; ipExpected { + continue + } + key := fmt.Sprintf("network.%d.ips", i) if err := d.ForceNew(key); err != nil { log.Fatalf("[ERROR] unable to force new '%s': %v", key, err) @@ -324,10 +339,11 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in } specNetworks := expandVirtualServerNetworks(d.Get("network").([]interface{})) - networks := make([]vm.Network, 0, len(info.Network)) //networks := specNetworks - for i, net := range info.Network { - log.Println("looping VM network: ", i, net) + //networks := make([]vm.Network, 0, len(info.Network)) + //log.Println("Spec Networks", specNetworks) + for _, net := range info.Network { + // log.Println("looping VM network: ", i, net) if len(nicTypes) < net.NIC { diags = append(diags, diag.Diagnostic{ Severity: diag.Error, @@ -336,43 +352,47 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in }) continue } - - log.Println("VM networks: ", net) - if len(specNetworks) > i { - log.Println("TF networks: ", specNetworks[i]) - expectedIPMap := make(map[string]struct{}, len(specNetworks[i].IPs)) - for _, ip := range specNetworks[i].IPs { - expectedIPMap[ip] = struct{}{} - } - - network := vm.Network{ - NICType: nicTypes[net.NIC-1], - VLAN: net.VLAN, - } - - for _, ipv4 := range net.IPv4 { - if _, ok := expectedIPMap[ipv4]; ok { - log.Println("Adding: ", ipv4) - network.IPs = append(network.IPs, ipv4) - delete(expectedIPMap, ipv4) - } - } - - for _, ipv6 := range net.IPv6 { - if _, ok := expectedIPMap[ipv6]; ok { - log.Println("Adding: ", ipv6) - network.IPs = append(network.IPs, ipv6) - delete(expectedIPMap, ipv6) - } - } - networks = append(networks, network) - - log.Println("remaining expectd networks: ", expectedIPMap) - log.Println("updated network[i]: ", network.IPs) - } - } - - flattenedNetworks := flattenVirtualServerNetwork(networks) + // + // log.Println("VM networks: ", net) + // if len(specNetworks) > i { + // log.Println("TF networks: ", specNetworks[i]) + // expectedIPMap := make(map[string]struct{}, len(specNetworks[i].IPs)) + // for _, ip := range specNetworks[i].IPs { + // expectedIPMap[ip] = struct{}{} + // } + // + // network := vm.Network{ + // NICType: nicTypes[net.NIC-1], + // VLAN: net.VLAN, + // } + // + // for _, ipv4 := range net.IPv4 { + // if _, ok := expectedIPMap[ipv4]; ok { + // log.Println("Adding: ", ipv4) + // network.IPs = append(network.IPs, ipv4) + // delete(expectedIPMap, ipv4) + // } + // } + // + // for _, ipv6 := range net.IPv6 { + // if _, ok := expectedIPMap[ipv6]; ok { + // log.Println("Adding: ", ipv6) + // network.IPs = append(network.IPs, ipv6) + // delete(expectedIPMap, ipv6) + // } + // } + // + // log.Println("remaining expectd networks: ", expectedIPMap) + // for ip := range expectedIPMap { + // network.IPs = append(network.IPs, ip) + // } + // log.Println("updated network[i]: ", network.IPs) + // + // networks = append(networks, network) + // } + } + + flattenedNetworks := flattenVirtualServerNetwork(specNetworks) log.Println("flattened networks: ", flattenedNetworks) if err = d.Set("network", flattenedNetworks); err != nil { diags = append(diags, diag.FromErr(err)...) @@ -383,7 +403,6 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in diags = append(diags, diag.FromErr(err)...) } - log.Println("=====================================") return diags } From 15feefe76e96f26cb306e8c709499e9bdf53297e Mon Sep 17 00:00:00 2001 From: Roland Urbano Date: Tue, 18 May 2021 07:54:07 +0200 Subject: [PATCH 3/8] Reverted some unneccessary changes Signed-off-by: Roland Urbano --- anxcloud/resource_virtual_server.go | 109 +++++++++++++++++----------- 1 file changed, 68 insertions(+), 41 deletions(-) diff --git a/anxcloud/resource_virtual_server.go b/anxcloud/resource_virtual_server.go index 5e7e4738..aad0e832 100644 --- a/anxcloud/resource_virtual_server.go +++ b/anxcloud/resource_virtual_server.go @@ -3,6 +3,7 @@ package anxcloud import ( "context" "fmt" + "github.com/hashicorp/go-multierror" "log" "time" @@ -93,7 +94,7 @@ func resourceVirtualServer() *schema.Resource { for j, ip := range newNet.IPs { // skip additional IPs - if j >= len(oldNets[i].IPs) || ip != oldNets[i].IPs[j] { + if j >= len(oldNets[i].IPs) || ip != oldNets[i].IPs[j] { // TODO check if new IP is in the VM info if _, ipExpected := vmIPMap[ip]; ipExpected { continue @@ -293,6 +294,32 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in return nil } + err = resource.RetryContext(ctx, d.Timeout(schema.TimeoutCreate), func() *resource.RetryError { + //networks = make([]vm.Network, 0, len(info.Network)) + + info, infoErr := vsphereAPI.Info().Get(ctx, d.Id()) + if infoErr != nil { + if err := handleNotFoundError(infoErr); err != nil { + return resource.NonRetryableError(fmt.Errorf("unable to get vm with id '%s': %w", d.Id(), err)) + } + d.SetId("") + return nil + } + var nicErr error + for _, nic := range info.Network { + if len(nic.IPv4) == 0 && len(nic.IPv6) == 0 { + nicErr = multierror.Append(nicErr, fmt.Errorf("missing IPs for NIC")) + } + } + if nicErr != nil { + return resource.RetryableError(nicErr) + } + return nil + }) + if err != nil { + return diag.FromErr(err) + } + nicTypes, err := nicAPI.List(ctx) if err != nil { return diag.FromErr(err) @@ -340,9 +367,9 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in specNetworks := expandVirtualServerNetworks(d.Get("network").([]interface{})) //networks := specNetworks - //networks := make([]vm.Network, 0, len(info.Network)) + networks := make([]vm.Network, 0, len(info.Network)) //log.Println("Spec Networks", specNetworks) - for _, net := range info.Network { + for i, net := range info.Network { // log.Println("looping VM network: ", i, net) if len(nicTypes) < net.NIC { diags = append(diags, diag.Diagnostic{ @@ -352,44 +379,44 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in }) continue } - // - // log.Println("VM networks: ", net) - // if len(specNetworks) > i { - // log.Println("TF networks: ", specNetworks[i]) - // expectedIPMap := make(map[string]struct{}, len(specNetworks[i].IPs)) - // for _, ip := range specNetworks[i].IPs { - // expectedIPMap[ip] = struct{}{} - // } - // - // network := vm.Network{ - // NICType: nicTypes[net.NIC-1], - // VLAN: net.VLAN, - // } - // - // for _, ipv4 := range net.IPv4 { - // if _, ok := expectedIPMap[ipv4]; ok { - // log.Println("Adding: ", ipv4) - // network.IPs = append(network.IPs, ipv4) - // delete(expectedIPMap, ipv4) - // } - // } - // - // for _, ipv6 := range net.IPv6 { - // if _, ok := expectedIPMap[ipv6]; ok { - // log.Println("Adding: ", ipv6) - // network.IPs = append(network.IPs, ipv6) - // delete(expectedIPMap, ipv6) - // } - // } - // - // log.Println("remaining expectd networks: ", expectedIPMap) - // for ip := range expectedIPMap { - // network.IPs = append(network.IPs, ip) - // } - // log.Println("updated network[i]: ", network.IPs) - // - // networks = append(networks, network) - // } + + log.Println("VM networks: ", net) + if len(specNetworks) > i { + log.Println("TF networks: ", specNetworks[i]) + expectedIPMap := make(map[string]struct{}, len(specNetworks[i].IPs)) + for _, ip := range specNetworks[i].IPs { + expectedIPMap[ip] = struct{}{} + } + + network := vm.Network{ + NICType: nicTypes[net.NIC-1], + VLAN: net.VLAN, + } + + for _, ipv4 := range net.IPv4 { + if _, ok := expectedIPMap[ipv4]; ok { + log.Println("Adding: ", ipv4) + network.IPs = append(network.IPs, ipv4) + delete(expectedIPMap, ipv4) + } + } + + for _, ipv6 := range net.IPv6 { + if _, ok := expectedIPMap[ipv6]; ok { + log.Println("Adding: ", ipv6) + network.IPs = append(network.IPs, ipv6) + delete(expectedIPMap, ipv6) + } + } + + log.Println("remaining expectd networks: ", expectedIPMap) + for ip := range expectedIPMap { + network.IPs = append(network.IPs, ip) + } + log.Println("updated network[i]: ", network.IPs) + + networks = append(networks, network) + } } flattenedNetworks := flattenVirtualServerNetwork(specNetworks) From 6978782278967e706d67c3c47c6271be0ca58e30 Mon Sep 17 00:00:00 2001 From: Roland Urbano Date: Wed, 19 May 2021 11:23:57 +0200 Subject: [PATCH 4/8] Code cleanup Signed-off-by: Roland Urbano --- anxcloud/resource_virtual_server.go | 37 ++++++++++------------------- 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/anxcloud/resource_virtual_server.go b/anxcloud/resource_virtual_server.go index aad0e832..24e88ac3 100644 --- a/anxcloud/resource_virtual_server.go +++ b/anxcloud/resource_virtual_server.go @@ -42,6 +42,7 @@ func resourceVirtualServer() *schema.Resource { }, Schema: schemaVirtualServer(), CustomizeDiff: customdiff.All( + customdiff.ValidateChange(), customdiff.ForceNewIf("network", func(ctx context.Context, d *schema.ResourceDiff, meta interface{}) bool { old, newNetworks := d.GetChange("network") oldNets := expandVirtualServerNetworks(old.([]interface{})) @@ -52,6 +53,16 @@ func resourceVirtualServer() *schema.Resource { return true } + // Get the IPs which are associated with the VM from info.network key + vmInfoState := d.Get("info").([]interface{}) + infoObject := expandVirtualServerInfo(vmInfoState) + vmIPMap := make(map[string]struct{}) + for _, vmNet := range infoObject.Network { + for _, ip := range append(vmNet.IPv4, vmNet.IPv6...) { + vmIPMap[ip] = struct{}{} + } + } + for i, newNet := range newNets { if i+1 > len(oldNets) { // new networks were added @@ -79,23 +90,8 @@ func resourceVirtualServer() *schema.Resource { log.Fatalf("[ERROR] unable to force new '%s': %v", key, err) } } else { - info := d.Get("info").([]interface{}) - infoObject := info[0].(map[string]interface{}) - infoNetworks := infoObject["network"].([]interface{}) - - vmIPMap := make(map[string]struct{}) - for _, vmNet := range infoNetworks { - vmNetObject := vmNet.(map[string]interface{}) - vmNetObjectIPs := vmNetObject["ips"].([]string) - for _, ip := range vmNetObjectIPs { - vmIPMap[ip] = struct{}{} - } - } - for j, ip := range newNet.IPs { - // skip additional IPs if j >= len(oldNets[i].IPs) || ip != oldNets[i].IPs[j] { - // TODO check if new IP is in the VM info if _, ipExpected := vmIPMap[ip]; ipExpected { continue } @@ -370,7 +366,7 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in networks := make([]vm.Network, 0, len(info.Network)) //log.Println("Spec Networks", specNetworks) for i, net := range info.Network { - // log.Println("looping VM network: ", i, net) + // log.Println("looping VM network: ", i, net) if len(nicTypes) < net.NIC { diags = append(diags, diag.Diagnostic{ Severity: diag.Error, @@ -380,9 +376,7 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in continue } - log.Println("VM networks: ", net) if len(specNetworks) > i { - log.Println("TF networks: ", specNetworks[i]) expectedIPMap := make(map[string]struct{}, len(specNetworks[i].IPs)) for _, ip := range specNetworks[i].IPs { expectedIPMap[ip] = struct{}{} @@ -395,7 +389,6 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in for _, ipv4 := range net.IPv4 { if _, ok := expectedIPMap[ipv4]; ok { - log.Println("Adding: ", ipv4) network.IPs = append(network.IPs, ipv4) delete(expectedIPMap, ipv4) } @@ -403,24 +396,20 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in for _, ipv6 := range net.IPv6 { if _, ok := expectedIPMap[ipv6]; ok { - log.Println("Adding: ", ipv6) network.IPs = append(network.IPs, ipv6) delete(expectedIPMap, ipv6) } } - log.Println("remaining expectd networks: ", expectedIPMap) for ip := range expectedIPMap { network.IPs = append(network.IPs, ip) } - log.Println("updated network[i]: ", network.IPs) networks = append(networks, network) } } - flattenedNetworks := flattenVirtualServerNetwork(specNetworks) - log.Println("flattened networks: ", flattenedNetworks) + flattenedNetworks := flattenVirtualServerNetwork(networks) if err = d.Set("network", flattenedNetworks); err != nil { diags = append(diags, diag.FromErr(err)...) } From c92adc54c815759a03ebf32881848fffd24e0fc4 Mon Sep 17 00:00:00 2001 From: Roland Urbano Date: Thu, 20 May 2021 15:48:45 +0200 Subject: [PATCH 5/8] go modules cleaned Signed-off-by: Roland Urbano --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 2e7c8c78..a625ec6c 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/google/go-cmp v0.5.2 github.com/google/uuid v1.1.2 // indirect github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 - github.com/hashicorp/go-multierror v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.0 github.com/hashicorp/hcl/v2 v2.6.0 // indirect github.com/hashicorp/terraform-plugin-sdk/v2 v2.4.3 github.com/imdario/mergo v0.3.11 // indirect From 603c1f183627e228a0119eab2374c7ba6853b09f Mon Sep 17 00:00:00 2001 From: Roland Urbano Date: Thu, 20 May 2021 15:50:20 +0200 Subject: [PATCH 6/8] Removed commented code Signed-off-by: Roland Urbano --- anxcloud/resource_virtual_server.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/anxcloud/resource_virtual_server.go b/anxcloud/resource_virtual_server.go index 24e88ac3..ebbc4b1a 100644 --- a/anxcloud/resource_virtual_server.go +++ b/anxcloud/resource_virtual_server.go @@ -362,11 +362,8 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in } specNetworks := expandVirtualServerNetworks(d.Get("network").([]interface{})) - //networks := specNetworks networks := make([]vm.Network, 0, len(info.Network)) - //log.Println("Spec Networks", specNetworks) for i, net := range info.Network { - // log.Println("looping VM network: ", i, net) if len(nicTypes) < net.NIC { diags = append(diags, diag.Diagnostic{ Severity: diag.Error, From 9bb9800316ca946c78393e97ee8aebd88ede8701 Mon Sep 17 00:00:00 2001 From: Roland Urbano Date: Thu, 20 May 2021 15:53:09 +0200 Subject: [PATCH 7/8] Removed debug code Signed-off-by: Roland Urbano --- anxcloud/resource_virtual_server.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/anxcloud/resource_virtual_server.go b/anxcloud/resource_virtual_server.go index ebbc4b1a..299e1889 100644 --- a/anxcloud/resource_virtual_server.go +++ b/anxcloud/resource_virtual_server.go @@ -42,7 +42,6 @@ func resourceVirtualServer() *schema.Resource { }, Schema: schemaVirtualServer(), CustomizeDiff: customdiff.All( - customdiff.ValidateChange(), customdiff.ForceNewIf("network", func(ctx context.Context, d *schema.ResourceDiff, meta interface{}) bool { old, newNetworks := d.GetChange("network") oldNets := expandVirtualServerNetworks(old.([]interface{})) @@ -291,8 +290,6 @@ func resourceVirtualServerRead(ctx context.Context, d *schema.ResourceData, m in } err = resource.RetryContext(ctx, d.Timeout(schema.TimeoutCreate), func() *resource.RetryError { - //networks = make([]vm.Network, 0, len(info.Network)) - info, infoErr := vsphereAPI.Info().Get(ctx, d.Id()) if infoErr != nil { if err := handleNotFoundError(infoErr); err != nil { From d69fbc57a307918e492dad853d64b0b12a8dc1cd Mon Sep 17 00:00:00 2001 From: Roland Urbano Date: Fri, 21 May 2021 12:04:53 +0200 Subject: [PATCH 8/8] Ignore network for import checks on tests Signed-off-by: Roland Urbano --- anxcloud/resource_virtual_server_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anxcloud/resource_virtual_server_test.go b/anxcloud/resource_virtual_server_test.go index d803c65c..1bd12ed3 100644 --- a/anxcloud/resource_virtual_server_test.go +++ b/anxcloud/resource_virtual_server_test.go @@ -91,7 +91,7 @@ func TestAccAnxCloudVirtualServer(t *testing.T) { ResourceName: resourcePath, ImportState: true, ImportStateVerify: true, - ImportStateVerifyIgnore: []string{"cpu_performance_type", "critical_operation_confirmed", "enter_bios_setup", "force_restart_if_needed", "hostname", "password", "template_type"}, + ImportStateVerifyIgnore: []string{"cpu_performance_type", "critical_operation_confirmed", "enter_bios_setup", "force_restart_if_needed", "hostname", "password", "template_type", "network"}, }, }, })