Skip to content

Commit 9f0ed2f

Browse files
deepakibmshkantare
authored andcommitted
issue 2382 added private ip attributes to vpn gateway
1 parent 2a1917a commit 9f0ed2f

File tree

4 files changed

+68
-21
lines changed

4 files changed

+68
-21
lines changed

ibm/data_source_ibm_is_vpn_gateways.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ func dataSourceIBMISVPNGateways() *schema.Resource {
5656
Description: "The public IP address assigned to the VPN gateway member",
5757
},
5858

59+
"private_address": {
60+
Type: schema.TypeString,
61+
Computed: true,
62+
Description: "The private IP address assigned to the VPN gateway member",
63+
},
64+
5965
"role": {
6066
Type: schema.TypeString,
6167
Computed: true,
@@ -154,6 +160,9 @@ func dataSourceIBMVPNGatewaysRead(d *schema.ResourceData, meta interface{}) erro
154160
currentMemberIP["status"] = *memberIP.Status
155161
vpcMembersIpsList = append(vpcMembersIpsList, currentMemberIP)
156162
}
163+
if memberIP.PrivateIP != nil {
164+
currentMemberIP["private_address"] = *memberIP.PrivateIP.Address
165+
}
157166
}
158167
gateway[isVPNGatewayMembers] = vpcMembersIpsList
159168
}

ibm/resource_ibm_is_vpn_gateway.go

Lines changed: 53 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,22 @@ import (
1818
)
1919

2020
const (
21-
isVPNGatewayName = "name"
22-
isVPNGatewayResourceGroup = "resource_group"
23-
isVPNGatewayMode = "mode"
24-
isVPNGatewayTags = "tags"
25-
isVPNGatewaySubnet = "subnet"
26-
isVPNGatewayStatus = "status"
27-
isVPNGatewayDeleting = "deleting"
28-
isVPNGatewayDeleted = "done"
29-
isVPNGatewayProvisioning = "provisioning"
30-
isVPNGatewayProvisioningDone = "done"
31-
isVPNGatewayPublicIPAddress = "public_ip_address"
32-
isVPNGatewayMembers = "members"
33-
isVPNGatewayCreatedAt = "created_at"
34-
isVPNGatewayPublicIPAddress2 = "public_ip_address2"
21+
isVPNGatewayName = "name"
22+
isVPNGatewayResourceGroup = "resource_group"
23+
isVPNGatewayMode = "mode"
24+
isVPNGatewayTags = "tags"
25+
isVPNGatewaySubnet = "subnet"
26+
isVPNGatewayStatus = "status"
27+
isVPNGatewayDeleting = "deleting"
28+
isVPNGatewayDeleted = "done"
29+
isVPNGatewayProvisioning = "provisioning"
30+
isVPNGatewayProvisioningDone = "done"
31+
isVPNGatewayPublicIPAddress = "public_ip_address"
32+
isVPNGatewayMembers = "members"
33+
isVPNGatewayCreatedAt = "created_at"
34+
isVPNGatewayPublicIPAddress2 = "public_ip_address2"
35+
isVPNGatewayPrivateIPAddress = "private_ip_address"
36+
isVPNGatewayPrivateIPAddress2 = "private_ip_address2"
3537
)
3638

