Skip to content

Commit

Permalink
provider/vsphere: read gateway and ipv6_gateway
Browse files Browse the repository at this point in the history
read gateway and ipv6_gateway information for vsphere_virtual_machine resources.
  • Loading branch information
thetuxkeeper authored and jen20 committed May 11, 2016
1 parent 250ee8d commit 5984f84
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
25 changes: 25 additions & 0 deletions builtin/providers/vsphere/resource_vsphere_virtual_machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -795,6 +795,31 @@ func resourceVSphereVirtualMachineRead(d *schema.ResourceData, meta interface{})
networkInterfaces = append(networkInterfaces, networkInterface)
}
}
if mvm.Guest.IpStack != nil {
for _, v := range mvm.Guest.IpStack {
if v.IpRouteConfig != nil && v.IpRouteConfig.IpRoute != nil {
for _, route := range v.IpRouteConfig.IpRoute {
if route.Gateway.Device != "" {
gatewaySetting := ""
if route.Network == "::" {
gatewaySetting = "ipv6_gateway"
} else if route.Network == "0.0.0.0" {
gatewaySetting = "ipv4_gateway"
}
if gatewaySetting != "" {
deviceID, err := strconv.Atoi(route.Gateway.Device)
if err != nil {
log.Printf("[WARN] error at processing %s of device id %#v: %#v", gatewaySetting, route.Gateway.Device, err)
} else {
log.Printf("[DEBUG] %s of device id %d: %s", gatewaySetting, deviceID, route.Gateway.IpAddress)
networkInterfaces[deviceID][gatewaySetting] = route.Gateway.IpAddress
}
}
}
}
}
}
}
log.Printf("[DEBUG] networkInterfaces: %#v", networkInterfaces)
err = d.Set("network_interface", networkInterfaces)
if err != nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ func TestAccVSphereVirtualMachine_basic(t *testing.T) {
gateway,
label,
ip_address,
gateway,
datastoreOpt,
template,
),
Expand Down Expand Up @@ -111,6 +112,7 @@ func TestAccVSphereVirtualMachine_diskInitType(t *testing.T) {
gateway,
label,
ip_address,
gateway,
datastoreOpt,
template,
),
Expand Down Expand Up @@ -490,6 +492,7 @@ func TestAccVSphereVirtualMachine_createWithExistingVmdk(t *testing.T) {
gateway,
label,
ip_address,
gateway,
datastoreOpt,
vmdk_path,
),
Expand Down Expand Up @@ -935,6 +938,7 @@ resource "vsphere_virtual_machine" "foo" {
label = "%s"
ipv4_address = "%s"
ipv4_prefix_length = 24
ipv4_gateway = "%s"
}
disk {
%s
Expand All @@ -958,6 +962,7 @@ resource "vsphere_virtual_machine" "thin" {
label = "%s"
ipv4_address = "%s"
ipv4_prefix_length = 24
ipv4_gateway = "%s"
}
disk {
%s
Expand Down Expand Up @@ -1078,6 +1083,7 @@ resource "vsphere_virtual_machine" "with_existing_vmdk" {
label = "%s"
ipv4_address = "%s"
ipv4_prefix_length = 24
ipv4_gateway = "%s"
}
disk {
%s
Expand Down

0 comments on commit 5984f84

Please sign in to comment.