Skip to content

Commit bf1b3a2

Browse files
committed
remove switch statements between api versions for compute
1 parent 662d38d commit bf1b3a2

13 files changed

+147
-775
lines changed

google/api_versions.go

-12
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,6 @@ func getApiVersion(d TerraformResourceData, resourceVersion ApiVersion, features
117117
return maxVersionFunc(versions)
118118
}
119119

120-
func getComputeApiVersion(d TerraformResourceData, resourceVersion ApiVersion, features []Feature) ApiVersion {
121-
return getApiVersion(d, resourceVersion, features, maxComputeVersion)
122-
}
123-
124120
func getContainerApiVersion(d TerraformResourceData, resourceVersion ApiVersion, features []Feature) ApiVersion {
125121
return getApiVersion(d, resourceVersion, features, maxContainerVersion)
126122
}
@@ -146,10 +142,6 @@ func getApiVersionUpdate(d TerraformResourceData, resourceVersion ApiVersion, fe
146142
return maxVersionFunc(versions)
147143
}
148144

149-
func getComputeApiVersionUpdate(d TerraformResourceData, resourceVersion ApiVersion, features, updateOnlyFields []Feature) ApiVersion {
150-
return getApiVersionUpdate(d, resourceVersion, features, updateOnlyFields, maxComputeVersion)
151-
}
152-
153145
func getContainerApiVersionUpdate(d TerraformResourceData, resourceVersion ApiVersion, features, updateOnlyFields []Feature) ApiVersion {
154146
return getApiVersionUpdate(d, resourceVersion, features, updateOnlyFields, maxContainerVersion)
155147
}
@@ -245,10 +237,6 @@ func maxVersion(versionsInUse map[ApiVersion]struct{}, orderedVersions []ApiVers
245237
return orderedVersions[len(orderedVersions)-1]
246238
}
247239

248-
func maxComputeVersion(versionsInUse map[ApiVersion]struct{}) ApiVersion {
249-
return maxVersion(versionsInUse, OrderedComputeApiVersions)
250-
}
251-
252240
func maxContainerVersion(versionsInUse map[ApiVersion]struct{}) ApiVersion {
253241
return maxVersion(versionsInUse, OrderedContainerApiVersions)
254242
}

google/data_source_google_compute_subnetwork.go

+5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55

66
"github.com/hashicorp/terraform/helper/schema"
7+
computeBeta "google.golang.org/api/compute/v0.beta"
78
"google.golang.org/api/compute/v1"
89
)
910

@@ -123,3 +124,7 @@ func flattenSecondaryRanges(secondaryRanges []*compute.SubnetworkSecondaryRange)
123124
func createSubnetID(s *compute.Subnetwork) string {
124125
return fmt.Sprintf("%s/%s", s.Region, s.Name)
125126
}
127+
128+
func createSubnetIDBeta(s *computeBeta.Subnetwork) string {
129+
return fmt.Sprintf("%s/%s", s.Region, s.Name)
130+
}

google/resource_compute_backend_service.go

+3-23
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ import (
1212
compute "google.golang.org/api/compute/v1"
1313
)
1414

