Skip to content

Commit eba43ef

Browse files
authored
support dts: sync job operation (#1857)
* support dts: sync job operation * add e2e case * add sync job config code * passed the e2e case * adjust e2e case * adjust e2e case * update doc * adjust e2e case
1 parent 637eec4 commit eba43ef

27 files changed

+1515
-57
lines changed

.changelog/1857.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
```release-note:new-resource
2+
tencentcloud_dts_sync_job_start_operation
3+
```
4+
5+
```release-note:new-resource
6+
tencentcloud_dts_sync_job_stop_operation
7+
```
8+
9+
```release-note:new-resource
10+
tencentcloud_dts_sync_job_resize_operation
11+
```
12+
13+
```release-note:new-resource
14+
tencentcloud_dts_sync_job_recover_operation
15+
```
16+
17+
```release-note:new-resource
18+
tencentcloud_dts_sync_job_isolate_operation
19+
```
20+
21+
```release-note:new-resource
22+
tencentcloud_dts_sync_job_continue_operation
23+
```
24+
25+
```release-note:new-resource
26+
tencentcloud_dts_sync_job_pause_operation
27+
```

tencentcloud/provider.go

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1215,14 +1215,23 @@ Data Transmission Service(DTS)
12151215
12161216
Resource
12171217
tencentcloud_dts_sync_job
1218-
tencentcloud_dts_compare_task
1218+
tencentcloud_dts_sync_config
1219+
tencentcloud_dts_sync_check_job_operation
1220+
tencentcloud_dts_sync_job_resume_operation
1221+
tencentcloud_dts_sync_job_start_operation
1222+
tencentcloud_dts_sync_job_stop_operation
1223+
tencentcloud_dts_sync_job_resize_operation
1224+
tencentcloud_dts_sync_job_recover_operation
1225+
tencentcloud_dts_sync_job_isolate_operation
1226+
tencentcloud_dts_sync_job_continue_operation
1227+
tencentcloud_dts_sync_job_pause_operation
12191228
tencentcloud_dts_migrate_service
12201229
tencentcloud_dts_migrate_job
1230+
tencentcloud_dts_migrate_job_config
12211231
tencentcloud_dts_migrate_job_start_operation
12221232
tencentcloud_dts_migrate_job_resume_operation
12231233
tencentcloud_dts_compare_task_stop_operation
1224-
tencentcloud_dts_migrate_job_config
1225-
tencentcloud_dts_sync_config
1234+
tencentcloud_dts_compare_task
12261235
12271236
TDMQ for RocketMQ(trocket)
12281237
Data Source
@@ -2394,21 +2403,28 @@ func Provider() *schema.Provider {
23942403
"tencentcloud_rum_taw_instance": resourceTencentCloudRumTawInstance(),
23952404
"tencentcloud_rum_whitelist": resourceTencentCloudRumWhitelist(),
23962405
"tencentcloud_rum_offline_log_config_attachment": resourceTencentCloudRumOfflineLogConfigAttachment(),
2397-
"tencentcloud_dts_sync_job": resourceTencentCloudDtsSyncJob(),
2398-
"tencentcloud_dts_sync_config": resourceTencentCloudDtsSyncConfig(),
23992406
"tencentcloud_tdmq_rocketmq_cluster": resourceTencentCloudTdmqRocketmqCluster(),
24002407
"tencentcloud_tdmq_rocketmq_namespace": resourceTencentCloudTdmqRocketmqNamespace(),
24012408
"tencentcloud_tdmq_rocketmq_role": resourceTencentCloudTdmqRocketmqRole(),
24022409
"tencentcloud_tdmq_rocketmq_topic": resourceTencentCloudTdmqRocketmqTopic(),
24032410
"tencentcloud_tdmq_rocketmq_group": resourceTencentCloudTdmqRocketmqGroup(),
24042411
"tencentcloud_tdmq_rocketmq_environment_role": resourceTencentCloudTdmqRocketmqEnvironmentRole(),
2412+
"tencentcloud_dts_sync_job": resourceTencentCloudDtsSyncJob(),
2413+
"tencentcloud_dts_sync_config": resourceTencentCloudDtsSyncConfig(),
2414+
"tencentcloud_dts_sync_check_job_operation": resourceTencentCloudDtsSyncCheckJobOperation(),
2415+
"tencentcloud_dts_sync_job_resume_operation": resourceTencentCloudDtsSyncJobResumeOperation(),
2416+
"tencentcloud_dts_sync_job_start_operation": resourceTencentCloudDtsSyncJobStartOperation(),
2417+
"tencentcloud_dts_sync_job_stop_operation": resourceTencentCloudDtsSyncJobStopOperation(),
2418+
"tencentcloud_dts_sync_job_resize_operation": resourceTencentCloudDtsSyncJobResizeOperation(),
2419+
"tencentcloud_dts_sync_job_recover_operation": resourceTencentCloudDtsSyncJobRecoverOperation(),
2420+
"tencentcloud_dts_sync_job_isolate_operation": resourceTencentCloudDtsSyncJobIsolateOperation(),
2421+
"tencentcloud_dts_sync_job_continue_operation": resourceTencentCloudDtsSyncJobContinueOperation(),
2422+
"tencentcloud_dts_sync_job_pause_operation": resourceTencentCloudDtsSyncJobPauseOperation(),
24052423
"tencentcloud_dts_migrate_service": resourceTencentCloudDtsMigrateService(),
24062424
"tencentcloud_dts_migrate_job": resourceTencentCloudDtsMigrateJob(),
24072425
"tencentcloud_dts_migrate_job_config": resourceTencentCloudDtsMigrateJobConfig(),
24082426
"tencentcloud_dts_migrate_job_start_operation": resourceTencentCloudDtsMigrateJobStartOperation(),
24092427
"tencentcloud_dts_migrate_job_resume_operation": resourceTencentCloudDtsMigrateJobResumeOperation(),
2410-
"tencentcloud_dts_sync_check_job_operation": resourceTencentCloudDtsSyncCheckJobOperation(),
2411-
"tencentcloud_dts_sync_job_resume_operation": resourceTencentCloudDtsSyncJobResumeOperation(),
24122428
"tencentcloud_dts_compare_task_stop_operation": resourceTencentCloudDtsCompareTaskStopOperation(),
24132429
"tencentcloud_dts_compare_task": resourceTencentCloudDtsCompareTask(),
24142430
"tencentcloud_cvm_hpc_cluster": resourceTencentCloudCvmHpcCluster(),

tencentcloud/resource_tc_dts_sync_config.go

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ resource "tencentcloud_cynosdb_cluster" "foo" {
1212
db_version = "5.7"
1313
storage_limit = 1000
1414
cluster_name = "tf-cynosdb-mysql-sync-dst"
15-
password = "cynos@123"
15+
password = "*"
1616
instance_maintain_duration = 3600
1717
instance_maintain_start_time = 10800
1818
instance_maintain_weekdays = [
@@ -66,46 +66,46 @@ resource "tencentcloud_dts_sync_job" "sync_job" {
6666
}
6767
6868
resource "tencentcloud_dts_sync_config" "sync_config" {
69-
job_id = tencentcloud_dts_sync_job.sync_job.job_id
70-
src_access_type = "cdb"
71-
dst_access_type = "cdb"
72-
73-
job_name = "tf_test_sync_config"
74-
job_mode = "liteMode"
75-
run_mode = "Immediate"
76-
77-
objects {
78-
mode = "Partial"
79-
databases {
80-
db_name = "tf_ci_test"
69+
job_id = tencentcloud_dts_sync_job.sync_job.job_id
70+
src_access_type = "cdb"
71+
dst_access_type = "cdb"
72+
73+
job_name = "tf_test_sync_config"
74+
job_mode = "liteMode"
75+
run_mode = "Immediate"
76+
77+
objects {
78+
mode = "Partial"
79+
databases {
80+
db_name = "tf_ci_test"
8181
new_db_name = "tf_ci_test_new"
8282
db_mode = "Partial"
8383
table_mode = "All"
8484
tables {
8585
table_name = "test"
8686
new_table_name = "test_new"
8787
}
88-
}
89-
}
90-
src_info {
88+
}
89+
}
90+
src_info {
9191
region = "ap-guangzhou"
9292
instance_id = "cdb-fitq5t9h"
9393
user = "keep_dts"
94-
password = "Letmein123"
94+
password = "*"
9595
db_name = "tf_ci_test"
9696
vpc_id = local.vpc_id
9797
subnet_id = local.subnet_id
98-
}
99-
dst_info {
98+
}
99+
dst_info {
100100
region = "ap-guangzhou"
101101
instance_id = tencentcloud_cynosdb_cluster.foo.id
102102
user = "root"
103-
password = "cynos@123"
103+
password = "*"
104104
db_name = "tf_ci_test_new"
105105
vpc_id = local.vpc_id
106106
subnet_id = local.subnet_id
107-
}
108-
auto_retry_time_range_minutes = 0
107+
}
108+
auto_retry_time_range_minutes = 0
109109
}
110110
```
111111
@@ -122,6 +122,7 @@ package tencentcloud
122122
import (
123123
"context"
124124
"log"
125+
"time"
125126

126127
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
127128
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -1663,6 +1664,13 @@ func resourceTencentCloudDtsSyncConfigUpdate(d *schema.ResourceData, meta interf
16631664
return err
16641665
}
16651666

1667+
service := DtsService{client: meta.(*TencentCloudClient).apiV3Conn}
1668+
conf := BuildStateChangeConf([]string{}, []string{"Initialized"}, readRetryTimeout, time.Second, service.DtsSyncJobStateRefreshFunc(d.Id(), "", []string{}))
1669+
1670+
if _, e := conf.WaitForState(); e != nil {
1671+
return e
1672+
}
1673+
16661674
return resourceTencentCloudDtsSyncConfigRead(d, meta)
16671675
}
16681676

tencentcloud/resource_tc_dts_sync_config_test.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -125,46 +125,46 @@ resource "tencentcloud_dts_sync_job" "sync_job" {
125125
}
126126
127127
resource "tencentcloud_dts_sync_config" "sync_config" {
128-
job_id = tencentcloud_dts_sync_job.sync_job.job_id
129-
src_access_type = "cdb"
130-
dst_access_type = "cdb"
131-
132-
job_name = "tf_test_sync_config"
133-
job_mode = "liteMode"
134-
run_mode = "Immediate"
128+
job_id = tencentcloud_dts_sync_job.sync_job.job_id
129+
src_access_type = "cdb"
130+
dst_access_type = "cdb"
131+
132+
job_name = "tf_test_sync_config"
133+
job_mode = "liteMode"
134+
run_mode = "Immediate"
135135
136-
objects {
137-
mode = "Partial"
138-
databases {
139-
db_name = "tf_ci_test"
136+
objects {
137+
mode = "Partial"
138+
databases {
139+
db_name = "tf_ci_test"
140140
new_db_name = "tf_ci_test_new"
141141
db_mode = "Partial"
142142
table_mode = "All"
143143
tables {
144144
table_name = "test"
145145
new_table_name = "test_new"
146146
}
147-
}
148-
}
149-
src_info {
147+
}
148+
}
149+
src_info {
150150
region = "ap-guangzhou"
151151
instance_id = "cdb-fitq5t9h"
152152
user = "keep_dts"
153153
password = "Letmein123"
154154
db_name = "tf_ci_test"
155155
vpc_id = local.vpc_id
156156
subnet_id = local.subnet_id
157-
}
158-
dst_info {
157+
}
158+
dst_info {
159159
region = "ap-guangzhou"
160160
instance_id = tencentcloud_cynosdb_cluster.foo.id
161161
user = "root"
162162
password = "cynos@123"
163163
db_name = "tf_ci_test_new"
164164
vpc_id = local.vpc_id
165165
subnet_id = local.subnet_id
166-
}
167-
auto_retry_time_range_minutes = 0
166+
}
167+
auto_retry_time_range_minutes = 0
168168
}
169169
170170
`

tencentcloud/resource_tc_dts_sync_job.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ func resourceTencentCloudDtsSyncJobDelete(d *schema.ResourceData, meta interface
326326
return err
327327
}
328328

329-
conf := BuildStateChangeConf([]string{}, []string{"Isolated"}, 2*readRetryTimeout, time.Second, service.DtsSyncJobConfigIsolateStateRefreshFunc(d.Id(), []string{}))
329+
conf := BuildStateChangeConf([]string{}, []string{"Isolated", "Stopped"}, 2*readRetryTimeout, time.Second, service.DtsSyncJobConfigIsolateStateRefreshFunc(d.Id(), []string{}))
330330

331331
if _, e := conf.WaitForState(); e != nil {
332332
return e
@@ -336,7 +336,7 @@ func resourceTencentCloudDtsSyncJobDelete(d *schema.ResourceData, meta interface
336336
return err
337337
}
338338

339-
conf = BuildStateChangeConf([]string{}, []string{"Deleted"}, 2*readRetryTimeout, time.Second, service.DtsSyncJobConfigDeleteStateRefreshFunc(d.Id(), []string{}))
339+
conf = BuildStateChangeConf([]string{}, []string{"Offlined"}, 2*readRetryTimeout, time.Second, service.DtsSyncJobConfigDeleteStateRefreshFunc(d.Id(), []string{}))
340340

341341
if _, e := conf.WaitForState(); e != nil {
342342
return e

0 commit comments

Comments
 (0)