Skip to content

feat(cdc): [118298120] add new resource and data source #2737

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jul 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .changelog/2737.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
```release-note:new-resource
tencentcloud_cdc_site
```

```release-note:new-resource
tencentcloud_cdc_dedicated_cluster
```

```release-note:new-data-source
tencentcloud_cdc_dedicated_cluster_hosts
```

```release-note:new-data-source
tencentcloud_cdc_dedicated_cluster_instance_types
```

```release-note:new-data-source
tencentcloud_cdc_dedicated_cluster_orders
```
9 changes: 5 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.961
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.962
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.967
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.970
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.960
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692
Expand All @@ -61,7 +61,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.0.760
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/emr v1.0.811
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.777
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.967
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.970
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.563
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.729
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.777
Expand Down Expand Up @@ -107,9 +107,10 @@ require (

require (
github.com/hashicorp/go-uuid v1.0.3
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.970
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.772
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.964
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.970
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/region v1.0.920
github.com/wI2L/jsondiff v0.3.0
Expand Down
14 changes: 12 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -838,6 +838,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591 h1:TPGLjH6
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591/go.mod h1:nCAGfVTXZkVnurkbjF3b0FM6RwGztE9t8D9Ms1unaKo=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.800 h1:VnnmCIaAXU7t0uwNtaLs990V7+V7/7viMpOytOT6GOE=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.800/go.mod h1:8wiecMvcwN6785rTWLJmdm/Y7u1DjFmqI/iqiWwpm5o=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.967 h1:+05iVbm200Dh1td+apCB/aX2w97TvmcSlpECkaL53Bw=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.967/go.mod h1:JzIWhJtlitR2S92TMXikPAOQlC8smQrMbU2Y8NBzRk8=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.970 h1:0A6PwOaUeLtm4U5TR1uD91ETBgDcnfqFnsG9mwCNvlY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.970/go.mod h1:H4k8QCKds731GA9pmSOfHJ99ZOZhy+gKvX1/N2DOsQQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539 h1:0L6nZhT2bToTc/n1z3HOpNgdu5VX5ulmqIuPY+8UozA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539/go.mod h1:6Syk7W5fdDf0BLvX+RXL5obQ6unkt3Id4aN2QqVrV6U=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwch v1.0.843 h1:3Xr3UPscUfi5jAzCtwQjDfDf4TPsbUxsCrDdHo6xIRI=
Expand Down Expand Up @@ -868,6 +872,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.952 h1:+4g+Wp3
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.952/go.mod h1:OW+FNkQgeQTesREQ7iPA4g9V81cEb/NcWSYO6bYe2Qo=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.962 h1:rkceP3tcjU0BCh9xloqZ5cuzDXP327YlQgWHXEaVgns=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.962/go.mod h1:OEg00w6fKlT/3Q/4UI13P5kEJU2IvZm3XMZGUYEKPPs=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970 h1:PfyFPicGDDDc23id+sXh5vF0sbFpCPulzgLhqqVdp9M=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970/go.mod h1:VVMyTwJWyP+XVS9OK1y4tJV4XMXZgnKHl+Fg8r0Jf1Q=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.414/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.524/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
Expand Down Expand Up @@ -956,14 +962,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.963 h1:lUVC
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.963/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.964 h1:ET3EulYQvWrdD5FNwOP+196w5Vbniy/uRGucM5ILExQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.964/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.967 h1:ui73H/2pKk2aDCxaBCLAeMB3JlNgdCkn0nx1x0pqvf0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.967/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.959 h1:GZUqSDQkttkhH2hxWNj5apDo1/YhQwML0Q68wW60LSA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.959/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960 h1:hde8uWA3624nGUvC8QPf9njcyBZ7A9weqscRrqyM1Rk=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.961 h1:UqinjIsO+Y48BQYSxrD6aHQe8SD+Wsbvj+jU9V9VvWM=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.961/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.970 h1:IsF+IWWOfzhbyxP1jFYU3w4kZXWfDH4QaNLXgIy3Sgg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.970/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860/go.mod h1:NZo1WplQcC314kMlCRUoy8NQju2BnolIJj7NAWgsuhY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
Expand All @@ -980,6 +986,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.798 h1:8FQbCE
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.798/go.mod h1:ch3pOoPfIs0i+l8qV5yO+Tpk45ubgdltYF/0MfDk4YA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.964 h1:GLUcK8t83ay4+W90gWCl4mMDcwbWiF8VHw7iOhzQ1ZM=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.964/go.mod h1:EErTkW1DHjRtNTlhBmXm+y3plwYreiwoi9o/YEAUNXc=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.970 h1:qVIRHgG1twsqF4aVN/x2T2yMRfPpsZBTNefDkqzM06M=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.970/go.mod h1:NJuuQD4z6vcnsZnC7Tvz2U9hElNS1wroc34UQbZvP2U=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335 h1:D8qrelkK5udv8RzJJIABMzItGIyaZoYnxEVeIsYqiNw=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335/go.mod h1:pz4s3nOhoB9cY0+uWzifuwr7lfh/Gvi1rv0ADxpPzD4=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dbbrain v1.0.652 h1:agjXNi5342DaL0TzRx1FjFlT+9VU2l6aN0yERmxiLLc=
Expand All @@ -1006,6 +1014,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.771 h1:hdd41T
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.771/go.mod h1:SzBYz5GyZvZlBHLhKKQ7X/1YaJu73ehlJRx4WK/V7hQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.967 h1:zV/M+XqJjSn5uqTd4gWsEFPhMOgEaRgDPUB5obel9Qk=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.967/go.mod h1:d2Rx/0LqYx5fQbGkpen6D27CRKHvxdng8vSeKIJ5ZZU=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.970 h1:Z82LbcEnE2m4CGvcOY024N7REhAN++xdEyE88HG2YBA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.970/go.mod h1:qnOT3rycGxlNy4/gmprV58Uqd9CKLUr2CL235R1AvuQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.563 h1:FoX+MK4vHThvPO6FbP5q98zD8S3n+d5+DbtK7skl++c=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.563/go.mod h1:uom4Nvi9W+Qkom0exYiJ9VWJjXwyxtPYTkKkaLMlfE0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.729 h1:WQpzm3x27Jo/5uh6/Yqe/gbJ7r2ui9hc9ST7Ml2eP9Y=
Expand Down
16 changes: 16 additions & 0 deletions tencentcloud/connectivity/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"strconv"
"time"

cdc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc/v20201214"

csip "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip/v20221121"
cos "github.com/tencentyun/cos-go-sdk-v5"

Expand Down Expand Up @@ -208,6 +210,7 @@ type TencentCloudClient struct {
//internal version: replace client begin, please do not modify this annotation and refrain from inserting any code between the beginning and end lines of the annotation.
//internal version: replace client end, please do not modify this annotation and refrain from inserting any code between the beginning and end lines of the annotation.
tke2Conn *tke2.Client
cdcConn *cdc.Client
//omit nil client
omitNilConn *common.Client
}
Expand Down Expand Up @@ -1612,3 +1615,16 @@ func (me *TencentCloudClient) UseTke2Client(iacExtInfo ...IacExtInfo) *tke2.Clie

return me.tke2Conn
}

// UseCdcClient returns tem client for service
func (me *TencentCloudClient) UseCdcClient() *cdc.Client {
if me.cdcConn != nil {
return me.cdcConn
}

cpf := me.NewClientProfile(300)
me.cdcConn, _ = cdc.NewClient(me.Credential, me.Region, cpf)
me.cdcConn.WithHttpTransport(&LogRoundTripper{})

return me.cdcConn
}
12 changes: 10 additions & 2 deletions tencentcloud/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import (
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cbs"
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/ccn"
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cdb"
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cdc"
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cdh"
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cdn"
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cdwch"
Expand Down Expand Up @@ -989,7 +990,11 @@ func Provider() *schema.Provider {
"tencentcloud_clickhouse_instance_shards": cdwch.DataSourceTencentCloudClickhouseInstanceShards(),
"tencentcloud_clickhouse_instance_nodes": cdwch.DataSourceTencentCloudClickhouseInstanceNodes(),
"tencentcloud_organization_org_share_area": tco.DataSourceTencentCloudOrganizationOrgShareArea(),
"tencentcloud_kubernetes_cluster_native_node_pools": tke.DataSourceTencentCloudKubernetesClusterNativeNodePools()},
"tencentcloud_kubernetes_cluster_native_node_pools": tke.DataSourceTencentCloudKubernetesClusterNativeNodePools(),
"tencentcloud_cdc_dedicated_cluster_hosts": cdc.DataSourceTencentCloudCdcDedicatedClusterHosts(),
"tencentcloud_cdc_dedicated_cluster_instance_types": cdc.DataSourceTencentCloudCdcDedicatedClusterInstanceTypes(),
"tencentcloud_cdc_dedicated_cluster_orders": cdc.DataSourceTencentCloudCdcDedicatedClusterOrders(),
},

ResourcesMap: map[string]*schema.Resource{
"tencentcloud_project": project.ResourceTencentCloudProject(),
Expand Down Expand Up @@ -1986,7 +1991,10 @@ func Provider() *schema.Provider {
"tencentcloud_organization_org_share_unit": tco.ResourceTencentCloudOrganizationOrgShareUnit(),
"tencentcloud_kubernetes_addon": tke.ResourceTencentCloudKubernetesAddon(),
"tencentcloud_kubernetes_addon_config": tke.ResourceTencentCloudKubernetesAddonConfig(),
"tencentcloud_kubernetes_native_node_pool": tke.ResourceTencentCloudKubernetesNativeNodePool()},
"tencentcloud_kubernetes_native_node_pool": tke.ResourceTencentCloudKubernetesNativeNodePool(),
"tencentcloud_cdc_site": cdc.ResourceTencentCloudCdcSite(),
"tencentcloud_cdc_dedicated_cluster": cdc.ResourceTencentCloudCdcDedicatedCluster(),
},

ConfigureFunc: providerConfigure,
}
Expand Down
13 changes: 12 additions & 1 deletion tencentcloud/provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -2146,4 +2146,15 @@ CDWPG

