From 18c31931e46bf42ee70d487141ab47a56510a3e8 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Wed, 26 Nov 2025 16:17:38 +0800 Subject: [PATCH 1/2] add --- .../tdmq/service_tencentcloud_tdmq.go | 37 +++++++++++---- .../resource_tc_tdmq_rabbitmq_vip_instance.go | 46 +++++++++++-------- .../tdmq_rabbitmq_vip_instance.html.markdown | 2 +- 3 files changed, 56 insertions(+), 29 deletions(-) diff --git a/tencentcloud/services/tdmq/service_tencentcloud_tdmq.go b/tencentcloud/services/tdmq/service_tencentcloud_tdmq.go index b234ab01bb..f140ed967a 100644 --- a/tencentcloud/services/tdmq/service_tencentcloud_tdmq.go +++ b/tencentcloud/services/tdmq/service_tencentcloud_tdmq.go @@ -1672,6 +1672,7 @@ func (me *TdmqService) DescribeTdmqRabbitmqVipInstanceById(ctx context.Context, logId := tccommon.GetLogId(ctx) request := tdmq.NewDescribeRabbitMQVipInstanceRequest() + response := tdmq.NewDescribeRabbitMQVipInstanceResponse() request.ClusterId = &instanceId defer func() { @@ -1680,17 +1681,30 @@ func (me *TdmqService) DescribeTdmqRabbitmqVipInstanceById(ctx context.Context, } }() - ratelimit.Check(request.GetAction()) var iacExtInfo connectivity.IacExtInfo iacExtInfo.InstanceId = instanceId - response, err := me.client.UseTdmqClient(iacExtInfo).DescribeRabbitMQVipInstance(request) + err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, e := me.client.UseTdmqClient(iacExtInfo).DescribeRabbitMQVipInstance(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) + } + + if result == nil || result.Response == nil { + return resource.NonRetryableError(fmt.Errorf("Describe rabbitmq vip instance failed, Response is nil.")) + } + + response = result + return nil + }) + if err != nil { errRet = err return } - log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) - rabbitmqVipInstance = response.Response return } @@ -1709,16 +1723,23 @@ func (me *TdmqService) DeleteTdmqRabbitmqVipInstanceById(ctx context.Context, in } }() - ratelimit.Check(request.GetAction()) + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, e := me.client.UseTdmqClient().DeleteRabbitMQVipInstance(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) - response, err := me.client.UseTdmqClient().DeleteRabbitMQVipInstance(request) if err != nil { errRet = err return } - log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) - return } diff --git a/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_vip_instance.go b/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_vip_instance.go index 639ad8d5c0..06a15a9004 100644 --- a/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_vip_instance.go +++ b/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_vip_instance.go @@ -86,7 +86,7 @@ func ResourceTencentCloudTdmqRabbitmqVipInstance() *schema.Resource { Optional: true, Type: schema.TypeString, Computed: true, - Description: "Cluster version, the default is `3.8.30`, valid values: `3.8.30` and `3.11.8`.", + Description: "Cluster version, the default is `3.8.30`, valid values: `3.8.30`, `3.11.8` and `3.13.7`.", }, "public_access_endpoint": { Type: schema.TypeString, @@ -199,6 +199,10 @@ func resourceTencentCloudTdmqRabbitmqVipInstanceCreate(d *schema.ResourceData, m log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) } + if result == nil || result.Response == nil { + return resource.NonRetryableError(fmt.Errorf("Create tdmq rabbitmqVipInstance failed, Response is nil.")) + } + response = result return nil }) @@ -208,7 +212,12 @@ func resourceTencentCloudTdmqRabbitmqVipInstanceCreate(d *schema.ResourceData, m return err } + if response.Response.InstanceId == nil { + return fmt.Errorf("InstanceId is nil.") + } + instanceId = *response.Response.InstanceId + d.SetId(instanceId) // wait paramMap := make(map[string]interface{}) @@ -246,8 +255,6 @@ func resourceTencentCloudTdmqRabbitmqVipInstanceCreate(d *schema.ResourceData, m return err } - d.SetId(instanceId) - return resourceTencentCloudTdmqRabbitmqVipInstanceRead(d, meta) } @@ -268,8 +275,8 @@ func resourceTencentCloudTdmqRabbitmqVipInstanceRead(d *schema.ResourceData, met } if rabbitmqVipInstance == nil { + log.Printf("[WARN]%s resource `tencentcloud_tdmq_rabbitmq_vip_instance` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) d.SetId("") - log.Printf("[WARN]%s resource `TdmqRabbitmqVipInstance` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) return nil } @@ -356,8 +363,8 @@ func resourceTencentCloudTdmqRabbitmqVipInstanceRead(d *schema.ResourceData, met }) if err != nil { - d.SetId("") log.Printf("[WARN]%s resource `TdmqRabbitmqVipInstance` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) + d.SetId("") return nil } @@ -386,28 +393,27 @@ func resourceTencentCloudTdmqRabbitmqVipInstanceUpdate(d *schema.ResourceData, m } } - request.InstanceId = &instanceId - if d.HasChange("cluster_name") { if v, ok := d.GetOk("cluster_name"); ok { request.ClusterName = helper.String(v.(string)) } - } - err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { - result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTdmqClient().ModifyRabbitMQVipInstance(request) - if e != nil { - return tccommon.RetryError(e) - } else { - log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) - } + request.InstanceId = &instanceId + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTdmqClient().ModifyRabbitMQVipInstance(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } - return nil - }) + return nil + }) - if err != nil { - log.Printf("[CRITAL]%s update tdmq rabbitmqVipInstance failed, reason:%+v", logId, err) - return err + if err != nil { + log.Printf("[CRITAL]%s update tdmq rabbitmqVipInstance failed, reason:%+v", logId, err) + return err + } } return resourceTencentCloudTdmqRabbitmqVipInstanceRead(d, meta) diff --git a/website/docs/r/tdmq_rabbitmq_vip_instance.html.markdown b/website/docs/r/tdmq_rabbitmq_vip_instance.html.markdown index 7143d26e0a..f16c6f90c8 100644 --- a/website/docs/r/tdmq_rabbitmq_vip_instance.html.markdown +++ b/website/docs/r/tdmq_rabbitmq_vip_instance.html.markdown @@ -73,7 +73,7 @@ The following arguments are supported: * `vpc_id` - (Required, String) Private network VpcId. * `zone_ids` - (Required, Set: [`Int`]) availability zone. * `auto_renew_flag` - (Optional, Bool) Automatic renewal, the default is true. -* `cluster_version` - (Optional, String) Cluster version, the default is `3.8.30`, valid values: `3.8.30` and `3.11.8`. +* `cluster_version` - (Optional, String) Cluster version, the default is `3.8.30`, valid values: `3.8.30`, `3.11.8` and `3.13.7`. * `enable_create_default_ha_mirror_queue` - (Optional, Bool) Mirrored queue, the default is false. * `node_num` - (Optional, Int) The number of nodes, a minimum of 3 nodes for a multi-availability zone. If not passed, the default single availability zone is 1, and the multi-availability zone is 3. * `node_spec` - (Optional, String) Node specifications. Valid values: rabbit-vip-basic-5 (for 2C4G), rabbit-vip-profession-2c8g (for 2C8G), rabbit-vip-basic-1 (for 4C8G), rabbit-vip-profession-4c16g (for 4C16G), rabbit-vip-basic-2 (for 8C16G), rabbit-vip-profession-8c32g (for 8C32G), rabbit-vip-basic-4 (for 16C32G), rabbit-vip-profession-16c64g (for 16C64G). The default is rabbit-vip-basic-1. NOTE: The above specifications may be sold out or removed from the shelves. From aad50b30ebb19882ea249f80da28a5d6aeed38da Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Wed, 26 Nov 2025 16:20:05 +0800 Subject: [PATCH 2/2] add --- .changelog/3619.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3619.txt diff --git a/.changelog/3619.txt b/.changelog/3619.txt new file mode 100644 index 0000000000..3f852366d2 --- /dev/null +++ b/.changelog/3619.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_tdmq_rabbitmq_vip_instance: update doc +``` \ No newline at end of file