Skip to content

Commit 9f04e72

Browse files
authored
test(cvm): [117971511] add some cvm acctest (#2679)
* test: modify tencentcloud_cvm_instances_modification test * test: modify tencentcloud_cvm_instance_vnc_url test * test: modify tencentcloud_eip_address_quota test * test: modify tencentcloud_eip_network_account_type test * test: modify tencentcloud_cvm_launch_template_version test * test: modify tencentcloud_cvm_modify_instance_disk_type test * test: modify tencentcloud_cvm_reboot_instance test
1 parent 3e58b4c commit 9f04e72

8 files changed

+273
-61
lines changed

tencentcloud/services/cvm/data_source_tc_cvm_instance_vnc_url_test.go

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cvm_test
22

33
import (
4+
"fmt"
45
"testing"
56

67
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
@@ -18,15 +19,48 @@ func TestAccTencentCloudCvmInstanceVncUrlDataSource_basic(t *testing.T) {
1819
Steps: []resource.TestStep{
1920
{
2021
Config: testAccCvmInstanceVncUrlDataSource,
21-
Check: resource.ComposeTestCheckFunc(tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_instance_vnc_url.instance_vnc_url")),
22+
Check: resource.ComposeTestCheckFunc(
23+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_instance_vnc_url.instance_vnc_url"),
24+
resource.TestCheckResourceAttrWith("data.tencentcloud_cvm_instance_vnc_url.instance_vnc_url", "instance_vnc_url", func(value string) error {
25+
if value == "" {
26+
return fmt.Errorf("vnc url is empty")
27+
}
28+
return nil
29+
}),
30+
),
2231
},
2332
},
2433
})
2534
}
2635

27-
const testAccCvmInstanceVncUrlDataSource = tcacctest.DefaultCvmModificationVariable + `
36+
const testAccCvmInstanceVncUrlDataSource = `
37+
data "tencentcloud_images" "default" {
38+
image_type = ["PUBLIC_IMAGE"]
39+
image_name_regex = "Final"
40+
}
41+
data "tencentcloud_instance_types" "default" {
42+
memory_size = 2
43+
exclude_sold_out = true
44+
filter {
45+
name = "instance-family"
46+
values = ["SA2","SA3","SA4","SA5","S2","S3"]
47+
}
48+
filter {
49+
name = "zone"
50+
values = ["ap-guangzhou-7"]
51+
}
52+
cpu_core_count = 2
53+
}
54+
55+
resource "tencentcloud_instance" "test_cvm" {
56+
image_id = data.tencentcloud_images.default.images.0.image_id
57+
availability_zone = "ap-guangzhou-7"
58+
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
59+
orderly_security_groups = ["sg-5275dorp"]
60+
instance_charge_type = "POSTPAID_BY_HOUR"
61+
}
2862
2963
data "tencentcloud_cvm_instance_vnc_url" "instance_vnc_url" {
30-
instance_id = var.cvm_id
64+
instance_id = tencentcloud_instance.test_cvm.id
3165
}
3266
`

tencentcloud/services/cvm/data_source_tc_cvm_instances_modification_test.go

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,34 @@ func TestAccTencentCloudCvmInstancesModificationDataSource_basic(t *testing.T) {
2727
})
2828
}
2929

30-
const testAccCvmInstancesModificationDataSource = tcacctest.DefaultCvmModificationVariable + `
30+
const testAccCvmInstancesModificationDataSource = `
31+
data "tencentcloud_images" "default" {
32+
image_type = ["PUBLIC_IMAGE"]
33+
image_name_regex = "Final"
34+
}
35+
data "tencentcloud_instance_types" "default" {
36+
memory_size = 2
37+
exclude_sold_out = true
38+
filter {
39+
name = "instance-family"
40+
values = ["SA2","SA3","SA4","SA5","S2","S3"]
41+
}
42+
filter {
43+
name = "zone"
44+
values = ["ap-guangzhou-7"]
45+
}
46+
cpu_core_count = 2
47+
}
48+
49+
resource "tencentcloud_instance" "test_cvm" {
50+
image_id = data.tencentcloud_images.default.images.0.image_id
51+
availability_zone = "ap-guangzhou-7"
52+
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
53+
orderly_security_groups = ["sg-5275dorp"]
54+
instance_charge_type = "POSTPAID_BY_HOUR"
55+
}
56+
3157
data "tencentcloud_cvm_instances_modification" "foo" {
32-
instance_ids = [var.cvm_id]
58+
instance_ids = [tencentcloud_instance.test_cvm.id]
3359
}
3460
`

tencentcloud/services/cvm/data_source_tc_eip_address_quota_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ func TestAccTencentCloudEipAddressQuotaDataSource_basic(t *testing.T) {
1818
Steps: []resource.TestStep{
1919
{
2020
Config: testAccEipAddressQuotaDataSource,
21-
Check: resource.ComposeTestCheckFunc(tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_eip_address_quota.address_quota")),
21+
Check: resource.ComposeTestCheckFunc(
22+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_eip_address_quota.address_quota"),
23+
resource.TestCheckResourceAttrSet("data.tencentcloud_eip_address_quota.address_quota", "quota_set.#"),
24+
),
2225
},
2326
},
2427
})

tencentcloud/services/cvm/data_source_tc_eip_network_account_type_test.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cvm_test
22

33
import (
4+
"fmt"
45
"testing"
56

67
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
@@ -18,7 +19,17 @@ func TestAccTencentCloudEipNetworkAccountTypeDataSource_basic(t *testing.T) {
1819
Steps: []resource.TestStep{
1920
{
2021
Config: testAccEipNetworkAccountTypeDataSource,
21-
Check: resource.ComposeTestCheckFunc(tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_eip_network_account_type.network_account_type")),
22+
Check: resource.ComposeTestCheckFunc(
23+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_eip_network_account_type.network_account_type"),
24+
resource.TestCheckResourceAttrWith("data.tencentcloud_eip_network_account_type.network_account_type", "network_account_type", func(value string) error {
25+
switch value {
26+
case "STANDARD", "LEGACY":
27+
default:
28+
return fmt.Errorf("invalid network type: %q", value)
29+
}
30+
return nil
31+
}),
32+
),
2233
},
2334
},
2435
})

tencentcloud/services/cvm/resource_tc_cvm_launch_template_default_version_test.go

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,52 @@ func TestAccTencentCloudCvmLaunchTemplateDefaultVersionResource_basic(t *testing
1717
Providers: tcacctest.AccProviders,
1818
Steps: []resource.TestStep{
1919
{
20-
Config: testAccCvmLaunchTemplateDefaultVersion,
21-
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_cvm_launch_template_default_version.launch_template_default_version", "id")),
20+
Config: testAccCvmLaunchTemplateDefaultVersionBase + testAccCvmLaunchTemplateDefaultVersion1,
21+
Check: resource.ComposeTestCheckFunc(
22+
resource.TestCheckResourceAttr("tencentcloud_cvm_launch_template_default_version.test_launch_tpl_default", "default_version", "2"),
23+
),
2224
},
2325
{
24-
ResourceName: "tencentcloud_cvm_launch_template_default_version.launch_template_default_version",
25-
ImportState: true,
26-
ImportStateVerify: true,
26+
Config: testAccCvmLaunchTemplateDefaultVersionBase + testAccCvmLaunchTemplateDefaultVersion2,
27+
Check: resource.ComposeTestCheckFunc(
28+
resource.TestCheckResourceAttr("tencentcloud_cvm_launch_template_default_version.test_launch_tpl_default", "default_version", "1"),
29+
),
2730
},
2831
},
2932
})
3033
}
3134

