From 34d05361d38ae8923f5d84e010e366fabd8be69e Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Fri, 27 Jun 2025 14:45:19 +0800 Subject: [PATCH 1/2] add --- .../data_source_tc_elasticsearch_instances.go | 34 +++++++++++++++---- .../data_source_tc_elasticsearch_instances.md | 14 +++++--- .../d/elasticsearch_instances.html.markdown | 15 +++++--- 3 files changed, 48 insertions(+), 15 deletions(-) diff --git a/tencentcloud/services/es/data_source_tc_elasticsearch_instances.go b/tencentcloud/services/es/data_source_tc_elasticsearch_instances.go index 4e205b38f3..7f012e502b 100644 --- a/tencentcloud/services/es/data_source_tc_elasticsearch_instances.go +++ b/tencentcloud/services/es/data_source_tc_elasticsearch_instances.go @@ -174,6 +174,11 @@ func DataSourceTencentCloudElasticsearchInstances() *schema.Resource { Computed: true, Description: "Elasticsearch port.", }, + "elasticsearch_public_url": { + Type: schema.TypeString, + Computed: true, + Description: "Elasticsearch public url.", + }, "kibana_url": { Type: schema.TypeString, Computed: true, @@ -194,20 +199,22 @@ func DataSourceTencentCloudElasticsearchInstances() *schema.Resource { func dataSourceTencentCloudElasticsearchInstancesRead(d *schema.ResourceData, meta interface{}) error { defer tccommon.LogElapsed("data_source.tencentcloud_elasticsearch_instances.read")() - logId := tccommon.GetLogId(tccommon.ContextNil) - ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId) - elasticsearchService := ElasticsearchService{ - client: meta.(tccommon.ProviderMeta).GetAPIV3Conn(), - } + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) + elasticsearchService = ElasticsearchService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + instanceId string + instanceName string + ) - instanceId := "" - instanceName := "" if v, ok := d.GetOk("instance_id"); ok { instanceId = v.(string) } + if v, ok := d.GetOk("instance_name"); ok { instanceName = v.(string) } + tags := helper.GetTags(d, "tags") var instances []*es.InstanceInfo var errRet error @@ -216,8 +223,10 @@ func dataSourceTencentCloudElasticsearchInstancesRead(d *schema.ResourceData, me if errRet != nil { return tccommon.RetryError(errRet, tccommon.InternalError) } + return nil }) + if err != nil { return nil } @@ -248,6 +257,11 @@ func dataSourceTencentCloudElasticsearchInstancesRead(d *schema.ResourceData, me "kibana_url": instance.KibanaUrl, "create_time": instance.CreateTime, } + + if instance.EsPublicUrl != nil { + mapping["elasticsearch_public_url"] = instance.EsPublicUrl + } + if instance.MultiZoneInfo != nil && len(instance.MultiZoneInfo) > 0 { infos := make([]map[string]interface{}, 0, len(instance.MultiZoneInfo)) for _, v := range instance.MultiZoneInfo { @@ -255,10 +269,13 @@ func dataSourceTencentCloudElasticsearchInstancesRead(d *schema.ResourceData, me "availability_zone": v.Zone, "subnet_id": v.SubnetId, } + infos = append(infos, info) } + mapping["multi_zone_infos"] = infos } + if instance.NodeInfoList != nil && len(instance.NodeInfoList) > 0 { infos := make([]map[string]interface{}, 0, len(instance.NodeInfoList)) for _, v := range instance.NodeInfoList { @@ -266,6 +283,7 @@ func dataSourceTencentCloudElasticsearchInstancesRead(d *schema.ResourceData, me if *v.Type == "kibana" { continue } + info := map[string]interface{}{ "node_num": v.NodeNum, "node_type": v.NodeType, @@ -274,8 +292,10 @@ func dataSourceTencentCloudElasticsearchInstancesRead(d *schema.ResourceData, me "disk_size": v.DiskSize, "encrypt": *v.DiskEncrypt > 0, } + infos = append(infos, info) } + mapping["node_info_list"] = infos } diff --git a/tencentcloud/services/es/data_source_tc_elasticsearch_instances.md b/tencentcloud/services/es/data_source_tc_elasticsearch_instances.md index 7ec4864d85..b1963c0bcd 100644 --- a/tencentcloud/services/es/data_source_tc_elasticsearch_instances.md +++ b/tencentcloud/services/es/data_source_tc_elasticsearch_instances.md @@ -1,9 +1,15 @@ -Use this data source to query elasticsearch instances. +Use this data source to query Elasticsearch(ES) instances. Example Usage +Query ES instances by filters + ```hcl -data "tencentcloud_elasticsearch_instances" "foo" { - instance_id = "es-17634f05" +data "tencentcloud_elasticsearch_instances" "example" { + instance_id = "es-bxffils7" + instance_name = "tf-example" + tags = { + createBy = "Terraform" + } } -``` \ No newline at end of file +``` diff --git a/website/docs/d/elasticsearch_instances.html.markdown b/website/docs/d/elasticsearch_instances.html.markdown index e7a2c82cea..49ead0245b 100644 --- a/website/docs/d/elasticsearch_instances.html.markdown +++ b/website/docs/d/elasticsearch_instances.html.markdown @@ -4,18 +4,24 @@ layout: "tencentcloud" page_title: "TencentCloud: tencentcloud_elasticsearch_instances" sidebar_current: "docs-tencentcloud-datasource-elasticsearch_instances" description: |- - Use this data source to query elasticsearch instances. + Use this data source to query Elasticsearch(ES) instances. --- # tencentcloud_elasticsearch_instances -Use this data source to query elasticsearch instances. +Use this data source to query Elasticsearch(ES) instances. ## Example Usage +### Query ES instances by filters + ```hcl -data "tencentcloud_elasticsearch_instances" "foo" { - instance_id = "es-17634f05" +data "tencentcloud_elasticsearch_instances" "example" { + instance_id = "es-bxffils7" + instance_name = "tf-example" + tags = { + createBy = "Terraform" + } } ``` @@ -40,6 +46,7 @@ In addition to all arguments above, the following attributes are exported: * `deploy_mode` - Cluster deployment mode. * `elasticsearch_domain` - Elasticsearch domain name. * `elasticsearch_port` - Elasticsearch port. + * `elasticsearch_public_url` - Elasticsearch public url. * `elasticsearch_vip` - Elasticsearch VIP. * `instance_id` - ID of the instance. * `instance_name` - Name of the instance. From 23b797625a5dcb47e043d60494ef91854521b6d9 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Fri, 27 Jun 2025 14:47:25 +0800 Subject: [PATCH 2/2] add --- .changelog/3424.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3424.txt diff --git a/.changelog/3424.txt b/.changelog/3424.txt new file mode 100644 index 0000000000..28150503b3 --- /dev/null +++ b/.changelog/3424.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +datasource/tencentcloud_elasticsearch_instances: add `elasticsearch_public_url` params +```