@@ -238,6 +238,7 @@ func (me *CfwService) DescribeCfwNatInstanceById(ctx context.Context, natinsId s
238238 logId := tccommon .GetLogId (ctx )
239239
240240 request := cfw .NewDescribeNatFwInstancesInfoRequest ()
241+ response := cfw .NewDescribeNatFwInstancesInfoResponse ()
241242 request .Offset = common .Int64Ptr (0 )
242243 request .Limit = common .Int64Ptr (10 )
243244 request .Filter = []* cfw.NatFwFilter {
@@ -253,17 +254,28 @@ func (me *CfwService) DescribeCfwNatInstanceById(ctx context.Context, natinsId s
253254 }
254255 }()
255256
256- ratelimit .Check (request .GetAction ())
257257 var iacExtInfo connectivity.IacExtInfo
258258 iacExtInfo .InstanceId = natinsId
259- response , err := me .client .UseCfwClient (iacExtInfo ).DescribeNatFwInstancesInfo (request )
259+ err := resource .Retry (tccommon .ReadRetryTimeout , func () * resource.RetryError {
260+ ratelimit .Check (request .GetAction ())
261+ result , e := me .client .UseCfwClient (iacExtInfo ).DescribeNatFwInstancesInfo (request )
262+ if e != nil {
263+ return tccommon .RetryError (e )
264+ }
265+
266+ if result == nil || result .Response == nil || result .Response .NatinsLst == nil {
267+ return resource .NonRetryableError (fmt .Errorf ("Describe nat fw instances info failed, Response is nil." ))
268+ }
269+
270+ response = result
271+ return nil
272+ })
273+
260274 if err != nil {
261275 errRet = err
262276 return
263277 }
264278
265- log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
266-
267279 if len (response .Response .NatinsLst ) < 1 {
268280 return
269281 }
@@ -276,6 +288,7 @@ func (me *CfwService) DescribeCfwEipsById(ctx context.Context, instanceId string
276288 logId := tccommon .GetLogId (ctx )
277289
278290 request := cfw .NewDescribeCfwEipsRequest ()
291+ response := cfw .NewDescribeCfwEipsResponse ()
279292 request .Mode = common .Uint64Ptr (1 )
280293 request .NatGatewayId = common .StringPtr ("ALL" )
281294 request .CfwInstance = common .StringPtr (instanceId )
@@ -286,22 +299,34 @@ func (me *CfwService) DescribeCfwEipsById(ctx context.Context, instanceId string
286299 }
287300 }()
288301
289- ratelimit .Check (request .GetAction ())
302+ err := resource .Retry (tccommon .ReadRetryTimeout , func () * resource.RetryError {
303+ ratelimit .Check (request .GetAction ())
304+ result , e := me .client .UseCfwClient ().DescribeCfwEips (request )
305+ if e != nil {
306+ return tccommon .RetryError (e )
307+ }
308+
309+ if result == nil || result .Response == nil || result .Response .NatFwEipList == nil {
310+ return resource .NonRetryableError (fmt .Errorf ("Describe cfw eips failed, Response is nil." ))
311+ }
312+
313+ response = result
314+ return nil
315+ })
290316
291- response , err := me .client .UseCfwClient ().DescribeCfwEips (request )
292317 if err != nil {
293318 errRet = err
294319 return
295320 }
296321
297- log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
298-
299322 if len (response .Response .NatFwEipList ) < 1 {
300323 return
301324 }
302325
303326 for _ , item := range response .Response .NatFwEipList {
304- gwList = append (gwList , * item .NatGatewayId )
327+ if item .NatGatewayId != nil {
328+ gwList = append (gwList , * item .NatGatewayId )
329+ }
305330 }
306331
307332 return
@@ -319,23 +344,33 @@ func (me *CfwService) DeleteCfwNatInstanceById(ctx context.Context, instanceId s
319344 }
320345 }()
321346
322- ratelimit .Check (request .GetAction ())
347+ err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
348+ ratelimit .Check (request .GetAction ())
349+ result , e := me .client .UseCfwClient ().DeleteNatFwInstance (request )
350+ if e != nil {
351+ return tccommon .RetryError (e )
352+ }
353+
354+ if result == nil || result .Response == nil {
355+ return resource .NonRetryableError (fmt .Errorf ("Delete nat fw instance failed, Response is nil." ))
356+ }
357+
358+ return nil
359+ })
323360
324- response , err := me .client .UseCfwClient ().DeleteNatFwInstance (request )
325361 if err != nil {
326362 errRet = err
327363 return
328364 }
329365
330- log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
331-
332366 return
333367}
334368
335369func (me * CfwService ) DescribeNatFwVpcDnsLstById (ctx context.Context , instanceId string ) (vpcList []string , errRet error ) {
336370 logId := tccommon .GetLogId (ctx )
337371
338372 request := cfw .NewDescribeNatFwVpcDnsLstRequest ()
373+ response := cfw .NewDescribeNatFwVpcDnsLstResponse ()
339374 request .NatFwInsId = & instanceId
340375 request .Offset = common .Int64Ptr (0 )
341376 request .Limit = common .Int64Ptr (10 )
@@ -346,22 +381,34 @@ func (me *CfwService) DescribeNatFwVpcDnsLstById(ctx context.Context, instanceId
346381 }
347382 }()
348383
349- ratelimit .Check (request .GetAction ())
384+ err := resource .Retry (tccommon .ReadRetryTimeout , func () * resource.RetryError {
385+ ratelimit .Check (request .GetAction ())
386+ result , e := me .client .UseCfwClient ().DescribeNatFwVpcDnsLst (request )
387+ if e != nil {
388+ return tccommon .RetryError (e )
389+ }
390+
391+ if result == nil || result .Response == nil || result .Response .VpcDnsSwitchLst == nil {
392+ return resource .NonRetryableError (fmt .Errorf ("Describe nat fw vpc dns list failed, Response is nil." ))
393+ }
394+
395+ response = result
396+ return nil
397+ })
350398
351- response , err := me .client .UseCfwClient ().DescribeNatFwVpcDnsLst (request )
352399 if err != nil {
353400 errRet = err
354401 return
355402 }
356403
357- log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
358-
359404 if len (response .Response .VpcDnsSwitchLst ) < 1 {
360405 return
361406 }
362407
363408 for _ , item := range response .Response .VpcDnsSwitchLst {
364- vpcList = append (vpcList , * item .VpcId )
409+ if item .VpcId != nil {
410+ vpcList = append (vpcList , * item .VpcId )
411+ }
365412 }
366413
367414 return
0 commit comments