3739
func resourceIBMISVPNGateway() *schema.Resource {
@@ -86,13 +88,27 @@ func resourceIBMISVPNGateway() *schema.Resource {
8688
},
8789

8890
isVPNGatewayPublicIPAddress: {
89-
Type: schema.TypeString,
90-
Computed: true,
91+
Type: schema.TypeString,
92+
Computed: true,
93+
Description: "The public IP address assigned to the VPN gateway member.",
9194
},
9295

9396
isVPNGatewayPublicIPAddress2: {
94-
Type: schema.TypeString,
95-
Computed: true,
97+
Type: schema.TypeString,
98+
Computed: true,
99+
Description: "The second public IP address assigned to the VPN gateway member.",
100+
},
101+
102+
isVPNGatewayPrivateIPAddress: {
103+
Type: schema.TypeString,
104+
Computed: true,
105+
Description: "The Private IP address assigned to the VPN gateway member.",
106+
},
107+
108+
isVPNGatewayPrivateIPAddress2: {
109+
Type: schema.TypeString,
110+
Computed: true,
111+
Description: "The Second Private IP address assigned to the VPN gateway member.",
96112
},
97113

98114
isVPNGatewayTags: {
@@ -159,6 +175,12 @@ func resourceIBMISVPNGateway() *schema.Resource {
159175
Description: "The public IP address assigned to the VPN gateway member",
160176
},
161177

178+
"private_address": {
179+
Type: schema.TypeString,
180+
Computed: true,
181+
Description: "The private IP address assigned to the VPN gateway member",
182+
},
183+
162184
"role": {
163185
Type: schema.TypeString,
164186
Computed: true,
@@ -497,9 +519,18 @@ func vpngwGet(d *schema.ResourceData, meta interface{}, id string) error {
497519
for _, member := range vpnGateway.Members {
498520
members = append(members, member)
499521
}
500-
if len(members) > 1 {
522+
if len(members) > 0 {
501523
d.Set(isVPNGatewayPublicIPAddress, *members[0].PublicIP.Address)
524+
if members[0].PrivateIP != nil && members[0].PrivateIP.Address != nil {
525+
d.Set(isVPNGatewayPrivateIPAddress, *members[0].PrivateIP.Address)
526+
}
527+
}
528+
if len(members) > 1 {
502529
d.Set(isVPNGatewayPublicIPAddress2, *members[1].PublicIP.Address)
530+
if members[1].PrivateIP != nil && members[1].PrivateIP.Address != nil {
531+
d.Set(isVPNGatewayPrivateIPAddress2, *members[1].PrivateIP.Address)
532+
}
533+
503534
}
504535
tags, err := GetTagsUsingCRN(meta, *vpnGateway.CRN)
505536
if err != nil {
@@ -530,6 +561,9 @@ func vpngwGet(d *schema.ResourceData, meta interface{}, id string) error {
530561
currentMemberIP["status"] = *memberIP.Status
531562
vpcMembersIpsList = append(vpcMembersIpsList, currentMemberIP)
532563
}
564+
if memberIP.PrivateIP != nil {
565+
currentMemberIP["private_address"] = *memberIP.PrivateIP.Address
566+
}
533567
}
534568
d.Set(isVPNGatewayMembers, vpcMembersIpsList)
535569
}

website/docs/d/is_vpn_gateways.html.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ The following attributes are exported:
3737
* `crn` - The VPN gateway's CRN.
3838
* `members` - Collection of VPN gateway members.
3939
* `address` - The public IP address assigned to the VPN gateway member.
40+
* `private_address` - The private IP address assigned to the VPN gateway member.
4041
* `role` - The high availability role assigned to the VPN gateway member.
4142
* `status` - The status of the VPN gateway member
4243
* `resource_type` - The resource type(vpn_gateway)

website/docs/r/is_vpn_gateway.html.markdown

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,15 @@ In addition to all arguments above, the following attributes are exported:
4848

4949
* `id` - The unique identifier of the VPN gateway.
5050
* `status` - The status of VPN gateway.
51-
* `public_ip_address` - The IP address assigned to this VPN gateway.
52-
* `public_ip_address2` - The Second IP address assigned to this VPN gateway.
51+
* `public_ip_address` - The Public IP address assigned to this VPN gateway member.
52+
* `public_ip_address2` - The Second Public IP address assigned to this VPN gateway member.
53+
* `private_ip_address` - The Private IP address assigned to this VPN gateway member.
54+
* `private_ip_address2` - The Second Private IP address assigned to this VPN gateway.
5355
* `status` - The status of the VPN gateway-(available, deleting, failed, pending).
5456
* `created_at` - The Second IP address assigned to this VPN gateway.
5557
* `members` - Collection of VPN gateway members.
5658
* `address` - The public IP address assigned to the VPN gateway member.
59+
* `private_address` - The private IP address assigned to the VPN gateway member.
5760
* `role` - The high availability role assigned to the VPN gateway member.
5861
* `status` - The status of the VPN gateway member.
5962

0 commit comments

Comments
 (0)