diff --git a/tencentcloud/basic_test.go b/tencentcloud/basic_test.go index 7501079111..ce1f4d068e 100644 --- a/tencentcloud/basic_test.go +++ b/tencentcloud/basic_test.go @@ -66,7 +66,7 @@ const ( defaultTkeOSImageId = "img-2lr9q49h" defaultTkeOSImageName = "tlinux2.2(tkernel3)x86_64" - defaultEMRSgId = "sg-qyy7jd2b" + defaultEMRSgId = "sg-mag8k2fj" ) // Tke Exclusive Network Environment diff --git a/tencentcloud/data_source_tc_emr_nodes_test.go b/tencentcloud/data_source_tc_emr_nodes_test.go index 47c558e320..e3d8240619 100644 --- a/tencentcloud/data_source_tc_emr_nodes_test.go +++ b/tencentcloud/data_source_tc_emr_nodes_test.go @@ -13,7 +13,7 @@ func TestAccDataSourceTencentCloudEMRNodes(t *testing.T) { Providers: testAccProviders, Steps: []resource.TestStep{ { - Config: testAccEMRNodes, + Config: testAccEMRNodes(), Check: resource.ComposeTestCheckFunc( testAccCheckTencentCloudDataSourceID("data.tencentcloud_emr_nodes.my_emr_nodes"), resource.TestCheckResourceAttr("data.tencentcloud_emr_nodes.my_emr_nodes", "nodes.#", "1"), @@ -23,52 +23,11 @@ func TestAccDataSourceTencentCloudEMRNodes(t *testing.T) { }) } -const testAccEMRNodes = ` - -resource "tencentcloud_emr_cluster" "emrrrr" { - product_id=4 - display_strategy="clusterList" - vpc_settings={ - vpc_id="vpc-4owdpnwr" - subnet_id:"subnet-ahv6swf2" - } - softwares=["zookeeper-3.6.1"] - support_ha=0 - instance_name="emr-test" - resource_spec { - master_resource_spec { - mem_size=8192 - cpu=4 - disk_size=100 - disk_type="CLOUD_PREMIUM" - spec="CVM.S2" - storage_type=5 - } - core_resource_spec { - mem_size=8192 - cpu=4 - disk_size=100 - disk_type="CLOUD_PREMIUM" - spec="CVM.S2" - storage_type=5 - } - master_count=1 - core_count=2 - } - login_settings={ - password="tencent@cloud123" - } - time_span=3600 - time_unit="s" - pay_mode=0 - placement={ - zone="ap-guangzhou-3" - project_id=0 - } - sg_id="sg-qyy7jd2b" -} +func testAccEMRNodes() string { + return testEmrBasic() + ` data "tencentcloud_emr_nodes" "my_emr_nodes" { node_flag="master" instance_id=tencentcloud_emr_cluster.emrrrr.instance_id } ` +} diff --git a/tencentcloud/resource_tc_emr_cluster.go b/tencentcloud/resource_tc_emr_cluster.go index 2f8eb67375..c8c4a04c1a 100644 --- a/tencentcloud/resource_tc_emr_cluster.go +++ b/tencentcloud/resource_tc_emr_cluster.go @@ -321,11 +321,19 @@ func resourceTencentCloudEmrClusterDelete(d *schema.ResourceData, meta interface emrService := EMRService{ client: meta.(*TencentCloudClient).apiV3Conn, } - if err := emrService.DeleteInstance(ctx, d); err != nil { + instanceId := d.Id() + clusters, err := emrService.DescribeInstancesById(ctx, instanceId, DisplayStrategyIsclusterList) + if len(clusters) == 0 { + return innerErr.New("Not find clusters.") + } + metaDB := clusters[0].MetaDb + if err != nil { return err } - instanceId := d.Id() - err := resource.Retry(10*readRetryTimeout, func() *resource.RetryError { + if err = emrService.DeleteInstance(ctx, d); err != nil { + return err + } + err = resource.Retry(10*readRetryTimeout, func() *resource.RetryError { clusters, err := emrService.DescribeInstancesById(ctx, instanceId, DisplayStrategyIsclusterList) if e, ok := err.(*errors.TencentCloudSDKError); ok { @@ -353,6 +361,23 @@ func resourceTencentCloudEmrClusterDelete(d *schema.ResourceData, meta interface if err != nil { return err } + + if metaDB != nil && *metaDB != "" { + // remove metadb + mysqlService := MysqlService{client: meta.(*TencentCloudClient).apiV3Conn} + + err = resource.Retry(writeRetryTimeout, func() *resource.RetryError { + err := mysqlService.OfflineIsolatedInstances(ctx, *metaDB) + if err != nil { + return retryError(err, InternalError) + } + return nil + }) + + if err != nil { + return err + } + } return nil } diff --git a/tencentcloud/resource_tc_eni_test.go b/tencentcloud/resource_tc_eni_test.go index 7ad11ad3c9..3f3a1f04f4 100644 --- a/tencentcloud/resource_tc_eni_test.go +++ b/tencentcloud/resource_tc_eni_test.go @@ -34,7 +34,7 @@ func testSweepEniInstance(region string) error { client: client.apiV3Conn, } - instances, err := vpcService.DescribeEniByFilters(ctx, nil, nil, nil, nil, nil, nil,nil,nil) + instances, err := vpcService.DescribeEniByFilters(ctx, nil, nil, nil, nil, nil, nil, nil, nil) if err != nil { return fmt.Errorf("get instance list error: %s", err.Error()) }