From bbbaa8952e3843b1efab694e26814b188cc62095 Mon Sep 17 00:00:00 2001 From: Jan Broer Date: Thu, 21 May 2015 03:19:30 +0200 Subject: [PATCH] exoscale: fixed 2 mins wait loop on failed operation Signed-off-by: Jan Broer --- drivers/exoscale/exoscale.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/exoscale/exoscale.go b/drivers/exoscale/exoscale.go index d1dd1d1dd4..d9b57cecc7 100644 --- a/drivers/exoscale/exoscale.go +++ b/drivers/exoscale/exoscale.go @@ -419,14 +419,21 @@ func (d *Driver) waitForVM(client *egoscale.Client, jobid string) (*egoscale.Dep i := 0 var resp *egoscale.QueryAsyncJobResultResponse var err error +WaitLoop: for ; i < maxRepeats; i++ { resp, err = client.PollAsyncJob(jobid) if err != nil { return nil, err } - - if resp.Jobstatus == 1 { - break + switch resp.Jobstatus { + case 0: // Job is still in progress + continue + case 1: // Job has successfully completed + break WaitLoop + case 2: // Job has failed to complete + return nil, fmt.Errorf("Operation failed to complete") + default: // Some other code + continue } time.Sleep(2 * time.Second) }