@@ -3537,6 +3537,71 @@ func (me *VpcService) DescribeVpngwById(ctx context.Context, vpngwId string) (ha
35373537 return
35383538}
35393539
3540+ func (me * VpcService ) DescribeVpnGwByFilter (ctx context.Context , filters map [string ]string ) (instances []* vpc.VpnGateway , errRet error ) {
3541+ var (
3542+ logId = getLogId (ctx )
3543+ request = vpc .NewDescribeVpnGatewaysRequest ()
3544+ )
3545+ request .Filters = make ([]* vpc.FilterObject , 0 , len (filters ))
3546+ for k , v := range filters {
3547+ filter := vpc.FilterObject {
3548+ Name : helper .String (k ),
3549+ Values : []* string {helper .String (v )},
3550+ }
3551+ request .Filters = append (request .Filters , & filter )
3552+ }
3553+
3554+ var offset uint64 = 0
3555+ var pageSize uint64 = 100
3556+ instances = make ([]* vpc.VpnGateway , 0 )
3557+
3558+ for {
3559+ request .Offset = & offset
3560+ request .Limit = & pageSize
3561+ ratelimit .Check (request .GetAction ())
3562+ response , err := me .client .UseVpcClient ().DescribeVpnGateways (request )
3563+ if err != nil {
3564+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
3565+ logId , request .GetAction (), request .ToJsonString (), err .Error ())
3566+ errRet = err
3567+ return
3568+ }
3569+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
3570+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
3571+
3572+ if response == nil || len (response .Response .VpnGatewaySet ) < 1 {
3573+ break
3574+ }
3575+ instances = append (instances , response .Response .VpnGatewaySet ... )
3576+ if len (response .Response .VpnGatewaySet ) < int (pageSize ) {
3577+ break
3578+ }
3579+ offset += pageSize
3580+ }
3581+ return
3582+ }
3583+
3584+ func (me * VpcService ) DeleteVpnGateway (ctx context.Context , vpnGatewayId string ) (errRet error ) {
3585+ logId := getLogId (ctx )
3586+ request := vpc .NewDeleteVpnGatewayRequest ()
3587+ defer func () {
3588+ if errRet != nil {
3589+ log .Printf ("[CRITAL]%s api[%s] fail,reason[%s]" , logId , request .GetAction (), errRet .Error ())
3590+ }
3591+ }()
3592+ request .VpnGatewayId = & vpnGatewayId
3593+
3594+ errRet = resource .Retry (writeRetryTimeout , func () * resource.RetryError {
3595+ ratelimit .Check (request .GetAction ())
3596+ _ , errRet = me .client .UseVpcClient ().DeleteVpnGateway (request )
3597+ if errRet != nil {
3598+ return retryError (errRet , InternalError )
3599+ }
3600+ return nil
3601+ })
3602+ return
3603+ }
3604+
35403605func (me * VpcService ) CreateAddressTemplate (ctx context.Context , name string , addresses []interface {}) (templateId string , errRet error ) {
35413606 logId := getLogId (ctx )
35423607 request := vpc .NewCreateAddressTemplateRequest ()
0 commit comments