Ensure that a terraform plan works if the resource does not exist (but is currently in the tfstate). (#1340)

This commit is contained in:
David Watson 2018-04-18 00:23:16 +01:00 committed by Nathan McKinley
parent 3628e263e2
commit b70db7b40a
2 changed files with 10 additions and 2 deletions

View File

@ -419,7 +419,7 @@ func resourceComputeInstanceGroupManagerRead(d *schema.ResourceData, meta interf
}
manager, err := getManager(d, meta)
if err != nil {
if err != nil || manager == nil {
return err
}

View File

@ -303,6 +303,14 @@ func getRegionalManager(d *schema.ResourceData, meta interface{}) (*computeBeta.
v1Manager := &compute.InstanceGroupManager{}
v1Manager, err = config.clientCompute.RegionInstanceGroupManagers.Get(project, region, d.Id()).Do()
if v1Manager == nil {
log.Printf("[WARN] Removing Region Instance Group Manager %q because it's gone", d.Get("name").(string))
// The resource doesn't exist anymore
d.SetId("")
return nil, nil
}
err = Convert(v1Manager, manager)
if err != nil {
return nil, err
@ -335,7 +343,7 @@ func waitForInstancesRefreshFunc(f getInstanceManagerFunc, d *schema.ResourceDat
func resourceComputeRegionInstanceGroupManagerRead(d *schema.ResourceData, meta interface{}) error {
config := meta.(*Config)
manager, err := getRegionalManager(d, meta)
if err != nil {
if err != nil || manager == nil {
return err
}