Skip to content

Commit 7205a71

Browse files
nat-hendersonmodular-magician
authored andcommitted
Autogenerate Subnetwork.
1 parent c7bd0cb commit 7205a71

19 files changed

+894
-546
lines changed

google/provider_compute_gen.go

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ var GeneratedComputeResourcesMap = map[string]*schema.Resource{
2525
"google_compute_https_health_check": resourceComputeHttpsHealthCheck(),
2626
"google_compute_route": resourceComputeRoute(),
2727
"google_compute_ssl_policy": resourceComputeSslPolicy(),
28+
"google_compute_subnetwork": resourceComputeSubnetwork(),
2829
"google_compute_target_http_proxy": resourceComputeTargetHttpProxy(),
2930
"google_compute_target_https_proxy": resourceComputeTargetHttpsProxy(),
3031
"google_compute_target_ssl_proxy": resourceComputeTargetSslProxy(),

google/resource_compute_address.go

+16-10
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package google
1717
import (
1818
"fmt"
1919
"log"
20+
"reflect"
2021
"time"
2122

2223
"github.com/hashicorp/terraform/helper/schema"
@@ -118,43 +119,48 @@ func resourceComputeAddressCreate(d *schema.ResourceData, meta interface{}) erro
118119
return err
119120
}
120121

122+
obj := make(map[string]interface{})
121123
addressProp, err := expandComputeAddressAddress(d.Get("address"), d, config)
122124
if err != nil {
123125
return err
126+
} else if v, ok := d.GetOkExists("address"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, addressProp)) {
127+
obj["address"] = addressProp
124128
}
125129
addressTypeProp, err := expandComputeAddressAddressType(d.Get("address_type"), d, config)
126130
if err != nil {
127131
return err
132+
} else if v, ok := d.GetOkExists("address_type"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, addressTypeProp)) {
133+
obj["addressType"] = addressTypeProp
128134
}
129135
descriptionProp, err := expandComputeAddressDescription(d.Get("description"), d, config)
130136
if err != nil {
131137
return err
138+
} else if v, ok := d.GetOkExists("description"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, descriptionProp)) {
139+
obj["description"] = descriptionProp
132140
}
133141
nameProp, err := expandComputeAddressName(d.Get("name"), d, config)
134142
if err != nil {
135143
return err
144+
} else if v, ok := d.GetOkExists("name"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, nameProp)) {
145+
obj["name"] = nameProp
136146
}
137147
networkTierProp, err := expandComputeAddressNetworkTier(d.Get("network_tier"), d, config)
138148
if err != nil {
139149
return err
150+
} else if v, ok := d.GetOkExists("network_tier"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, networkTierProp)) {
151+
obj["networkTier"] = networkTierProp
140152
}
141153
subnetworkProp, err := expandComputeAddressSubnetwork(d.Get("subnetwork"), d, config)
142154
if err != nil {
143155
return err
156+
} else if v, ok := d.GetOkExists("subnetwork"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, subnetworkProp)) {
157+
obj["subnetwork"] = subnetworkProp
144158
}
145159
regionProp, err := expandComputeAddressRegion(d.Get("region"), d, config)
146160
if err != nil {
147161
return err
148-
}
149-
150-
obj := map[string]interface{}{
151-
"address": addressProp,
152-
"addressType": addressTypeProp,
153-
"description": descriptionProp,
154-
"name": nameProp,
155-
"networkTier": networkTierProp,
156-
"subnetwork": subnetworkProp,
157-
"region": regionProp,
162+
} else if v, ok := d.GetOkExists("region"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, regionProp)) {
163+
obj["region"] = regionProp
158164
}
159165

160166
url, err := replaceVars(d, config, "https://www.googleapis.com/compute/beta/projects/{{project}}/regions/{{region}}/addresses")

google/resource_compute_backend_bucket.go

