From 9fb55a9799d21db565761dad3c9f701a7d4c565b Mon Sep 17 00:00:00 2001 From: Riley Karson Date: Mon, 17 Dec 2018 13:38:00 -0800 Subject: [PATCH] [Terraform]: Remove inferred zone from region on Disk import (#1073) Merged PR #1073. --- products/compute/terraform.yaml | 1 - templates/terraform/post_import/disk.erb | 26 ------------------------ third_party/terraform/utils/utils.go | 25 ----------------------- 3 files changed, 52 deletions(-) delete mode 100644 templates/terraform/post_import/disk.erb diff --git a/products/compute/terraform.yaml b/products/compute/terraform.yaml index e5f75b5dc4fc..2f396e6751d1 100644 --- a/products/compute/terraform.yaml +++ b/products/compute/terraform.yaml @@ -152,7 +152,6 @@ overrides: !ruby/object:Provider::ResourceOverrides These images can be referred by family name here. custom_code: !ruby/object:Provider::Terraform::CustomCode pre_delete: templates/terraform/pre_delete/detach_disk.erb - post_import: templates/terraform/post_import/disk.erb constants: templates/terraform/constants/disk.erb encoder: templates/terraform/encoders/disk.erb extra_schema_entry: templates/terraform/extra_schema_entry/disk.erb diff --git a/templates/terraform/post_import/disk.erb b/templates/terraform/post_import/disk.erb deleted file mode 100644 index 5dc8f6fb3fc3..000000000000 --- a/templates/terraform/post_import/disk.erb +++ /dev/null @@ -1,26 +0,0 @@ -// In the end, it's possible that someone has tried to import -// a disk using only the region. To find out what zone the -// disk is in, we need to check every zone in the region, to -// see if we can find a disk with the same name. This will -// find the first disk in the specified region with a matching -// name. There might be multiple matching disks - we're not -// considering that an error case here. We don't check for it. -if zone, err := getZone(d, config); err != nil || zone == "" { - project, err := getProject(d, config) - if err != nil { - return nil, err - } - region, err := getRegion(d, config) - if err != nil { - return nil, err - } - - getDisk := func(zone string) (interface{}, error) { - return config.clientCompute.Disks.Get(project, zone, d.Id()).Do() - } - resource, err := getZonalResourceFromRegion(getDisk, region, config.clientCompute, project) - if err != nil { - return nil, err - } - d.Set("zone", resource.(*compute.Disk).Zone) -} diff --git a/third_party/terraform/utils/utils.go b/third_party/terraform/utils/utils.go index 85566f4e4cc5..b080b9a8c876 100644 --- a/third_party/terraform/utils/utils.go +++ b/third_party/terraform/utils/utils.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" - "google.golang.org/api/compute/v1" "google.golang.org/api/googleapi" ) @@ -62,30 +61,6 @@ func getProjectFromDiff(d *schema.ResourceDiff, config *Config) (string, error) return "", fmt.Errorf("%s: required field is not set", "project") } -func getZonalResourceFromRegion(getResource func(string) (interface{}, error), region string, compute *compute.Service, project string) (interface{}, error) { - zoneList, err := compute.Zones.List(project).Do() - if err != nil { - return nil, err - } - var resource interface{} - for _, zone := range zoneList.Items { - if strings.Contains(zone.Name, region) { - resource, err = getResource(zone.Name) - if err != nil { - if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 { - // Resource was not found in this zone - continue - } - return nil, fmt.Errorf("Error reading Resource: %s", err) - } - // Resource was found - return resource, nil - } - } - // Resource does not exist in this region - return nil, nil -} - func getRouterLockName(region string, router string) string { return fmt.Sprintf("router/%s/%s", region, router) }