Skip to content

Commit 385d868

Browse files
authored
fix(dts): [122437920] Fix the issue where resources cannot be deleted correctly (#3230)
* add * add
1 parent f206f94 commit 385d868

15 files changed

+813
-570
lines changed

.changelog/3230.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_dts_migrate_service: Optimize deletion logic
3+
```
4+
5+
```release-note:enhancement
6+
resource/tencentcloud_dts_sync_job: Optimize deletion logic
7+
```
8+
9+
```release-note:enhancement
10+
resource/tencentcloud_dts_sync_job: Optimize update logic
11+
```
Lines changed: 105 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,125 @@
1-
Provides a resource to create a dts migrate_job
1+
Provides a resource to create a DTS migrate job
22

33
Example Usage
44

55
```hcl
6-
resource "tencentcloud_cynosdb_cluster" "foo" {
7-
available_zone = var.availability_zone
8-
vpc_id = local.vpc_id
9-
subnet_id = local.subnet_id
10-
db_type = "MYSQL"
11-
db_version = "5.7"
12-
storage_limit = 1000
13-
cluster_name = "tf-cynosdb-mysql"
14-
password = "cynos@123"
15-
instance_maintain_duration = 3600
16-
instance_maintain_start_time = 10800
17-
instance_maintain_weekdays = [
18-
"Fri",
19-
"Mon",
20-
"Sat",
21-
"Sun",
22-
"Thu",
23-
"Wed",
24-
"Tue",
25-
]
6+
resource "tencentcloud_mysql_instance" "example" {
7+
instance_name = "tf-example"
8+
internet_service = 1
9+
engine_version = "5.7"
10+
charge_type = "POSTPAID"
11+
root_password = "PassWord@123"
12+
slave_deploy_mode = 0
13+
slave_sync_mode = 1
14+
availability_zone = "ap-guangzhou-7"
15+
mem_size = 128000
16+
volume_size = 250
17+
vpc_id = "vpc-i5yyodl9"
18+
subnet_id = "subnet-hhi88a58"
19+
intranet_port = 3306
20+
security_groups = ["sg-e6a8xxib"]
21+
parameters = {
22+
character_set_server = "utf8"
23+
max_connections = "1000"
24+
}
25+
tags = {
26+
createBy = "Terraform"
27+
}
28+
}
2629
27-
instance_cpu_core = 1
28-
instance_memory_size = 2
29-
param_items {
30-
name = "character_set_server"
31-
current_value = "utf8"
32-
}
33-
param_items {
34-
name = "time_zone"
35-
current_value = "+09:00"
36-
}
37-
param_items {
38-
name = "lower_case_table_names"
39-
current_value = "1"
40-
}
30+
resource "tencentcloud_cynosdb_cluster" "example" {
31+
cluster_name = "tf-example"
32+
db_mode = "NORMAL"
33+
db_type = "MYSQL"
34+
db_version = "5.7"
35+
port = 3306
36+
password = "Password@123"
37+
force_delete = true
38+
available_zone = "ap-guangzhou-6"
39+
slave_zone = "ap-guangzhou-7"
40+
vpc_id = "vpc-i5yyodl9"
41+
subnet_id = "subnet-hhi88a58"
42+
instance_cpu_core = 2
43+
instance_memory_size = 4
44+
instance_maintain_duration = 7200
45+
instance_maintain_start_time = 3600
46+
instance_maintain_weekdays = [
47+
"Fri",
48+
"Mon",
49+
"Sat",
50+
"Sun",
51+
"Thu",
52+
"Wed",
53+
"Tue",
54+
]
4155
42-
force_delete = true
56+
rw_group_sg = ["sg-e6a8xxib"]
57+
ro_group_sg = ["sg-e6a8xxib"]
58+
}
4359
44-
rw_group_sg = [
45-
local.sg_id
46-
]
47-
ro_group_sg = [
48-
local.sg_id
49-
]
50-
prarm_template_id = var.my_param_template
60+
resource "tencentcloud_dts_migrate_service" "example" {
61+
src_database_type = "mysql"
62+
dst_database_type = "cynosdbmysql"
63+
src_region = "ap-guangzhou"
64+
dst_region = "ap-guangzhou"
65+
instance_class = "small"
66+
job_name = "tf-example"
67+
tags {
68+
tag_key = "createBy"
69+
tag_value = "Terraform"
5170
}
71+
}
5272
53-
resource "tencentcloud_dts_migrate_service" "service" {
54-
src_database_type = "mysql"
55-
dst_database_type = "cynosdbmysql"
56-
src_region = "ap-guangzhou"
57-
dst_region = "ap-guangzhou"
58-
instance_class = "small"
59-
job_name = "tf_test_migration_service_1"
60-
tags {
61-
tag_key = "aaa"
62-
tag_value = "bbb"
63-
}
73+
resource "tencentcloud_dts_migrate_job" "example" {
74+
service_id = tencentcloud_dts_migrate_service.example.id
75+
run_mode = "immediate"
76+
auto_retry_time_range_minutes = 0
77+
migrate_option {
78+
database_table {
79+
object_mode = "partial"
80+
databases {
81+
db_name = "db_name"
82+
db_mode = "partial"
83+
table_mode = "partial"
84+
tables {
85+
table_name = "table_name"
86+
new_table_name = "new_table_name"
87+
table_edit_mode = "rename"
88+
}
89+
}
90+
}
6491
}
6592
66-
resource "tencentcloud_dts_migrate_job" "job" {
67-
service_id = tencentcloud_dts_migrate_service.service.id
68-
run_mode = "immediate"
69-
migrate_option {
70-
database_table {
71-
object_mode = "partial"
72-
databases {
73-
db_name = "tf_ci_test"
74-
db_mode = "partial"
75-
table_mode = "partial"
76-
tables {
77-
table_name = "test"
78-
new_table_name = "test_%s"
79-
table_edit_mode = "rename"
80-
}
81-
}
82-
}
83-
}
84-
src_info {
85-
region = "ap-guangzhou"
86-
access_type = "cdb"
87-
database_type = "mysql"
88-
node_type = "simple"
89-
info {
90-
user = "user_name"
91-
password = "your_pw"
92-
instance_id = "cdb-fitq5t9h"
93-
}
94-
95-
}
96-
dst_info {
97-
region = "ap-guangzhou"
98-
access_type = "cdb"
99-
database_type = "cynosdbmysql"
100-
node_type = "simple"
101-
info {
102-
user = "user_name"
103-
password = "your_pw"
104-
instance_id = tencentcloud_cynosdb_cluster.foo.id
105-
}
106-
}
107-
auto_retry_time_range_minutes = 0
108-
}
93+
src_info {
94+
region = "ap-guangzhou"
95+
access_type = "cdb"
96+
database_type = "mysql"
97+
node_type = "simple"
98+
info {
99+
user = "root"
100+
password = "Password@123"
101+
instance_id = tencentcloud_mysql_instance.example.id
102+
}
103+
}
109104
110-
resource "tencentcloud_dts_migrate_job_start_operation" "start"{
111-
job_id = tencentcloud_dts_migrate_job.job.id
105+
dst_info {
106+
region = "ap-guangzhou"
107+
access_type = "cdb"
108+
database_type = "cynosdbmysql"
109+
node_type = "simple"
110+
info {
111+
user = "root"
112+
password = "Password@123"
113+
instance_id = tencentcloud_cynosdb_cluster.example.id
114+
}
115+
}
112116
}
113117
```
114118

115119
Import
116120

117-
dts migrate_job can be imported using the id, e.g.
121+
DTS migrate job can be imported using the id, e.g.
118122

119123
```
120-
terraform import tencentcloud_dts_migrate_job.migrate_job migrate_config_id
124+
terraform import tencentcloud_dts_migrate_job.example dts-iy98oxba
121125
```
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
Provides a resource to create a dts migrate_job_resume_operation
1+
Provides a resource to create a DTS migrate job resume operation
22

33
Example Usage
44

55
```hcl
6-
resource "tencentcloud_dts_migrate_job_resume_operation" "resume" {
7-
job_id = "job_id"
8-
resume_option = "normal"
6+
resource "tencentcloud_dts_migrate_job_resume_operation" "example" {
7+
job_id = "dts-puwyj5uy"
8+
resume_option = "normal"
99
}
1010
```
Lines changed: 115 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,121 @@
1-
Provides a resource to start a dts migrate_job
1+
Provides a resource to start a DTS migrate job
22

33
Example Usage
44

55
```hcl
6-
resource "tencentcloud_dts_migrate_job_start_operation" "start"{
7-
job_id = tencentcloud_dts_migrate_job.job.id
6+
resource "tencentcloud_mysql_instance" "example" {
7+
instance_name = "tf-example"
8+
internet_service = 1
9+
engine_version = "5.7"
10+
charge_type = "POSTPAID"
11+
root_password = "PassWord@123"
12+
slave_deploy_mode = 0
13+
slave_sync_mode = 1
14+
availability_zone = "ap-guangzhou-7"
15+
mem_size = 128000
16+
volume_size = 250
17+
vpc_id = "vpc-i5yyodl9"
18+
subnet_id = "subnet-hhi88a58"
19+
intranet_port = 3306
20+
security_groups = ["sg-e6a8xxib"]
21+
parameters = {
22+
character_set_server = "utf8"
23+
max_connections = "1000"
24+
}
25+
tags = {
26+
createBy = "Terraform"
27+
}
28+
}
29+
30+
resource "tencentcloud_cynosdb_cluster" "example" {
31+
cluster_name = "tf-example"
32+
db_mode = "NORMAL"
33+
db_type = "MYSQL"
34+
db_version = "5.7"
35+
port = 3306
36+
password = "Password@123"
37+
force_delete = true
38+
available_zone = "ap-guangzhou-6"
39+
slave_zone = "ap-guangzhou-7"
40+
vpc_id = "vpc-i5yyodl9"
41+
subnet_id = "subnet-hhi88a58"
42+
instance_cpu_core = 2
43+
instance_memory_size = 4
44+
instance_maintain_duration = 7200
45+
instance_maintain_start_time = 3600
46+
instance_maintain_weekdays = [
47+
"Fri",
48+
"Mon",
49+
"Sat",
50+
"Sun",
51+
"Thu",
52+
"Wed",
53+
"Tue",
54+
]
55+
56+
rw_group_sg = ["sg-e6a8xxib"]
57+
ro_group_sg = ["sg-e6a8xxib"]
58+
}
59+
60+
resource "tencentcloud_dts_migrate_service" "example" {
61+
src_database_type = "mysql"
62+
dst_database_type = "cynosdbmysql"
63+
src_region = "ap-guangzhou"
64+
dst_region = "ap-guangzhou"
65+
instance_class = "small"
66+
job_name = "tf-example"
67+
tags {
68+
tag_key = "createBy"
69+
tag_value = "Terraform"
70+
}
71+
}
72+
73+
resource "tencentcloud_dts_migrate_job" "example" {
74+
service_id = tencentcloud_dts_migrate_service.example.id
75+
run_mode = "immediate"
76+
auto_retry_time_range_minutes = 0
77+
migrate_option {
78+
database_table {
79+
object_mode = "partial"
80+
databases {
81+
db_name = "db_name"
82+
db_mode = "partial"
83+
table_mode = "partial"
84+
tables {
85+
table_name = "table_name"
86+
new_table_name = "new_table_name"
87+
table_edit_mode = "rename"
88+
}
89+
}
90+
}
91+
}
92+
93+
src_info {
94+
region = "ap-guangzhou"
95+
access_type = "cdb"
96+
database_type = "mysql"
97+
node_type = "simple"
98+
info {
99+
user = "root"
100+
password = "Password@123"
101+
instance_id = tencentcloud_mysql_instance.example.id
102+
}
103+
}
104+
105+
dst_info {
106+
region = "ap-guangzhou"
107+
access_type = "cdb"
108+
database_type = "cynosdbmysql"
109+
node_type = "simple"
110+
info {
111+
user = "root"
112+
password = "Password@123"
113+
instance_id = tencentcloud_cynosdb_cluster.example.id
114+
}
115+
}
116+
}
117+
118+
resource "tencentcloud_dts_migrate_job_start_operation" "example" {
119+
job_id = tencentcloud_dts_migrate_job.example.id
8120
}
9121
```

tencentcloud/services/dts/resource_tc_dts_migrate_service.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ func resourceTencentCloudDtsMigrateServiceCreate(d *schema.ResourceData, meta in
157157

158158
jobId = *response.Response.JobIds[0]
159159
// wait created
160-
if err = service.PollingMigrateJobStatusUntil(ctx, jobId, DTSJobStatus, []string{"created"}); err != nil {
160+
_, err = service.PollingMigrateJobStatusUntil(ctx, jobId, DTSJobStatus, []string{"created"})
161+
if err != nil {
161162
return err
162163
}
163164

0 commit comments

Comments
 (0)