From 46fa59200e436414e59083d130fd8a0735efb5fa Mon Sep 17 00:00:00 2001 From: nsamartsev Date: Thu, 30 Jul 2026 13:27:51 +0200 Subject: [PATCH] Migrated compute subnetworks data source to use transport_tpg.SendRequest --- .../data_source_google_compute_subnetworks.go | 51 ++++++++++++++----- 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/mmv1/third_party/terraform/services/compute/data_source_google_compute_subnetworks.go b/mmv1/third_party/terraform/services/compute/data_source_google_compute_subnetworks.go index 5e06d082a846..85c876a10fe7 100644 --- a/mmv1/third_party/terraform/services/compute/data_source_google_compute_subnetworks.go +++ b/mmv1/third_party/terraform/services/compute/data_source_google_compute_subnetworks.go @@ -94,22 +94,49 @@ func dataSourceGoogleComputeSubnetworksRead(d *schema.ResourceData, meta interfa subnetworks := make([]map[string]interface{}, 0) - subnetworkList, err := NewClient(config, userAgent).Subnetworks.List(project, region).Filter(filter).Do() + baseURL, err := tpgresource.ReplaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/subnetworks") + if err != nil { + return err + } + + params := map[string]string{} + if filter != "" { + params["filter"] = filter + } + url, err := transport_tpg.AddQueryParams(baseURL, params) + if err != nil { + return err + } + + res, err := transport_tpg.SendRequest(transport_tpg.SendRequestOptions{ + Config: config, + Method: "GET", + Project: project, + RawURL: url, + UserAgent: userAgent, + }) if err != nil { return transport_tpg.HandleNotFoundError(err, d, fmt.Sprintf("Subnetworks : %s %s", project, region)) } - for _, subnet := range subnetworkList.Items { - subnetworks = append(subnetworks, map[string]interface{}{ - "description": subnet.Description, - "ip_cidr_range": subnet.IpCidrRange, - "name": subnet.Name, - "network_self_link": filepath.Base(subnet.Network), - "network": subnet.Network, - "network_name": filepath.Base(subnet.Network), - "private_ip_google_access": subnet.PrivateIpGoogleAccess, - "self_link": subnet.SelfLink, - }) + if items, ok := res["items"].([]interface{}); ok { + for _, item := range items { + subnet, ok := item.(map[string]interface{}) + if !ok { + continue + } + network, _ := subnet["network"].(string) + subnetworks = append(subnetworks, map[string]interface{}{ + "description": subnet["description"], + "ip_cidr_range": subnet["ipCidrRange"], + "name": subnet["name"], + "network_self_link": filepath.Base(network), + "network": subnet["network"], + "network_name": filepath.Base(network), + "private_ip_google_access": subnet["privateIpGoogleAccess"], + "self_link": subnet["selfLink"], + }) + } } if err := d.Set("subnetworks", subnetworks); err != nil {