Skip to content

Commit 8d4f516

Browse files
tongyimingmikatong
andauthored
fix clb attachment update targets limit (#1644)
* fix clb attachment update targets limit * add changelog * fmt test name --------- Co-authored-by: mikatong <mikatong@tencent.com>
1 parent 78066e7 commit 8d4f516

File tree

3 files changed

+36
-11
lines changed

3 files changed

+36
-11
lines changed

.changelog/1644.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_clb_attachment: remove update targets limit
3+
```

tencentcloud/resource_tc_clb_attachment.go

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -362,16 +362,38 @@ func resourceTencentCloudClbServerAttachmentUpdate(d *schema.ResourceData, meta
362362
ns := n.(*schema.Set)
363363
add := ns.Difference(os).List()
364364
remove := os.Difference(ns).List()
365-
if len(remove) > 0 {
366-
err := resourceTencentCloudClbServerAttachmentRemove(d, meta, remove)
367-
if err != nil {
368-
return err
365+
addLen := len(add)
366+
removeLen := len(remove)
367+
if removeLen > 0 {
368+
for count := 0; count < removeLen; count += 20 {
369+
removeList := make([]interface{}, 0, 20)
370+
for i := 0; i < 20; i++ {
371+
index := count + i
372+
if index >= removeLen {
373+
break
374+
}
375+
removeList = append(removeList, remove[index])
376+
}
377+
err := resourceTencentCloudClbServerAttachmentRemove(d, meta, removeList)
378+
if err != nil {
379+
return err
380+
}
369381
}
370382
}
371-
if len(add) > 0 {
372-
err := resourceTencentCloudClbServerAttachmentAdd(d, meta, add)
373-
if err != nil {
374-
return err
383+
if addLen > 0 {
384+
for count := 0; count < addLen; count += 20 {
385+
addList := make([]interface{}, 0, 20)
386+
for i := 0; i < 20; i++ {
387+
index := count + i
388+
if index >= addLen {
389+
break
390+
}
391+
addList = append(addList, add[index])
392+
}
393+
err := resourceTencentCloudClbServerAttachmentAdd(d, meta, addList)
394+
if err != nil {
395+
return err
396+
}
375397
}
376398
}
377399
return resourceTencentCloudClbServerAttachmentRead(d, meta)

tencentcloud/resource_tc_clb_attachment_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"github.com/hashicorp/terraform-plugin-sdk/terraform"
1212
)
1313

14-
func TestAccTencentCloudClbServerAttachment_tcp(t *testing.T) {
14+
func TestAccTencentCloudClbAttachmentResource_tcp(t *testing.T) {
1515
t.Parallel()
1616
resource.Test(t, resource.TestCase{
1717
PreCheck: func() { testAccPreCheck(t) },
@@ -50,7 +50,7 @@ func TestAccTencentCloudClbServerAttachment_tcp(t *testing.T) {
5050
})
5151
}
5252

53-
func TestAccTencentCloudClbServerAttachment_http(t *testing.T) {
53+
func TestAccTencentCloudClbAttachmentResource_http(t *testing.T) {
5454
t.Parallel()
5555
resource.Test(t, resource.TestCase{
5656
PreCheck: func() { testAccPreCheck(t) },
@@ -103,7 +103,7 @@ func testAccCheckClbServerAttachmentDestroy(s *terraform.State) error {
103103
return nil
104104
}
105105

106-
func TestAccCheckClbServerAttachmentTargetGroups(t *testing.T) {
106+
func TestAccTencentCloudClbAttachmentResource_argetGroups(t *testing.T) {
107107
resource.Test(t, resource.TestCase{
108108
PreCheck: func() {
109109
testAccPreCheck(t)

0 commit comments

Comments
 (0)