@@ -3602,6 +3602,71 @@ func (me *VpcService) DeleteVpnGateway(ctx context.Context, vpnGatewayId string)
36023602 return
36033603}
36043604
3605+ func (me * VpcService ) DescribeCustomerGatewayByFilter (ctx context.Context , filters map [string ]string ) (instances []* vpc.CustomerGateway , errRet error ) {
3606+ var (
3607+ logId = getLogId (ctx )
3608+ request = vpc .NewDescribeCustomerGatewaysRequest ()
3609+ )
3610+ request .Filters = make ([]* vpc.Filter , 0 , len (filters ))
3611+ for k , v := range filters {
3612+ filter := vpc.Filter {
3613+ Name : helper .String (k ),
3614+ Values : []* string {helper .String (v )},
3615+ }
3616+ request .Filters = append (request .Filters , & filter )
3617+ }
3618+
3619+ var offset uint64 = 0
3620+ var pageSize uint64 = 100
3621+ instances = make ([]* vpc.CustomerGateway , 0 )
3622+
3623+ for {
3624+ request .Offset = & offset
3625+ request .Limit = & pageSize
3626+ ratelimit .Check (request .GetAction ())
3627+ response , err := me .client .UseVpcClient ().DescribeCustomerGateways (request )
3628+ if err != nil {
3629+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
3630+ logId , request .GetAction (), request .ToJsonString (), err .Error ())
3631+ errRet = err
3632+ return
3633+ }
3634+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
3635+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
3636+
3637+ if response == nil || len (response .Response .CustomerGatewaySet ) < 1 {
3638+ break
3639+ }
3640+ instances = append (instances , response .Response .CustomerGatewaySet ... )
3641+ if len (response .Response .CustomerGatewaySet ) < int (pageSize ) {
3642+ break
3643+ }
3644+ offset += pageSize
3645+ }
3646+ return
3647+ }
3648+
3649+ func (me * VpcService ) DeleteCustomerGateway (ctx context.Context , customerGatewayId string ) (errRet error ) {
3650+ logId := getLogId (ctx )
3651+ request := vpc .NewDeleteCustomerGatewayRequest ()
3652+ defer func () {
3653+ if errRet != nil {
3654+ log .Printf ("[CRITAL]%s api[%s] fail,reason[%s]" , logId , request .GetAction (), errRet .Error ())
3655+ }
3656+ }()
3657+ request .CustomerGatewayId = & customerGatewayId
3658+
3659+ errRet = resource .Retry (writeRetryTimeout , func () * resource.RetryError {
3660+ ratelimit .Check (request .GetAction ())
3661+ _ , errRet = me .client .UseVpcClient ().DeleteCustomerGateway (request )
3662+ if errRet != nil {
3663+ return retryError (errRet , InternalError )
3664+ }
3665+ return nil
3666+ })
3667+ return
3668+ }
3669+
36053670func (me * VpcService ) CreateAddressTemplate (ctx context.Context , name string , addresses []interface {}) (templateId string , errRet error ) {
36063671 logId := getLogId (ctx )
36073672 request := vpc .NewCreateAddressTemplateRequest ()
0 commit comments