Skip to content

Commit ac8bed8

Browse files
tongyimingmikatong
andauthored
fix: gaap realserver tags (#1157)
Co-authored-by: mikatong <mikatong@tencent.com>
1 parent 2cb0718 commit ac8bed8

File tree

3 files changed

+19
-22
lines changed

3 files changed

+19
-22
lines changed

tencentcloud/resource_tc_gaap_realserver.go

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,6 @@ func resourceTencentCloudGaapRealserverCreate(d *schema.ResourceData, m interfac
108108

109109
name := d.Get("name").(string)
110110
projectId := d.Get("project_id").(int)
111-
112-
tags := helper.GetTags(d, "tags")
113-
114111
service := GaapService{client: m.(*TencentCloudClient).apiV3Conn}
115112

116113
realservers, err := service.DescribeRealservers(ctx, &address, nil, nil, -1)
@@ -121,11 +118,20 @@ func resourceTencentCloudGaapRealserverCreate(d *schema.ResourceData, m interfac
121118
return fmt.Errorf("the realserver with ip/domain %s already exists", address)
122119
}
123120

124-
id, err := service.CreateRealserver(ctx, address, name, projectId, tags)
121+
id, err := service.CreateRealserver(ctx, address, name, projectId)
125122
if err != nil {
126123
return err
127124
}
128125

126+
if tags := helper.GetTags(d, "tags"); len(tags) > 0 {
127+
tagClient := m.(*TencentCloudClient).apiV3Conn
128+
tagService := &TagService{client: tagClient}
129+
resourceName := BuildTagResourceName("gaap", "realServer", tagClient.Region, id)
130+
if err := tagService.ModifyTags(ctx, resourceName, tags, nil); err != nil {
131+
return err
132+
}
133+
}
134+
129135
d.SetId(id)
130136

131137
return resourceTencentCloudGaapRealserverRead(d, m)
@@ -183,14 +189,13 @@ func resourceTencentCloudGaapRealserverRead(d *schema.ResourceData, m interface{
183189
}
184190
_ = d.Set("project_id", realserver.ProjectId)
185191

186-
respTags := make(map[string]string, len(realserver.TagSet))
187-
for _, tag := range realserver.TagSet {
188-
if tag.TagKey == nil || tag.TagValue == nil {
189-
return errors.New("realserver tag key or value is nil")
190-
}
191-
respTags[*tag.TagKey] = *tag.TagValue
192+
tagClient := m.(*TencentCloudClient).apiV3Conn
193+
tagService := TagService{client: tagClient}
194+
tags, err := tagService.DescribeResourceTags(ctx, "gaap", "realServer", tagClient.Region, id)
195+
if err != nil {
196+
return err
192197
}
193-
_ = d.Set("tags", respTags)
198+
_ = d.Set("tags", tags)
194199

195200
return nil
196201
}
@@ -223,7 +228,7 @@ func resourceTencentCloudGaapRealserverUpdate(d *schema.ResourceData, m interfac
223228
tagService := TagService{client: m.(*TencentCloudClient).apiV3Conn}
224229

225230
region := m.(*TencentCloudClient).apiV3Conn.Region
226-
resourceName := fmt.Sprintf("qcs::gaap:%s:uin/:realserver/%s", region, id)
231+
resourceName := BuildTagResourceName("gaap", "realServer", region, id)
227232

228233
if err := tagService.ModifyTags(ctx, resourceName, replaceTags, deleteTags); err != nil {
229234
return err

tencentcloud/resource_tc_gaap_realserver_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"fmt"
77
"strconv"
88
"testing"
9-
"time"
109

1110
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1211
"github.com/hashicorp/terraform-plugin-sdk/terraform"
@@ -117,8 +116,7 @@ func TestAccTencentCloudGaapRealserver_updateTags(t *testing.T) {
117116
),
118117
},
119118
{
120-
PreConfig: func() { time.Sleep(time.Duration(time.Second * 10)) },
121-
Config: testAccGaapRealserverUpdateTags,
119+
Config: testAccGaapRealserverUpdateTags,
122120
Check: resource.ComposeTestCheckFunc(
123121
testAccCheckGaapRealserverExists("tencentcloud_gaap_realserver.foo", id),
124122
resource.TestCheckResourceAttr("tencentcloud_gaap_realserver.foo", "tags.test", "test"),

tencentcloud/service_tencentcloud_gaap.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,13 @@ type GaapService struct {
4545
client *connectivity.TencentCloudClient
4646
}
4747

48-
func (me *GaapService) CreateRealserver(ctx context.Context, address, name string, projectId int, tags map[string]string) (id string, err error) {
48+
func (me *GaapService) CreateRealserver(ctx context.Context, address, name string, projectId int) (id string, err error) {
4949
logId := getLogId(ctx)
5050

5151
request := gaap.NewAddRealServersRequest()
5252
request.RealServerName = &name
5353
request.RealServerIP = []*string{&address}
5454
request.ProjectId = helper.IntUint64(projectId)
55-
for k, v := range tags {
56-
request.TagSet = append(request.TagSet, &gaap.TagPair{
57-
TagKey: helper.String(k),
58-
TagValue: helper.String(v),
59-
})
60-
}
6155

6256
if err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
6357
ratelimit.Check(request.GetAction())

0 commit comments

Comments
 (0)