+19-14
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package google
1717
import (
1818
"fmt"
1919
"log"
20+
"reflect"
2021
"time"
2122

2223
"github.com/hashicorp/terraform/helper/schema"
@@ -85,28 +86,30 @@ func resourceComputeBackendBucketCreate(d *schema.ResourceData, meta interface{}
8586
return err
8687
}
8788

89+
obj := make(map[string]interface{})
8890
bucketNameProp, err := expandComputeBackendBucketBucketName(d.Get("bucket_name"), d, config)
8991
if err != nil {
9092
return err
93+
} else if v, ok := d.GetOkExists("bucket_name"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, bucketNameProp)) {
94+
obj["bucketName"] = bucketNameProp
9195
}
9296
descriptionProp, err := expandComputeBackendBucketDescription(d.Get("description"), d, config)
9397
if err != nil {
9498
return err
99+
} else if v, ok := d.GetOkExists("description"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, descriptionProp)) {
100+
obj["description"] = descriptionProp
95101
}
96102
enableCdnProp, err := expandComputeBackendBucketEnableCdn(d.Get("enable_cdn"), d, config)
97103
if err != nil {
98104
return err
105+
} else if v, ok := d.GetOkExists("enable_cdn"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, enableCdnProp)) {
106+
obj["enableCdn"] = enableCdnProp
99107
}
100108
nameProp, err := expandComputeBackendBucketName(d.Get("name"), d, config)
101109
if err != nil {
102110
return err
103-
}
104-
105-
obj := map[string]interface{}{
106-
"bucketName": bucketNameProp,
107-
"description": descriptionProp,
108-
"enableCdn": enableCdnProp,
109-
"name": nameProp,
111+
} else if v, ok := d.GetOkExists("name"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, nameProp)) {
112+
obj["name"] = nameProp
110113
}
111114

112115
url, err := replaceVars(d, config, "https://www.googleapis.com/compute/v1/projects/{{project}}/global/backendBuckets")
@@ -199,28 +202,30 @@ func resourceComputeBackendBucketUpdate(d *schema.ResourceData, meta interface{}
199202
return err
200203
}
201204

205+
obj := make(map[string]interface{})
202206
bucketNameProp, err := expandComputeBackendBucketBucketName(d.Get("bucket_name"), d, config)
203207
if err != nil {
204208
return err
209+
} else if v, ok := d.GetOkExists("bucket_name"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, bucketNameProp)) {
210+
obj["bucketName"] = bucketNameProp
205211
}
206212
descriptionProp, err := expandComputeBackendBucketDescription(d.Get("description"), d, config)
207213
if err != nil {
208214
return err
215+
} else if v, ok := d.GetOkExists("description"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, descriptionProp)) {
216+
obj["description"] = descriptionProp
209217
}
210218
enableCdnProp, err := expandComputeBackendBucketEnableCdn(d.Get("enable_cdn"), d, config)
211219
if err != nil {
212220
return err
221+
} else if v, ok := d.GetOkExists("enable_cdn"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, enableCdnProp)) {
222+
obj["enableCdn"] = enableCdnProp
213223
}
214224
nameProp, err := expandComputeBackendBucketName(d.Get("name"), d, config)
215225
if err != nil {
216226
return err
217-
}
218-
219-
obj := map[string]interface{}{
220-
"bucketName": bucketNameProp,
221-
"description": descriptionProp,
222-
"enableCdn": enableCdnProp,
223-
"name": nameProp,
227+
} else if v, ok := d.GetOkExists("name"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, nameProp)) {
228+
obj["name"] = nameProp
224229
}
225230

226231
url, err := replaceVars(d, config, "https://www.googleapis.com/compute/v1/projects/{{project}}/global/backendBuckets/{{name}}")

google/resource_compute_disk.go