32-
const testAccCvmLaunchTemplateDefaultVersion = `
35+
const testAccCvmLaunchTemplateDefaultVersionBase = `
36+
data "tencentcloud_images" "default" {
37+
image_type = ["PUBLIC_IMAGE"]
38+
image_name_regex = "Final"
39+
}
40+
resource "tencentcloud_cvm_launch_template" "test_launch_tpl" {
41+
launch_template_name = "test"
42+
image_id = data.tencentcloud_images.default.images.0.image_id
43+
placement {
44+
zone = "ap-guangzhou-7"
45+
}
46+
instance_name = "v1"
47+
}
48+
resource "tencentcloud_cvm_launch_template_version" "test_launch_tpl_v2" {
49+
launch_template_id = tencentcloud_cvm_launch_template.test_launch_tpl.id
50+
placement {
51+
zone = "ap-guangzhou-7"
52+
}
53+
instance_name = "v2"
54+
}`
3355

34-
resource "tencentcloud_cvm_launch_template_default_version" "launch_template_default_version" {
35-
launch_template_id = "lt-9e1znnsa"
36-
default_version = 4
56+
const testAccCvmLaunchTemplateDefaultVersion1 = `
57+
resource "tencentcloud_cvm_launch_template_default_version" "test_launch_tpl_default" {
58+
launch_template_id = tencentcloud_cvm_launch_template.test_launch_tpl.id
59+
default_version = tencentcloud_cvm_launch_template_version.test_launch_tpl_v2.launch_template_version
3760
}
61+
`
3862

63+
const testAccCvmLaunchTemplateDefaultVersion2 = `
64+
resource "tencentcloud_cvm_launch_template_default_version" "test_launch_tpl_default" {
65+
launch_template_id = tencentcloud_cvm_launch_template.test_launch_tpl.id
66+
default_version = 1
67+
}
3968
`

tencentcloud/services/cvm/resource_tc_cvm_launch_template_version_test.go

Lines changed: 84 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,95 @@ func TestAccTencentCloudCvmLaunchTemplateVersionResource_basic(t *testing.T) {
1818
Steps: []resource.TestStep{
1919
{
2020
Config: testAccCvmLaunchTemplateVersion,
21-
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_cvm_launch_template_version.launch_template_version", "id")),
22-
},
23-
{
24-
ResourceName: "tencentcloud_cvm_launch_template_version.launch_template_version",
25-
ImportState: true,
26-
ImportStateVerify: true,
21+
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_cvm_launch_template_version.test_launch_tpl_v2", "id")),
2722
},
2823
},
2924
})
3025
}
3126

3227
const testAccCvmLaunchTemplateVersion = `
33-
resource "tencentcloud_cvm_launch_template_version" "launch_template_version" {
34-
placement {
35-
zone = "ap-guangzhou-6"
36-
project_id = 0
37-
38-
}
39-
launch_template_id = "lt-9e1znnsa"
40-
launch_template_version_description = "version description"
41-
disable_api_termination = false
42-
instance_type = "S5.MEDIUM4"
43-
image_id = "img-9qrfy1xt"
28+
data "tencentcloud_images" "default" {
29+
image_type = ["PUBLIC_IMAGE"]
30+
image_name_regex = "Final"
31+
}
32+
data "tencentcloud_vpc_instances" "vpc" {
33+
is_default = true
34+
}
35+
data "tencentcloud_vpc_subnets" "subnets" {
36+
availability_zone = "ap-guangzhou-7"
37+
vpc_id = data.tencentcloud_vpc_instances.vpc.instance_list.0.vpc_id
38+
}
39+
40+
resource "tencentcloud_cvm_launch_template" "test_launch_tpl" {
41+
launch_template_name = "test"
42+
image_id = data.tencentcloud_images.default.images.0.image_id
43+
placement {
44+
zone = "ap-guangzhou-7"
45+
}
46+
instance_name = "v1"
47+
}
48+
49+
resource "tencentcloud_cvm_launch_template_version" "test_launch_tpl_v2" {
50+
launch_template_id = tencentcloud_cvm_launch_template.test_launch_tpl.id
51+
placement {
52+
zone = "ap-guangzhou-7"
53+
project_id = 0
54+
}
55+
launch_template_version_description = "test"
56+
instance_type = "S5.MEDIUM2"
57+
image_id = data.tencentcloud_images.default.images.0.image_id
58+
# system_disk {
59+
# disk_type = "CLOUD_PREMIUM"
60+
# disk_size = 20
61+
# }
62+
# data_disks {
63+
# disk_type = "CLOUD_PREMIUM"
64+
# disk_size = 200
65+
# }
66+
virtual_private_cloud {
67+
vpc_id = data.tencentcloud_vpc_subnets.subnets.instance_list.0.vpc_id
68+
subnet_id = data.tencentcloud_vpc_subnets.subnets.instance_list.0.subnet_id
69+
}
70+
# internet_accessible {
71+
# internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
72+
# internet_max_bandwidth_out = 20
73+
# }
74+
instance_count = 2
75+
instance_name = "v2"
76+
security_group_ids = ["sg-5275dorp","sg-cm7fbbf3"]
77+
enhanced_service {
78+
security_service {
79+
enabled = true
80+
}
81+
monitor_service {
82+
enabled = true
83+
}
84+
automation_service {
85+
enabled = false
86+
}
87+
}
88+
client_token = "123"
89+
host_name = "test"
90+
disaster_recover_group_ids = []
91+
tag_specification {
92+
resource_type = "instance"
93+
tags {
94+
key = "key"
95+
value = "value2"
96+
}
97+
tags {
98+
key = "key2"
99+
value = "value1"
100+
}
101+
}
102+
user_data = "aGhoCg=="
103+
cam_role_name = ""
104+
hpc_cluster_id = ""
105+
instance_charge_type = "PREPAID"
106+
instance_charge_prepaid {
107+
period = 3
108+
renew_flag = "DISABLE_NOTIFY_AND_MANUAL_RENEW"
109+
}
110+
disable_api_termination = true
44111
}
45112
`

tencentcloud/services/cvm/resource_tc_cvm_modify_instance_disk_type_test.go

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,39 +18,55 @@ func TestAccTencentCloudNeedFixCvmModifyInstanceDiskTypeResource_basic(t *testin
1818
Steps: []resource.TestStep{
1919
{
2020
Config: testAccCvmModifyInstanceDiskType,
21-
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_cvm_modify_instance_disk_type.modify_instance_disk_type", "id")),
22-
},
23-
{
24-
ResourceName: "tencentcloud_cvm_modify_instance_disk_type.modify_instance_disk_type",
25-
ImportState: true,
26-
ImportStateVerify: true,
21+
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_cvm_modify_instance_disk_type.modify_disk_type", "id")),
2722
},
2823
},
2924
})
3025
}
3126

3227
const testAccCvmModifyInstanceDiskType = `
28+
data "tencentcloud_images" "default" {
29+
image_type = ["PUBLIC_IMAGE"]
30+
image_name_regex = "Final"
31+
}
32+
data "tencentcloud_instance_types" "default" {
33+
memory_size = 2
34+
exclude_sold_out = true
35+
filter {
36+
name = "instance-family"
37+
values = ["SA2","SA3","SA4","SA5","S2","S3"]
38+
}
39+
filter {
40+
name = "zone"
41+
values = ["ap-guangzhou-7"]
42+
}
43+
cpu_core_count = 2
44+
}
3345
34-
resource "tencentcloud_cvm_modify_instance_disk_type" "modify_instance_disk_type" {
35-
instance_id = "ins-r8hr2upy"
46+
resource "tencentcloud_instance" "test_cvm" {
47+
image_id = data.tencentcloud_images.default.images.0.image_id
48+
availability_zone = "ap-guangzhou-7"
49+
instance_type = "SA2.MEDIUM2"
50+
orderly_security_groups = ["sg-5275dorp"]
51+
instance_charge_type = "POSTPAID_BY_HOUR"
3652
data_disks {
37-
disk_size = 50
38-
disk_type = "CLOUD_BASIC"
39-
disk_id = "disk-hrsd0u81"
40-
delete_with_instance = true
41-
snapshot_id = "snap-r9unnd89"
42-
encrypt = false
43-
kms_key_id = "kms-abcd1234"
44-
throughput_performance = 2
45-
cdc_id = "cdc-b9pbd3px"
46-
53+
data_disk_size = 50
54+
data_disk_type = "CLOUD_PREMIUM"
4755
}
48-
system_disk {
49-
disk_type = "CLOUD_PREMIUM"
50-
disk_id = "disk-1drr53sd"
51-
disk_size = 50
52-
cdc_id = "cdc-b9pbd3px"
56+
running_flag = false
57+
}
5358
59+
resource "tencentcloud_cvm_modify_instance_disk_type" "modify_disk_type" {
60+
instance_id = tencentcloud_instance.test_cvm.id
61+
system_disk {
62+
disk_type = "CLOUD_SSD"
63+
disk_size = 50
64+
}
65+
data_disks {
66+
disk_type = "CLOUD_SSD"
67+
disk_size = 50
68+
delete_with_instance = true
69+
throughput_performance = 100
5470
}
5571
}
5672

0 commit comments

Comments
 (0)