@@ -27,14 +27,15 @@ var eipUnattachLocker = &sync.Mutex{}
2727
2828// VPC basic information
2929type VpcBasicInfo struct {
30- vpcId string
31- name string
32- cidr string
33- isMulticast bool
34- isDefault bool
35- dnsServers []string
36- createTime string
37- tags []* vpc.Tag
30+ vpcId string
31+ name string
32+ cidr string
33+ isMulticast bool
34+ isDefault bool
35+ dnsServers []string
36+ createTime string
37+ tags []* vpc.Tag
38+ assistantCidrs []string
3839}
3940
4041// subnet basic information
@@ -338,6 +339,13 @@ getMoreData:
338339 }
339340 hasVpc [basicInfo .vpcId ] = true
340341
342+ if len (item .AssistantCidrSet ) > 0 {
343+ for i := range item .AssistantCidrSet {
344+ cidr := item .AssistantCidrSet [i ].CidrBlock
345+ basicInfo .assistantCidrs = append (basicInfo .assistantCidrs , * cidr )
346+ }
347+ }
348+
341349 if len (item .TagSet ) > 0 {
342350 basicInfo .tags = item .TagSet
343351 }
@@ -4154,3 +4162,129 @@ func (me *VpcService) DescribeNatGatewaySnats(ctx context.Context, natGatewayId
41544162 offset = offset + limit
41554163 }
41564164}
4165+
4166+ func (me * VpcService ) DescribeAssistantCidr (ctx context.Context , vpcId string ) (info []* vpc.AssistantCidr , errRet error ) {
4167+ logId := getLogId (ctx )
4168+ request := vpc .NewDescribeAssistantCidrRequest ()
4169+
4170+ defer func () {
4171+ if errRet != nil {
4172+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
4173+ logId , request .GetAction (), request .ToJsonString (), errRet .Error ())
4174+ }
4175+ }()
4176+
4177+ request .VpcIds = []* string {& vpcId }
4178+
4179+ ratelimit .Check (request .GetAction ())
4180+ response , err := me .client .UseVpcClient ().DescribeAssistantCidr (request )
4181+
4182+ if err != nil {
4183+ errRet = err
4184+ return
4185+ }
4186+
4187+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
4188+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
4189+
4190+ info = response .Response .AssistantCidrSet
4191+
4192+ return
4193+ }
4194+
4195+ // CheckAssistantCidr used for check if cidr conflict
4196+ func (me * VpcService ) CheckAssistantCidr (ctx context.Context , request * vpc.CheckAssistantCidrRequest ) (info []* vpc.ConflictSource , errRet error ) {
4197+ logId := getLogId (ctx )
4198+ defer func () {
4199+ if errRet != nil {
4200+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
4201+ logId , request .GetAction (), request .ToJsonString (), errRet .Error ())
4202+ }
4203+ }()
4204+
4205+ ratelimit .Check (request .GetAction ())
4206+ response , err := me .client .UseVpcClient ().CheckAssistantCidr (request )
4207+
4208+ if err != nil {
4209+ errRet = err
4210+ return
4211+ }
4212+
4213+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
4214+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
4215+
4216+ info = response .Response .ConflictSourceSet
4217+
4218+ return
4219+ }
4220+
4221+ func (me * VpcService ) CreateAssistantCidr (ctx context.Context , request * vpc.CreateAssistantCidrRequest ) (info []* vpc.AssistantCidr , errRet error ) {
4222+ logId := getLogId (ctx )
4223+ defer func () {
4224+ if errRet != nil {
4225+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
4226+ logId , request .GetAction (), request .ToJsonString (), errRet .Error ())
4227+ }
4228+ }()
4229+
4230+ ratelimit .Check (request .GetAction ())
4231+ response , err := me .client .UseVpcClient ().CreateAssistantCidr (request )
4232+
4233+ if err != nil {
4234+ errRet = err
4235+ return
4236+ }
4237+
4238+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
4239+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
4240+
4241+ info = response .Response .AssistantCidrSet
4242+
4243+ return
4244+ }
4245+
4246+ func (me * VpcService ) ModifyAssistantCidr (ctx context.Context , request * vpc.ModifyAssistantCidrRequest ) (errRet error ) {
4247+ logId := getLogId (ctx )
4248+ defer func () {
4249+ if errRet != nil {
4250+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
4251+ logId , request .GetAction (), request .ToJsonString (), errRet .Error ())
4252+ }
4253+ }()
4254+
4255+ ratelimit .Check (request .GetAction ())
4256+ response , err := me .client .UseVpcClient ().ModifyAssistantCidr (request )
4257+
4258+ if err != nil {
4259+ errRet = err
4260+ return
4261+ }
4262+
4263+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
4264+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
4265+
4266+ return
4267+ }
4268+
4269+ func (me * VpcService ) DeleteAssistantCidr (ctx context.Context , request * vpc.DeleteAssistantCidrRequest ) (errRet error ) {
4270+ logId := getLogId (ctx )
4271+ defer func () {
4272+ if errRet != nil {
4273+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
4274+ logId , request .GetAction (), request .ToJsonString (), errRet .Error ())
4275+ }
4276+ }()
4277+
4278+ ratelimit .Check (request .GetAction ())
4279+ response , err := me .client .UseVpcClient ().DeleteAssistantCidr (request )
4280+
4281+ if err != nil {
4282+ errRet = err
4283+ return
4284+ }
4285+
4286+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
4287+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
4288+
4289+ return
4290+ }
0 commit comments