@@ -586,6 +586,61 @@ func (me *RedisService) DescribeInstanceSecurityGroup(ctx context.Context, redis
586
586
return
587
587
}
588
588
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
+
589
644
func (me * RedisService ) DestroyPostpaidInstance (ctx context.Context , redisId string ) (taskId int64 , errRet error ) {
590
645
logId := getLogId (ctx )
591
646
request := redis .NewDestroyPostpaidInstanceRequest ()
0 commit comments