exoscale: fixed 2 mins wait loop on failed operation

Signed-off-by: Jan Broer <janeczku@yahoo.de>
This commit is contained in:
Jan Broer 2015-05-21 03:19:30 +02:00
parent 19d3bdd389
commit bbbaa8952e
1 changed files with 10 additions and 3 deletions

View File

@ -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)
}