Skip to content

Commit 1cfe617

Browse files
authored
add (#2748)
1 parent 22fa91b commit 1cfe617

File tree

2 files changed

+58
-5
lines changed

2 files changed

+58
-5
lines changed

tencentcloud/services/postgresql/resource_tc_postgresql_readonly_instance.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -371,16 +371,23 @@ func resourceTencentCloudPostgresqlReadOnlyInstanceRead(d *schema.ResourceData,
371371
_ = d.Set("subnet_id", instance.SubnetId)
372372
_ = d.Set("name", instance.DBInstanceName)
373373
_ = d.Set("need_support_ipv6", instance.SupportIpv6)
374-
// set readonly group when DescribeReadOnlyGroups ready for filter by the readonly group id
375-
// _ = d.Set("read_only_group_id", readonlyGroup.Id)
374+
// read only group
375+
masterDBInstanceId := instance.MasterDBInstanceId
376+
readOnlyGroupId, err := postgresqlService.DescribeReadOnlyGroupsById(ctx, *masterDBInstanceId, d.Id())
377+
if err != nil {
378+
return err
379+
}
380+
381+
if readOnlyGroupId != nil {
382+
_ = d.Set("read_only_group_id", readOnlyGroupId)
383+
}
376384

377385
// security groups
378-
// Only redis service support modify Generic DB instance security groups
379-
redisService := svccrs.NewRedisService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
380-
sg, err := redisService.DescribeDBSecurityGroups(ctx, "postgres", d.Id())
386+
sg, err := postgresqlService.DescribeDBInstanceSecurityGroupsById(ctx, d.Id())
381387
if err != nil {
382388
return err
383389
}
390+
384391
if len(sg) > 0 {
385392
_ = d.Set("security_groups_ids", sg)
386393
}

tencentcloud/services/postgresql/service_tencentcloud_postgresql.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,52 @@ func (me *PostgresqlService) DescribeDBInstanceSecurityGroupsByGroupId(ctx conte
491491
return
492492
}
493493

494+
func (me *PostgresqlService) DescribeReadOnlyGroupsById(ctx context.Context, masterDBInstanceId string, instanceId string) (readOnlyGroupId *string, errRet error) {
495+
logId := tccommon.GetLogId(ctx)
496+
request := postgresql.NewDescribeReadOnlyGroupsRequest()
497+
defer func() {
498+
if errRet != nil {
499+
log.Printf("[CRITAL]%s api[%s] fail,reason[%s]", logId, request.GetAction(), errRet.Error())
500+
}
501+
}()
502+
503+
request.Filters = []*postgresql.Filter{
504+
{
505+
Name: helper.String("db-master-instance-id"),
506+
Values: []*string{
507+
helper.String(masterDBInstanceId),
508+
},
509+
},
510+
}
511+
512+
response, err := me.client.UsePostgresqlClient().DescribeReadOnlyGroups(request)
513+
if err != nil {
514+
errRet = err
515+
return
516+
}
517+
518+
if response == nil || response.Response == nil {
519+
errRet = fmt.Errorf("TencentCloud SDK return nil response, %s", request.GetAction())
520+
return
521+
}
522+
523+
roGroupList := response.Response.ReadOnlyGroupList
524+
if len(roGroupList) > 0 {
525+
for _, roGroup := range roGroupList {
526+
roDBInstanceList := roGroup.ReadOnlyDBInstanceList
527+
for _, roDBInstance := range roDBInstanceList {
528+
roDBInstanceId := *roDBInstance.DBInstanceId
529+
if roDBInstanceId == instanceId {
530+
readOnlyGroupId = roGroup.ReadOnlyGroupId
531+
return
532+
}
533+
}
534+
}
535+
}
536+
537+
return
538+
}
539+
494540
func (me *PostgresqlService) DescribeDBInstanceSecurityGroupsById(ctx context.Context, instanceId string) (sg []string, errRet error) {
495541
logId := tccommon.GetLogId(ctx)
496542
request := postgresql.NewDescribeDBInstanceSecurityGroupsRequest()

0 commit comments

Comments
 (0)