CSIP
Resource
tencentcloud_csip_risk_center
tencentcloud_csip_risk_center

CDC
Data Source
tencentcloud_cdc_dedicated_cluster_hosts
tencentcloud_cdc_dedicated_cluster_instance_types
tencentcloud_cdc_dedicated_cluster_orders

Resource
tencentcloud_cdc_site
tencentcloud_cdc_dedicated_cluster

Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
package cdc

import (
"context"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
cdc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc/v20201214"
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
)

func DataSourceTencentCloudCdcDedicatedClusterHosts() *schema.Resource {
return &schema.Resource{
Read: DataSourceTencentCloudCdcDedicatedClusterHostsRead,
Schema: map[string]*schema.Schema{
"dedicated_cluster_id": {
Required: true,
Type: schema.TypeString,
Description: "Dedicated Cluster ID.",
},
// computed
"host_info_set": {
Computed: true,
Type: schema.TypeList,
Description: "Dedicated Cluster Host Info.",
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"host_ip": {
Type: schema.TypeString,
Computed: true,
Description: "Dedicated Cluster Host Ip (Deprecated).",
},
"service_type": {
Type: schema.TypeString,
Computed: true,
Description: "Dedicated Cluster Service Type.",
},
"host_status": {
Type: schema.TypeString,
Computed: true,
Description: "Dedicated Cluster Host Status.",
},
"host_type": {
Type: schema.TypeString,
Computed: true,
Description: "Dedicated Cluster Host Type.",
},
"cpu_available": {
Type: schema.TypeInt,
Computed: true,
Description: "Dedicated Cluster Host CPU Available Count.",
},
"cpu_total": {
Type: schema.TypeInt,
Computed: true,
Description: "Dedicated Cluster Host CPU Total Count.",
},
"mem_available": {
Type: schema.TypeInt,
Computed: true,
Description: "Dedicated Cluster Host Memory Available Count (GB).",
},
"mem_total": {
Type: schema.TypeInt,
Computed: true,
Description: "Dedicated Cluster Host Memory Total Count (GB).",
},
"run_time": {
Type: schema.TypeString,
Computed: true,
Description: "Dedicated Cluster Host Run Time.",
},
"expire_time": {
Type: schema.TypeString,
Computed: true,
Description: "Dedicated Cluster Host Expire Time.",
},
"host_id": {
Type: schema.TypeString,
Computed: true,
Description: "Dedicated Cluster Host ID.",
},
},
},
},
"result_output_file": {
Type: schema.TypeString,
Optional: true,
Description: "Used to save results.",
},
},
}
}

