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..b63811144e 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 = ["PRIVATE_IMAGE"] + image_name_regex = "MyImage" +} + +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..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,23 +57,32 @@ func init() { }) } -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.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 = ["PRIVATE_IMAGE"] +} + +resource "tencentcloud_cvm_sync_image" "example" { + image_id = data.tencentcloud_images.example.images.0.image_id + destination_regions = ["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_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 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/cvm_sync_image.html.markdown b/website/docs/r/cvm_sync_image.html.markdown index b8faedf27e..a24e93718f 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 = ["PRIVATE_IMAGE"] + image_name_regex = "MyImage" +} + +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 } ```