+31-21
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package google
1717
import (
1818
"fmt"
1919
"log"
20+
"reflect"
2021
"regexp"
2122
"strconv"
2223
"strings"
@@ -434,64 +435,74 @@ func resourceComputeDiskCreate(d *schema.ResourceData, meta interface{}) error {
434435
return err
435436
}
436437

438+
obj := make(map[string]interface{})
437439
descriptionProp, err := expandComputeDiskDescription(d.Get("description"), d, config)
438440
if err != nil {
439441
return err
442+
} else if v, ok := d.GetOkExists("description"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, descriptionProp)) {
443+
obj["description"] = descriptionProp
440444
}
441445
labelsProp, err := expandComputeDiskLabels(d.Get("labels"), d, config)
442446
if err != nil {
443447
return err
448+
} else if v, ok := d.GetOkExists("labels"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, labelsProp)) {
449+
obj["labels"] = labelsProp
444450
}
445451
nameProp, err := expandComputeDiskName(d.Get("name"), d, config)
446452
if err != nil {
447453
return err
454+
} else if v, ok := d.GetOkExists("name"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, nameProp)) {
455+
obj["name"] = nameProp
448456
}
449457
sizeGbProp, err := expandComputeDiskSize(d.Get("size"), d, config)
450458
if err != nil {
451459
return err
460+
} else if v, ok := d.GetOkExists("size"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, sizeGbProp)) {
461+
obj["sizeGb"] = sizeGbProp
452462
}
453463
sourceImageProp, err := expandComputeDiskImage(d.Get("image"), d, config)
454464
if err != nil {
455465
return err
466+
} else if v, ok := d.GetOkExists("image"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, sourceImageProp)) {
467+
obj["sourceImage"] = sourceImageProp
456468
}
457469
typeProp, err := expandComputeDiskType(d.Get("type"), d, config)
458470
if err != nil {
459471
return err
472+
} else if v, ok := d.GetOkExists("type"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, typeProp)) {
473+
obj["type"] = typeProp
460474
}
461475
zoneProp, err := expandComputeDiskZone(d.Get("zone"), d, config)
462476
if err != nil {
463477
return err
478+
} else if v, ok := d.GetOkExists("zone"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, zoneProp)) {
479+
obj["zone"] = zoneProp
464480
}
465481
diskEncryptionKeyProp, err := expandComputeDiskDiskEncryptionKey(d.Get("disk_encryption_key"), d, config)
466482
if err != nil {
467483
return err
484+
} else if v, ok := d.GetOkExists("disk_encryption_key"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, diskEncryptionKeyProp)) {
485+
obj["diskEncryptionKey"] = diskEncryptionKeyProp
468486
}
469487
sourceImageEncryptionKeyProp, err := expandComputeDiskSourceImageEncryptionKey(d.Get("source_image_encryption_key"), d, config)
470488
if err != nil {
471489
return err
490+
} else if v, ok := d.GetOkExists("source_image_encryption_key"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, sourceImageEncryptionKeyProp)) {
491+
obj["sourceImageEncryptionKey"] = sourceImageEncryptionKeyProp
472492
}
473493
sourceSnapshotProp, err := expandComputeDiskSnapshot(d.Get("snapshot"), d, config)
474494
if err != nil {
475495
return err
496+
} else if v, ok := d.GetOkExists("snapshot"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, sourceSnapshotProp)) {
497+
obj["sourceSnapshot"] = sourceSnapshotProp
476498
}
477499
sourceSnapshotEncryptionKeyProp, err := expandComputeDiskSourceSnapshotEncryptionKey(d.Get("source_snapshot_encryption_key"), d, config)
478500
if err != nil {
479501
return err
502+
} else if v, ok := d.GetOkExists("source_snapshot_encryption_key"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, sourceSnapshotEncryptionKeyProp)) {
503+
obj["sourceSnapshotEncryptionKey"] = sourceSnapshotEncryptionKeyProp
480504
}
481505

