Skip to content

Commit e41265e

Browse files
Migrate the Compute API lookup in resource_storage_bucket.go.tmpl to use direct HTTP rather than a client library (#18529)
1 parent 87249be commit e41265e

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

mmv1/third_party/terraform/services/storage/resource_storage_bucket.go.tmpl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
"time"
1414

1515
"github.com/hashicorp/terraform-provider-google/google/registry"
16-
compute_tpg "github.com/hashicorp/terraform-provider-google/google/services/compute"
1716
"github.com/hashicorp/terraform-provider-google/google/tpgresource"
1817
transport_tpg "github.com/hashicorp/terraform-provider-google/google/transport"
1918
"github.com/hashicorp/terraform-provider-google/google/verify"
@@ -2484,13 +2483,22 @@ func setStorageBucket(d *schema.ResourceData, config *transport_tpg.Config, res
24842483
// from the projectNumber which is included in the bucket API response
24852484
if d.Get("project") == "" {
24862485
projectName, _ := tpgresource.GetProject(d, config)
2487-
proj, err := compute_tpg.NewClient(config, userAgent).Projects.Get(strconv.FormatUint(res.ProjectNumber, 10)).Do()
2486+
// Resolve the Compute base URL through the registry so that storage does not
2487+
// depend on the compute service package. BaseUrl(Product, ...) would resolve
2488+
// the storage base URL here.
2489+
projectUrl := fmt.Sprintf("%sprojects/%d", transport_tpg.BaseUrl(registry.GetProduct("compute"), config), res.ProjectNumber)
2490+
proj, err := transport_tpg.SendRequest(transport_tpg.SendRequestOptions{
2491+
Config: config,
2492+
Method: "GET",
2493+
RawURL: projectUrl,
2494+
UserAgent: userAgent,
2495+
})
24882496
if err != nil {
24892497
log.Printf("[ERROR] Missing Compute API permissions, fallback to provider/resource default")
24902498
}
24912499

2492-
if proj != nil && projectName != "" && projectName != proj.Name {
2493-
projectName = proj.Name
2500+
if projectID, ok := proj["name"].(string); ok && projectName != "" && projectName != projectID {
2501+
projectName = projectID
24942502
}
24952503
if err := d.Set("project", projectName); err != nil {
24962504
return fmt.Errorf("Error setting project: %s", err)

0 commit comments

Comments
 (0)