@@ -262,12 +262,12 @@ func resourceTencentCloudCynosdbClusterCreate(d *schema.ResourceData, meta inter
262262 return err
263263 }
264264 var rwGroupId string
265- var roGroupId string
265+ var roGroupIds [] string
266266 for _ , insGrp := range insGrps .Response .InstanceGrpInfoList {
267267 if * insGrp .Type == CYNOSDB_INSGRP_HA {
268268 rwGroupId = * insGrp .InstanceGrpId
269269 } else if * insGrp .Type == CYNOSDB_INSGRP_RO {
270- roGroupId = * insGrp .InstanceGrpId
270+ roGroupIds = append ( roGroupIds , * insGrp .InstanceGrpId )
271271 }
272272 }
273273 if v , ok := d .GetOk ("rw_group_sg" ); ok {
@@ -280,14 +280,16 @@ func resourceTencentCloudCynosdbClusterCreate(d *schema.ResourceData, meta inter
280280 return err
281281 }
282282 }
283- if v , ok := d .GetOk ("ro_group_sg" ); ok {
284- vv := v .([]interface {})
285- vvv := make ([]* string , 0 , len (vv ))
286- for _ , item := range vv {
287- vvv = append (vvv , helper .String (item .(string )))
288- }
289- if err = cynosdbService .ModifyInsGrpSecurityGroups (ctx , roGroupId , d .Get ("available_zone" ).(string ), vvv ); err != nil {
290- return err
283+ if v , ok := d .GetOk ("ro_group_sg" ); ok && len (roGroupIds ) > 0 {
284+ for _ , roGroupId := range roGroupIds {
285+ vv := v .([]interface {})
286+ vvv := make ([]* string , 0 , len (vv ))
287+ for _ , item := range vv {
288+ vvv = append (vvv , helper .String (item .(string )))
289+ }
290+ if err = cynosdbService .ModifyInsGrpSecurityGroups (ctx , roGroupId , d .Get ("available_zone" ).(string ), vvv ); err != nil {
291+ return err
292+ }
291293 }
292294 }
293295
@@ -596,18 +598,19 @@ func resourceTencentCloudCynosdbClusterUpdate(d *schema.ResourceData, meta inter
596598 if err := cynosdbService .ModifyInsGrpSecurityGroups (ctx , d .Get ("rw_group_id" ).(string ), d .Get ("available_zone" ).(string ), vv ); err != nil {
597599 return err
598600 }
599- d .SetPartial ("rw_group_sg" )
600601 }
601602 if d .HasChange ("ro_group_sg" ) {
602603 v := d .Get ("ro_group_sg" ).([]interface {})
603604 vv := make ([]* string , 0 , len (v ))
604605 for _ , item := range v {
605606 vv = append (vv , helper .String (item .(string )))
606607 }
607- if err := cynosdbService .ModifyInsGrpSecurityGroups (ctx , d .Get ("ro_group_id" ).(string ), d .Get ("available_zone" ).(string ), vv ); err != nil {
608- return err
608+ if roGroupId := d .Get ("ro_group_id" ).(string ); roGroupId != "" {
609+ err := cynosdbService .ModifyInsGrpSecurityGroups (ctx , roGroupId , d .Get ("available_zone" ).(string ), vv )
610+ if err != nil {
611+ return err
612+ }
609613 }
610- d .SetPartial ("ro_group_sg" )
611614 }
612615
613616 d .Partial (false )
0 commit comments