Skip to content

Commit 65ed6f8

Browse files
committed
deprecated resource container cluster, eip, image, nat using api3.0
1 parent bc8d0cc commit 65ed6f8

38 files changed

+1923
-1606
lines changed

examples/tencentcloud-container-cluster-instance/main.tf

Lines changed: 0 additions & 58 deletions
This file was deleted.

examples/tencentcloud-container-cluster/main.tf

Lines changed: 0 additions & 38 deletions
This file was deleted.

examples/tencentcloud-container-cluster/variables.tf

Lines changed: 0 additions & 1 deletion
This file was deleted.

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/hashicorp/terraform v0.12.3
1313
github.com/likexian/gokit v0.0.0-20190604165112-68b8a4ba758c
1414
github.com/mitchellh/go-homedir v1.1.0
15-
github.com/tencentcloud/tencentcloud-sdk-go v3.0.87-0.20190912121957-c0615982c83b+incompatible
15+
github.com/tencentcloud/tencentcloud-sdk-go v3.0.94+incompatible
1616
github.com/terraform-providers/terraform-provider-template v1.0.0
1717
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1
1818
github.com/zqfan/tencentcloud-sdk-go v0.0.0-0.20181105105106-4c76f78ff2e6

go.sum

Lines changed: 52 additions & 2 deletions
Large diffs are not rendered by default.

tencentcloud/config.go

Lines changed: 2 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@ package tencentcloud
33
import (
44
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/connectivity"
55
"github.com/zqfan/tencentcloud-sdk-go/client"
6-
cbs "github.com/zqfan/tencentcloud-sdk-go/services/cbs/unversioned"
7-
ccs "github.com/zqfan/tencentcloud-sdk-go/services/ccs/unversioned"
8-
cvm "github.com/zqfan/tencentcloud-sdk-go/services/cvm/v20170312"
9-
lb "github.com/zqfan/tencentcloud-sdk-go/services/lb/unversioned"
10-
vpc "github.com/zqfan/tencentcloud-sdk-go/services/vpc/unversioned"
116
)
127

