Skip to content

Commit e582f20

Browse files
committed
vultr: fix instance private subnet mask calc
1 parent adfef63 commit e582f20

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

vultr/resource_instance.go

+21-2
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ func resourceInstanceRead(d *schema.ResourceData, meta interface{}) error {
262262

263263
networks, err := client.ListPrivateNetworksForServer(d.Id())
264264
if err != nil {
265-
return fmt.Errorf("Error getting networks for instance (%s): %v", d.Id(), err)
265+
return fmt.Errorf("Error getting private networks for instance (%s): %v", d.Id(), err)
266266
}
267267
nets := make(map[string]string)
268268
var networkIDs []string
@@ -276,13 +276,32 @@ func resourceInstanceRead(d *schema.ResourceData, meta interface{}) error {
276276
return fmt.Errorf("OS ID must be an integer: %v", err)
277277
}
278278

279+
var size int
280+
if instance.InternalIP != "" {
281+
ipv4s, err := client.ListIPv4(d.Id())
282+
if err != nil {
283+
return fmt.Errorf("Error getting IPv4 networks for instance (%s): %v", d.Id(), err)
284+
}
285+
err = func() error {
286+
for _, n := range ipv4s {
287+
if n.IP == instance.InternalIP {
288+
size, _ = parseIPv4Mask(n.Netmask).Size()
289+
return nil
290+
}
291+
}
292+
return fmt.Errorf("no matching address for %q in IPv4 list", instance.InternalIP)
293+
}()
294+
if err != nil {
295+
return fmt.Errorf("Error finding private IPv4 subnet mask for instance (%s): %v", d.Id(), err)
296+
}
297+
}
298+
279299
d.Set("application_id", instance.AppID)
280300
d.Set("cost_per_month", instance.Cost)
281301
d.Set("default_password", instance.DefaultPassword)
282302
d.Set("disk", instance.Disk)
283303
d.Set("firewall_group_id", instance.FirewallGroupID)
284304
d.Set("ipv4_address", instance.MainIP)
285-
size, _ := parseIPv4Mask(instance.NetmaskV4).Size()
286305
d.Set("ipv4_private_cidr", fmt.Sprintf("%s/%d", instance.InternalIP, size))
287306
d.Set("name", instance.Name)
288307
d.Set("networks", nets)

0 commit comments

Comments
 (0)