From 17434288f5ccafcbfed263e1852a29455e80be1b Mon Sep 17 00:00:00 2001 From: bruceybian Date: Fri, 31 May 2024 15:39:24 +0800 Subject: [PATCH 1/3] update cvm e2e test --- ...a_source_tc_cvm_chc_denied_actions_test.go | 10 +- .../cvm/data_source_tc_cvm_chc_hosts_test.go | 47 +++++- ...c_cvm_disaster_recover_group_quota_test.go | 9 +- .../data_source_tc_cvm_image_quota_test.go | 5 +- ...urce_tc_cvm_image_share_permission_test.go | 12 +- .../cvm/resource_tc_cvm_chc_config_test.go | 158 ++++++++++++++---- .../cvm/resource_tc_cvm_export_images_test.go | 37 +++- .../cvm/resource_tc_cvm_hpc_cluster_test.go | 33 +++- ...urce_tc_cvm_image_share_permission_test.go | 10 +- .../cvm/resource_tc_placement_group_test.go | 23 +++ .../cvm/resource_tc_reserved_instance_test.go | 43 +++++ 11 files changed, 327 insertions(+), 60 deletions(-) create mode 100644 tencentcloud/services/cvm/resource_tc_reserved_instance_test.go diff --git a/tencentcloud/services/cvm/data_source_tc_cvm_chc_denied_actions_test.go b/tencentcloud/services/cvm/data_source_tc_cvm_chc_denied_actions_test.go index 2c9721ed59..4f666b5221 100644 --- a/tencentcloud/services/cvm/data_source_tc_cvm_chc_denied_actions_test.go +++ b/tencentcloud/services/cvm/data_source_tc_cvm_chc_denied_actions_test.go @@ -18,7 +18,13 @@ func TestAccTencentCloudCvmChcDeniedActionsDataSource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccCvmChcDeniedActionsDataSource, - Check: resource.ComposeTestCheckFunc(tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_chc_denied_actions.chc_denied_actions")), + Check: resource.ComposeTestCheckFunc( + tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_chc_denied_actions.chc_denied_actions"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_denied_actions.chc_denied_actions", "chc_host_denied_action_set.#", "1"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_denied_actions.chc_denied_actions", "chc_host_denied_action_set.0.chc_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_denied_actions.chc_denied_actions", "chc_host_denied_action_set.0.state"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_denied_actions.chc_denied_actions", "chc_host_denied_action_set.0.deny_actions.#"), + ), }, }, }) @@ -27,6 +33,6 @@ func TestAccTencentCloudCvmChcDeniedActionsDataSource_basic(t *testing.T) { const testAccCvmChcDeniedActionsDataSource = ` data "tencentcloud_cvm_chc_denied_actions" "chc_denied_actions" { - chc_ids = ["chc-0brmw3wl"] + chc_ids = ["chc-mn3l1qf5"] } ` diff --git a/tencentcloud/services/cvm/data_source_tc_cvm_chc_hosts_test.go b/tencentcloud/services/cvm/data_source_tc_cvm_chc_hosts_test.go index a542022210..47d7fd6d2a 100644 --- a/tencentcloud/services/cvm/data_source_tc_cvm_chc_hosts_test.go +++ b/tencentcloud/services/cvm/data_source_tc_cvm_chc_hosts_test.go @@ -18,19 +18,58 @@ func TestAccTencentCloudCvmChcHostsDataSource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccCvmChcHostsDataSource, - Check: resource.ComposeTestCheckFunc(tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_chc_hosts.chc_hosts")), + Check: resource.ComposeTestCheckFunc( + tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_chc_hosts.chc_hosts"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.#", "1"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.chc_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.instance_name"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.serial_number"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.instance_state"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.device_type"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.placement.#", "1"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.placement.0.zone"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.placement.0.project_id"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.placement.0.host_ids.#", "0"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.placement.0.host_ips.#", "0"), + //resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.placement.0.host_id"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.bmc_virtual_private_cloud.#", "1"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.bmc_virtual_private_cloud.0.vpc_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.bmc_virtual_private_cloud.0.subnet_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.bmc_virtual_private_cloud.0.as_vpc_gateway"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.bmc_virtual_private_cloud.0.private_ip_addresses.#", "0"), + //resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chbmc_security_group_idsc_host_set.0.bmc_virtual_private_cloud.0.ipv6_address_count"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.bmc_ip"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.bmc_security_group_ids.#", "1"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_virtual_private_cloud.#", "1"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_virtual_private_cloud.0.vpc_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_virtual_private_cloud.0.subnet_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_virtual_private_cloud.0.as_vpc_gateway"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_virtual_private_cloud.0.private_ip_addresses.#", "0"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_virtual_private_cloud.0.ipv6_address_count"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_ip"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_security_group_ids.#", "1"), + //resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.cvm_instance_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.created_time"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.hardware_description"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.cpu"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.memory"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.disk"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.bmc_mac"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.deploy_mac"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_chc_hosts.chc_hosts", "chc_host_set.0.tenant_type"), + ), }, }, }) } -const testAccCvmChcHostsDataSource = ` +const testAccCvmChcHostsDataSource = testAccCvmChcConfig + ` data "tencentcloud_cvm_chc_hosts" "chc_hosts" { - chc_ids = ["chc-0brmw3wl"] + chc_ids = [tencentcloud_cvm_chc_config.chc_config.chc_id] filters { name = "zone" - values = ["ap-guangzhou-7"] + values = [var.availability_zone] } } ` diff --git a/tencentcloud/services/cvm/data_source_tc_cvm_disaster_recover_group_quota_test.go b/tencentcloud/services/cvm/data_source_tc_cvm_disaster_recover_group_quota_test.go index 1307611947..564b5da650 100644 --- a/tencentcloud/services/cvm/data_source_tc_cvm_disaster_recover_group_quota_test.go +++ b/tencentcloud/services/cvm/data_source_tc_cvm_disaster_recover_group_quota_test.go @@ -18,7 +18,14 @@ func TestAccTencentCloudCvmDisasterRecoverGroupQuotaDataSource_basic(t *testing. Steps: []resource.TestStep{ { Config: testAccCvmDisasterRecoverGroupQuotaDataSource, - Check: resource.ComposeTestCheckFunc(tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_disaster_recover_group_quota.disaster_recover_group_quota")), + Check: resource.ComposeTestCheckFunc( + tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_disaster_recover_group_quota.disaster_recover_group_quota"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_disaster_recover_group_quota.disaster_recover_group_quota", "group_quota", "1000"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_disaster_recover_group_quota.disaster_recover_group_quota", "current_num"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_disaster_recover_group_quota.disaster_recover_group_quota", "cvm_in_host_group_quota", "50"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_disaster_recover_group_quota.disaster_recover_group_quota", "cvm_in_sw_group_quota", "20"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_disaster_recover_group_quota.disaster_recover_group_quota", "cvm_in_rack_group_quota", "30"), + ), }, }, }) diff --git a/tencentcloud/services/cvm/data_source_tc_cvm_image_quota_test.go b/tencentcloud/services/cvm/data_source_tc_cvm_image_quota_test.go index 7cf61dc549..fae31aa9d6 100644 --- a/tencentcloud/services/cvm/data_source_tc_cvm_image_quota_test.go +++ b/tencentcloud/services/cvm/data_source_tc_cvm_image_quota_test.go @@ -18,7 +18,10 @@ func TestAccTencentCloudCvmImageQuotaDataSource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccCvmImageQuotaDataSource, - Check: resource.ComposeTestCheckFunc(tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_image_quota.image_quota")), + Check: resource.ComposeTestCheckFunc( + tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_image_quota.image_quota"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_image_quota.image_quota", "image_num_quota", "500"), + ), }, }, }) diff --git a/tencentcloud/services/cvm/data_source_tc_cvm_image_share_permission_test.go b/tencentcloud/services/cvm/data_source_tc_cvm_image_share_permission_test.go index 126d2ed51c..5e8dd87733 100644 --- a/tencentcloud/services/cvm/data_source_tc_cvm_image_share_permission_test.go +++ b/tencentcloud/services/cvm/data_source_tc_cvm_image_share_permission_test.go @@ -16,15 +16,21 @@ func TestAccTencentCloudCvmImageSharePermissionDataSource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccCvmImageSharePermissionDataSource, - Check: resource.ComposeTestCheckFunc(tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_image_share_permission.image_share_permission")), + Check: resource.ComposeTestCheckFunc( + tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_cvm_image_share_permission.image_share_permission"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_image_share_permission.image_share_permission", "image_id", "img-l7uxaine"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_image_share_permission.image_share_permission", "share_permission_set.#", "1"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cvm_image_share_permission.image_share_permission", "share_permission_set.0.created_time"), + resource.TestCheckResourceAttr("data.tencentcloud_cvm_image_share_permission.image_share_permission", "share_permission_set.0.account_id", "100022975249"), + ), }, }, }) } -const testAccCvmImageSharePermissionDataSource = ` +const testAccCvmImageSharePermissionDataSource = testAccCvmModifyImageSharePermission + ` data "tencentcloud_cvm_image_share_permission" "image_share_permission" { - image_id = "img-k4h0m5la" + image_id = tencentcloud_cvm_image_share_permission.image_share_permission.image_id } ` diff --git a/tencentcloud/services/cvm/resource_tc_cvm_chc_config_test.go b/tencentcloud/services/cvm/resource_tc_cvm_chc_config_test.go index 7a66ae1999..a1c6c40cac 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_chc_config_test.go +++ b/tencentcloud/services/cvm/resource_tc_cvm_chc_config_test.go @@ -20,62 +20,152 @@ func TestAccTencentCloudCvmChcConfigResource_basic(t *testing.T) { Config: testAccCvmChcConfig, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "chc_id"), resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "instance_name", "test"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "device_type"), + resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "bmc_user", "admin"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "password"), + resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "bmc_virtual_private_cloud.#", "1"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "bmc_virtual_private_cloud.0.vpc_id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "bmc_virtual_private_cloud.0.subnet_id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "bmc_virtual_private_cloud.0.as_vpc_gateway"), + resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "bmc_security_group_ids.#", "1"), + resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "deploy_virtual_private_cloud.#", "1"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "deploy_virtual_private_cloud.0.vpc_id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "deploy_virtual_private_cloud.0.subnet_id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "deploy_virtual_private_cloud.0.as_vpc_gateway"), + resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "deploy_security_group_ids.#", "1"), ), }, { Config: testAccCvmChcConfig_update, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "id"), - resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "instance_name", "test_update"), + resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "instance_name", "test1"), + resource.TestCheckResourceAttr("tencentcloud_cvm_chc_config.chc_config", "bmc_user", "admin1"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_chc_config.chc_config", "password"), ), }, { ResourceName: "tencentcloud_cvm_chc_config.chc_config", ImportState: true, - ImportStateVerify: true, + ImportStateVerify: false, ImportStateVerifyIgnore: []string{"bmc_user", "password"}, }, }, }) } -const testAccCvmChcConfig = ` +const testAccCvmChcConfigBasis = ` +variable "availability_zone" { + default = "ap-guangzhou-7" +} + +variable "vpc_cidr" { + default = "172.16.0.0/16" +} + +variable "subnet_cidr1" { + default = "172.16.0.0/20" +} + +variable "subnet_cidr2" { + default = "172.16.16.0/20" +} + +variable "tke_cidr_a" { + default = [ + "10.31.0.0/23", + "10.31.2.0/24", + "10.31.3.0/24", + "10.31.16.0/24", + "10.31.32.0/24" + ] +} + +variable "default_img_id" { + default = "img-2lr9q49h" +} + +resource "tencentcloud_vpc" "vpc" { + name = "tf-cvm-vpc" + cidr_block = var.vpc_cidr +} + +resource "tencentcloud_subnet" "subnet1" { + name = "tf_cvm_vpc_subnet1" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = var.availability_zone + cidr_block = var.subnet_cidr1 + is_multicast = false +} + +resource "tencentcloud_subnet" "subnet2" { + name = "tf_cvm_vpc_subnet2" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = var.availability_zone + cidr_block = var.subnet_cidr2 + is_multicast = false +} + +data "tencentcloud_security_groups" "security_groups1" { + name = "keep-tke" +} + +data "tencentcloud_security_groups" "security_groups2" { + name = "keep-reject-all" +} + +locals { + vpc_id = tencentcloud_vpc.vpc.id + subnet_id1 = tencentcloud_subnet.subnet1.id + subnet_id2 = tencentcloud_subnet.subnet2.id + + sg_id1 = data.tencentcloud_security_groups.security_groups1.security_groups.0.security_group_id + sg_id2 = data.tencentcloud_security_groups.security_groups2.security_groups.0.security_group_id +} +` + +const testAccCvmChcConfig = testAccCvmChcConfigBasis + ` resource "tencentcloud_cvm_chc_config" "chc_config" { - chc_id = "chc-0brmw3wl" - instance_name = "test" - bmc_user = "admin" - password = "123" - bmc_virtual_private_cloud { - vpc_id = "vpc-4owdpnwr" - subnet_id = "subnet-j56j1u5u" - } - bmc_security_group_ids = ["sg-ijato2x1"] - - deploy_virtual_private_cloud { - vpc_id = "vpc-4owdpnwr" - subnet_id = "subnet-j56j1u5u" - } - deploy_security_group_ids = ["sg-ijato2x1"] + chc_id = "chc-mn3l1qf5" + instance_name = "test" + bmc_user = "admin" + password = "123" + bmc_virtual_private_cloud { + vpc_id = local.vpc_id + subnet_id = local.subnet_id1 + as_vpc_gateway = false + } + bmc_security_group_ids = [local.sg_id1] + + deploy_virtual_private_cloud { + vpc_id = local.vpc_id + subnet_id = local.subnet_id1 + as_vpc_gateway = false } + deploy_security_group_ids = [local.sg_id1] +} ` -const testAccCvmChcConfig_update = ` +const testAccCvmChcConfig_update = testAccCvmChcConfigBasis + ` resource "tencentcloud_cvm_chc_config" "chc_config" { - chc_id = "chc-0brmw3wl" - instance_name = "test_update" - bmc_user = "admin" - password = "123123" - bmc_virtual_private_cloud { - vpc_id = "vpc-4owdpnwr" - subnet_id = "subnet-j56j1u5u" - } - bmc_security_group_ids = ["sg-ijato2x1"] - - deploy_virtual_private_cloud { - vpc_id = "vpc-4owdpnwr" - subnet_id = "subnet-j56j1u5u" - } - deploy_security_group_ids = ["sg-ijato2x1"] + chc_id = "chc-mn3l1qf5" + instance_name = "test1" + bmc_user = "admin1" + password = "123456" + bmc_virtual_private_cloud { + vpc_id = local.vpc_id + subnet_id = local.subnet_id1 + as_vpc_gateway = false + } + bmc_security_group_ids = [local.sg_id1] + + deploy_virtual_private_cloud { + vpc_id = local.vpc_id + subnet_id = local.subnet_id1 + as_vpc_gateway = false } + deploy_security_group_ids = [local.sg_id1] +} ` diff --git a/tencentcloud/services/cvm/resource_tc_cvm_export_images_test.go b/tencentcloud/services/cvm/resource_tc_cvm_export_images_test.go index 5dac4a992a..99c6a152e9 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_export_images_test.go +++ b/tencentcloud/services/cvm/resource_tc_cvm_export_images_test.go @@ -16,16 +16,41 @@ func TestAccTencentCloudCvmExportImagesResource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccCvmExportImages, - Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_cvm_export_images.export_images", "id")), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_cvm_export_images.export_images", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_export_images.export_images", "bucket_name"), + resource.TestCheckResourceAttr("tencentcloud_cvm_export_images.export_images", "image_id", "img-l7uxaine"), + resource.TestCheckResourceAttr("tencentcloud_cvm_export_images.export_images", "file_name_prefix", "test-"), + resource.TestCheckResourceAttr("tencentcloud_cvm_export_images.export_images", "export_format", "RAW"), + resource.TestCheckResourceAttr("tencentcloud_cvm_export_images.export_images", "only_export_root_disk", "false"), + resource.TestCheckResourceAttr("tencentcloud_cvm_export_images.export_images", "dry_run", "false"), + ), }, }, }) } -const testAccCvmExportImages = ` +const testAccCvmExportImagesBasis = ` +data "tencentcloud_user_info" "info" {} + +locals { + app_id = data.tencentcloud_user_info.info.app_id +} + +resource "tencentcloud_cos_bucket" "private_sbucket" { + bucket = "tf-private-bucket-${local.app_id}" + acl = "private" + force_clean = true +} +` + +const testAccCvmExportImages = testAccCvmExportImagesBasis + ` resource "tencentcloud_cvm_export_images" "export_images" { - bucket_name = "keep-export-image-1308726196" - image_id = "img-e4l9lc5o" - file_name_prefix = "test-" - } + bucket_name = tencentcloud_cos_bucket.private_sbucket.bucket + image_id = "img-l7uxaine" + file_name_prefix = "test-" + export_format = "RAW" + only_export_root_disk = false + dry_run = false +} ` diff --git a/tencentcloud/services/cvm/resource_tc_cvm_hpc_cluster_test.go b/tencentcloud/services/cvm/resource_tc_cvm_hpc_cluster_test.go index 743db73a69..c63afba281 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_hpc_cluster_test.go +++ b/tencentcloud/services/cvm/resource_tc_cvm_hpc_cluster_test.go @@ -18,11 +18,20 @@ func TestAccTencentCloudCvmHpcClusterResource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testAccCvmHpcCluster, - PreConfig: func() { tcacctest.AccStepSetRegion(t, "ap-beijing") }, + PreConfig: func() { tcacctest.AccStepSetRegion(t, "ap-guangzhou") }, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrSet("tencentcloud_cvm_hpc_cluster.hpc_cluster", "id"), - resource.TestCheckResourceAttrSet("tencentcloud_cvm_hpc_cluster.hpc_cluster", "name"), - resource.TestCheckResourceAttrSet("tencentcloud_cvm_hpc_cluster.hpc_cluster", "remark"), + resource.TestCheckResourceAttr("tencentcloud_cvm_hpc_cluster.hpc_cluster", "name", "terraform-test"), + resource.TestCheckResourceAttr("tencentcloud_cvm_hpc_cluster.hpc_cluster", "remark", "create for test"), + ), + }, + { + Config: testAccCvmHpcClusterUpdate, + PreConfig: func() { tcacctest.AccStepSetRegion(t, "ap-guangzhou") }, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_cvm_hpc_cluster.hpc_cluster", "id"), + resource.TestCheckResourceAttr("tencentcloud_cvm_hpc_cluster.hpc_cluster", "name", "terraform-test1"), + resource.TestCheckResourceAttr("tencentcloud_cvm_hpc_cluster.hpc_cluster", "remark", "create for e2e test"), ), }, { @@ -34,12 +43,24 @@ func TestAccTencentCloudCvmHpcClusterResource_basic(t *testing.T) { }) } -const testAccCvmHpcCluster = ` +const testAccCvmHpcClusterBasis = ` +variable "availability_zone" { + default = "ap-guangzhou-7" +} +` +const testAccCvmHpcCluster = testAccCvmHpcClusterBasis + ` resource "tencentcloud_cvm_hpc_cluster" "hpc_cluster" { - zone = "ap-beijing-6" - name = "terraform-test" + zone = var.availability_zone + name = "terraform-test" remark = "create for test" } +` +const testAccCvmHpcClusterUpdate = testAccCvmHpcClusterBasis + ` +resource "tencentcloud_cvm_hpc_cluster" "hpc_cluster" { + zone = var.availability_zone + name = "terraform-test1" + remark = "create for e2e test" +} ` diff --git a/tencentcloud/services/cvm/resource_tc_cvm_image_share_permission_test.go b/tencentcloud/services/cvm/resource_tc_cvm_image_share_permission_test.go index e2818cf7e7..df86792bc3 100644 --- a/tencentcloud/services/cvm/resource_tc_cvm_image_share_permission_test.go +++ b/tencentcloud/services/cvm/resource_tc_cvm_image_share_permission_test.go @@ -16,7 +16,11 @@ func TestAccTencentCloudCvmModifyImageSharePermissionResource_basic(t *testing.T Steps: []resource.TestStep{ { Config: testAccCvmModifyImageSharePermission, - Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_cvm_image_share_permission.image_share_permission", "id")), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_cvm_image_share_permission.image_share_permission", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_cvm_image_share_permission.image_share_permission", "image_id"), + resource.TestCheckResourceAttr("tencentcloud_cvm_image_share_permission.image_share_permission", "account_ids.#", "1"), + ), }, { ResourceName: "tencentcloud_cvm_image_share_permission.image_share_permission", @@ -29,7 +33,7 @@ func TestAccTencentCloudCvmModifyImageSharePermissionResource_basic(t *testing.T const testAccCvmModifyImageSharePermission = ` resource "tencentcloud_cvm_image_share_permission" "image_share_permission" { - image_id = "img-b0x811s0" - account_ids = ["100022975249"] + image_id = "img-l7uxaine" + account_ids = ["100022975249"] } ` diff --git a/tencentcloud/services/cvm/resource_tc_placement_group_test.go b/tencentcloud/services/cvm/resource_tc_placement_group_test.go index 94a145f701..ed78633736 100644 --- a/tencentcloud/services/cvm/resource_tc_placement_group_test.go +++ b/tencentcloud/services/cvm/resource_tc_placement_group_test.go @@ -31,6 +31,22 @@ func TestAccTencentCloudPlacementGroup(t *testing.T) { resource.TestCheckResourceAttrSet("tencentcloud_placement_group.placement", "create_time"), ), }, + { + Config: testAccPlacementGroupUpdate, + Check: resource.ComposeTestCheckFunc( + testAccCheckPlacementGroupExists("tencentcloud_placement_group.placement"), + resource.TestCheckResourceAttr("tencentcloud_placement_group.placement", "name", "tf-test-placement1"), + resource.TestCheckResourceAttr("tencentcloud_placement_group.placement", "type", "HOST"), + resource.TestCheckResourceAttrSet("tencentcloud_placement_group.placement", "cvm_quota_total"), + resource.TestCheckResourceAttrSet("tencentcloud_placement_group.placement", "current_num"), + resource.TestCheckResourceAttrSet("tencentcloud_placement_group.placement", "create_time"), + ), + }, + { + ResourceName: "tencentcloud_placement_group.placement", + ImportState: true, + ImportStateVerify: true, + }, }, }) } @@ -104,3 +120,10 @@ resource "tencentcloud_placement_group" "placement" { type = "HOST" } ` + +const testAccPlacementGroupUpdate = ` +resource "tencentcloud_placement_group" "placement" { + name = "tf-test-placement1" + type = "HOST" +} +` diff --git a/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go b/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go new file mode 100644 index 0000000000..e9aa77b810 --- /dev/null +++ b/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go @@ -0,0 +1,43 @@ +package cvm_test + +import ( + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccTencentCloudReservedInstance(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { tcacctest.AccPreCheck(t) }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccPlacementGroup, + Check: resource.ComposeTestCheckFunc( + testAccCheckPlacementGroupExists("tencentcloud_reserved_instance.reserved_instance"), + resource.TestCheckResourceAttr("tencentcloud_reserved_instance.reserved_instance", "config_id", "469043dd-28b9-4d89-b557-74f6a8326259"), + resource.TestCheckResourceAttr("tencentcloud_reserved_instance.reserved_instance", "instance_count", "2"), + resource.TestCheckResourceAttr("tencentcloud_reserved_instance.reserved_instance", "reserved_instance_name", "test"), + resource.TestCheckResourceAttrSet("tencentcloud_reserved_instance.reserved_instance", "start_time"), + resource.TestCheckResourceAttrSet("tencentcloud_reserved_instance.reserved_instance", "end_time"), + resource.TestCheckResourceAttrSet("tencentcloud_reserved_instance.reserved_instance", "status"), + ), + }, + { + ResourceName: "tencentcloud_reserved_instance.reserved_instance", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +const testAccReservedInstance = ` +resource "tencentcloud_reserved_instance" "reserved_instance" { + config_id = "469043dd-28b9-4d89-b557-74f6a8326259" + instance_count = 2 + reserved_instance_name = "test" +} +` From 992f693dde48bdaf369c54ebc4bec78feb08e5f0 Mon Sep 17 00:00:00 2001 From: bruceybian Date: Fri, 31 May 2024 16:18:29 +0800 Subject: [PATCH 2/3] update resource_tc_reserved_instance_test --- tencentcloud/services/cvm/resource_tc_reserved_instance_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go b/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go index e9aa77b810..9b7a187ca0 100644 --- a/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go +++ b/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go @@ -14,7 +14,7 @@ func TestAccTencentCloudReservedInstance(t *testing.T) { Providers: tcacctest.AccProviders, Steps: []resource.TestStep{ { - Config: testAccPlacementGroup, + Config: testAccReservedInstance, Check: resource.ComposeTestCheckFunc( testAccCheckPlacementGroupExists("tencentcloud_reserved_instance.reserved_instance"), resource.TestCheckResourceAttr("tencentcloud_reserved_instance.reserved_instance", "config_id", "469043dd-28b9-4d89-b557-74f6a8326259"), From 1802f9d235702c3b28b23cfa830107f01e0e6429 Mon Sep 17 00:00:00 2001 From: bruceybian Date: Fri, 31 May 2024 20:38:36 +0800 Subject: [PATCH 3/3] update resource_tc_reserved_instance_test --- .../services/cvm/resource_tc_reserved_instance_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go b/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go index 9b7a187ca0..24ca685c9a 100644 --- a/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go +++ b/tencentcloud/services/cvm/resource_tc_reserved_instance_test.go @@ -17,7 +17,7 @@ func TestAccTencentCloudReservedInstance(t *testing.T) { Config: testAccReservedInstance, Check: resource.ComposeTestCheckFunc( testAccCheckPlacementGroupExists("tencentcloud_reserved_instance.reserved_instance"), - resource.TestCheckResourceAttr("tencentcloud_reserved_instance.reserved_instance", "config_id", "469043dd-28b9-4d89-b557-74f6a8326259"), + resource.TestCheckResourceAttr("tencentcloud_reserved_instance.reserved_instance", "config_id", "ca8d39c3-4605-4e8d-9a21-05188cc9d1d4"), resource.TestCheckResourceAttr("tencentcloud_reserved_instance.reserved_instance", "instance_count", "2"), resource.TestCheckResourceAttr("tencentcloud_reserved_instance.reserved_instance", "reserved_instance_name", "test"), resource.TestCheckResourceAttrSet("tencentcloud_reserved_instance.reserved_instance", "start_time"), @@ -36,7 +36,7 @@ func TestAccTencentCloudReservedInstance(t *testing.T) { const testAccReservedInstance = ` resource "tencentcloud_reserved_instance" "reserved_instance" { - config_id = "469043dd-28b9-4d89-b557-74f6a8326259" + config_id = "ca8d39c3-4605-4e8d-9a21-05188cc9d1d4" instance_count = 2 reserved_instance_name = "test" }