@@ -43,7 +43,7 @@ func GetClb(ctx context.Context, lbId, region string) (instance *clb.LoadBalance
4343
4444 before := time .Now ()
4545 resp , err := client .DescribeLoadBalancersWithContext (ctx , req )
46- LogAPI (ctx , "DescribeLoadBalancers" , req , resp , time .Since (before ), err )
46+ LogAPI (ctx , false , "DescribeLoadBalancers" , req , resp , time .Since (before ), err )
4747 if err != nil {
4848 return
4949 }
@@ -81,7 +81,7 @@ func Create(ctx context.Context, region, vpcId, extensiveParameters string, num
8181 client := GetClient (region )
8282 before := time .Now ()
8383 resp , err := client .CreateLoadBalancerWithContext (ctx , req )
84- LogAPI (ctx , "CreateLoadBalancer" , req , resp , time .Since (before ), err )
84+ LogAPI (ctx , true , "CreateLoadBalancer" , req , resp , time .Since (before ), err )
8585 if err != nil {
8686 return
8787 }
@@ -121,7 +121,7 @@ func Delete(ctx context.Context, region string, lbIds ...string) error {
121121 client := GetClient (region )
122122 before := time .Now ()
123123 resp , err := client .DeleteLoadBalancerWithContext (ctx , req )
124- LogAPI (ctx , "DeleteLoadBalancer" , req , resp , time .Since (before ), err )
124+ LogAPI (ctx , true , "DeleteLoadBalancer" , req , resp , time .Since (before ), err )
125125 if err != nil {
126126 if IsLbIdNotFoundError (err ) {
127127 if len (lbIds ) == 1 { // lb 已全部删除,忽略
@@ -147,7 +147,7 @@ func CreateCLB(ctx context.Context, region string, req *clb.CreateLoadBalancerRe
147147 client := GetClient (region )
148148 before := time .Now ()
149149 resp , err := client .CreateLoadBalancerWithContext (ctx , req )
150- LogAPI (ctx , "CreateLoadBalancer" , req , resp , time .Since (before ), err )
150+ LogAPI (ctx , true , "CreateLoadBalancer" , req , resp , time .Since (before ), err )
151151 if err != nil {
152152 return
153153 }
@@ -171,57 +171,75 @@ type CLBInfo struct {
171171}
172172
173173func BatchGetClbInfo (ctx context.Context , lbIds []string , region string ) (info map [string ]* CLBInfo , err error ) {
174- res , err := ApiCall (context .Background (), "DescribeLoadBalancers" , region , func (ctx context.Context , client * clb.Client ) (req * clb.DescribeLoadBalancersRequest , res * clb.DescribeLoadBalancersResponse , err error ) {
175- req = clb .NewDescribeLoadBalancersRequest ()
176- req .LoadBalancerIds = common .StringPtrs (lbIds )
177- res , err = client .DescribeLoadBalancersWithContext (ctx , req )
178- return
179- })
180- if err != nil {
181- return nil , errors .WithStack (err )
182- }
183- if * res .Response .TotalCount == 0 || len (res .Response .LoadBalancerSet ) == 0 {
184- return
185- }
186174 info = make (map [string ]* CLBInfo )
187175 insIds := []* string {}
188- for _ , ins := range res .Response .LoadBalancerSet {
189- lbInfo := & CLBInfo {
190- LoadbalancerID : * ins .LoadBalancerId ,
191- LoadbalancerName : * ins .LoadBalancerName ,
192- }
193- if ! util .IsZero (ins .Domain ) {
194- lbInfo .Hostname = ins .Domain
176+ for len (lbIds ) > 0 {
177+ lbs := lbIds
178+ if len (lbIds ) > 19 { // 分页查询
179+ lbs = lbIds [:19 ]
180+ lbIds = lbIds [19 :]
195181 } else {
196- vips := util .ConvertPtrSlice (ins .LoadBalancerVips )
197- if len (vips ) > 0 {
198- lbInfo .Ips = vips
182+ lbIds = nil
183+ }
184+ res , err := ApiCall (context .Background (), false , "DescribeLoadBalancers" , region , func (ctx context.Context , client * clb.Client ) (req * clb.DescribeLoadBalancersRequest , res * clb.DescribeLoadBalancersResponse , err error ) {
185+ req = clb .NewDescribeLoadBalancersRequest ()
186+ req .LoadBalancerIds = common .StringPtrs (lbs )
187+ res , err = client .DescribeLoadBalancersWithContext (ctx , req )
188+ return
189+ })
190+ if err != nil {
191+ return nil , errors .WithStack (err )
192+ }
193+ if * res .Response .TotalCount == 0 || len (res .Response .LoadBalancerSet ) == 0 {
194+ return nil , nil
195+ }
196+ for _ , ins := range res .Response .LoadBalancerSet {
197+ lbInfo := & CLBInfo {
198+ LoadbalancerID : * ins .LoadBalancerId ,
199+ LoadbalancerName : * ins .LoadBalancerName ,
199200 }
201+ if ! util .IsZero (ins .Domain ) {
202+ lbInfo .Hostname = ins .Domain
203+ } else {
204+ vips := util .ConvertPtrSlice (ins .LoadBalancerVips )
205+ if len (vips ) > 0 {
206+ lbInfo .Ips = vips
207+ }
208+ }
209+ info [* ins .LoadBalancerId ] = lbInfo
210+ insIds = append (insIds , ins .LoadBalancerId )
200211 }
201- info [* ins .LoadBalancerId ] = lbInfo
202- insIds = append (insIds , ins .LoadBalancerId )
203212 }
204213 vpcClient := vpcpkg .GetClient (region )
205- addrResp , err := ApiCall ( context . Background (), "DescribeAddresses" , region , func ( ctx context. Context , client * clb. Client ) ( req * vpc. DescribeAddressesRequest , res * vpc. DescribeAddressesResponse , err error ) {
206- req = vpc . NewDescribeAddressesRequest ()
207- req . Filters = [] * vpc. Filter {
208- {
209- Name : common . StringPtr ( "instance-id" ),
210- Values : insIds ,
211- },
214+ for len ( insIds ) > 0 {
215+ ids := insIds
216+ if len ( insIds ) > 99 { // 分页查询
217+ ids = insIds [: 99 ]
218+ insIds = insIds [ 99 :]
219+ } else {
220+ insIds = nil
212221 }
213- res , err = vpcClient .DescribeAddressesWithContext (ctx , req )
214- return
215- })
216- if err != nil {
217- return nil , errors .WithStack (err )
218- }
219- for _ , addr := range addrResp .Response .AddressSet {
220- log .FromContext (ctx ).V (3 ).Info ("got clb eip addr" , "instanceId" , addr .InstanceId )
221- if addr .InstanceId != nil {
222- if lbInfo , ok := info [* addr .InstanceId ]; ok {
223- log .FromContext (ctx ).V (3 ).Info ("set clb eip addr" , "instanceId" , addr .InstanceId , "eip" , * addr .AddressIp )
224- lbInfo .Ips = []string {* addr .AddressIp }
222+ addrResp , err := ApiCall (context .Background (), false , "DescribeAddresses" , region , func (ctx context.Context , client * clb.Client ) (req * vpc.DescribeAddressesRequest , res * vpc.DescribeAddressesResponse , err error ) {
223+ req = vpc .NewDescribeAddressesRequest ()
224+ req .Filters = []* vpc.Filter {
225+ {
226+ Name : common .StringPtr ("instance-id" ),
227+ Values : ids ,
228+ },
229+ }
230+ res , err = vpcClient .DescribeAddressesWithContext (ctx , req )
231+ return
232+ })
233+ if err != nil {
234+ return nil , errors .WithStack (err )
235+ }
236+ for _ , addr := range addrResp .Response .AddressSet {
237+ log .FromContext (ctx ).V (3 ).Info ("got clb eip addr" , "instanceId" , addr .InstanceId )
238+ if addr .InstanceId != nil {
239+ if lbInfo , ok := info [* addr .InstanceId ]; ok {
240+ log .FromContext (ctx ).V (3 ).Info ("set clb eip addr" , "instanceId" , addr .InstanceId , "eip" , * addr .AddressIp )
241+ lbInfo .Ips = []string {* addr .AddressIp }
242+ }
225243 }
226244 }
227245 }
0 commit comments