Skip to content

Commit 4e9f4cf

Browse files
authored
Migrate resource_project_usage_export_bucket.go.tmpl to use transport_tpg.SendRequest (GoogleCloudPlatform#17429)
1 parent 1c1377d commit 4e9f4cf

1 file changed

Lines changed: 51 additions & 18 deletions

File tree

mmv1/third_party/terraform/services/compute/resource_project_usage_export_bucket.go.tmpl

Lines changed: 51 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,6 @@ import (
1111

1212
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff"
1313
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
14-
15-
{{ if eq $.TargetVersionName `ga` }}
16-
"google.golang.org/api/compute/v1"
17-
{{- else }}
18-
compute "google.golang.org/api/compute/v0.beta"
19-
{{- end }}
2014
)
2115

2216
func ResourceProjectUsageBucket() *schema.Resource {
@@ -69,7 +63,7 @@ func ResourceProjectUsageBucket() *schema.Resource {
6963

7064
func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) error {
7165
config := meta.(*transport_tpg.Config)
72-
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
66+
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
7367
if err != nil {
7468
return err
7569
}
@@ -79,12 +73,24 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er
7973
return err
8074
}
8175

82-
p, err := NewClient(config, userAgent).Projects.Get(project).Do()
76+
url, err := tpgresource.ReplaceVars(d, config, "{{"{{"}}ComputeBasePath{{"}}"}}")
77+
if err != nil {
78+
return err
79+
}
80+
url = fmt.Sprintf("%sprojects/%s", url, project)
81+
p, err := transport_tpg.SendRequest(transport_tpg.SendRequestOptions{
82+
Config: config,
83+
Method: "GET",
84+
Project: project,
85+
RawURL: url,
86+
UserAgent: userAgent,
87+
})
8388
if err != nil {
8489
return transport_tpg.HandleNotFoundError(err, d, fmt.Sprintf("Project data for project %s", project))
8590
}
8691

87-
if p.UsageExportLocation == nil {
92+
usageExportLocation, ok := p["usageExportLocation"].(map[string]interface{})
93+
if !ok || usageExportLocation == nil {
8894
log.Printf("[WARN] Removing usage export location resource %s because it's not enabled server-side.", project)
8995
d.SetId("")
9096
return nil
@@ -93,10 +99,10 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er
9399
if err := d.Set("project", project); err != nil {
94100
return fmt.Errorf("Error setting project: %s", err)
95101
}
96-
if err := d.Set("prefix", p.UsageExportLocation.ReportNamePrefix); err != nil {
102+
if err := d.Set("prefix", usageExportLocation["reportNamePrefix"]); err != nil {
97103
return fmt.Errorf("Error setting prefix: %s", err)
98104
}
99-
if err := d.Set("bucket_name", p.UsageExportLocation.BucketName); err != nil {
105+
if err := d.Set("bucket_name", usageExportLocation["bucketName"]); err != nil {
100106
return fmt.Errorf("Error setting bucket_name: %s", err)
101107
}
102108

@@ -109,7 +115,7 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er
109115

110116
func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{}) error {
111117
config := meta.(*transport_tpg.Config)
112-
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
118+
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
113119
if err != nil {
114120
return err
115121
}
@@ -119,10 +125,25 @@ func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{})
119125
return err
120126
}
121127

122-
op, err := NewClient(config, userAgent).Projects.SetUsageExportBucket(project, &compute.UsageExportLocation{
123-
ReportNamePrefix: d.Get("prefix").(string),
124-
BucketName: d.Get("bucket_name").(string),
125-
}).Do()
128+
body := map[string]interface{}{
129+
"reportNamePrefix": d.Get("prefix").(string),
130+
"bucketName": d.Get("bucket_name").(string),
131+
}
132+
133+
url, err := tpgresource.ReplaceVars(d, config, "{{"{{"}}ComputeBasePath{{"}}"}}")
134+
if err != nil {
135+
return err
136+
}
137+
url = fmt.Sprintf("%sprojects/%s/setUsageExportBucket", url, project)
138+
op, err := transport_tpg.SendRequest(transport_tpg.SendRequestOptions{
139+
Config: config,
140+
Method: "POST",
141+
Project: project,
142+
RawURL: url,
143+
UserAgent: userAgent,
144+
Body: body,
145+
Timeout: d.Timeout(schema.TimeoutCreate),
146+
})
126147
if err != nil {
127148
return err
128149
}
@@ -156,7 +177,7 @@ func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{})
156177
}
157178

158179
config := meta.(*transport_tpg.Config)
159-
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
180+
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
160181
if err != nil {
161182
return err
162183
}
@@ -166,7 +187,19 @@ func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{})
166187
return err
167188
}
168189

169-
op, err := NewClient(config, userAgent).Projects.SetUsageExportBucket(project, nil).Do()
190+
url, err := tpgresource.ReplaceVars(d, config, "{{"{{"}}ComputeBasePath{{"}}"}}")
191+
if err != nil {
192+
return err
193+
}
194+
url = fmt.Sprintf("%sprojects/%s/setUsageExportBucket", url, project)
195+
op, err := transport_tpg.SendRequest(transport_tpg.SendRequestOptions{
196+
Config: config,
197+
Method: "POST",
198+
Project: project,
199+
RawURL: url,
200+
UserAgent: userAgent,
201+
Timeout: d.Timeout(schema.TimeoutDelete),
202+
})
170203
if err != nil {
171204
return err
172205
}

0 commit comments

Comments
 (0)