482-
obj := map[string]interface{}{
483-
"description": descriptionProp,
484-
"labels": labelsProp,
485-
"name": nameProp,
486-
"sizeGb": sizeGbProp,
487-
"sourceImage": sourceImageProp,
488-
"type": typeProp,
489-
"zone": zoneProp,
490-
"diskEncryptionKey": diskEncryptionKeyProp,
491-
"sourceImageEncryptionKey": sourceImageEncryptionKeyProp,
492-
"sourceSnapshot": sourceSnapshotProp,
493-
"sourceSnapshotEncryptionKey": sourceSnapshotEncryptionKeyProp,
494-
}
495506
obj, err = resourceComputeDiskEncoder(d, meta, obj)
496507
if err != nil {
497508
return err
@@ -631,24 +642,23 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error {
631642
return err
632643
}
633644

634-
var obj map[string]interface{}
635645
var url string
636646
var res map[string]interface{}
637647
op := &compute.Operation{}
638648

639649
d.Partial(true)
640650

641651
if d.HasChange("label_fingerprint") || d.HasChange("labels") {
652+
obj := make(map[string]interface{})
642653
labelFingerprintProp := d.Get("label_fingerprint")
654+
obj["labelFingerprint"] = labelFingerprintProp
643655
labelsProp, err := expandComputeDiskLabels(d.Get("labels"), d, config)
644656
if err != nil {
645657
return err
658+
} else if v, ok := d.GetOkExists("labels"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, labelsProp)) {
659+
obj["labels"] = labelsProp
646660
}
647661

648-
obj = map[string]interface{}{
649-
"labelFingerprint": labelFingerprintProp,
650-
"labels": labelsProp,
651-
}
652662
url, err = replaceVars(d, config, "https://www.googleapis.com/compute/v1/projects/{{project}}/zones/{{zone}}/disks/{{name}}/setLabels")
653663
if err != nil {
654664
return err
@@ -675,14 +685,14 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error {
675685
d.SetPartial("labels")
676686
}
677687
if d.HasChange("size") {
688+
obj := make(map[string]interface{})
678689
sizeGbProp, err := expandComputeDiskSize(d.Get("size"), d, config)
679690
if err != nil {
680691
return err
692+
} else if v, ok := d.GetOkExists("size"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, sizeGbProp)) {
693+
obj["sizeGb"] = sizeGbProp
681694
}
682695

683-
obj = map[string]interface{}{
684-
"sizeGb": sizeGbProp,
685-
}
686696
url, err = replaceVars(d, config, "https://www.googleapis.com/compute/v1/projects/{{project}}/zones/{{zone}}/disks/{{name}}/resize")
687697
if err != nil {
688698
return err

google/resource_compute_global_address.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package google
1717
import (
1818
"fmt"
1919
"log"
20+
"reflect"
2021
"time"
2122

2223
"github.com/hashicorp/terraform/helper/schema"
@@ -87,23 +88,24 @@ func resourceComputeGlobalAddressCreate(d *schema.ResourceData, meta interface{}
8788
return err
8889
}
8990

91+
obj := make(map[string]interface{})
9092
descriptionProp, err := expandComputeGlobalAddressDescription(d.Get("description"), d, config)
9193
if err != nil {
9294
return err
95+
} else if v, ok := d.GetOkExists("description"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, descriptionProp)) {
96+
obj["description"] = descriptionProp
9397
}
9498
nameProp, err := expandComputeGlobalAddressName(d.Get("name"), d, config)
9599
if err != nil {
96100
return err
101+
} else if v, ok := d.GetOkExists("name"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, nameProp)) {
102+
obj["name"] = nameProp
97103
}
98104
ipVersionProp, err := expandComputeGlobalAddressIpVersion(d.Get("ip_version"), d, config)
99105
if err != nil {
100106
return err
101-
}
102-
103-
obj := map[string]interface{}{
104-
"description": descriptionProp,
105-
"name": nameProp,
106-
"ipVersion": ipVersionProp,
107+
} else if v, ok := d.GetOkExists("ip_version"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, ipVersionProp)) {
108+
obj["ipVersion"] = ipVersionProp
107109
}
108110

109111
url, err := replaceVars(d, config, "https://www.googleapis.com/compute/v1/projects/{{project}}/global/addresses")

0 commit comments

Comments
 (0)