Skip to content
This repository was archived by the owner on Mar 1, 2023. It is now read-only.

Commit a3e57d9

Browse files
Alexandr Sokolovalexk53
authored andcommitted
update instance interfaces, switch type from set to list
1 parent 0e43cd1 commit a3e57d9

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

gcore/resource_gcore_floatingip.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ func resourceFloatingIP() *schema.Resource {
8282
"fixed_ip_address": &schema.Schema{
8383
Type: schema.TypeString,
8484
Optional: true,
85+
Computed: true,
8586
ValidateDiagFunc: func(val interface{}, key cty.Path) diag.Diagnostics {
8687
v := val.(string)
8788
ip := net.ParseIP(v)
@@ -103,6 +104,7 @@ func resourceFloatingIP() *schema.Resource {
103104
"port_id": &schema.Schema{
104105
Type: schema.TypeString,
105106
Optional: true,
107+
Computed: true,
106108
},
107109
"updated_at": &schema.Schema{
108110
Type: schema.TypeString,

gcore/resource_gcore_instance.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,7 @@ func resourceInstance() *schema.Resource {
161161
},
162162
},
163163
"interface": &schema.Schema{
164-
Type: schema.TypeSet,
165-
Set: interfaceUniqueID,
164+
Type: schema.TypeList,
166165
Required: true,
167166
Elem: &schema.Resource{
168167
Schema: map[string]*schema.Schema{
@@ -180,6 +179,7 @@ func resourceInstance() *schema.Resource {
180179
Type: schema.TypeString,
181180
Description: "required if type is 'subnet' or 'any_subnet'",
182181
Optional: true,
182+
Computed: true,
183183
},
184184
"subnet_id": {
185185
Type: schema.TypeString,
@@ -396,7 +396,7 @@ func resourceInstanceCreate(ctx context.Context, d *schema.ResourceData, m inter
396396
createOpts.Volumes = vs
397397
}
398398

399-
ifs := d.Get("interface").(*schema.Set).List()
399+
ifs := d.Get("interface").([]interface{})
400400
//sort interfaces by 'order' key to attach it in right order
401401
sort.Sort(instanceInterfaces(ifs))
402402
if len(ifs) > 0 {
@@ -533,7 +533,7 @@ func resourceInstanceRead(ctx context.Context, d *schema.ResourceData, m interfa
533533
return diag.FromErr(err)
534534
}
535535

536-
interfaces, err := extractInstanceInterfaceIntoMap(d.Get("interface").(*schema.Set).List())
536+
interfaces, err := extractInstanceInterfaceIntoMap(d.Get("interface").([]interface{}))
537537
if err != nil {
538538
return diag.FromErr(err)
539539
}
@@ -580,7 +580,7 @@ func resourceInstanceRead(ctx context.Context, d *schema.ResourceData, m interfa
580580
cleanInterfaces = append(cleanInterfaces, i)
581581
}
582582
}
583-
if err := d.Set("interface", schema.NewSet(interfaceUniqueID, cleanInterfaces)); err != nil {
583+
if err := d.Set("interface", cleanInterfaces); err != nil {
584584
return diag.FromErr(err)
585585
}
586586

@@ -765,10 +765,10 @@ func resourceInstanceUpdate(ctx context.Context, d *schema.ResourceData, m inter
765765
if d.HasChange("interface") {
766766
ifsOldRaw, ifsNewRaw := d.GetChange("interface")
767767

768-
ifsOld := ifsOldRaw.(*schema.Set)
769-
ifsNew := ifsNewRaw.(*schema.Set)
768+
ifsOld := ifsOldRaw.([]interface{})
769+
ifsNew := ifsNewRaw.([]interface{})
770770

771-
for _, i := range ifsOld.List() {
771+
for _, i := range ifsOld {
772772
iface := i.(map[string]interface{})
773773
var opts instances.InterfaceOpts
774774
opts.PortID = iface["port_id"].(string)
@@ -793,9 +793,8 @@ func resourceInstanceUpdate(ctx context.Context, d *schema.ResourceData, m inter
793793
}
794794
}
795795

796-
sortedNewIfs := ifsNew.List()
797-
sort.Sort(instanceInterfaces(sortedNewIfs))
798-
for _, i := range sortedNewIfs {
796+
sort.Sort(instanceInterfaces(ifsNew))
797+
for _, i := range ifsNew {
799798
iface := i.(map[string]interface{})
800799

801800
iType := types.InterfaceType(iface["type"].(string))

gcore/resource_gcore_reservedfixedip.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,14 @@ func resourceReservedFixedIPRead(ctx context.Context, d *schema.ResourceData, m
247247

248248
reservedFixedIP, err := reservedfixedips.Get(client, d.Id()).Extract()
249249
if err != nil {
250-
return diag.FromErr(err)
250+
switch err.(type) {
251+
case gcorecloud.ErrDefault404:
252+
log.Printf("[WARN] Removing reserved fixed ip %s because resource doesn't exist anymore", d.Id())
253+
d.SetId("")
254+
return nil
255+
default:
256+
return diag.FromErr(err)
257+
}
251258
}
252259

253260
d.Set("project_id", reservedFixedIP.ProjectID)

0 commit comments

Comments
 (0)