func DataSourceTencentCloudCdcDedicatedClusterHostsRead(d *schema.ResourceData, meta interface{}) error {
defer tccommon.LogElapsed("data_source.tencentcloud_cdc_dedicated_cluster_hosts.read")()
defer tccommon.InconsistentCheck(d, meta)()

var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
service = CdcService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
hostInfoSet []*cdc.HostInfo
)

paramMap := make(map[string]interface{})
if v, ok := d.GetOk("dedicated_cluster_id"); ok {
paramMap["DedicatedClusterId"] = helper.String(v.(string))
}

err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
result, e := service.DescribeCdcHostByFilter(ctx, paramMap)
if e != nil {
return tccommon.RetryError(e)
}

hostInfoSet = result
return nil
})

if err != nil {
return err
}

ids := make([]string, 0, len(hostInfoSet))
tmpList := make([]map[string]interface{}, 0, len(hostInfoSet))

if hostInfoSet != nil {
for _, hostInfo := range hostInfoSet {
hostInfoMap := map[string]interface{}{}

if hostInfo.HostIp != nil {
hostInfoMap["host_ip"] = hostInfo.HostIp
}

if hostInfo.ServiceType != nil {
hostInfoMap["service_type"] = hostInfo.ServiceType
}

if hostInfo.HostStatus != nil {
hostInfoMap["host_status"] = hostInfo.HostStatus
}

if hostInfo.HostType != nil {
hostInfoMap["host_type"] = hostInfo.HostType
}

if hostInfo.CpuAvailable != nil {
hostInfoMap["cpu_available"] = hostInfo.CpuAvailable
}

if hostInfo.CpuTotal != nil {
hostInfoMap["cpu_total"] = hostInfo.CpuTotal
}

if hostInfo.MemAvailable != nil {
hostInfoMap["mem_available"] = hostInfo.MemAvailable
}

if hostInfo.MemTotal != nil {
hostInfoMap["mem_total"] = hostInfo.MemTotal
}

if hostInfo.RunTime != nil {
hostInfoMap["run_time"] = hostInfo.RunTime
}

if hostInfo.ExpireTime != nil {
hostInfoMap["expire_time"] = hostInfo.ExpireTime
}

if hostInfo.HostId != nil {
hostInfoMap["host_id"] = hostInfo.HostId
}

ids = append(ids)
tmpList = append(tmpList, hostInfoMap)
}

_ = d.Set("host_info_set", tmpList)
}

d.SetId(helper.DataResourceIdsHash(ids))
output, ok := d.GetOk("result_output_file")
if ok && output.(string) != "" {
if e := tccommon.WriteToFile(output.(string), tmpList); e != nil {
return e
}
}

return nil
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Use this data source to query detailed information of CDC dedicated cluster hosts

Example Usage

```hcl
data "tencentcloud_cdc_dedicated_cluster_hosts" "hosts" {
dedicated_cluster_id = "cluster-262n63e8"
}
```
Loading
Loading