Skip to content

Commit e45e111

Browse files
author
mikatong
committed
system disk resize online
1 parent 0b950f5 commit e45e111

File tree

2 files changed

+143
-0
lines changed

2 files changed

+143
-0
lines changed

tencentcloud/services/cvm/resource_tc_instance.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@ func ResourceTencentCloudInstance() *schema.Resource {
238238
Computed: true,
239239
Description: "System disk snapshot ID used to initialize the system disk. When system disk type is `LOCAL_BASIC` and `LOCAL_SSD`, disk id is not supported.",
240240
},
241+
"system_disk_resize_online": {
242+
Type: schema.TypeBool,
243+
Optional: true,
244+
Description: "Resize online.",
245+
},
241246
"data_disks": {
242247
Type: schema.TypeList,
243248
Optional: true,
@@ -1308,6 +1313,9 @@ func resourceTencentCloudInstanceUpdate(d *schema.ResourceData, meta interface{}
13081313
DiskSize: helper.IntInt64(size),
13091314
DiskType: &diskType,
13101315
}
1316+
if v, ok := d.GetOkExists("system_disk_resize_online"); ok {
1317+
req.ResizeOnline = helper.Bool(v.(bool))
1318+
}
13111319

13121320
err := cvmService.ResizeInstanceDisks(ctx, req)
13131321
if err != nil {

tencentcloud/services/cvm/resource_tc_instance_test.go

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,141 @@ resource "tencentcloud_instance" "cvm_basic" {
266266
267267
`
268268

269+
func TestAccTencentCloudInstance_SystemDiskResizeOnline(t *testing.T) {
270+
t.Parallel()
271+
resource.Test(t, resource.TestCase{
272+
PreCheck: func() {
273+
acctest.AccPreCheck(t)
274+
},
275+
Providers: acctest.AccProviders,
276+
CheckDestroy: testAccCheckCvmInstanceDestroy,
277+
Steps: []resource.TestStep{
278+
{
279+
Config: testAccCvmInstanceResource_SystemDiskResizeOnline,
280+
Check: resource.ComposeTestCheckFunc(
281+
testAccCheckCvmInstanceExists("tencentcloud_instance.cvm_system_disk_resize_online"),
282+
resource.TestCheckResourceAttr("tencentcloud_instance.cvm_system_disk_resize_online", "system_disk_type", "CLOUD_PREMIUM"),
283+
resource.TestCheckResourceAttr("tencentcloud_instance.cvm_system_disk_resize_online", "system_disk_size", "100"),
284+
resource.TestCheckResourceAttr("tencentcloud_instance.cvm_system_disk_resize_online", "instance_status", "RUNNING"),
285+
),
286+
},
287+
{
288+
Config: testAccCvmInstanceResource_SystemDiskResizeOnlineUpdate,
289+
Check: resource.ComposeTestCheckFunc(
290+
testAccCheckCvmInstanceExists("tencentcloud_instance.cvm_system_disk_resize_online"),
291+
resource.TestCheckResourceAttr("tencentcloud_instance.cvm_system_disk_resize_online", "system_disk_type", "CLOUD_PREMIUM"),
292+
resource.TestCheckResourceAttr("tencentcloud_instance.cvm_system_disk_resize_online", "system_disk_size", "200"),
293+
resource.TestCheckResourceAttr("tencentcloud_instance.cvm_system_disk_resize_online", "instance_status", "RUNNING"),
294+
),
295+
},
296+
},
297+
})
298+
}
299+
300+
const testAccCvmInstanceResource_SystemDiskResizeOnline = `
301+
302+
data "tencentcloud_availability_zones" "default" {
303+
}
304+
data "tencentcloud_images" "default" {
305+
image_type = ["PUBLIC_IMAGE"]
306+
image_name_regex = "Final"
307+
}
308+
data "tencentcloud_images" "testing" {
309+
image_type = ["PUBLIC_IMAGE"]
310+
}
311+
data "tencentcloud_instance_types" "default" {
312+
memory_size = 2
313+
exclude_sold_out = true
314+
315+
filter {
316+
name = "instance-family"
317+
values = ["S1","S2","S3","S4","S5"]
318+
}
319+
filter {
320+
name = "zone"
321+
values = ["ap-guangzhou-7"]
322+
}
323+
cpu_core_count = 2
324+
}
325+
resource "tencentcloud_vpc" "vpc" {
326+
name = "cvm-resize-online-vpc"
327+
cidr_block = "10.0.0.0/16"
328+
}
329+
resource "tencentcloud_subnet" "subnet" {
330+
availability_zone = "ap-guangzhou-7"
331+
vpc_id = tencentcloud_vpc.vpc.id
332+
name = "cvm-resize-online-subnet"
333+
cidr_block = "10.0.0.0/16"
334+
}
335+
resource "tencentcloud_instance" "cvm_system_disk_resize_online" {
336+
instance_name = "tf-system-disk-resize-online"
337+
availability_zone = "ap-guangzhou-7"
338+
image_id = data.tencentcloud_images.default.images.0.image_id
339+
vpc_id = tencentcloud_vpc.vpc.id
340+
341+
lifecycle {
342+
ignore_changes = [instance_type]
343+
}
344+
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
345+
subnet_id = tencentcloud_subnet.subnet.id
346+
system_disk_type = "CLOUD_PREMIUM"
347+
system_disk_size = 100
348+
project_id = 0
349+
}
350+
`
351+
352+
const testAccCvmInstanceResource_SystemDiskResizeOnlineUpdate = `
353+
data "tencentcloud_availability_zones" "default" {
354+
}
355+
data "tencentcloud_images" "default" {
356+
image_type = ["PUBLIC_IMAGE"]
357+
image_name_regex = "Final"
358+
}
359+
data "tencentcloud_images" "testing" {
360+
image_type = ["PUBLIC_IMAGE"]
361+
}
362+
data "tencentcloud_instance_types" "default" {
363+
memory_size = 2
364+
exclude_sold_out = true
365+
366+
filter {
367+
name = "instance-family"
368+
values = ["S1","S2","S3","S4","S5"]
369+
}
370+
filter {
371+
name = "zone"
372+
values = ["ap-guangzhou-7"]
373+
}
374+
cpu_core_count = 2
375+
}
376+
resource "tencentcloud_vpc" "vpc" {
377+
name = "cvm-resize-online-vpc"
378+
cidr_block = "10.0.0.0/16"
379+
}
380+
resource "tencentcloud_subnet" "subnet" {
381+
availability_zone = "ap-guangzhou-7"
382+
vpc_id = tencentcloud_vpc.vpc.id
383+
name = "cvm-resize-online-subnet"
384+
cidr_block = "10.0.0.0/16"
385+
}
386+
resource "tencentcloud_instance" "cvm_system_disk_resize_online" {
387+
instance_name = "tf-system-disk-resize-online"
388+
availability_zone = "ap-guangzhou-7"
389+
image_id = data.tencentcloud_images.default.images.0.image_id
390+
vpc_id = tencentcloud_vpc.vpc.id
391+
392+
lifecycle {
393+
ignore_changes = [instance_type]
394+
}
395+
instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type
396+
subnet_id = tencentcloud_subnet.subnet.id
397+
system_disk_type = "CLOUD_PREMIUM"
398+
system_disk_size = 200
399+
system_disk_resize_online = true
400+
project_id = 0
401+
}
402+
`
403+
269404
func TestAccTencentCloudInstanceResourcePrepaid(t *testing.T) {
270405
t.Parallel()
271406
resource.Test(t, resource.TestCase{

0 commit comments

Comments
 (0)