Skip to content

Commit a7a9b85

Browse files
modular-magiciandanawillow
authored andcommitted
remove network calls to determine disk type self link (#4054)
Signed-off-by: Modular Magician <[email protected]>
1 parent 8f53416 commit a7a9b85

4 files changed

+12
-47
lines changed

google/disk_type.go

+4-19
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,11 @@
11
package google
22

3-
import (
4-
computeBeta "google.golang.org/api/compute/v0.beta"
5-
"google.golang.org/api/compute/v1"
6-
)
7-
83
// readDiskType finds the disk type with the given name.
9-
func readDiskType(c *Config, zone *compute.Zone, project, name string) (*compute.DiskType, error) {
10-
diskType, err := c.clientCompute.DiskTypes.Get(project, zone.Name, name).Do()
11-
if err == nil && diskType != nil && diskType.SelfLink != "" {
12-
return diskType, nil
13-
} else {
14-
return nil, err
15-
}
4+
func readDiskType(c *Config, d TerraformResourceData, name string) (*ZonalFieldValue, error) {
5+
return parseZonalFieldValue("diskTypes", name, "project", "zone", d, c, false)
166
}
177

188
// readRegionDiskType finds the disk type with the given name.
19-
func readRegionDiskType(c *Config, region *compute.Region, project, name string) (*computeBeta.DiskType, error) {
20-
diskType, err := c.clientComputeBeta.RegionDiskTypes.Get(project, region.Name, name).Do()
21-
if err == nil && diskType != nil && diskType.SelfLink != "" {
22-
return diskType, nil
23-
} else {
24-
return nil, err
25-
}
9+
func readRegionDiskType(c *Config, d TerraformResourceData, name string) (*RegionalFieldValue, error) {
10+
return parseRegionalFieldValue("diskTypes", name, "project", "region", "zone", d, c, false)
2611
}

google/resource_compute_disk.go

+2-12
Original file line numberDiff line numberDiff line change
@@ -1232,26 +1232,16 @@ func resourceComputeDiskEncoder(d *schema.ResourceData, meta interface{}, obj ma
12321232
if err != nil {
12331233
return nil, err
12341234
}
1235-
// Get the zone
1236-
z, err := getZone(d, config)
1237-
if err != nil {
1238-
return nil, err
1239-
}
1240-
zone, err := config.clientCompute.Zones.Get(project, z).Do()
1241-
if err != nil {
1242-
return nil, err
1243-
}
1244-
12451235
if v, ok := d.GetOk("type"); ok {
12461236
log.Printf("[DEBUG] Loading disk type: %s", v.(string))
1247-
diskType, err := readDiskType(config, zone, project, v.(string))
1237+
diskType, err := readDiskType(config, d, v.(string))
12481238
if err != nil {
12491239
return nil, fmt.Errorf(
12501240
"Error loading disk type '%s': %s",
12511241
v.(string), err)
12521242
}
12531243

1254-
obj["type"] = diskType.SelfLink
1244+
obj["type"] = diskType.RelativeLink()
12551245
}
12561246

12571247
if v, ok := d.GetOk("image"); ok {

google/resource_compute_instance.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -1636,11 +1636,11 @@ func expandBootDisk(d *schema.ResourceData, config *Config, zone *compute.Zone,
16361636

16371637
if v, ok := d.GetOk("boot_disk.0.initialize_params.0.type"); ok {
16381638
diskTypeName := v.(string)
1639-
diskType, err := readDiskType(config, zone, project, diskTypeName)
1639+
diskType, err := readDiskType(config, d, diskTypeName)
16401640
if err != nil {
16411641
return nil, fmt.Errorf("Error loading disk type '%s': %s", diskTypeName, err)
16421642
}
1643-
disk.InitializeParams.DiskType = diskType.SelfLink
1643+
disk.InitializeParams.DiskType = diskType.RelativeLink()
16441644
}
16451645

16461646
if v, ok := d.GetOk("boot_disk.0.initialize_params.0.image"); ok {
@@ -1702,7 +1702,7 @@ func flattenBootDisk(d *schema.ResourceData, disk *computeBeta.AttachedDisk, con
17021702
}
17031703

17041704
func expandScratchDisks(d *schema.ResourceData, config *Config, zone *compute.Zone, project string) ([]*computeBeta.AttachedDisk, error) {
1705-
diskType, err := readDiskType(config, zone, project, "local-ssd")
1705+
diskType, err := readDiskType(config, d, "local-ssd")
17061706
if err != nil {
17071707
return nil, fmt.Errorf("Error loading disk type 'local-ssd': %s", err)
17081708
}
@@ -1715,7 +1715,7 @@ func expandScratchDisks(d *schema.ResourceData, config *Config, zone *compute.Zo
17151715
Type: "SCRATCH",
17161716
Interface: d.Get(fmt.Sprintf("scratch_disk.%d.interface", i)).(string),
17171717
InitializeParams: &computeBeta.AttachedDiskInitializeParams{
1718-
DiskType: diskType.SelfLink,
1718+
DiskType: diskType.RelativeLink(),
17191719
},
17201720
})
17211721
}

google/resource_compute_region_disk.go

+2-12
Original file line numberDiff line numberDiff line change
@@ -876,26 +876,16 @@ func resourceComputeRegionDiskEncoder(d *schema.ResourceData, meta interface{},
876876
if err != nil {
877877
return nil, err
878878
}
879-
// Get the region
880-
r, err := getRegion(d, config)
881-
if err != nil {
882-
return nil, err
883-
}
884-
region, err := config.clientCompute.Regions.Get(project, r).Do()
885-
if err != nil {
886-
return nil, err
887-
}
888-
889879
if v, ok := d.GetOk("type"); ok {
890880
log.Printf("[DEBUG] Loading disk type: %s", v.(string))
891-
diskType, err := readRegionDiskType(config, region, project, v.(string))
881+
diskType, err := readRegionDiskType(config, d, v.(string))
892882
if err != nil {
893883
return nil, fmt.Errorf(
894884
"Error loading disk type '%s': %s",
895885
v.(string), err)
896886
}
897887

898-
obj["type"] = diskType.SelfLink
888+
obj["type"] = diskType.RelativeLink()
899889
}
900890

901891
if v, ok := d.GetOk("image"); ok {

0 commit comments

Comments
 (0)