Skip to content

Commit 9911f5c

Browse files
sushmitha Mhkantare
authored andcommitted
listing all the connection for transit gateway over the pagination set
1 parent 6e796b7 commit 9911f5c

File tree

3 files changed

+79
-68
lines changed

3 files changed

+79
-68
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ require (
2323
github.com/IBM/ibm-hpcs-tke-sdk v0.0.0-20211109141421-a4b61b05f7d1
2424
github.com/IBM/ibm-hpcs-uko-sdk v0.0.20-beta
2525
github.com/IBM/keyprotect-go-client v0.12.2
26-
github.com/IBM/networking-go-sdk v0.42.2
26+
github.com/IBM/networking-go-sdk v0.44.0
2727
github.com/IBM/platform-services-go-sdk v0.55.0
2828
github.com/IBM/project-go-sdk v0.1.6
2929
github.com/IBM/push-notifications-go-sdk v0.0.0-20210310100607-5790b96c47f5
@@ -98,7 +98,7 @@ require (
9898
github.com/fatih/color v1.15.0 // indirect
9999
github.com/frankban/quicktest v1.14.3 // indirect
100100
github.com/fsnotify/fsnotify v1.7.0 // indirect
101-
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
101+
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
102102
github.com/go-jose/go-jose/v3 v3.0.1 // indirect
103103
github.com/go-logr/logr v1.3.0 // indirect
104104
github.com/go-logr/stdr v1.2.2 // indirect

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ github.com/IBM/keyprotect-go-client v0.12.2 h1:Cjxcqin9Pl0xz3MnxdiVd4v/eIa79xL3h
156156
github.com/IBM/keyprotect-go-client v0.12.2/go.mod h1:yr8h2noNgU8vcbs+vhqoXp3Lmv73PI0zAc6VMgFvWwM=
157157
github.com/IBM/mqcloud-go-sdk v0.0.4 h1:gqMpoU5a0qJ0GETG4PQrkgeEEoaQLvbxRJnEe6ytvC4=
158158
github.com/IBM/mqcloud-go-sdk v0.0.4/go.mod h1:gQptHC6D+rxfg0muRFFGvTDmvl4YfiDE0uXkaRRewRk=
159-
github.com/IBM/networking-go-sdk v0.42.2 h1:caqjx4jyFHi10Vlf3skHvlL6K3YJRVstsmCBmvdyqkA=
160-
github.com/IBM/networking-go-sdk v0.42.2/go.mod h1:lTUZwtUkMANMnrLHFIgRhHrkBfwASY/Iho1fabaPHxo=
159+
github.com/IBM/networking-go-sdk v0.44.0 h1:6acyMd6hwxcjK3bJ2suiUBTjzg8mRFAvYD76zbx0adk=
160+
github.com/IBM/networking-go-sdk v0.44.0/go.mod h1:XtqYRInR5NHmFUXhOL6RovpDdv6PnJfZ1lPFvssA8MA=
161161
github.com/IBM/platform-services-go-sdk v0.55.0 h1:W598xZanL61bwd8O2DQexr4qjIr+/tP0Y845zoms5yA=
162162
github.com/IBM/platform-services-go-sdk v0.55.0/go.mod h1:CWSprvsCsXWvujmBzbtoJSmbRZS9FVV3O594b0t/GiM=
163163
github.com/IBM/project-go-sdk v0.1.6 h1:sGrR0ej5wgBDhR2Xvf8Tgi5NmgMAJ77yep/CPGhvOx8=
@@ -443,8 +443,8 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4
443443
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
444444
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
445445
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
446-
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
447-
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
446+
github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
447+
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
448448
github.com/gammazero/deque v0.0.0-20190130191400-2afb3858e9c7/go.mod h1:GeIq9qoE43YdGnDXURnmKTnGg15pQz4mYkXSTChbneI=
449449
github.com/gammazero/workerpool v0.0.0-20190406235159-88d534f22b56/go.mod h1:w9RqFVO2BM3xwWEcAB8Fwp0OviTBBEiRmSBDfbXnd3w=
450450
github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=

ibm/service/transitgateway/data_source_ibm_tg_gateway.go

Lines changed: 73 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ import (
77
"fmt"
88
"log"
99

10-
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate"
1110
"github.com/IBM/networking-go-sdk/transitgatewayapisv1"
1211
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12+
13+
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex"
14+
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate"
1315
)
1416

1517
const (
@@ -195,94 +197,103 @@ func dataSourceIBMTransitGatewayConnectionsRead(d *schema.ResourceData, meta int
195197
if err != nil {
196198
return err
197199
}
200+
startSub := ""
198201
listTransitGatewayConnectionsOptions := &transitgatewayapisv1.ListTransitGatewayConnectionsOptions{}
199202
tgGatewayId := d.Id()
200203
log.Println("tgGatewayId: ", tgGatewayId)
201204

202205
listTransitGatewayConnectionsOptions.SetTransitGatewayID(tgGatewayId)
203-
listTGConnections, response, err := client.ListTransitGatewayConnections(listTransitGatewayConnectionsOptions)
204-
if err != nil {
205-
return fmt.Errorf("[ERROR] Error while listing transit gateway connections %s\n%s", err, response)
206-
}
207206
connections := make([]map[string]interface{}, 0)
207+
for {
208208

209-
for _, instance := range listTGConnections.Connections {
210-
tgConn := map[string]interface{}{}
211-
212-
if instance.ID != nil {
213-
tgConn[ID] = *instance.ID
209+
if startSub != "" {
210+
listTransitGatewayConnectionsOptions.Start = &startSub
214211
}
215-
if instance.Name != nil {
216-
tgConn[tgConnName] = *instance.Name
217-
}
218-
if instance.NetworkType != nil {
219-
tgConn[tgNetworkType] = *instance.NetworkType
212+
listTGConnections, response, err := client.ListTransitGatewayConnections(listTransitGatewayConnectionsOptions)
213+
if err != nil {
214+
return fmt.Errorf("[ERROR] Error while listing transit gateway connections %s\n%s", err, response)
220215
}
216+
for _, instance := range listTGConnections.Connections {
217+
tgConn := map[string]interface{}{}
221218

222-
if instance.NetworkID != nil {
223-
tgConn[tgNetworkId] = *instance.NetworkID
224-
}
225-
if instance.NetworkAccountID != nil {
226-
tgConn[tgNetworkAccountID] = *instance.NetworkAccountID
227-
}
219+
if instance.ID != nil {
220+
tgConn[ID] = *instance.ID
221+
}
222+
if instance.Name != nil {
223+
tgConn[tgConnName] = *instance.Name
224+
}
225+
if instance.NetworkType != nil {
226+
tgConn[tgNetworkType] = *instance.NetworkType
227+
}
228228

229-
if instance.BaseConnectionID != nil {
230-
tgConn[tgBaseConnectionId] = *instance.BaseConnectionID
231-
}
229+
if instance.NetworkID != nil {
230+
tgConn[tgNetworkId] = *instance.NetworkID
231+
}
232+
if instance.NetworkAccountID != nil {
233+
tgConn[tgNetworkAccountID] = *instance.NetworkAccountID
234+
}
232235

233-
if instance.BaseNetworkType != nil {
234-
tgConn[tgBaseNetworkType] = *instance.BaseNetworkType
235-
}
236+
if instance.BaseConnectionID != nil {
237+
tgConn[tgBaseConnectionId] = *instance.BaseConnectionID
238+
}
236239

237-
if instance.LocalBgpAsn != nil {
238-
tgConn[tgLocalBgpAsn] = *instance.LocalBgpAsn
239-
}
240+
if instance.BaseNetworkType != nil {
241+
tgConn[tgBaseNetworkType] = *instance.BaseNetworkType
242+
}
240243

241-
if instance.LocalGatewayIp != nil {
242-
tgConn[tgLocalGatewayIp] = *instance.LocalGatewayIp
243-
}
244+
if instance.LocalBgpAsn != nil {
245+
tgConn[tgLocalBgpAsn] = *instance.LocalBgpAsn
246+
}
244247

245-
if instance.LocalTunnelIp != nil {
246-
tgConn[tgLocalTunnelIp] = *instance.LocalTunnelIp
247-
}
248+
if instance.LocalGatewayIp != nil {
249+
tgConn[tgLocalGatewayIp] = *instance.LocalGatewayIp
250+
}
248251

249-
if instance.RemoteBgpAsn != nil {
250-
tgConn[tgRemoteBgpAsn] = *instance.RemoteBgpAsn
251-
}
252+
if instance.LocalTunnelIp != nil {
253+
tgConn[tgLocalTunnelIp] = *instance.LocalTunnelIp
254+
}
252255

253-
if instance.RemoteGatewayIp != nil {
254-
tgConn[tgRemoteGatewayIp] = *instance.RemoteGatewayIp
255-
}
256+
if instance.RemoteBgpAsn != nil {
257+
tgConn[tgRemoteBgpAsn] = *instance.RemoteBgpAsn
258+
}
256259

257-
if instance.RemoteTunnelIp != nil {
258-
tgConn[tgRemoteTunnelIp] = *instance.RemoteTunnelIp
259-
}
260+
if instance.RemoteGatewayIp != nil {
261+
tgConn[tgRemoteGatewayIp] = *instance.RemoteGatewayIp
262+
}
260263

261-
if instance.Zone != nil {
262-
tgConn[tgZone] = *instance.Zone.Name
263-
}
264+
if instance.RemoteTunnelIp != nil {
265+
tgConn[tgRemoteTunnelIp] = *instance.RemoteTunnelIp
266+
}
264267

265-
if instance.Mtu != nil {
266-
tgConn[tgMtu] = *instance.Mtu
267-
}
268+
if instance.Zone != nil {
269+
tgConn[tgZone] = *instance.Zone.Name
270+
}
268271

269-
if instance.CreatedAt != nil {
270-
tgConn[tgConectionCreatedAt] = instance.CreatedAt.String()
272+
if instance.Mtu != nil {
273+
tgConn[tgMtu] = *instance.Mtu
274+
}
271275

272-
}
273-
if instance.UpdatedAt != nil {
274-
tgConn[tgUpdatedAt] = instance.UpdatedAt.String()
276+
if instance.CreatedAt != nil {
277+
tgConn[tgConectionCreatedAt] = instance.CreatedAt.String()
275278

276-
}
277-
if instance.Status != nil {
278-
tgConn[tgConnectionStatus] = *instance.Status
279-
}
279+
}
280+
if instance.UpdatedAt != nil {
281+
tgConn[tgUpdatedAt] = instance.UpdatedAt.String()
280282

281-
connections = append(connections, tgConn)
283+
}
284+
if instance.Status != nil {
285+
tgConn[tgConnectionStatus] = *instance.Status
286+
}
287+
288+
connections = append(connections, tgConn)
282289

290+
}
291+
startSub = flex.GetNext(listTGConnections.Next)
292+
if startSub == "" {
293+
break
294+
}
283295
}
284296
d.Set(tgConnections, connections)
285-
286297
return nil
287298

288299
}

0 commit comments

Comments
 (0)