From cb30de4f2101b519624fd889bf6a9a5bad1e4b00 Mon Sep 17 00:00:00 2001 From: oliverpei Date: Thu, 2 Jul 2020 20:49:40 +0800 Subject: [PATCH] fix cvm allocate_public_ip inconsistency when eip is attached to the cvm --- CHANGELOG.md | 7 ++++++- tencentcloud/resource_tc_instance.go | 23 ++--------------------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8d77075d6..96500f7673 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ -## 1.39.0 (Unreleased) +## 1.38.2 (Unreleased) + +BUG FIXES: + +* Resource: `tencentcloud_instance` fix `allocate_public_ip` inconsistency when eip is attached to the cvm. + ## 1.38.1 (June 30, 2020) BUG FIXES: diff --git a/tencentcloud/resource_tc_instance.go b/tencentcloud/resource_tc_instance.go index 9bc768ab5d..98fda972bf 100644 --- a/tencentcloud/resource_tc_instance.go +++ b/tencentcloud/resource_tc_instance.go @@ -87,7 +87,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" - vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" "github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/internal/helper" "github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/ratelimit" ) @@ -695,26 +694,8 @@ func resourceTencentCloudInstanceRead(d *schema.ResourceData, meta interface{}) _ = d.Set("create_time", instance.CreatedTime) _ = d.Set("expired_time", instance.ExpiredTime) - if len(instance.PublicIpAddresses) > 0 { - vpcService := VpcService{client: client} - filter := map[string][]string{ - "address-ip": {*instance.PublicIpAddresses[0]}, - } - var eips []*vpc.Address - var errRet error - err := resource.Retry(readRetryTimeout, func() *resource.RetryError { - eips, errRet = vpcService.DescribeEipByFilter(ctx, filter) - if errRet != nil { - return retryError(errRet, InternalError) - } - return nil - }) - if err != nil { - return err - } - _ = d.Set("allocate_public_ip", len(eips) < 1) - } else { - _ = d.Set("allocate_public_ip", false) + if _, ok := d.GetOkExists("allocate_public_ip"); !ok { + _ = d.Set("allocate_public_ip", len(instance.PublicIpAddresses) > 0) } // as attachment add tencentcloud:autoscaling:auto-scaling-group-id tag automatically