Skip to content

fix(postgresql): [118003284] Fix the issue of failed instance creation read #2682

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 14, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/2682.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:enhancement
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

看测试用例失败了,这个资源用 root_username 这个字段吗

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

已修正

resource/tencentcloud_postgresql_instance: Fix the issue of failed instance creation read
```
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (
"time"

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

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

if d.HasChange("security_groups") {

// Only redis service support modify Generic DB instance security groups
service := svccrs.NewRedisService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
ids := d.Get("security_groups").(*schema.Set).List()
var sgIds []*string
for _, id := range ids {
sgIds = append(sgIds, helper.String(id.(string)))
}
err := service.ModifyDBInstanceSecurityGroups(ctx, "postgres", d.Id(), sgIds)

err := postgresqlService.ModifyDBInstanceSecurityGroupsById(ctx, d.Id(), sgIds)
if err != nil {
return err
}

}

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

// security groups
// Only redis service support modify Generic DB instance security groups
redisService := svccrs.NewRedisService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
sg, err := redisService.DescribeDBSecurityGroups(ctx, "postgres", d.Id())
sg, err := postgresqlService.DescribeDBInstanceSecurityGroupsById(ctx, d.Id())
if err != nil {
return err
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,63 @@ func (me *PostgresqlService) DescribePostgresqlInstanceById(ctx context.Context,
return
}

func (me *PostgresqlService) DescribeDBInstanceSecurityGroupsById(ctx context.Context, instanceId string) (sg []string, errRet error) {
logId := tccommon.GetLogId(ctx)
request := postgresql.NewDescribeDBInstanceSecurityGroupsRequest()
defer func() {
if errRet != nil {
log.Printf("[CRITAL]%s api[%s] fail,reason[%s]", logId, request.GetAction(), errRet.Error())
}
}()

request.DBInstanceId = &instanceId
ratelimit.Check(request.GetAction())
var iacExtInfo connectivity.IacExtInfo
iacExtInfo.InstanceId = instanceId
response, err := me.client.UsePostgresqlClient(iacExtInfo).DescribeDBInstanceSecurityGroups(request)
if err != nil {
errRet = err
return
}

if response == nil || response.Response == nil {
errRet = fmt.Errorf("TencentCloud SDK return nil response, %s", request.GetAction())
return
}

groups := response.Response.SecurityGroupSet
if len(groups) > 0 {
for i := range groups {
sg = append(sg, *groups[i].SecurityGroupId)
}
}
return
}

func (me *PostgresqlService) ModifyDBInstanceSecurityGroupsById(ctx context.Context, instanceId string, securityGroupIds []*string) (errRet error) {
logId := tccommon.GetLogId(ctx)
request := postgresql.NewModifyDBInstanceSecurityGroupsRequest()
defer func() {
if errRet != nil {
log.Printf("[CRITAL]%s api[%s] fail,reason[%s]", logId, request.GetAction(), errRet.Error())
}
}()

request.DBInstanceId = &instanceId
request.SecurityGroupIdSet = securityGroupIds
ratelimit.Check(request.GetAction())
var iacExtInfo connectivity.IacExtInfo
iacExtInfo.InstanceId = instanceId
response, err := me.client.UsePostgresqlClient(iacExtInfo).ModifyDBInstanceSecurityGroups(request)
if err == nil {
log.Printf("[DEBUG]%s api[%s] , request body [%s], response body[%s]\n",
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
}

errRet = err
return
}

func (me *PostgresqlService) DescribePostgresqlInstanceHAConfigById(ctx context.Context, instanceId string) (haConfig *postgresql.DescribeDBInstanceHAConfigResponseParams, errRet error) {
logId := tccommon.GetLogId(ctx)
request := postgresql.NewDescribeDBInstanceHAConfigRequest()
Expand Down
Loading