Skip to content

Commit 6b8e3ee

Browse files
committed
use ApiCall: DescribeTaskStatus
Signed-off-by: roc <roc@imroc.cc>
1 parent 177ee08 commit 6b8e3ee

File tree

1 file changed

+11
-16
lines changed

1 file changed

+11
-16
lines changed

pkg/clb/wait.go

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,41 +12,36 @@ import (
1212
)
1313

1414
func Wait(ctx context.Context, region, reqId, taskName string) (ids []string, err error) {
15-
client := GetClient(region)
1615
for range 100 {
1716
select {
1817
case <-ctx.Done():
1918
err = ctx.Err()
2019
return
2120
default:
22-
req := clb.NewDescribeTaskStatusRequest()
23-
req.TaskId = &reqId
24-
before := time.Now()
25-
resp, err := client.DescribeTaskStatusWithContext(ctx, req)
26-
LogAPI(ctx, "DescribeTaskStatus", req, resp, time.Since(before), err)
21+
res, err := ApiCall(context.Background(), "DescribeTaskStatus", region, func(ctx context.Context, client *clb.Client) (req *clb.DescribeTaskStatusRequest, res *clb.DescribeTaskStatusResponse, err error) {
22+
req = clb.NewDescribeTaskStatusRequest()
23+
req.TaskId = &reqId
24+
res, err = client.DescribeTaskStatusWithContext(ctx, req)
25+
return
26+
})
2727
if err != nil {
28-
if IsRequestLimitExceededError(err) {
29-
clbLog.Info("request limit exceeded when wait for task, retry", "reqId", reqId, "taskName", taskName)
30-
time.Sleep(1 * time.Second)
31-
continue
32-
}
3328
return nil, errors.WithStack(err)
3429
}
35-
switch *resp.Response.Status {
30+
switch *res.Response.Status {
3631
case 2: // 任务进行中,继续等待
3732
time.Sleep(1 * time.Second)
3833
log.FromContext(ctx).V(10).Info("task still waiting", "reqId", reqId, "taskName", taskName)
3934
continue
4035
case 1: // 任务失败,返回错误
4136
msg := fmt.Sprintf("clb task %s failed", reqId)
42-
if resp.Response.Message != nil {
43-
msg += fmt.Sprintf(": %s", *resp.Response.Message)
37+
if res.Response.Message != nil {
38+
msg += fmt.Sprintf(": %s", *res.Response.Message)
4439
}
4540
return nil, errors.New(msg)
4641
case 0: // 任务成功,返回nil
47-
return util.ConvertPtrSlice(resp.Response.LoadBalancerIds), nil
42+
return util.ConvertPtrSlice(res.Response.LoadBalancerIds), nil
4843
default: // 未知状态码,返回错误
49-
return nil, fmt.Errorf("unknown task status %d", *resp.Response.Status)
44+
return nil, fmt.Errorf("unknown task status %d", *res.Response.Status)
5045
}
5146
}
5247
}

0 commit comments

Comments
 (0)