Skip to content

Commit 0e123d4

Browse files
fix(postgresql): [118003284] Fix the issue of failed instance creation read (#2682)
* fix pgsql * fix pgsql * add * Update resource_tc_postgresql_instance_test.go --------- Co-authored-by: andrewjiang <[email protected]>
1 parent 0df19be commit 0e123d4

File tree

4 files changed

+65
-11
lines changed

4 files changed

+65
-11
lines changed

.changelog/2682.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_postgresql_instance: Fix the issue of failed instance creation read
3+
```

tencentcloud/services/postgresql/resource_tc_postgresql_instance.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"time"
1111

1212
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
13-
svccrs "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/crs"
1413
svctag "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/tag"
1514

1615
postgresql "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312"
@@ -970,19 +969,16 @@ func resourceTencentCloudPostgresqlInstanceUpdate(d *schema.ResourceData, meta i
970969
}
971970

972971
if d.HasChange("security_groups") {
973-
974-
// Only redis service support modify Generic DB instance security groups
975-
service := svccrs.NewRedisService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
976972
ids := d.Get("security_groups").(*schema.Set).List()
977973
var sgIds []*string
978974
for _, id := range ids {
979975
sgIds = append(sgIds, helper.String(id.(string)))
980976
}
981-
err := service.ModifyDBInstanceSecurityGroups(ctx, "postgres", d.Id(), sgIds)
977+
978+
err := postgresqlService.ModifyDBInstanceSecurityGroupsById(ctx, d.Id(), sgIds)
982979
if err != nil {
983980
return err
984981
}
985-
986982
}
987983

988984
if d.HasChange("backup_plan") {
@@ -1258,9 +1254,7 @@ func resourceTencentCloudPostgresqlInstanceRead(d *schema.ResourceData, meta int
12581254
_ = d.Set("public_access_switch", public_access_switch)
12591255

12601256
// security groups
1261-
// Only redis service support modify Generic DB instance security groups
1262-
redisService := svccrs.NewRedisService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
1263-
sg, err := redisService.DescribeDBSecurityGroups(ctx, "postgres", d.Id())
1257+
sg, err := postgresqlService.DescribeDBInstanceSecurityGroupsById(ctx, d.Id())
12641258
if err != nil {
12651259
return err
12661260
}

tencentcloud/services/postgresql/resource_tc_postgresql_instance_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ resource "tencentcloud_postgresql_instance" "test" {
652652
vpc_id = tencentcloud_vpc.vpc.id
653653
subnet_id = tencentcloud_subnet.subnet.id
654654
engine_version = "13.3"
655-
root_username = "tf-user"
655+
root_user = "tf_user"
656656
root_password = "t1qaA2k1wgvfa3?ZZZ"
657657
charset = "LATIN1"
658658
memory = 4
@@ -688,7 +688,7 @@ resource "tencentcloud_postgresql_instance" "test" {
688688
vpc_id = tencentcloud_vpc.vpc.id
689689
subnet_id = tencentcloud_subnet.subnet.id
690690
engine_version = "13.3"
691-
root_username = "tf-user"
691+
root_user = "tf_user"
692692
root_password = "t1qaA2k1wgvfa3?ZZZ3daw"
693693
charset = "LATIN1"
694694
memory = 8

tencentcloud/services/postgresql/service_tencentcloud_postgresql.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,63 @@ func (me *PostgresqlService) DescribePostgresqlInstanceById(ctx context.Context,
459459
return
460460
}
461461

462+
func (me *PostgresqlService) DescribeDBInstanceSecurityGroupsById(ctx context.Context, instanceId string) (sg []string, errRet error) {
463+
logId := tccommon.GetLogId(ctx)
464+
request := postgresql.NewDescribeDBInstanceSecurityGroupsRequest()
465+
defer func() {
466+
if errRet != nil {
467+
log.Printf("[CRITAL]%s api[%s] fail,reason[%s]", logId, request.GetAction(), errRet.Error())
468+
}
469+
}()
470+
471+
request.DBInstanceId = &instanceId
472+
ratelimit.Check(request.GetAction())
473+
var iacExtInfo connectivity.IacExtInfo
474+
iacExtInfo.InstanceId = instanceId
475+
response, err := me.client.UsePostgresqlClient(iacExtInfo).DescribeDBInstanceSecurityGroups(request)
476+
if err != nil {
477+
errRet = err
478+
return
479+
}
480+
481+
if response == nil || response.Response == nil {
482+
errRet = fmt.Errorf("TencentCloud SDK return nil response, %s", request.GetAction())
483+
return
484+
}
485+
486+
groups := response.Response.SecurityGroupSet
487+
if len(groups) > 0 {
488+
for i := range groups {
489+
sg = append(sg, *groups[i].SecurityGroupId)
490+
}
491+
}
492+
return
493+
}
494+
495+
func (me *PostgresqlService) ModifyDBInstanceSecurityGroupsById(ctx context.Context, instanceId string, securityGroupIds []*string) (errRet error) {
496+
logId := tccommon.GetLogId(ctx)
497+
request := postgresql.NewModifyDBInstanceSecurityGroupsRequest()
498+
defer func() {
499+
if errRet != nil {
500+
log.Printf("[CRITAL]%s api[%s] fail,reason[%s]", logId, request.GetAction(), errRet.Error())
501+
}
502+
}()
503+
504+
request.DBInstanceId = &instanceId
505+
request.SecurityGroupIdSet = securityGroupIds
506+
ratelimit.Check(request.GetAction())
507+
var iacExtInfo connectivity.IacExtInfo
508+
iacExtInfo.InstanceId = instanceId
509+
response, err := me.client.UsePostgresqlClient(iacExtInfo).ModifyDBInstanceSecurityGroups(request)
510+
if err == nil {
511+
log.Printf("[DEBUG]%s api[%s] , request body [%s], response body[%s]\n",
512+
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
513+
}
514+
515+
errRet = err
516+
return
517+
}
518+
462519
func (me *PostgresqlService) DescribePostgresqlInstanceHAConfigById(ctx context.Context, instanceId string) (haConfig *postgresql.DescribeDBInstanceHAConfigResponseParams, errRet error) {
463520
logId := tccommon.GetLogId(ctx)
464521
request := postgresql.NewDescribeDBInstanceHAConfigRequest()

0 commit comments

Comments
 (0)