15-
var BackendServiceBaseApiVersion = v1
16-
var BackendServiceVersionedFeatures = []Feature{Feature{Version: v0beta, Item: "security_policy"}}
17-
1815
func resourceComputeBackendService() *schema.Resource {
1916
return &schema.Resource{
2017
Create: resourceComputeBackendServiceCreate,
@@ -288,33 +285,16 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{
288285
}
289286

290287
func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{}) error {
291-
computeApiVersion := getComputeApiVersion(d, BackendServiceBaseApiVersion, BackendServiceVersionedFeatures)
292288
config := meta.(*Config)
293289

294290
project, err := getProject(d, config)
295291
if err != nil {
296292
return err
297293
}
298294

299-
service := &computeBeta.BackendService{}
300-
switch computeApiVersion {
301-
case v1:
302-
v1Service, err := config.clientCompute.BackendServices.Get(
303-
project, d.Id()).Do()
304-
if err != nil {
305-
return handleNotFoundError(err, d, fmt.Sprintf("Backend Service %q", d.Get("name").(string)))
306-
}
307-
err = Convert(v1Service, service)
308-
if err != nil {
309-
return err
310-
}
311-
case v0beta:
312-
var err error
313-
service, err = config.clientComputeBeta.BackendServices.Get(
314-
project, d.Id()).Do()
315-
if err != nil {
316-
return handleNotFoundError(err, d, fmt.Sprintf("Backend Service %q", d.Get("name").(string)))
317-
}
295+
service, err := config.clientComputeBeta.BackendServices.Get(project, d.Id()).Do()
296+
if err != nil {
297+
return handleNotFoundError(err, d, fmt.Sprintf("Backend Service %q", d.Get("name").(string)))
318298
}
319299

320300
d.Set("name", service.Name)

google/resource_compute_firewall.go

+12-90
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,8 @@ import (
1010
"github.com/hashicorp/terraform/helper/validation"
1111

1212
computeBeta "google.golang.org/api/compute/v0.beta"
13-
"google.golang.org/api/compute/v1"
1413
)
1514

16-
var FirewallBaseApiVersion = v1
17-
var FirewallVersionedFeatures = []Feature{}
18-
1915
func resourceComputeFirewall() *schema.Resource {
2016
return &schema.Resource{
2117
Create: resourceComputeFirewallCreate,
@@ -193,7 +189,6 @@ func resourceComputeFirewallRuleHash(v interface{}) int {
193189
}
194190

195191
func resourceComputeFirewallCreate(d *schema.ResourceData, meta interface{}) error {
196-
computeApiVersion := getComputeApiVersion(d, FirewallBaseApiVersion, FirewallVersionedFeatures)
197192
config := meta.(*Config)
198193

199194
project, err := getProject(d, config)
@@ -206,30 +201,9 @@ func resourceComputeFirewallCreate(d *schema.ResourceData, meta interface{}) err
206201
return err
207202
}
208203

209-
var op interface{}
210-
switch computeApiVersion {
211-
case v1:
212-
firewallV1 := &compute.Firewall{}
213-
err = Convert(firewall, firewallV1)
214-
if err != nil {
215-
return err
216-
}
217-
218-
op, err = config.clientCompute.Firewalls.Insert(project, firewallV1).Do()
219-
if err != nil {
220-
return fmt.Errorf("Error creating firewall: %s", err)
221-
}
222-
case v0beta:
223-
firewallV0Beta := &computeBeta.Firewall{}
224-
err = Convert(firewall, firewallV0Beta)
225-
if err != nil {
226-
return err
227-
}
228-
229-
op, err = config.clientComputeBeta.Firewalls.Insert(project, firewallV0Beta).Do()
230-
if err != nil {
231-
return fmt.Errorf("Error creating firewall: %s", err)
232-
}
204+
op, err := config.clientComputeBeta.Firewalls.Insert(project, firewall).Do()
205+
if err != nil {
206+
return fmt.Errorf("Error creating firewall: %s", err)
233207
}
234208

235209
// It probably maybe worked, so store the ID now
@@ -268,36 +242,16 @@ func flattenFirewallDenied(denied []*computeBeta.FirewallDenied) []map[string]in
268242
}
269243

270244
func resourceComputeFirewallRead(d *schema.ResourceData, meta interface{}) error {
271-
computeApiVersion := getComputeApiVersion(d, FirewallBaseApiVersion, FirewallVersionedFeatures)
272245
config := meta.(*Config)
273246

274247
project, err := getProject(d, config)
275248
if err != nil {
276249
return err
277250
}
278251

279-
firewall := &computeBeta.Firewall{}
280-
switch computeApiVersion {
281-
case v1:
282-
firewallV1, err := config.clientCompute.Firewalls.Get(project, d.Id()).Do()
283-
if err != nil {
284-
return handleNotFoundError(err, d, fmt.Sprintf("Firewall %q", d.Get("name").(string)))
285-
}
286-
287-
err = Convert(firewallV1, firewall)
288-
if err != nil {
289-
return err
290-
}
291-
case v0beta:
292-
firewallV0Beta, err := config.clientComputeBeta.Firewalls.Get(project, d.Id()).Do()
293-
if err != nil {
294-
return handleNotFoundError(err, d, fmt.Sprintf("Firewall %q", d.Get("name").(string)))
295-
}
296-
297-
err = Convert(firewallV0Beta, firewall)
298-
if err != nil {
299-
return err
300-
}
252+
firewall, err := config.clientComputeBeta.Firewalls.Get(project, d.Id()).Do()
253+
if err != nil {
254+
return handleNotFoundError(err, d, fmt.Sprintf("Firewall %q", d.Get("name").(string)))
301255
}
302256

303257
d.Set("self_link", ConvertSelfLinkToV1(firewall.SelfLink))
@@ -319,7 +273,6 @@ func resourceComputeFirewallRead(d *schema.ResourceData, meta interface{}) error
319273
}
320274

321275
func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) error {
322-
computeApiVersion := getComputeApiVersionUpdate(d, FirewallBaseApiVersion, FirewallVersionedFeatures, []Feature{})
323276
config := meta.(*Config)
324277

325278
project, err := getProject(d, config)
@@ -334,30 +287,9 @@ func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) err
334287
return err
335288
}
336289

337-
var op interface{}
338-
switch computeApiVersion {
339-
case v1:
340-
firewallV1 := &compute.Firewall{}
341-
err = Convert(firewall, firewallV1)
342-
if err != nil {
343-
return err
344-
}
345-
346-
op, err = config.clientCompute.Firewalls.Update(project, d.Id(), firewallV1).Do()
347-
if err != nil {
348-
return fmt.Errorf("Error updating firewall: %s", err)
349-
}
350-
case v0beta:
351-
firewallV0Beta := &computeBeta.Firewall{}
352-
err = Convert(firewall, firewallV0Beta)
353-
if err != nil {
354-
return err
355-
}
356-
357-
op, err = config.clientComputeBeta.Firewalls.Update(project, d.Id(), firewallV0Beta).Do()
358-
if err != nil {
359-
return fmt.Errorf("Error updating firewall: %s", err)
360-
}
290+
op, err := config.clientComputeBeta.Firewalls.Update(project, d.Id(), firewall).Do()
291+
if err != nil {
292+
return fmt.Errorf("Error updating firewall: %s", err)
361293
}
362294

363295
err = computeSharedOperationWait(config.clientCompute, op, project, "Updating Firewall")
@@ -371,7 +303,6 @@ func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) err
371303
}
372304

373305
func resourceComputeFirewallDelete(d *schema.ResourceData, meta interface{}) error {
374-
computeApiVersion := getComputeApiVersion(d, FirewallBaseApiVersion, FirewallVersionedFeatures)
375306
config := meta.(*Config)
376307

377308
project, err := getProject(d, config)
@@ -380,18 +311,9 @@ func resourceComputeFirewallDelete(d *schema.ResourceData, meta interface{}) err
380311
}
381312

382313
// Delete the firewall
383-
var op interface{}
384-
switch computeApiVersion {
385-
case v1:
386-
op, err = config.clientCompute.Firewalls.Delete(project, d.Id()).Do()
387-
if err != nil {
388-
return fmt.Errorf("Error deleting firewall: %s", err)
389-
}
390-
case v0beta:
391-
op, err = config.clientComputeBeta.Firewalls.Delete(project, d.Id()).Do()
392-
if err != nil {
393-
return fmt.Errorf("Error deleting firewall: %s", err)
394-
}
314+
op, err := config.clientComputeBeta.Firewalls.Delete(project, d.Id()).Do()
315+
if err != nil {
316+
return fmt.Errorf("Error deleting firewall: %s", err)
395317
}
396318

397319
err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting Firewall")

0 commit comments

Comments
 (0)