From 0b5fe35da1d8085fcf2e08a3f288aedebd8a5d21 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 3 Jun 2024 14:39:41 +0800 Subject: [PATCH 1/5] add --- .../services/clb/resource_tc_clb_instance.go | 1 + ...source_tc_clb_security_group_attachment.md | 48 +++++- ...e_tc_clb_security_group_attachment_test.go | 42 ++++- .../cvm/resource_tc_cvm_sync_image.go | 4 +- .../cvm/resource_tc_cvm_sync_image.md | 11 +- .../cvm/resource_tc_cvm_sync_image_test.go | 19 ++- tencentcloud/services/cvm/resource_tc_eip.md | 7 +- .../cvm/resource_tc_eip_address_transform.go | 4 +- .../cvm/resource_tc_eip_address_transform.md | 47 +++++- .../resource_tc_eip_address_transform_test.go | 54 ++++++- .../cvm/resource_tc_eip_association_test.go | 145 +++++++++++++----- .../resource_tc_eip_normal_address_return.md | 4 +- ...ource_tc_eip_normal_address_return_test.go | 50 +++++- .../resource_tc_eip_public_address_adjust.md | 52 ++++++- ...ource_tc_eip_public_address_adjust_test.go | 60 +++++++- .../cvm/resource_tc_reserved_instance_test.go | 3 +- ...lb_security_group_attachment.html.markdown | 48 +++++- website/docs/r/cvm_sync_image.html.markdown | 9 +- .../r/eip_address_transform.html.markdown | 53 +++++-- .../r/eip_normal_address_return.html.markdown | 2 +- .../r/eip_public_address_adjust.html.markdown | 52 ++++++- 21 files changed, 604 insertions(+), 111 deletions(-) diff --git a/tencentcloud/services/clb/resource_tc_clb_instance.go b/tencentcloud/services/clb/resource_tc_clb_instance.go index 86c0f229d3..1a7b2e74a4 100644 --- a/tencentcloud/services/clb/resource_tc_clb_instance.go +++ b/tencentcloud/services/clb/resource_tc_clb_instance.go @@ -102,6 +102,7 @@ func ResourceTencentCloudClbInstance() *schema.Resource { "security_groups": { Type: schema.TypeList, Optional: true, + Computed: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Security groups of the CLB instance. Supports both `OPEN` and `INTERNAL` CLBs.", }, diff --git a/tencentcloud/services/clb/resource_tc_clb_security_group_attachment.md b/tencentcloud/services/clb/resource_tc_clb_security_group_attachment.md index bdda4c61b9..0a3e07d17d 100644 --- a/tencentcloud/services/clb/resource_tc_clb_security_group_attachment.md +++ b/tencentcloud/services/clb/resource_tc_clb_security_group_attachment.md @@ -3,9 +3,49 @@ Provides a resource to create a clb security_group_attachment Example Usage ```hcl -resource "tencentcloud_clb_security_group_attachment" "security_group_attachment" { - security_group = "sg-ijato2x1" - load_balancer_ids = ["lb-5dnrkgry"] +# create security group +resource "tencentcloud_security_group" "example" { + name = "tf-example" + description = "sg desc." + project_id = 0 + + tags = { + "example" = "test" + } +} + +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create clb +resource "tencentcloud_clb_instance" "example" { + network_type = "INTERNAL" + clb_name = "tf-example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + + tags = { + "example" = "test" + } +} + +# attachment +resource "tencentcloud_clb_security_group_attachment" "example" { + security_group = tencentcloud_security_group.example.id + load_balancer_ids = [tencentcloud_clb_instance.example.id] } ``` @@ -14,5 +54,5 @@ Import clb security_group_attachment can be imported using the id, e.g. ``` -terraform import tencentcloud_clb_security_group_attachment.security_group_attachment security_group_id#clb_id +terraform import tencentcloud_clb_security_group_attachment.example sg-5275dorp#lb-5dnrkgry ``` \ No newline at end of file diff --git a/tencentcloud/services/clb/resource_tc_clb_security_group_attachment_test.go b/tencentcloud/services/clb/resource_tc_clb_security_group_attachment_test.go index e12e26f896..2b5f0cf61a 100644 --- a/tencentcloud/services/clb/resource_tc_clb_security_group_attachment_test.go +++ b/tencentcloud/services/clb/resource_tc_clb_security_group_attachment_test.go @@ -8,6 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" ) +// go test -i; go test -test.run TestAccTencentCloudClbSecurityGroupAttachmentResource_basic -v func TestAccTencentCloudClbSecurityGroupAttachmentResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ @@ -18,10 +19,14 @@ func TestAccTencentCloudClbSecurityGroupAttachmentResource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccClbSecurityGroupAttachment, - Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_clb_security_group_attachment.security_group_attachment", "id")), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_clb_security_group_attachment.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_clb_security_group_attachment.example", "security_group"), + resource.TestCheckResourceAttrSet("tencentcloud_clb_security_group_attachment.example", "load_balancer_ids.#"), + ), }, { - ResourceName: "tencentcloud_clb_security_group_attachment.security_group_attachment", + ResourceName: "tencentcloud_clb_security_group_attachment.example", ImportState: true, ImportStateVerify: true, }, @@ -30,10 +35,37 @@ func TestAccTencentCloudClbSecurityGroupAttachmentResource_basic(t *testing.T) { } const testAccClbSecurityGroupAttachment = ` +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} -resource "tencentcloud_clb_security_group_attachment" "security_group_attachment" { - security_group = "sg-ijato2x1" - load_balancer_ids = ["lb-5dnrkgry"] +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false } +# create clb +resource "tencentcloud_clb_instance" "example" { + network_type = "INTERNAL" + clb_name = "tf-example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + + tags = { + "example" = "test" + } +} + +# attachment +resource "tencentcloud_clb_security_group_attachment" "example" { + security_group = "sg-5275dorp" + load_balancer_ids = [tencentcloud_clb_instance.example.id] +} ` diff --git a/tencentcloud/services/cvm/resource_tc_cvm_sync_image.go b/tencentcloud/services/cvm/resource_tc_cvm_sync_image.go index a911b0661e..7ae8f57767 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_sync_image.go +++ b/tencentcloud/services/cvm/resource_tc_cvm_sync_image.go @@ -18,9 +18,7 @@ func ResourceTencentCloudCvmSyncImage() *schema.Resource { Create: resourceTencentCloudCvmSyncImageCreate, Read: resourceTencentCloudCvmSyncImageRead, Delete: resourceTencentCloudCvmSyncImageDelete, - Importer: &schema.ResourceImporter{ - State: schema.ImportStatePassthrough, - }, + Schema: map[string]*schema.Schema{ "image_id": { Required: true, diff --git a/tencentcloud/services/cvm/resource_tc_cvm_sync_image.md b/tencentcloud/services/cvm/resource_tc_cvm_sync_image.md index f438d7980c..55d0ad6c7f 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_sync_image.md +++ b/tencentcloud/services/cvm/resource_tc_cvm_sync_image.md @@ -3,8 +3,13 @@ Provides a resource to create a cvm sync_image Example Usage ```hcl -resource "tencentcloud_cvm_sync_image" "sync_image" { - image_id = "img-xxxxxx" - destination_regions =["ap-guangzhou", "ap-shanghai"] +data "tencentcloud_images" "example" { + image_type = ["PUBLIC_IMAGE"] + image_name_regex = "Final" +} + +resource "tencentcloud_cvm_sync_image" "example" { + image_id = data.tencentcloud_images.example.images.0.image_id + destination_regions = ["ap-guangzhou", "ap-shanghai"] } ``` \ No newline at end of file diff --git a/tencentcloud/services/cvm/resource_tc_cvm_sync_image_test.go b/tencentcloud/services/cvm/resource_tc_cvm_sync_image_test.go index bde180c9d6..ed2c1e9a2e 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_sync_image_test.go +++ b/tencentcloud/services/cvm/resource_tc_cvm_sync_image_test.go @@ -57,23 +57,32 @@ func init() { }) } +// go test -i; go test -test.run TestAccTencentCloudCvmSyncImageResource_basic -v func TestAccTencentCloudCvmSyncImageResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ - PreCheck: func() { tcacctest.AccPreCheckCommon(t, tcacctest.ACCOUNT_TYPE_PREPAY) }, + PreCheck: func() { tcacctest.AccPreCheck(t) }, Providers: tcacctest.AccProviders, Steps: []resource.TestStep{ { Config: testAccCvmSyncImage, - Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_cvm_sync_image.sync_image", "id")), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_cvm_sync_image.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_sync_image.example", "image_id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_sync_image.example", "destination_regions.#"), + ), }, }, }) } const testAccCvmSyncImage = ` -resource "tencentcloud_cvm_sync_image" "sync_image" { - image_id = "img-k4h0m5la" - destination_regions = ["ap-shanghai"] +data "tencentcloud_images" "example" { + image_type = ["PUBLIC_IMAGE"] +} + +resource "tencentcloud_cvm_sync_image" "example" { + image_id = data.tencentcloud_images.example.images.0.image_id + destination_regions = ["ap-guangzhou", "ap-shanghai"] } ` diff --git a/tencentcloud/services/cvm/resource_tc_eip.md b/tencentcloud/services/cvm/resource_tc_eip.md index 4371c12407..e03af0540a 100644 --- a/tencentcloud/services/cvm/resource_tc_eip.md +++ b/tencentcloud/services/cvm/resource_tc_eip.md @@ -3,6 +3,7 @@ Provides an EIP resource. Example Usage Paid by the bandwidth package + ```hcl resource "tencentcloud_eip" "foo" { name = "awesome_gateway_ip" @@ -13,7 +14,8 @@ resource "tencentcloud_eip" "foo" { ``` AntiDDos Eip -``` + +```hcl resource "tencentcloud_eip" "foo" { name = "awesome_gateway_ip" bandwidth_package_id = "bwp-4ocyia9s" @@ -28,7 +30,8 @@ resource "tencentcloud_eip" "foo" { ``` Eip With Network Egress -``` + +```hcl resource "tencentcloud_eip" "foo" { name = "egress_eip" egress = "center_egress2" diff --git a/tencentcloud/services/cvm/resource_tc_eip_address_transform.go b/tencentcloud/services/cvm/resource_tc_eip_address_transform.go index f0ce0d39f7..a8f93a98d9 100644 --- a/tencentcloud/services/cvm/resource_tc_eip_address_transform.go +++ b/tencentcloud/services/cvm/resource_tc_eip_address_transform.go @@ -19,9 +19,7 @@ func ResourceTencentCloudEipAddressTransform() *schema.Resource { Create: resourceTencentCloudEipAddressTransformCreate, Read: resourceTencentCloudEipAddressTransformRead, Delete: resourceTencentCloudEipAddressTransformDelete, - Importer: &schema.ResourceImporter{ - State: schema.ImportStatePassthrough, - }, + Schema: map[string]*schema.Schema{ "instance_id": { Required: true, diff --git a/tencentcloud/services/cvm/resource_tc_eip_address_transform.md b/tencentcloud/services/cvm/resource_tc_eip_address_transform.md index d5112ac5c2..89c5e7561e 100644 --- a/tencentcloud/services/cvm/resource_tc_eip_address_transform.md +++ b/tencentcloud/services/cvm/resource_tc_eip_address_transform.md @@ -3,15 +3,48 @@ Provides a resource to create a eip address_transform Example Usage ```hcl -resource "tencentcloud_eip_address_transform" "address_transform" { - instance_id = "" +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false } -``` -Import +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + allocate_public_ip = true + internet_max_bandwidth_out = 10 -eip address_transform can be imported using the id, e.g. + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + tags = { + tagKey = "tagValue" + } +} + +resource "tencentcloud_eip_address_transform" "example" { + instance_id = tencentcloud_instance.example.id +} ``` -terraform import tencentcloud_eip_address_transform.address_transform address_transform_id -``` \ No newline at end of file diff --git a/tencentcloud/services/cvm/resource_tc_eip_address_transform_test.go b/tencentcloud/services/cvm/resource_tc_eip_address_transform_test.go index f8293f1582..579628cd8f 100644 --- a/tencentcloud/services/cvm/resource_tc_eip_address_transform_test.go +++ b/tencentcloud/services/cvm/resource_tc_eip_address_transform_test.go @@ -8,6 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" ) +// go test -i; go test -test.run TestAccTencentCloudNeedFixEipAddressTransformResource_basic -v func TestAccTencentCloudNeedFixEipAddressTransformResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ @@ -18,21 +19,58 @@ func TestAccTencentCloudNeedFixEipAddressTransformResource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccEipAddressTransform, - Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_eip_address_transform.address_transform", "id")), - }, - { - ResourceName: "tencentcloud_eip_address_transform.address_transform", - ImportState: true, - ImportStateVerify: true, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_eip_address_transform.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_eip_address_transform.example", "instance_id"), + ), }, }, }) } const testAccEipAddressTransform = ` +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + allocate_public_ip = true + internet_max_bandwidth_out = 10 -resource "tencentcloud_eip_address_transform" "address_transform" { - instance_id = "ins-2kcdugsq" + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + + tags = { + tagKey = "tagValue" + } } +resource "tencentcloud_eip_address_transform" "example" { + instance_id = tencentcloud_instance.example.id +} ` diff --git a/tencentcloud/services/cvm/resource_tc_eip_association_test.go b/tencentcloud/services/cvm/resource_tc_eip_association_test.go index 3ee962c42b..af86049fa7 100644 --- a/tencentcloud/services/cvm/resource_tc_eip_association_test.go +++ b/tencentcloud/services/cvm/resource_tc_eip_association_test.go @@ -17,24 +17,24 @@ import ( // go test -i; go test -test.run TestAccTencentCloudEipAssociationWithInstance -v func TestAccTencentCloudEipAssociationWithInstance(t *testing.T) { t.Parallel() - id := "tencentcloud_eip_association.foo" + id := "tencentcloud_eip_association.example" resource.Test(t, resource.TestCase{ PreCheck: func() { tcacctest.AccPreCheck(t) }, Providers: tcacctest.AccProviders, CheckDestroy: testAccCheckEipAssociationDestroy, Steps: []resource.TestStep{ { - PreConfig: func() { tcacctest.AccStepPreConfigSetTempAKSK(t, tcacctest.ACCOUNT_TYPE_COMMON) }, - Config: testAccTencentCloudEipAssociationWithInstance, + //PreConfig: func() { tcacctest.AccStepPreConfigSetTempAKSK(t, tcacctest.ACCOUNT_TYPE_COMMON) }, + Config: testAccTencentCloudEipAssociationWithInstance, Check: resource.ComposeTestCheckFunc( testAccCheckEipAssociationExists(id), resource.TestCheckResourceAttrSet(id, "eip_id"), resource.TestCheckResourceAttrSet(id, "instance_id"), resource.TestCheckNoResourceAttr(id, "network_interface_id"), resource.TestCheckNoResourceAttr(id, "private_ip"), - resource.TestCheckResourceAttrSet("tencentcloud_eip.foo", "public_ip"), - resource.TestCheckResourceAttr("tencentcloud_eip.foo", "name", tcacctest.DefaultInsName), - resource.TestCheckResourceAttr("tencentcloud_eip.foo", "status", "UNBIND"), + resource.TestCheckResourceAttrSet("tencentcloud_eip.example", "public_ip"), + resource.TestCheckResourceAttr("tencentcloud_eip.example", "name", "tf-example"), + resource.TestCheckResourceAttr("tencentcloud_eip.example", "status", "UNBIND"), ), }, { @@ -49,24 +49,24 @@ func TestAccTencentCloudEipAssociationWithInstance(t *testing.T) { // go test -i; go test -test.run TestAccTencentCloudEipAssociationWithNetworkInterface -v func TestAccTencentCloudEipAssociationWithNetworkInterface(t *testing.T) { t.Parallel() - id := "tencentcloud_eip_association.foo" + id := "tencentcloud_eip_association.example" resource.Test(t, resource.TestCase{ PreCheck: func() { tcacctest.AccPreCheck(t) }, Providers: tcacctest.AccProviders, CheckDestroy: testAccCheckEipAssociationDestroy, Steps: []resource.TestStep{ { - PreConfig: func() { tcacctest.AccStepPreConfigSetTempAKSK(t, tcacctest.ACCOUNT_TYPE_COMMON) }, - Config: testAccTencentCloudEipAssociationWithNetworkInterface, + //PreConfig: func() { tcacctest.AccStepPreConfigSetTempAKSK(t, tcacctest.ACCOUNT_TYPE_COMMON) }, + Config: testAccTencentCloudEipAssociationWithNetworkInterface, Check: resource.ComposeTestCheckFunc( testAccCheckEipAssociationExists(id), resource.TestCheckResourceAttrSet(id, "eip_id"), resource.TestCheckResourceAttrSet(id, "network_interface_id"), resource.TestCheckResourceAttrSet(id, "private_ip"), resource.TestCheckNoResourceAttr(id, "instance_id"), - resource.TestCheckResourceAttrSet("tencentcloud_eip.foo", "public_ip"), - resource.TestCheckResourceAttr("tencentcloud_eip.foo", "name", tcacctest.DefaultInsName), - resource.TestCheckResourceAttr("tencentcloud_eip.foo", "status", "UNBIND"), + resource.TestCheckResourceAttrSet("tencentcloud_eip.example", "public_ip"), + resource.TestCheckResourceAttr("tencentcloud_eip.example", "name", "tf-example"), + resource.TestCheckResourceAttr("tencentcloud_eip.example", "status", "UNBIND"), ), }, }, @@ -149,41 +149,114 @@ func testAccCheckEipAssociationExists(n string) resource.TestCheckFunc { } } -const testAccTencentCloudEipAssociationWithInstance = tcacctest.DefaultInstanceVariable + ` -resource "tencentcloud_eip" "foo" { - name = var.instance_name +const testAccTencentCloudEipAssociationWithInstance = ` +# create eip +resource "tencentcloud_eip" "example" { + name = "tf-example" } -resource "tencentcloud_instance" "foo" { - instance_name = var.instance_name - availability_zone = var.availability_cvm_zone - image_id = data.tencentcloud_images.default.images.0.image_id - instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type - system_disk_type = "CLOUD_PREMIUM" +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" } -resource "tencentcloud_eip_association" "foo" { - eip_id = tencentcloud_eip.foo.id - instance_id = tencentcloud_instance.foo.id +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + + tags = { + tagKey = "tagValue" + } +} + +resource "tencentcloud_eip_association" "example" { + eip_id = tencentcloud_eip.example.id + instance_id = tencentcloud_instance.example.id } ` -const testAccTencentCloudEipAssociationWithNetworkInterface = tcacctest.DefaultVpcVariable + ` -resource "tencentcloud_eip" "foo" { - name = var.instance_name +const testAccTencentCloudEipAssociationWithNetworkInterface = ` +# create eip +resource "tencentcloud_eip" "example" { + name = "tf-example" +} + +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false } -resource "tencentcloud_eni" "foo" { - name = var.instance_name - vpc_id = var.vpc_id - subnet_id = var.subnet_id - description = var.instance_name +# create eni +resource "tencentcloud_eni" "example" { + name = "tf-example" + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + description = "remark." ipv4_count = 1 } -resource "tencentcloud_eip_association" "foo" { - eip_id = tencentcloud_eip.foo.id - network_interface_id = tencentcloud_eni.foo.id - private_ip = tencentcloud_eni.foo.ipv4_info.0.ip +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + + tags = { + tagKey = "tagValue" + } +} + +resource "tencentcloud_eip_association" "example" { + eip_id = tencentcloud_eip.example.id + network_interface_id = tencentcloud_eni.example.id + private_ip = tencentcloud_eni.example.ipv4_info[0].ip } ` diff --git a/tencentcloud/services/cvm/resource_tc_eip_normal_address_return.md b/tencentcloud/services/cvm/resource_tc_eip_normal_address_return.md index 5a814db4c0..663ce304d0 100644 --- a/tencentcloud/services/cvm/resource_tc_eip_normal_address_return.md +++ b/tencentcloud/services/cvm/resource_tc_eip_normal_address_return.md @@ -3,7 +3,7 @@ Provides a resource to create a vpc normal_address_return Example Usage ```hcl -resource "tencentcloud_eip_normal_address_return" "normal_address_return" { +resource "tencentcloud_eip_normal_address_return" "example" { address_ips = ["172.16.17.32"] } -``` \ No newline at end of file +``` diff --git a/tencentcloud/services/cvm/resource_tc_eip_normal_address_return_test.go b/tencentcloud/services/cvm/resource_tc_eip_normal_address_return_test.go index 434c899f7d..008fa36a7d 100644 --- a/tencentcloud/services/cvm/resource_tc_eip_normal_address_return_test.go +++ b/tencentcloud/services/cvm/resource_tc_eip_normal_address_return_test.go @@ -8,6 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" ) +// go test -i; go test -test.run TestAccTencentCloudNeedFixEipNormalAddressReturnResource_basic -v func TestAccTencentCloudNeedFixEipNormalAddressReturnResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ @@ -18,15 +19,58 @@ func TestAccTencentCloudNeedFixEipNormalAddressReturnResource_basic(t *testing.T Steps: []resource.TestStep{ { Config: testAccEipNormalAddressReturn, - Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_eip_normal_address_return.normal_address_return", "id")), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_eip_normal_address_return.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_eip_normal_address_return.example", "address_ips.#"), + ), }, }, }) } const testAccEipNormalAddressReturn = ` +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + allocate_public_ip = true + internet_max_bandwidth_out = 10 + + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + + tags = { + tagKey = "tagValue" + } +} -resource "tencentcloud_eip_normal_address_return" "normal_address_return" { - address_ips = ["111.230.44.68"] +resource "tencentcloud_eip_normal_address_return" "example" { + address_ips = [tencentcloud_instance.example.public_ip] } ` diff --git a/tencentcloud/services/cvm/resource_tc_eip_public_address_adjust.md b/tencentcloud/services/cvm/resource_tc_eip_public_address_adjust.md index b52b94b25f..7ed182846f 100644 --- a/tencentcloud/services/cvm/resource_tc_eip_public_address_adjust.md +++ b/tencentcloud/services/cvm/resource_tc_eip_public_address_adjust.md @@ -3,8 +3,54 @@ Provides a resource to create a eip public_address_adjust Example Usage ```hcl -resource "tencentcloud_eip_public_address_adjust" "public_address_adjust" { - instance_id = "ins-cr2rfq78" - address_id = "eip-erft45fu" +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + allocate_public_ip = true + internet_max_bandwidth_out = 10 + + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + + tags = { + tagKey = "tagValue" + } +} + +# create eip +resource "tencentcloud_eip" "example" { + name = "tf-example" +} + +resource "tencentcloud_eip_public_address_adjust" "example" { + instance_id = tencentcloud_instance.example.id + address_id = tencentcloud_eip.example.id } ``` \ No newline at end of file diff --git a/tencentcloud/services/cvm/resource_tc_eip_public_address_adjust_test.go b/tencentcloud/services/cvm/resource_tc_eip_public_address_adjust_test.go index b515d10a6e..d5751100c4 100644 --- a/tencentcloud/services/cvm/resource_tc_eip_public_address_adjust_test.go +++ b/tencentcloud/services/cvm/resource_tc_eip_public_address_adjust_test.go @@ -8,8 +8,8 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" ) -// go test -i; go test -test.run TestAccTencentCloudNeedFixVpcPublicAddressAdjustResource_basic -v -func TestAccTencentCloudNeedFixVpcPublicAddressAdjustResource_basic(t *testing.T) { +// go test -i; go test -test.run TestAccTencentCloudVpcPublicAddressAdjustResource_basic -v +func TestAccTencentCloudVpcPublicAddressAdjustResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ PreCheck: func() { @@ -20,7 +20,9 @@ func TestAccTencentCloudNeedFixVpcPublicAddressAdjustResource_basic(t *testing.T { Config: testAccVpcPublicAddressAdjust, Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet("tencentcloud_eip_public_address_adjust.public_address_adjust", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_eip_public_address_adjust.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_eip_public_address_adjust.example", "instance_id"), + resource.TestCheckResourceAttrSet("tencentcloud_eip_public_address_adjust.example", "address_id"), ), }, }, @@ -28,8 +30,54 @@ func TestAccTencentCloudNeedFixVpcPublicAddressAdjustResource_basic(t *testing.T } const testAccVpcPublicAddressAdjust = ` -resource "tencentcloud_eip_public_address_adjust" "public_address_adjust" { - instance_id = "ins-cr2rfq78" - address_id = "eip-erft45fu" +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + allocate_public_ip = true + internet_max_bandwidth_out = 10 + + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + + tags = { + tagKey = "tagValue" + } +} + +# create eip +resource "tencentcloud_eip" "example" { + name = "tf-example" +} + +resource "tencentcloud_eip_public_address_adjust" "example" { + instance_id = tencentcloud_instance.example.id + address_id = tencentcloud_eip.example.id } ` diff --git a/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go b/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go index 24ca685c9a..cd10e3a45a 100644 --- a/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go +++ b/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go @@ -1,9 +1,10 @@ package cvm_test import ( - tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" "testing" + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" ) diff --git a/website/docs/r/clb_security_group_attachment.html.markdown b/website/docs/r/clb_security_group_attachment.html.markdown index 5adf1717ab..2a11687260 100644 --- a/website/docs/r/clb_security_group_attachment.html.markdown +++ b/website/docs/r/clb_security_group_attachment.html.markdown @@ -14,9 +14,49 @@ Provides a resource to create a clb security_group_attachment ## Example Usage ```hcl -resource "tencentcloud_clb_security_group_attachment" "security_group_attachment" { - security_group = "sg-ijato2x1" - load_balancer_ids = ["lb-5dnrkgry"] +# create security group +resource "tencentcloud_security_group" "example" { + name = "tf-example" + description = "sg desc." + project_id = 0 + + tags = { + "example" = "test" + } +} + +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create clb +resource "tencentcloud_clb_instance" "example" { + network_type = "INTERNAL" + clb_name = "tf-example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + + tags = { + "example" = "test" + } +} + +# attachment +resource "tencentcloud_clb_security_group_attachment" "example" { + security_group = tencentcloud_security_group.example.id + load_balancer_ids = [tencentcloud_clb_instance.example.id] } ``` @@ -40,6 +80,6 @@ In addition to all arguments above, the following attributes are exported: clb security_group_attachment can be imported using the id, e.g. ``` -terraform import tencentcloud_clb_security_group_attachment.security_group_attachment security_group_id#clb_id +terraform import tencentcloud_clb_security_group_attachment.example sg-5275dorp#lb-5dnrkgry ``` diff --git a/website/docs/r/cvm_sync_image.html.markdown b/website/docs/r/cvm_sync_image.html.markdown index b8faedf27e..ae5b4c487c 100644 --- a/website/docs/r/cvm_sync_image.html.markdown +++ b/website/docs/r/cvm_sync_image.html.markdown @@ -14,8 +14,13 @@ Provides a resource to create a cvm sync_image ## Example Usage ```hcl -resource "tencentcloud_cvm_sync_image" "sync_image" { - image_id = "img-xxxxxx" +data "tencentcloud_images" "example" { + image_type = ["PUBLIC_IMAGE"] + image_name_regex = "Final" +} + +resource "tencentcloud_cvm_sync_image" "example" { + image_id = data.tencentcloud_images.example.images.0.image_id destination_regions = ["ap-guangzhou", "ap-shanghai"] } ``` diff --git a/website/docs/r/eip_address_transform.html.markdown b/website/docs/r/eip_address_transform.html.markdown index c6ca20324a..bee0718fd5 100644 --- a/website/docs/r/eip_address_transform.html.markdown +++ b/website/docs/r/eip_address_transform.html.markdown @@ -14,8 +14,49 @@ Provides a resource to create a eip address_transform ## Example Usage ```hcl -resource "tencentcloud_eip_address_transform" "address_transform" { - instance_id = "" +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + allocate_public_ip = true + internet_max_bandwidth_out = 10 + + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + + tags = { + tagKey = "tagValue" + } +} + +resource "tencentcloud_eip_address_transform" "example" { + instance_id = tencentcloud_instance.example.id } ``` @@ -33,11 +74,3 @@ In addition to all arguments above, the following attributes are exported: -## Import - -eip address_transform can be imported using the id, e.g. - -``` -terraform import tencentcloud_eip_address_transform.address_transform address_transform_id -``` - diff --git a/website/docs/r/eip_normal_address_return.html.markdown b/website/docs/r/eip_normal_address_return.html.markdown index 20bd604671..89197c3254 100644 --- a/website/docs/r/eip_normal_address_return.html.markdown +++ b/website/docs/r/eip_normal_address_return.html.markdown @@ -14,7 +14,7 @@ Provides a resource to create a vpc normal_address_return ## Example Usage ```hcl -resource "tencentcloud_eip_normal_address_return" "normal_address_return" { +resource "tencentcloud_eip_normal_address_return" "example" { address_ips = ["172.16.17.32"] } ``` diff --git a/website/docs/r/eip_public_address_adjust.html.markdown b/website/docs/r/eip_public_address_adjust.html.markdown index 181178d473..b74b682e2f 100644 --- a/website/docs/r/eip_public_address_adjust.html.markdown +++ b/website/docs/r/eip_public_address_adjust.html.markdown @@ -14,9 +14,55 @@ Provides a resource to create a eip public_address_adjust ## Example Usage ```hcl -resource "tencentcloud_eip_public_address_adjust" "public_address_adjust" { - instance_id = "ins-cr2rfq78" - address_id = "eip-erft45fu" +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create cvm +resource "tencentcloud_instance" "example" { + instance_name = "tf_example" + availability_zone = "ap-guangzhou-6" + image_id = "img-9qrfy1xt" + instance_type = "SA3.MEDIUM4" + system_disk_type = "CLOUD_HSSD" + system_disk_size = 100 + hostname = "example" + project_id = 0 + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + allocate_public_ip = true + internet_max_bandwidth_out = 10 + + data_disks { + data_disk_type = "CLOUD_HSSD" + data_disk_size = 50 + encrypt = false + } + + tags = { + tagKey = "tagValue" + } +} + +# create eip +resource "tencentcloud_eip" "example" { + name = "tf-example" +} + +resource "tencentcloud_eip_public_address_adjust" "example" { + instance_id = tencentcloud_instance.example.id + address_id = tencentcloud_eip.example.id } ``` From 2f3dd42fce0edc49e040b4e74637e0a1a2fb4ca0 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 3 Jun 2024 14:58:03 +0800 Subject: [PATCH 2/5] add --- .../clb/resource_tc_clb_instance_test.go | 28 +++---------------- .../cvm/resource_tc_cvm_sync_image.md | 4 +-- .../cvm/resource_tc_cvm_sync_image_test.go | 8 +++--- website/docs/r/cvm_sync_image.html.markdown | 4 +-- 4 files changed, 12 insertions(+), 32 deletions(-) diff --git a/tencentcloud/services/clb/resource_tc_clb_instance_test.go b/tencentcloud/services/clb/resource_tc_clb_instance_test.go index cdb252deb5..e1fcc733c0 100644 --- a/tencentcloud/services/clb/resource_tc_clb_instance_test.go +++ b/tencentcloud/services/clb/resource_tc_clb_instance_test.go @@ -424,10 +424,6 @@ resource "tencentcloud_clb_instance" "clb_internal" { ` const testAccClbInstance_open = ` -resource "tencentcloud_security_group" "foo" { - name = "keep-ci-temp-test-sg" -} - resource "tencentcloud_vpc" "foo" { name = "clb-instance-open-vpc" cidr_block = "10.0.0.0/16" @@ -440,7 +436,7 @@ resource "tencentcloud_clb_instance" "clb_open" { vpc_id = tencentcloud_vpc.foo.id target_region_info_region = "ap-guangzhou" target_region_info_vpc_id = tencentcloud_vpc.foo.id - security_groups = [tencentcloud_security_group.foo.id] + security_groups = ["sg-5275dorp"] tags = { test = "tf" @@ -509,10 +505,6 @@ resource "tencentcloud_clb_instance" "clb_internal" { } ` const testAccClbInstance_update_open = ` -resource "tencentcloud_security_group" "foo" { - name = "clb-instance-sg" -} - resource "tencentcloud_vpc" "foo" { name = "clb-instance-open-vpc" cidr_block = "10.0.0.0/16" @@ -525,7 +517,7 @@ resource "tencentcloud_clb_instance" "clb_open" { project_id = 0 target_region_info_region = "ap-guangzhou" target_region_info_vpc_id = tencentcloud_vpc.foo.id - security_groups = [tencentcloud_security_group.foo.id] + security_groups = ["sg-5275dorp"] tags = { test = "test" @@ -546,12 +538,6 @@ resource "tencentcloud_subnet" "subnet" { is_multicast = false } -resource "tencentcloud_security_group" "sglab" { - name = "clb-instance-enable-sg" - description = "favourite sg" - project_id = 0 -} - resource "tencentcloud_vpc" "foo" { name = "clb-instance-default-vpc" cidr_block = "10.0.0.0/16" @@ -568,7 +554,7 @@ resource "tencentcloud_clb_instance" "default_enable" { vpc_id = tencentcloud_vpc.foo.id load_balancer_pass_to_target = true - security_groups = [tencentcloud_security_group.sglab.id] + security_groups = ["sg-5275dorp"] target_region_info_region = "ap-guangzhou" target_region_info_vpc_id = tencentcloud_vpc.foo.id @@ -591,12 +577,6 @@ resource "tencentcloud_subnet" "subnet" { is_multicast = false } -resource "tencentcloud_security_group" "sglab" { - name = "clb-instance-enable-sg" - description = "favourite sg" - project_id = 0 -} - resource "tencentcloud_vpc" "foo" { name = "clb-instance-default-vpc" cidr_block = "10.0.0.0/16" @@ -613,7 +593,7 @@ resource "tencentcloud_clb_instance" "default_enable" { vpc_id = tencentcloud_vpc.foo.id load_balancer_pass_to_target = true - security_groups = [tencentcloud_security_group.sglab.id] + security_groups = ["sg-5275dorp"] target_region_info_region = "ap-guangzhou" target_region_info_vpc_id = tencentcloud_vpc.foo.id diff --git a/tencentcloud/services/cvm/resource_tc_cvm_sync_image.md b/tencentcloud/services/cvm/resource_tc_cvm_sync_image.md index 55d0ad6c7f..b63811144e 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_sync_image.md +++ b/tencentcloud/services/cvm/resource_tc_cvm_sync_image.md @@ -4,8 +4,8 @@ Example Usage ```hcl data "tencentcloud_images" "example" { - image_type = ["PUBLIC_IMAGE"] - image_name_regex = "Final" + image_type = ["PRIVATE_IMAGE"] + image_name_regex = "MyImage" } resource "tencentcloud_cvm_sync_image" "example" { diff --git a/tencentcloud/services/cvm/resource_tc_cvm_sync_image_test.go b/tencentcloud/services/cvm/resource_tc_cvm_sync_image_test.go index ed2c1e9a2e..737b84f479 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_sync_image_test.go +++ b/tencentcloud/services/cvm/resource_tc_cvm_sync_image_test.go @@ -57,8 +57,8 @@ func init() { }) } -// go test -i; go test -test.run TestAccTencentCloudCvmSyncImageResource_basic -v -func TestAccTencentCloudCvmSyncImageResource_basic(t *testing.T) { +// go test -i; go test -test.run TestAccTencentCloudNeedFixCvmSyncImageResource_basic -v +func TestAccTencentCloudNeedFixCvmSyncImageResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ PreCheck: func() { tcacctest.AccPreCheck(t) }, @@ -78,11 +78,11 @@ func TestAccTencentCloudCvmSyncImageResource_basic(t *testing.T) { const testAccCvmSyncImage = ` data "tencentcloud_images" "example" { - image_type = ["PUBLIC_IMAGE"] + image_type = ["PRIVATE_IMAGE"] } resource "tencentcloud_cvm_sync_image" "example" { image_id = data.tencentcloud_images.example.images.0.image_id - destination_regions = ["ap-guangzhou", "ap-shanghai"] + destination_regions = ["ap-shanghai"] } ` diff --git a/website/docs/r/cvm_sync_image.html.markdown b/website/docs/r/cvm_sync_image.html.markdown index ae5b4c487c..a24e93718f 100644 --- a/website/docs/r/cvm_sync_image.html.markdown +++ b/website/docs/r/cvm_sync_image.html.markdown @@ -15,8 +15,8 @@ Provides a resource to create a cvm sync_image ```hcl data "tencentcloud_images" "example" { - image_type = ["PUBLIC_IMAGE"] - image_name_regex = "Final" + image_type = ["PRIVATE_IMAGE"] + image_name_regex = "MyImage" } resource "tencentcloud_cvm_sync_image" "example" { From eb2754b9a812841bf75c176f909d578721732f9c Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 3 Jun 2024 15:06:58 +0800 Subject: [PATCH 3/5] add --- .changelog/2664.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changelog/2664.txt diff --git a/.changelog/2664.txt b/.changelog/2664.txt new file mode 100644 index 0000000000..9ff2bff348 --- /dev/null +++ b/.changelog/2664.txt @@ -0,0 +1,7 @@ +```release-note:enhancement +resource/tencentcloud_clb_instance: `security_groups` add `Computed` attribute. +``` + +```release-note:enhancement +resource/tencentcloud_clb_security_group_attachment: Code optimization. +``` From 6cba10e44e99e4c62f7321c2f839fb3319172c1a Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 3 Jun 2024 15:31:35 +0800 Subject: [PATCH 4/5] add --- .changelog/2664.txt | 7 --- .../services/clb/resource_tc_clb_instance.go | 1 - .../clb/resource_tc_clb_instance_test.go | 28 +++++++++-- ...source_tc_clb_security_group_attachment.md | 48 ++----------------- ...e_tc_clb_security_group_attachment_test.go | 42 ++-------------- ...lb_security_group_attachment.html.markdown | 48 ++----------------- 6 files changed, 37 insertions(+), 137 deletions(-) delete mode 100644 .changelog/2664.txt diff --git a/.changelog/2664.txt b/.changelog/2664.txt deleted file mode 100644 index 9ff2bff348..0000000000 --- a/.changelog/2664.txt +++ /dev/null @@ -1,7 +0,0 @@ -```release-note:enhancement -resource/tencentcloud_clb_instance: `security_groups` add `Computed` attribute. -``` - -```release-note:enhancement -resource/tencentcloud_clb_security_group_attachment: Code optimization. -``` diff --git a/tencentcloud/services/clb/resource_tc_clb_instance.go b/tencentcloud/services/clb/resource_tc_clb_instance.go index 1a7b2e74a4..86c0f229d3 100644 --- a/tencentcloud/services/clb/resource_tc_clb_instance.go +++ b/tencentcloud/services/clb/resource_tc_clb_instance.go @@ -102,7 +102,6 @@ func ResourceTencentCloudClbInstance() *schema.Resource { "security_groups": { Type: schema.TypeList, Optional: true, - Computed: true, Elem: &schema.Schema{Type: schema.TypeString}, Description: "Security groups of the CLB instance. Supports both `OPEN` and `INTERNAL` CLBs.", }, diff --git a/tencentcloud/services/clb/resource_tc_clb_instance_test.go b/tencentcloud/services/clb/resource_tc_clb_instance_test.go index e1fcc733c0..cdb252deb5 100644 --- a/tencentcloud/services/clb/resource_tc_clb_instance_test.go +++ b/tencentcloud/services/clb/resource_tc_clb_instance_test.go @@ -424,6 +424,10 @@ resource "tencentcloud_clb_instance" "clb_internal" { ` const testAccClbInstance_open = ` +resource "tencentcloud_security_group" "foo" { + name = "keep-ci-temp-test-sg" +} + resource "tencentcloud_vpc" "foo" { name = "clb-instance-open-vpc" cidr_block = "10.0.0.0/16" @@ -436,7 +440,7 @@ resource "tencentcloud_clb_instance" "clb_open" { vpc_id = tencentcloud_vpc.foo.id target_region_info_region = "ap-guangzhou" target_region_info_vpc_id = tencentcloud_vpc.foo.id - security_groups = ["sg-5275dorp"] + security_groups = [tencentcloud_security_group.foo.id] tags = { test = "tf" @@ -505,6 +509,10 @@ resource "tencentcloud_clb_instance" "clb_internal" { } ` const testAccClbInstance_update_open = ` +resource "tencentcloud_security_group" "foo" { + name = "clb-instance-sg" +} + resource "tencentcloud_vpc" "foo" { name = "clb-instance-open-vpc" cidr_block = "10.0.0.0/16" @@ -517,7 +525,7 @@ resource "tencentcloud_clb_instance" "clb_open" { project_id = 0 target_region_info_region = "ap-guangzhou" target_region_info_vpc_id = tencentcloud_vpc.foo.id - security_groups = ["sg-5275dorp"] + security_groups = [tencentcloud_security_group.foo.id] tags = { test = "test" @@ -538,6 +546,12 @@ resource "tencentcloud_subnet" "subnet" { is_multicast = false } +resource "tencentcloud_security_group" "sglab" { + name = "clb-instance-enable-sg" + description = "favourite sg" + project_id = 0 +} + resource "tencentcloud_vpc" "foo" { name = "clb-instance-default-vpc" cidr_block = "10.0.0.0/16" @@ -554,7 +568,7 @@ resource "tencentcloud_clb_instance" "default_enable" { vpc_id = tencentcloud_vpc.foo.id load_balancer_pass_to_target = true - security_groups = ["sg-5275dorp"] + security_groups = [tencentcloud_security_group.sglab.id] target_region_info_region = "ap-guangzhou" target_region_info_vpc_id = tencentcloud_vpc.foo.id @@ -577,6 +591,12 @@ resource "tencentcloud_subnet" "subnet" { is_multicast = false } +resource "tencentcloud_security_group" "sglab" { + name = "clb-instance-enable-sg" + description = "favourite sg" + project_id = 0 +} + resource "tencentcloud_vpc" "foo" { name = "clb-instance-default-vpc" cidr_block = "10.0.0.0/16" @@ -593,7 +613,7 @@ resource "tencentcloud_clb_instance" "default_enable" { vpc_id = tencentcloud_vpc.foo.id load_balancer_pass_to_target = true - security_groups = ["sg-5275dorp"] + security_groups = [tencentcloud_security_group.sglab.id] target_region_info_region = "ap-guangzhou" target_region_info_vpc_id = tencentcloud_vpc.foo.id diff --git a/tencentcloud/services/clb/resource_tc_clb_security_group_attachment.md b/tencentcloud/services/clb/resource_tc_clb_security_group_attachment.md index 0a3e07d17d..bdda4c61b9 100644 --- a/tencentcloud/services/clb/resource_tc_clb_security_group_attachment.md +++ b/tencentcloud/services/clb/resource_tc_clb_security_group_attachment.md @@ -3,49 +3,9 @@ Provides a resource to create a clb security_group_attachment Example Usage ```hcl -# create security group -resource "tencentcloud_security_group" "example" { - name = "tf-example" - description = "sg desc." - project_id = 0 - - tags = { - "example" = "test" - } -} - -# create vpc -resource "tencentcloud_vpc" "vpc" { - name = "vpc" - cidr_block = "10.0.0.0/16" -} - -# create vpc subnet -resource "tencentcloud_subnet" "subnet" { - name = "subnet" - vpc_id = tencentcloud_vpc.vpc.id - availability_zone = "ap-guangzhou-6" - cidr_block = "10.0.20.0/28" - is_multicast = false -} - -# create clb -resource "tencentcloud_clb_instance" "example" { - network_type = "INTERNAL" - clb_name = "tf-example" - project_id = 0 - vpc_id = tencentcloud_vpc.vpc.id - subnet_id = tencentcloud_subnet.subnet.id - - tags = { - "example" = "test" - } -} - -# attachment -resource "tencentcloud_clb_security_group_attachment" "example" { - security_group = tencentcloud_security_group.example.id - load_balancer_ids = [tencentcloud_clb_instance.example.id] +resource "tencentcloud_clb_security_group_attachment" "security_group_attachment" { + security_group = "sg-ijato2x1" + load_balancer_ids = ["lb-5dnrkgry"] } ``` @@ -54,5 +14,5 @@ Import clb security_group_attachment can be imported using the id, e.g. ``` -terraform import tencentcloud_clb_security_group_attachment.example sg-5275dorp#lb-5dnrkgry +terraform import tencentcloud_clb_security_group_attachment.security_group_attachment security_group_id#clb_id ``` \ No newline at end of file diff --git a/tencentcloud/services/clb/resource_tc_clb_security_group_attachment_test.go b/tencentcloud/services/clb/resource_tc_clb_security_group_attachment_test.go index 2b5f0cf61a..e12e26f896 100644 --- a/tencentcloud/services/clb/resource_tc_clb_security_group_attachment_test.go +++ b/tencentcloud/services/clb/resource_tc_clb_security_group_attachment_test.go @@ -8,7 +8,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" ) -// go test -i; go test -test.run TestAccTencentCloudClbSecurityGroupAttachmentResource_basic -v func TestAccTencentCloudClbSecurityGroupAttachmentResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ @@ -19,14 +18,10 @@ func TestAccTencentCloudClbSecurityGroupAttachmentResource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccClbSecurityGroupAttachment, - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet("tencentcloud_clb_security_group_attachment.example", "id"), - resource.TestCheckResourceAttrSet("tencentcloud_clb_security_group_attachment.example", "security_group"), - resource.TestCheckResourceAttrSet("tencentcloud_clb_security_group_attachment.example", "load_balancer_ids.#"), - ), + Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_clb_security_group_attachment.security_group_attachment", "id")), }, { - ResourceName: "tencentcloud_clb_security_group_attachment.example", + ResourceName: "tencentcloud_clb_security_group_attachment.security_group_attachment", ImportState: true, ImportStateVerify: true, }, @@ -35,37 +30,10 @@ func TestAccTencentCloudClbSecurityGroupAttachmentResource_basic(t *testing.T) { } const testAccClbSecurityGroupAttachment = ` -# create vpc -resource "tencentcloud_vpc" "vpc" { - name = "vpc" - cidr_block = "10.0.0.0/16" -} -# create vpc subnet -resource "tencentcloud_subnet" "subnet" { - name = "subnet" - vpc_id = tencentcloud_vpc.vpc.id - availability_zone = "ap-guangzhou-6" - cidr_block = "10.0.20.0/28" - is_multicast = false +resource "tencentcloud_clb_security_group_attachment" "security_group_attachment" { + security_group = "sg-ijato2x1" + load_balancer_ids = ["lb-5dnrkgry"] } -# create clb -resource "tencentcloud_clb_instance" "example" { - network_type = "INTERNAL" - clb_name = "tf-example" - project_id = 0 - vpc_id = tencentcloud_vpc.vpc.id - subnet_id = tencentcloud_subnet.subnet.id - - tags = { - "example" = "test" - } -} - -# attachment -resource "tencentcloud_clb_security_group_attachment" "example" { - security_group = "sg-5275dorp" - load_balancer_ids = [tencentcloud_clb_instance.example.id] -} ` diff --git a/website/docs/r/clb_security_group_attachment.html.markdown b/website/docs/r/clb_security_group_attachment.html.markdown index 2a11687260..5adf1717ab 100644 --- a/website/docs/r/clb_security_group_attachment.html.markdown +++ b/website/docs/r/clb_security_group_attachment.html.markdown @@ -14,49 +14,9 @@ Provides a resource to create a clb security_group_attachment ## Example Usage ```hcl -# create security group -resource "tencentcloud_security_group" "example" { - name = "tf-example" - description = "sg desc." - project_id = 0 - - tags = { - "example" = "test" - } -} - -# create vpc -resource "tencentcloud_vpc" "vpc" { - name = "vpc" - cidr_block = "10.0.0.0/16" -} - -# create vpc subnet -resource "tencentcloud_subnet" "subnet" { - name = "subnet" - vpc_id = tencentcloud_vpc.vpc.id - availability_zone = "ap-guangzhou-6" - cidr_block = "10.0.20.0/28" - is_multicast = false -} - -# create clb -resource "tencentcloud_clb_instance" "example" { - network_type = "INTERNAL" - clb_name = "tf-example" - project_id = 0 - vpc_id = tencentcloud_vpc.vpc.id - subnet_id = tencentcloud_subnet.subnet.id - - tags = { - "example" = "test" - } -} - -# attachment -resource "tencentcloud_clb_security_group_attachment" "example" { - security_group = tencentcloud_security_group.example.id - load_balancer_ids = [tencentcloud_clb_instance.example.id] +resource "tencentcloud_clb_security_group_attachment" "security_group_attachment" { + security_group = "sg-ijato2x1" + load_balancer_ids = ["lb-5dnrkgry"] } ``` @@ -80,6 +40,6 @@ In addition to all arguments above, the following attributes are exported: clb security_group_attachment can be imported using the id, e.g. ``` -terraform import tencentcloud_clb_security_group_attachment.example sg-5275dorp#lb-5dnrkgry +terraform import tencentcloud_clb_security_group_attachment.security_group_attachment security_group_id#clb_id ``` From de3c40b332f8d6f27ad8e43759fe8fd183ce8607 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 3 Jun 2024 18:09:00 +0800 Subject: [PATCH 5/5] add --- .../services/cvm/resource_tc_instance.go | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tencentcloud/services/cvm/resource_tc_instance.go b/tencentcloud/services/cvm/resource_tc_instance.go index aae9cc3b48..b2e8ff3e2f 100644 --- a/tencentcloud/services/cvm/resource_tc_instance.go +++ b/tencentcloud/services/cvm/resource_tc_instance.go @@ -1442,7 +1442,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{} instanceId := d.Id() //check is force delete or not forceDelete := d.Get("force_delete").(bool) - //instanceChargeType := d.Get("instance_charge_type").(string) + instanceChargeType := d.Get("instance_charge_type").(string) cvmService := CvmService{ client: meta.(tccommon.ProviderMeta).GetAPIV3Conn(), @@ -1465,18 +1465,18 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{} } // prepaid need delete again - //if instanceChargeType == CVM_CHARGE_TYPE_PREPAID { - // err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { - // errRet := cvmService.DeleteInstance(ctx, instanceId) - // if errRet != nil { - // return tccommon.RetryError(errRet) - // } - // return nil - // }) - // if err != nil { - // return err - // } - //} + if instanceChargeType == CVM_CHARGE_TYPE_PREPAID { + err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + errRet := cvmService.DeleteInstance(ctx, instanceId) + if errRet != nil { + return tccommon.RetryError(errRet) + } + return nil + }) + if err != nil { + return err + } + } //check recycling notExist := false