@@ -94,22 +94,49 @@ func dataSourceGoogleComputeSubnetworksRead(d *schema.ResourceData, meta interfa
9494
9595 subnetworks := make ([]map [string ]interface {}, 0 )
9696
97- subnetworkList , err := NewClient (config , userAgent ).Subnetworks .List (project , region ).Filter (filter ).Do ()
97+ baseURL , err := tpgresource .ReplaceVars (d , config , "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/subnetworks" )
98+ if err != nil {
99+ return err
100+ }
101+
102+ params := map [string ]string {}
103+ if filter != "" {
104+ params ["filter" ] = filter
105+ }
106+ url , err := transport_tpg .AddQueryParams (baseURL , params )
107+ if err != nil {
108+ return err
109+ }
110+
111+ res , err := transport_tpg .SendRequest (transport_tpg.SendRequestOptions {
112+ Config : config ,
113+ Method : "GET" ,
114+ Project : project ,
115+ RawURL : url ,
116+ UserAgent : userAgent ,
117+ })
98118 if err != nil {
99119 return transport_tpg .HandleNotFoundError (err , d , fmt .Sprintf ("Subnetworks : %s %s" , project , region ))
100120 }
101121
102- for _ , subnet := range subnetworkList .Items {
103- subnetworks = append (subnetworks , map [string ]interface {}{
104- "description" : subnet .Description ,
105- "ip_cidr_range" : subnet .IpCidrRange ,
106- "name" : subnet .Name ,
107- "network_self_link" : filepath .Base (subnet .Network ),
108- "network" : subnet .Network ,
109- "network_name" : filepath .Base (subnet .Network ),
110- "private_ip_google_access" : subnet .PrivateIpGoogleAccess ,
111- "self_link" : subnet .SelfLink ,
112- })
122+ if items , ok := res ["items" ].([]interface {}); ok {
123+ for _ , item := range items {
124+ subnet , ok := item .(map [string ]interface {})
125+ if ! ok {
126+ continue
127+ }
128+ network , _ := subnet ["network" ].(string )
129+ subnetworks = append (subnetworks , map [string ]interface {}{
130+ "description" : subnet ["description" ],
131+ "ip_cidr_range" : subnet ["ipCidrRange" ],
132+ "name" : subnet ["name" ],
133+ "network_self_link" : filepath .Base (network ),
134+ "network" : subnet ["network" ],
135+ "network_name" : filepath .Base (network ),
136+ "private_ip_google_access" : subnet ["privateIpGoogleAccess" ],
137+ "self_link" : subnet ["selfLink" ],
138+ })
139+ }
113140 }
114141
115142 if err := d .Set ("subnetworks" , subnetworks ); err != nil {
0 commit comments