@@ -586,6 +586,61 @@ func (me *RedisService) DescribeInstanceSecurityGroup(ctx context.Context, redis
586586 return
587587}
588588
589+ // DescribeDBSecurityGroups support query different type of DB by passing product name
590+ func (me * RedisService ) DescribeDBSecurityGroups (ctx context.Context , product string , instanceId string ) (sg []string , errRet error ) {
591+ logId := getLogId (ctx )
592+ request := redis .NewDescribeDBSecurityGroupsRequest ()
593+ request .Product = & product
594+ request .InstanceId = & instanceId
595+ defer func () {
596+ if errRet != nil {
597+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
598+ logId , request .GetAction (), request .ToJsonString (), errRet .Error ())
599+ }
600+ }()
601+ ratelimit .Check (request .GetAction ())
602+ response , err := me .client .UseRedisClient ().DescribeDBSecurityGroups (request )
603+ if err == nil {
604+ log .Printf ("[DEBUG]%s api[%s] , request body [%s], response body[%s]\n " ,
605+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
606+ }
607+ if err != nil {
608+ errRet = err
609+ return
610+ }
611+
612+ groups := response .Response .Groups
613+ if len (groups ) > 0 {
614+ for i := range groups {
615+ sg = append (sg , * groups [i ].SecurityGroupId )
616+ }
617+ }
618+ return
619+ }
620+
621+ func (me * RedisService ) ModifyDBInstanceSecurityGroups (ctx context.Context , product string , instanceId string , securityGroupIds []* string ) (errRet error ) {
622+ logId := getLogId (ctx )
623+ request := redis .NewModifyDBInstanceSecurityGroupsRequest ()
624+ request .Product = & product
625+ request .InstanceId = & instanceId
626+ request .SecurityGroupIds = securityGroupIds
627+
628+ defer func () {
629+ if errRet != nil {
630+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n " ,
631+ logId , request .GetAction (), request .ToJsonString (), errRet .Error ())
632+ }
633+ }()
634+ ratelimit .Check (request .GetAction ())
635+ response , err := me .client .UseRedisClient ().ModifyDBInstanceSecurityGroups (request )
636+ if err == nil {
637+ log .Printf ("[DEBUG]%s api[%s] , request body [%s], response body[%s]\n " ,
638+ logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
639+ }
640+ errRet = err
641+ return
642+ }
643+
589644func (me * RedisService ) DestroyPostpaidInstance (ctx context.Context , redisId string ) (taskId int64 , errRet error ) {
590645 logId := getLogId (ctx )
591646 request := redis .NewDestroyPostpaidInstanceRequest ()
0 commit comments