Skip to content

Commit 7f47e06

Browse files
instance/wait: fail fast when LAUNCH_FAILED occurred
1 parent 7c6dc8f commit 7f47e06

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

builder/tencentcloud/cvm/common.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ func WaitForInstance(ctx context.Context, client *cvm.Client, instanceId string,
4646
(resp.Response.InstanceSet[0].LatestOperationState == nil ||
4747
*resp.Response.InstanceSet[0].LatestOperationState != "OPERATING") {
4848
break
49+
} else if *resp.Response.InstanceSet[0].InstanceState == "LAUNCH_FAILED" {
50+
// fail fast
51+
return fmt.Errorf("wait instance(%s) status(%s) failed", instanceId, status)
4952
}
5053
time.Sleep(DefaultWaitForInterval * time.Second)
5154
timeout = timeout - DefaultWaitForInterval

builder/tencentcloud/cvm/step_run_instance.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,9 @@ func (s *stepRunInstance) CreateCvmInstance(ctx context.Context, state multistep
319319
// 如果资源不足或者配置有错误如ip冲突会造成状态为LAUNCH_FAILED。
320320
err = WaitForInstance(ctx, client, instanceId, "RUNNING", 600)
321321
if err != nil {
322-
return resp.Response.InstanceIdSet, fmt.Errorf("failed to wait for instance ready, %w", err)
322+
errInfo := fmt.Errorf("failed to wait for instance ready, %w", err)
323+
Say(state, errInfo.Error(), "Failed to run instance")
324+
return resp.Response.InstanceIdSet, errInfo
323325
}
324326
return resp.Response.InstanceIdSet, nil
325327
}

0 commit comments

Comments
 (0)