Skip to content

Commit 099cd6f

Browse files
tongyimingmikatong
and
mikatong
authored
update cvm test (#2654)
Co-authored-by: mikatong <[email protected]>
1 parent 8a916e2 commit 099cd6f

File tree

4 files changed

+250
-9
lines changed

4 files changed

+250
-9
lines changed

tencentcloud/acctest/basic.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ variable "sg_id" {
137137
const (
138138
DefaultCvmId = "ins-8oqqya08"
139139
DefaultDiskId = "disk-5jjrs2lm"
140-
DefaultSnapId = "snap-8f2updnb"
140+
DefaultSnapId = "snap-gem0ivcj"
141141
)
142142

143143
const DefaultCvmImageVariable = `
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package cvm_test
2+
3+
import (
4+
"testing"
5+
6+
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
7+
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
9+
)
10+
11+
func TestAccTencentCloudInstanceSetDataSource_Basic(t *testing.T) {
12+
t.Parallel()
13+
14+
resource.Test(t, resource.TestCase{
15+
PreCheck: func() { tcacctest.AccPreCheck(t) },
16+
Providers: tcacctest.AccProviders,
17+
Steps: []resource.TestStep{
18+
{
19+
Config: testAccTencentCloudInstancesSetBasic,
20+
Check: resource.ComposeTestCheckFunc(
21+
resource.TestCheckResourceAttr("data.tencentcloud_instances_set.foo", "instance_list.#", "1"),
22+
),
23+
},
24+
},
25+
})
26+
}
27+
28+
const testAccTencentCloudInstancesSetBasic = `
29+
data "tencentcloud_availability_zones" "default" {
30+
}
31+
data "tencentcloud_images" "default" {
32+
image_type = ["PUBLIC_IMAGE"]
33+
image_name_regex = "Final"
34+
}
35+
data "tencentcloud_images" "testing" {
36+
image_type = ["PUBLIC_IMAGE"]
37+
}
38+
data "tencentcloud_instance_types" "default" {
39+
40+
filter {
41+
name = "instance-family"
42+
values = ["S1", "S2", "S3", "S4", "S5"]
43+
}
44+
filter {
45+
name = "zone"
46+
values = ["ap-guangzhou-7"]
47+
}
48+
cpu_core_count = 2
49+
memory_size = 2
50+
exclude_sold_out = true
51+
}
52+
resource "tencentcloud_vpc" "vpc" {
53+
name = "cvm-basic-vpc"
54+
cidr_block = "10.0.0.0/16"
55+
}
56+
resource "tencentcloud_subnet" "subnet" {
57+
availability_zone = "ap-guangzhou-7"
58+
vpc_id = tencentcloud_vpc.vpc.id
59+
name = "cvm-basic-subnet"
60+
cidr_block = "10.0.0.0/16"
61+
}
62+
resource "tencentcloud_instance" "instances_set" {
63+
instance_name = "tf-ci-test"
64+
availability_zone = "ap-guangzhou-7"
65+
image_id = data.tencentcloud_images.default.images.0.image_id
66+
vpc_id = tencentcloud_vpc.vpc.id
67+
subnet_id = tencentcloud_subnet.subnet.id
68+
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
69+
system_disk_type = "CLOUD_PREMIUM"
70+
project_id = 0
71+
}
72+
73+
data "tencentcloud_instances_set" "foo" {
74+
instance_id = tencentcloud_instance.instances_set.id
75+
}
76+
`

tencentcloud/services/cvm/resource_tc_image_test.go

Lines changed: 105 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const (
2121
func TestAccTencentCloudImageResource(t *testing.T) {
2222
t.Parallel()
2323
resource.Test(t, resource.TestCase{
24-
PreCheck: func() { tcacctest.AccPreCheckCommon(t, tcacctest.ACCOUNT_TYPE_PREPAY) },
24+
PreCheck: func() { tcacctest.AccPreCheck(t) },
2525
Providers: tcacctest.AccProviders,
2626
CheckDestroy: testAccCheckImageDestroy,
2727
Steps: []resource.TestStep{
@@ -57,7 +57,7 @@ func TestAccTencentCloudImageResource(t *testing.T) {
5757
Check: resource.ComposeTestCheckFunc(
5858
testAccCheckImageExists(ImageInstance),
5959
resource.TestCheckResourceAttr(ImageInstance, "image_name", "image-instance-keep"),
60-
resource.TestCheckResourceAttr(ImageInstance, "instance_id", tcacctest.DefaultCvmId),
60+
resource.TestCheckResourceAttrSet(ImageInstance, "instance_id"),
6161
resource.TestCheckResourceAttr(ImageInstance, "data_disk_ids.#", "1"),
6262
resource.TestCheckResourceAttr(ImageInstance, "image_description", "create image with instance"),
6363
),
@@ -66,8 +66,6 @@ func TestAccTencentCloudImageResource(t *testing.T) {
6666
Config: testAccImageWithInstanceUpdate,
6767
Check: resource.ComposeAggregateTestCheckFunc(
6868
resource.TestCheckResourceAttr(ImageInstance, "image_name", "image-instance-update-keep"),
69-
resource.TestCheckResourceAttr(ImageInstance, "instance_id", tcacctest.DefaultCvmId),
70-
resource.TestCheckResourceAttr(ImageInstance, "data_disk_ids.#", "1"),
7169
resource.TestCheckResourceAttr(ImageInstance, "image_description", "update image with instance"),
7270
),
7371
},
@@ -151,18 +149,117 @@ const (
151149
}`
152150

153151
testAccImageWithInstance = tcacctest.DefaultCvmImageVariable + `
152+
153+
data "tencentcloud_availability_zones" "default" {
154+
}
155+
data "tencentcloud_images" "default" {
156+
image_type = ["PUBLIC_IMAGE"]
157+
image_name_regex = "Final"
158+
}
159+
data "tencentcloud_images" "testing" {
160+
image_type = ["PUBLIC_IMAGE"]
161+
}
162+
data "tencentcloud_instance_types" "default" {
163+
164+
filter {
165+
name = "instance-family"
166+
values = ["S4","SA2"]
167+
}
168+
filter {
169+
values = ["ap-guangzhou-7"]
170+
name = "zone"
171+
}
172+
cpu_core_count = 2
173+
memory_size = 2
174+
exclude_sold_out = true
175+
}
176+
resource "tencentcloud_vpc" "vpc" {
177+
name = "image-vpc"
178+
cidr_block = "10.0.0.0/16"
179+
}
180+
resource "tencentcloud_subnet" "subnet" {
181+
vpc_id = tencentcloud_vpc.vpc.id
182+
name = "image-subnet"
183+
cidr_block = "10.0.0.0/16"
184+
availability_zone = "ap-guangzhou-7"
185+
}
186+
resource "tencentcloud_instance" "cvm_image" {
187+
subnet_id = tencentcloud_subnet.subnet.id
188+
system_disk_type = "CLOUD_PREMIUM"
189+
project_id = 0
190+
instance_name = "cvm-image"
191+
availability_zone = "ap-guangzhou-7"
192+
image_id = data.tencentcloud_images.default.images.0.image_id
193+
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
194+
vpc_id = tencentcloud_vpc.vpc.id
195+
data_disks {
196+
delete_with_instance = true
197+
data_disk_type = "CLOUD_PREMIUM"
198+
data_disk_size = 100
199+
}
200+
}
201+
154202
resource "tencentcloud_image" "image_instance" {
155203
image_name = "image-instance-keep"
156-
instance_id = var.cvm_id
157-
data_disk_ids = [var.disk_id]
204+
instance_id = tencentcloud_instance.cvm_image.id
205+
data_disk_ids = [tencentcloud_instance.cvm_image.data_disks.0.data_disk_id]
158206
image_description = "create image with instance"
159207
}`
160208

161209
testAccImageWithInstanceUpdate = tcacctest.DefaultCvmImageVariable + `
210+
data "tencentcloud_availability_zones" "default" {
211+
}
212+
data "tencentcloud_images" "default" {
213+
image_type = ["PUBLIC_IMAGE"]
214+
image_name_regex = "Final"
215+
}
216+
data "tencentcloud_images" "testing" {
217+
image_type = ["PUBLIC_IMAGE"]
218+
}
219+
data "tencentcloud_instance_types" "default" {
220+
221+
filter {
222+
name = "instance-family"
223+
values = ["S4","SA2"]
224+
}
225+
filter {
226+
values = ["ap-guangzhou-7"]
227+
name = "zone"
228+
}
229+
cpu_core_count = 2
230+
memory_size = 2
231+
exclude_sold_out = true
232+
}
233+
resource "tencentcloud_vpc" "vpc" {
234+
name = "image-vpc"
235+
cidr_block = "10.0.0.0/16"
236+
}
237+
resource "tencentcloud_subnet" "subnet" {
238+
vpc_id = tencentcloud_vpc.vpc.id
239+
name = "image-subnet"
240+
cidr_block = "10.0.0.0/16"
241+
availability_zone = "ap-guangzhou-7"
242+
}
243+
resource "tencentcloud_instance" "cvm_image" {
244+
subnet_id = tencentcloud_subnet.subnet.id
245+
system_disk_type = "CLOUD_PREMIUM"
246+
project_id = 0
247+
instance_name = "cvm-image"
248+
availability_zone = "ap-guangzhou-7"
249+
image_id = data.tencentcloud_images.default.images.0.image_id
250+
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
251+
vpc_id = tencentcloud_vpc.vpc.id
252+
data_disks {
253+
delete_with_instance = true
254+
data_disk_type = "CLOUD_PREMIUM"
255+
data_disk_size = 100
256+
}
257+
}
258+
162259
resource "tencentcloud_image" "image_instance" {
163260
image_name = "image-instance-update-keep"
164-
instance_id = var.cvm_id
165-
data_disk_ids = [var.disk_id]
261+
instance_id = tencentcloud_instance.cvm_image.id
262+
data_disk_ids = [tencentcloud_instance.cvm_image.data_disks.0.data_disk_id]
166263
image_description = "update image with instance"
167264
}`
168265
)
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package cvm_test
2+
3+
import (
4+
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
5+
6+
"testing"
7+
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
9+
)
10+
11+
func TestAccTencentCloudNeedFixInstanceSetResource_basic(t *testing.T) {
12+
t.Parallel()
13+
resource.Test(t, resource.TestCase{
14+
PreCheck: func() { tcacctest.AccPreCheck(t) },
15+
Providers: tcacctest.AccProviders,
16+
Steps: []resource.TestStep{
17+
{
18+
Config: testAccInstanceSetBasic,
19+
Check: resource.ComposeTestCheckFunc(
20+
resource.TestCheckResourceAttr("tencentcloud_instance_set.foo", "instance_ids.#", "2"),
21+
),
22+
},
23+
},
24+
})
25+
}
26+
27+
const testAccInstanceSetBasic = `
28+
data "tencentcloud_availability_zones" "default" {
29+
}
30+
data "tencentcloud_images" "default" {
31+
image_type = ["PUBLIC_IMAGE"]
32+
image_name_regex = "Final"
33+
}
34+
data "tencentcloud_images" "testing" {
35+
image_type = ["PUBLIC_IMAGE"]
36+
}
37+
data "tencentcloud_instance_types" "default" {
38+
39+
filter {
40+
name = "instance-family"
41+
values = ["S1", "S2", "S3", "S4", "S5"]
42+
}
43+
filter {
44+
name = "zone"
45+
values = ["ap-guangzhou-7"]
46+
}
47+
cpu_core_count = 2
48+
memory_size = 2
49+
exclude_sold_out = true
50+
}
51+
resource "tencentcloud_instance_set" "foo" {
52+
timeouts {
53+
create = "10m"
54+
read = "10m"
55+
delete = "10m"
56+
}
57+
58+
instance_count = 2
59+
instance_name = "tf-ci-test"
60+
availability_zone = "ap-guangzhou-7"
61+
image_id = data.tencentcloud_images.default.images.0.image_id
62+
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
63+
system_disk_type = "CLOUD_PREMIUM"
64+
system_disk_size = 50
65+
hostname = "user"
66+
project_id = 0
67+
}
68+
`

0 commit comments

Comments
 (0)