From 29dfc4322e34d1fc075a1877244ee2608bdf2b46 Mon Sep 17 00:00:00 2001 From: Brett Mack Date: Tue, 17 Nov 2015 17:27:39 +0000 Subject: [PATCH] Add retry calls to protect against api rate limiting --- builtin/providers/vcd/resource_vcd_vapp.go | 35 ++++++++++++---------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/builtin/providers/vcd/resource_vcd_vapp.go b/builtin/providers/vcd/resource_vcd_vapp.go index 346d9d544..d72b2cb97 100644 --- a/builtin/providers/vcd/resource_vcd_vapp.go +++ b/builtin/providers/vcd/resource_vcd_vapp.go @@ -313,26 +313,29 @@ func resourceVcdVAppDelete(d *schema.ResourceData, meta interface{}) error { vapp, err := vcdClient.OrgVdc.FindVAppByName(d.Id()) if err != nil { - return fmt.Errorf("error finding vdc: %s", err) + return fmt.Errorf("error finding vapp: %s", err) } - task, err := vapp.Undeploy() + err = retryCall(4, func() error { + task, err := vapp.Undeploy() + if err != nil { + return fmt.Errorf("Error undeploying: %#v", err) + } + + return task.WaitTaskCompletion() + }) if err != nil { - return fmt.Errorf("Error Powering Off: %#v", err) - } - err = task.WaitTaskCompletion() - if err != nil { - return fmt.Errorf("Error completing tasks: %#v", err) + return err } - task, err = vapp.Delete() - if err != nil { - return fmt.Errorf("Error Powering Off: %#v", err) - } - err = task.WaitTaskCompletion() - if err != nil { - return fmt.Errorf("Error completing tasks: %#v", err) - } + err = retryCall(4, func() error { + task, err := vapp.Delete() + if err != nil { + return fmt.Errorf("Error deleting: %#v", err) + } - return nil + return task.WaitTaskCompletion() + }) + + return err }