@@ -12,41 +12,36 @@ import (
1212)
1313
1414func 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