Skip to content

Commit e159a8f

Browse files
authored
fix: cynosdb ro group (#1121)
* fix: cynosdb ro group * fix: temp add ro_group_sg because no ro group auto created * fix: check roGroupId if modidfy
1 parent b555a60 commit e159a8f

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

tencentcloud/resource_tc_cynosdb_cluster.go

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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)

tencentcloud/resource_tc_cynosdb_cluster_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ func TestAccTencentCloudCynosdbClusterResource(t *testing.T) {
9393
resource.TestCheckResourceAttrSet("tencentcloud_cynosdb_cluster.foo", "rw_group_instances.0.instance_name"),
9494
resource.TestCheckResourceAttrSet("tencentcloud_cynosdb_cluster.foo", "rw_group_addr.0.ip"),
9595
resource.TestCheckResourceAttrSet("tencentcloud_cynosdb_cluster.foo", "rw_group_addr.0.port"),
96-
resource.TestCheckResourceAttrSet("tencentcloud_cynosdb_cluster.foo", "ro_group_id"),
96+
//resource.TestCheckResourceAttrSet("tencentcloud_cynosdb_cluster.foo", "ro_group_id"),
9797
resource.TestCheckResourceAttr("tencentcloud_cynosdb_cluster.foo", "param_items.#", "1"),
9898
resource.TestCheckResourceAttr("tencentcloud_cynosdb_cluster.foo", "param_items.0.name", "character_set_server"),
9999
resource.TestCheckResourceAttr("tencentcloud_cynosdb_cluster.foo", "param_items.0.current_value", "utf8"),
@@ -103,7 +103,7 @@ func TestAccTencentCloudCynosdbClusterResource(t *testing.T) {
103103
ResourceName: "tencentcloud_cynosdb_cluster.foo",
104104
ImportState: true,
105105
ImportStateVerify: true,
106-
ImportStateVerifyIgnore: []string{"password", "force_delete", "storage_limit", "param_items"},
106+
ImportStateVerifyIgnore: []string{"password", "force_delete", "storage_limit", "param_items", "ro_group_sg"},
107107
},
108108
{
109109
Config: testAccCynosdbCluster_update,

0 commit comments

Comments
 (0)