Skip to content

Commit d681712

Browse files
authored
feat(tke): [116471075]optimize cluster instance queries (#2560)
* optimize cluster instance queries * add changelog 2560.txt
1 parent 5dc2774 commit d681712

File tree

3 files changed

+39
-18
lines changed

3 files changed

+39
-18
lines changed

.changelog/2560.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
datasource/tencentcloud_kubernetes_cluster_instances: optimize cluster instance queries
3+
```

tencentcloud/services/tke/data_source_tc_kubernetes_cluster_instances_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func TestAccTencentCloudKubernetesClusterInstancesDataSource_basic(t *testing.T)
2121
Check: resource.ComposeTestCheckFunc(
2222
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_kubernetes_cluster_instances.cluster_instances"),
2323
resource.TestCheckResourceAttr("data.tencentcloud_kubernetes_cluster_instances.cluster_instances", "instance_set.#", "1"),
24-
resource.TestCheckResourceAttr("data.tencentcloud_kubernetes_cluster_instances.cluster_instances", "instance_set.0.instance_id", "ins-kqmx8dm2"),
24+
resource.TestCheckResourceAttr("data.tencentcloud_kubernetes_cluster_instances.cluster_instances", "instance_set.0.instance_id", "ins-1fb82v28"),
2525
resource.TestCheckResourceAttr("data.tencentcloud_kubernetes_cluster_instances.cluster_instances", "instance_set.0.instance_role", "WORKER"),
2626
resource.TestCheckResourceAttr("data.tencentcloud_kubernetes_cluster_instances.cluster_instances", "instance_set.0.instance_state", "running"),
2727
),
@@ -30,7 +30,7 @@ func TestAccTencentCloudKubernetesClusterInstancesDataSource_basic(t *testing.T)
3030
Config: testAccKubernetesClusterInstancesDataSourceFilter,
3131
Check: resource.ComposeTestCheckFunc(
3232
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_kubernetes_cluster_instances.cluster_instances"),
33-
resource.TestCheckResourceAttr("data.tencentcloud_kubernetes_cluster_instances.cluster_instances", "instance_set.#", "0"),
33+
resource.TestCheckResourceAttr("data.tencentcloud_kubernetes_cluster_instances.cluster_instances", "instance_set.#", "1"),
3434
),
3535
},
3636
},
@@ -39,20 +39,20 @@ func TestAccTencentCloudKubernetesClusterInstancesDataSource_basic(t *testing.T)
3939

4040
const testAccKubernetesClusterInstancesDataSource = `
4141
data "tencentcloud_kubernetes_cluster_instances" "cluster_instances" {
42-
cluster_id = "cls-ely08ic4"
43-
instance_ids = ["ins-kqmx8dm2"]
42+
cluster_id = "cls-6l3thsra"
43+
instance_ids = ["ins-1fb82v28"]
4444
instance_role = "WORKER"
4545
}
4646
`
4747

4848
const testAccKubernetesClusterInstancesDataSourceFilter = `
4949
data "tencentcloud_kubernetes_cluster_instances" "cluster_instances" {
50-
cluster_id = "cls-ely08ic4"
51-
instance_ids = ["ins-kqmx8dm2"]
50+
cluster_id = "cls-6l3thsra"
51+
instance_ids = ["ins-qzkwjklk"]
5252
instance_role = "WORKER"
5353
filters {
5454
name = "nodepool-id"
55-
values = ["np-p4e6whqu"]
55+
values = ["np-qrez0ayk"]
5656
}
5757
}
5858
`

tencentcloud/services/tke/service_tencentcloud_tke.go

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2716,20 +2716,38 @@ func (me *TkeService) DescribeKubernetesClusterInstancesByFilter(ctx context.Con
27162716
}
27172717
}
27182718

2719-
ratelimit.Check(request.GetAction())
2719+
var offset int64 = 0
2720+
var limit int64 = 20
2721+
var total int64 = -1
27202722

2721-
response, err := me.client.UseTkeClient().DescribeClusterInstances(request)
2722-
if err != nil {
2723-
errRet = err
2724-
return
2725-
}
2726-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
2723+
for {
2724+
if total >= 0 && offset >= total {
2725+
break
2726+
}
2727+
request.Offset = &offset
2728+
request.Limit = &limit
2729+
ratelimit.Check(request.GetAction())
27272730

2728-
if len(response.Response.InstanceSet) < 1 {
2729-
return
2730-
}
2731+
response, err := me.client.UseTkeClient().DescribeClusterInstances(request)
2732+
if err != nil {
2733+
errRet = err
2734+
return
2735+
}
2736+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
2737+
2738+
if total < 0 {
2739+
total = int64(*response.Response.TotalCount)
2740+
}
27312741

2732-
clusterInstances = response.Response.InstanceSet
2742+
if len(response.Response.InstanceSet) == 0 {
2743+
// get empty set, we're done
2744+
break
2745+
}
2746+
2747+
offset += limit
2748+
2749+
clusterInstances = append(clusterInstances, response.Response.InstanceSet...)
2750+
}
27332751
return
27342752
}
27352753

0 commit comments

Comments
 (0)