138
type Config struct {
@@ -19,56 +14,13 @@ type Config struct {
1914

2015
type TencentCloudClient struct {
2116
commonConn *client.Client
22-
cvmConn *cvm.Client
23-
cbsConn *cbs.Client
24-
ccsConn *ccs.Client
25-
lbConn *lb.Client
26-
vpcConn *vpc.Client
27-
//for TencentCloud api v3
28-
apiV3Conn *connectivity.TencentCloudClient
17+
apiV3Conn *connectivity.TencentCloudClient
2918
}
3019

3120
func (c *Config) Client() (interface{}, error) {
3221
var tcClient TencentCloudClient
33-
userAgent := "TF_TC_1.2.2"
34-
tcClient.commonConn = client.NewClient(c.SecretId, c.SecretKey, c.Region)
35-
tcClient.commonConn.Debug = true
36-
37-
cvmConn, err := cvm.NewClientWithSecretId(c.SecretId, c.SecretKey, c.Region)
38-
cvmConn.WithUserAgent(userAgent)
39-
if err != nil {
40-
return nil, err
41-
}
42-
tcClient.cvmConn = cvmConn
43-
44-
vpcConn, err := vpc.NewClientWithSecretId(c.SecretId, c.SecretKey, c.Region)
45-
vpcConn.WithUserAgent(userAgent)
46-
if err != nil {
47-
return nil, err
48-
}
49-
tcClient.vpcConn = vpcConn
50-
51-
cbsConn, err := cbs.NewClientWithSecretId(c.SecretId, c.SecretKey, c.Region)
52-
cbsConn.WithUserAgent(userAgent)
53-
if err != nil {
54-
return nil, err
55-
}
56-
tcClient.cbsConn = cbsConn
57-
58-
ccsConn, err := ccs.NewClientWithSecretId(c.SecretId, c.SecretKey, c.Region)
59-
ccsConn.WithUserAgent(userAgent)
60-
if err != nil {
61-
return nil, err
62-
}
63-
tcClient.ccsConn = ccsConn
64-
65-
lbConn, err := lb.NewClientWithSecretId(c.SecretId, c.SecretKey, c.Region)
66-
lbConn.WithUserAgent(userAgent)
67-
if err != nil {
68-
return nil, err
69-
}
70-
tcClient.lbConn = lbConn
7122

23+
tcClient.commonConn = client.NewClient(c.SecretId, c.SecretKey, c.Region)
7224
tcClient.apiV3Conn = connectivity.NewTencentCloudClient(c.SecretId, c.SecretKey, c.SecurityToken, c.Region)
7325

7426
return &tcClient, nil

tencentcloud/connectivity/transport.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ func (me *LogRoundTripper) RoundTrip(request *http.Request) (response *http.Resp
3636
appendMessage := []byte(fmt.Sprintf(
3737
",(host %+v,action:%+v,region:%+v)",
3838
request.Header["Host"],
39-
request.Header["X-TC-Action"],
40-
request.Header["X-TC-Region"],
39+
request.Header["X-Tc-Action"],
40+
request.Header["X-Tc-Region"],
4141
))
4242

4343
inBytes = append(inBytes, appendMessage...)

tencentcloud/data_source_tc_container_cluster_instances.go

Lines changed: 68 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package tencentcloud
22

33
import (
4-
"fmt"
5-
"time"
4+
"log"
65

6+
"github.com/hashicorp/terraform/helper/resource"
77
"github.com/hashicorp/terraform/helper/schema"
8-
"github.com/zqfan/tencentcloud-sdk-go/common"
9-
ccs "github.com/zqfan/tencentcloud-sdk-go/services/ccs/unversioned"
8+
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
9+
cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312"
10+
tke "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525"
1011
)
1112

1213
func dataSourceTencentCloudContainerClusterInstances() *schema.Resource {
@@ -23,7 +24,6 @@ func dataSourceTencentCloudContainerClusterInstances() *schema.Resource {
2324
Type: schema.TypeInt,
2425
Optional: true,
2526
},
26-
// Computed values
2727
"total_count": {
2828
Type: schema.TypeInt,
2929
Computed: true,
@@ -68,66 +68,89 @@ func dataSourceTencentCloudContainerClusterInstances() *schema.Resource {
6868
}
6969
}
7070

71-
func dataSourceTencentCloudContainerClusterInstancesRead(d *schema.ResourceData, m interface{}) error {
72-
client := m.(*TencentCloudClient).ccsConn
73-
describeClusterInstancesReq := ccs.NewDescribeClusterInstancesRequest()
71+
func dataSourceTencentCloudContainerClusterInstancesRead(d *schema.ResourceData, meta interface{}) error {
72+
defer logElapsed("data_source.tencentcloud_container_cluster_instances.read")()
7473

74+
logId := getLogId(contextNil)
75+
76+
request := tke.NewDescribeClusterInstancesRequest()
7577
if clusterId, ok := d.GetOkExists("cluster_id"); ok {
76-
describeClusterInstancesReq.ClusterId = common.StringPtr(clusterId.(string))
78+
request.ClusterId = common.StringPtr(clusterId.(string))
7779
}
7880

7981
if limit, ok := d.GetOkExists("limit"); ok {
80-
describeClusterInstancesReq.Limit = common.IntPtr(limit.(int))
82+
request.Limit = common.Int64Ptr(limit.(int64))
8183
}
8284

83-
response, err := client.DescribeClusterInstances(describeClusterInstancesReq)
85+
var response *tke.DescribeClusterInstancesResponse
86+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
87+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseTkeClient().DescribeClusterInstances(request)
88+
if e != nil {
89+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
90+
logId, request.GetAction(), request.ToJsonString(), e.Error())
91+
return retryError(e)
92+
}
93+
response = result
94+
return nil
95+
})
8496
if err != nil {
97+
log.Printf("[CRITAL]%s DescribeClusterInstances failed, reason:%s\n ", logId, err.Error())
8598
return err
8699
}
87100

88-
if response.Code == nil {
89-
return fmt.Errorf("data_source_tencent_cloud_container_cluster_instances got error, no code response")
90-
}
101+
nodes := make([]map[string]interface{}, 0, *response.Response.TotalCount)
102+
ids := make([]string, 0, *response.Response.TotalCount)
103+
for _, node := range response.Response.InstanceSet {
104+
ids = append(ids, *node.InstanceId)
91105

92-
if *response.Code != 0 {
93-
return fmt.Errorf("data_source_tencent_cloud_container_cluster_instances got error, code %v , message %v", *response.Code, *response.CodeDesc)
94-
}
95-
96-
id := fmt.Sprintf("%d", time.Now().Unix())
97-
nodes := make([]map[string]interface{}, 0)
98-
for _, node := range response.Data.Nodes {
99106
nodeInfo := make(map[string]interface{})
100-
if node.AbnormalReason != nil {
101-
nodeInfo["abnormal_reason"] = *node.AbnormalReason
102-
}
103-
if node.CPU != nil {
104-
nodeInfo["cpu"] = *node.CPU
105-
}
106-
if node.Mem != nil {
107-
nodeInfo["mem"] = *node.Mem
107+
nodeInfo["instance_id"] = *node.InstanceId
108+
nodeInfo["abnormal_reason"] = *node.FailedReason
109+
nodeInfo["wan_ip"] = ""
110+
nodeInfo["lan_ip"] = ""
111+
nodeInfo["cpu"] = 0
112+
nodeInfo["mem"] = 0
113+
if *node.InstanceState == "failed" {
114+
nodeInfo["is_normal"] = 0
115+
} else {
116+
nodeInfo["is_normal"] = 1
108117
}
109-
if node.InstanceId != nil {
110-
nodeInfo["instance_id"] = *node.InstanceId
111-
}
112-
if node.IsNormal != nil {
113-
nodeInfo["is_normal"] = *node.IsNormal
114-
}
115-
if node.WanIp != nil {
116-
nodeInfo["wan_ip"] = *node.WanIp
118+
119+
describeInstancesreq := cvm.NewDescribeInstancesRequest()
120+
describeInstancesreq.InstanceIds = []*string{node.InstanceId}
121+
var describeInstancesResponse *cvm.DescribeInstancesResponse
122+
err = resource.Retry(readRetryTimeout, func() *resource.RetryError {
123+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseCvmClient().DescribeInstances(describeInstancesreq)
124+
if e != nil {
125+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
126+
logId, describeInstancesreq.GetAction(), describeInstancesreq.ToJsonString(), e.Error())
127+
return retryError(e)
128+
}
129+
describeInstancesResponse = result
130+
return nil
131+
})
132+
if err != nil {
133+
log.Printf("[CRITAL]%s DescribeInstances failed, reason:%s\n ", logId, err.Error())
134+
return err
117135
}
118-
if node.LanIp != nil {
119-
nodeInfo["lan_ip"] = *node.LanIp
136+
137+
if len(describeInstancesResponse.Response.InstanceSet) > 0 {
138+
nodeInfo["cpu"] = *describeInstancesResponse.Response.InstanceSet[0].CPU
139+
nodeInfo["mem"] = *describeInstancesResponse.Response.InstanceSet[0].Memory
140+
if len(describeInstancesResponse.Response.InstanceSet[0].PublicIpAddresses) > 0 {
141+
nodeInfo["wan_ip"] = *describeInstancesResponse.Response.InstanceSet[0].PublicIpAddresses[0]
142+
}
143+
if len(describeInstancesResponse.Response.InstanceSet[0].PrivateIpAddresses) > 0 {
144+
nodeInfo["lan_ip"] = *describeInstancesResponse.Response.InstanceSet[0].PrivateIpAddresses[0]
145+
}
120146
}
147+
121148
nodes = append(nodes, nodeInfo)
122149
}
123150

151+
d.SetId(dataResourceIdsHash(ids))
124152
d.Set("nodes", nodes)
125-
d.SetId(id)
126-
if response.Data.TotalCount != nil {
127-
d.Set("total_count", *response.Data.TotalCount)
128-
} else {
129-
d.Set("total_count", 0)
130-
}
153+
d.Set("total_count", *response.Response.TotalCount)
131154

132155
return nil
133156
}

tencentcloud/data_source_tc_container_cluster_instances_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,17 @@ import (
77
)
88

99
func TestAccTencentCloudDataSourceContainerClusterInstances(t *testing.T) {
10+
key := "data.tencentcloud_container_cluster_instances.foo_instance"
1011
resource.Test(t, resource.TestCase{
1112
PreCheck: func() { testAccPreCheck(t) },
1213
Providers: testAccProviders,
1314
Steps: []resource.TestStep{
1415
{
1516
Config: testAccTencentCloudDataSourceContainerClusterInstancesConfig_basic,
1617
Check: resource.ComposeTestCheckFunc(
17-
testAccCheckTencentCloudDataSourceID("data.tencentcloud_container_cluster_instances.foo_instance"),
18+
testAccCheckTencentCloudDataSourceID(key),
19+
resource.TestCheckResourceAttrSet(key, "total_count"),
20+
resource.TestCheckResourceAttrSet(key, "nodes.#"),
1821
),
1922
},
2023
},
@@ -26,6 +29,6 @@ data "tencentcloud_container_clusters" "foo" {
2629
}
2730
2831
data "tencentcloud_container_cluster_instances" "foo_instance" {
29-
cluster_id = "${data.tencentcloud_container_clusters.foo.clusters.0.cluster_id}"
32+
cluster_id = "${data.tencentcloud_container_clusters.foo.clusters.0.cluster_id}"
3033
}
3134
`

0 commit comments

Comments
 (0)