From 4264f8dbc013ae8c287ad1ac1888cfadba045976 Mon Sep 17 00:00:00 2001 From: gmhdbjd Date: Mon, 7 Dec 2020 18:10:02 +0800 Subject: [PATCH] add test for get-config --- chaos/cases/task.go | 6 + dm/config/task.go | 1 + dm/master/server.go | 2 +- dm/master/server_test.go | 51 ++++++- dm/worker/relay.go | 3 +- tests/dmctl_basic/check_list/get_config.sh | 117 +++++++++++++++ .../dmctl_basic/check_list/get_task_config.sh | 46 ------ tests/dmctl_basic/conf/dm-master.toml | 1 + tests/dmctl_basic/conf/get_master1.toml | 21 +++ tests/dmctl_basic/conf/get_source1.yaml | 32 +++++ tests/dmctl_basic/conf/get_source2.yaml | 32 +++++ tests/dmctl_basic/conf/get_task.yaml | 135 ++++++++++++++++++ tests/dmctl_basic/conf/get_worker1.toml | 13 ++ tests/dmctl_basic/conf/get_worker2.toml | 13 ++ tests/dmctl_basic/conf/source1.yaml | 2 +- tests/dmctl_basic/conf/source2.yaml | 2 +- tests/dmctl_basic/run.sh | 7 +- tests/ha_master/run.sh | 8 ++ tests/http_apis/run.sh | 4 - tests/import_v10x/run.sh | 2 +- 20 files changed, 438 insertions(+), 60 deletions(-) create mode 100644 tests/dmctl_basic/check_list/get_config.sh delete mode 100644 tests/dmctl_basic/check_list/get_task_config.sh create mode 100644 tests/dmctl_basic/conf/get_master1.toml create mode 100644 tests/dmctl_basic/conf/get_source1.yaml create mode 100644 tests/dmctl_basic/conf/get_source2.yaml create mode 100644 tests/dmctl_basic/conf/get_task.yaml create mode 100644 tests/dmctl_basic/conf/get_worker1.toml create mode 100644 tests/dmctl_basic/conf/get_worker2.toml diff --git a/chaos/cases/task.go b/chaos/cases/task.go index 519815b68e..497685b888 100644 --- a/chaos/cases/task.go +++ b/chaos/cases/task.go @@ -23,6 +23,7 @@ import ( "github.com/chaos-mesh/go-sqlsmith" "github.com/pingcap/errors" + "github.com/pingcap/parser/mysql" "go.uber.org/zap" "golang.org/x/sync/errgroup" @@ -30,6 +31,7 @@ import ( "github.com/pingcap/dm/dm/pb" "github.com/pingcap/dm/pkg/conn" "github.com/pingcap/dm/pkg/log" + "github.com/pingcap/dm/pkg/utils" ) const ( @@ -363,6 +365,10 @@ func (t *task) genIncrData(ctx context.Context) (err error) { }) } if err = eg.Wait(); err != nil { + if utils.IsMySQLError(err, mysql.ErrDupFieldName) { + t.logger.Warn("ignore duplicate field name for ddl", log.ShortError(err)) + continue + } return err } } diff --git a/dm/config/task.go b/dm/config/task.go index c6e4af9080..e4c1c5131d 100644 --- a/dm/config/task.go +++ b/dm/config/task.go @@ -616,6 +616,7 @@ func (c *TaskConfig) SubTaskConfigs(sources map[string]DBConfig) ([]*SubTaskConf } func getGenerateName(rule interface{}, nameIdx int, namePrefix string, nameMap map[string]string) (string, int) { + // use json as key since no DeepEqual for rules now. ruleByte, err := json.Marshal(rule) if err != nil { log.L().Error(fmt.Sprintf("marshal %s rule to json", namePrefix), log.ShortError(err)) diff --git a/dm/master/server.go b/dm/master/server.go index 94aa9d201c..36ad143fc7 100644 --- a/dm/master/server.go +++ b/dm/master/server.go @@ -1890,7 +1890,7 @@ func (s *Server) GetCfg(ctx context.Context, req *pb.GetCfgRequest) (*pb.GetCfgR resp2.Msg = "source not found" return resp2, nil } - sourceCfg.From.Password = "*******" + sourceCfg.From.Password = "******" cfg, err2 = sourceCfg.Yaml() if err2 != nil { resp2.Msg = err2.Error() diff --git a/dm/master/server_test.go b/dm/master/server_test.go index 94717f7913..dbbf285697 100644 --- a/dm/master/server_test.go +++ b/dm/master/server_test.go @@ -1567,6 +1567,7 @@ func (t *testMaster) TestGetCfg(c *check.C) { } server.scheduler, _ = testMockScheduler(ctx, &wg, c, sources, workers, "", makeWorkerClientsForHandle(ctrl, taskName, sources, workers, req)) + server.etcdClient = etcdTestCli // start task mock := t.initVersionDB(c) @@ -1582,6 +1583,7 @@ func (t *testMaster) TestGetCfg(c *check.C) { // get task config req1 := &pb.GetCfgRequest{ Name: taskName, + Type: pb.CfgType_TaskType, } resp1, err := server.GetCfg(context.Background(), req1) c.Assert(err, check.IsNil) @@ -1591,12 +1593,14 @@ func (t *testMaster) TestGetCfg(c *check.C) { // wrong task name req2 := &pb.GetCfgRequest{ Name: "haha", + Type: pb.CfgType_TaskType, } resp2, err := server.GetCfg(context.Background(), req2) c.Assert(err, check.IsNil) c.Assert(resp2.Result, check.IsFalse) + c.Assert(resp2.Msg, check.Equals, "task not found") - // test recover from etcd + // test restart master server.scheduler.Close() c.Assert(server.scheduler.Start(ctx, etcdTestCli), check.IsNil) @@ -1605,6 +1609,51 @@ func (t *testMaster) TestGetCfg(c *check.C) { c.Assert(resp3.Result, check.IsTrue) c.Assert(resp3.Cfg, check.Equals, resp1.Cfg) + req3 := &pb.GetCfgRequest{ + Name: "dm-master", + Type: pb.CfgType_MasterType, + } + resp4, err := server.GetCfg(context.Background(), req3) + c.Assert(err, check.IsNil) + c.Assert(resp4.Result, check.IsTrue) + c.Assert(strings.Contains(resp4.Cfg, "name = \"dm-master\""), check.IsTrue) + + req4 := &pb.GetCfgRequest{ + Name: "haha", + Type: pb.CfgType_MasterType, + } + resp5, err := server.GetCfg(context.Background(), req4) + c.Assert(err, check.IsNil) + c.Assert(resp5.Result, check.IsFalse) + c.Assert(resp5.Msg, check.Equals, "master not found") + + req5 := &pb.GetCfgRequest{ + Name: "haha", + Type: pb.CfgType_WorkerType, + } + resp6, err := server.GetCfg(context.Background(), req5) + c.Assert(err, check.IsNil) + c.Assert(resp6.Result, check.IsFalse) + c.Assert(resp6.Msg, check.Equals, "worker not found") + + req6 := &pb.GetCfgRequest{ + Name: "mysql-replica-01", + Type: pb.CfgType_SourceType, + } + resp7, err := server.GetCfg(context.Background(), req6) + c.Assert(err, check.IsNil) + c.Assert(resp7.Result, check.IsTrue) + c.Assert(strings.Contains(resp7.Cfg, "source-id: mysql-replica-01"), check.IsTrue, check.Commentf(resp7.Cfg)) + + req7 := &pb.GetCfgRequest{ + Name: "haha", + Type: pb.CfgType_SourceType, + } + resp8, err := server.GetCfg(context.Background(), req7) + c.Assert(err, check.IsNil) + c.Assert(resp8.Result, check.IsFalse) + c.Assert(resp8.Msg, check.Equals, "source not found") + clearSchedulerEnv(c, cancel, &wg) } diff --git a/dm/worker/relay.go b/dm/worker/relay.go index 6cd3ed25e1..6dcbe0d859 100644 --- a/dm/worker/relay.go +++ b/dm/worker/relay.go @@ -227,11 +227,12 @@ func (h *realRelayHolder) resumeRelay(ctx context.Context, op pb.RelayOp) error func (h *realRelayHolder) stopRelay(ctx context.Context, op pb.RelayOp) error { h.Lock() - defer h.Unlock() if h.stage == pb.Stage_Stopped { + h.Unlock() return terror.ErrWorkerRelayStageNotValid.Generatef("current stage is already stopped not valid, relayop %s", op) } h.stage = pb.Stage_Stopped + h.Unlock() // unlock to make `run` can return // now, when try to stop relay unit, we close relay holder h.Close() diff --git a/tests/dmctl_basic/check_list/get_config.sh b/tests/dmctl_basic/check_list/get_config.sh new file mode 100644 index 0000000000..decdf72376 --- /dev/null +++ b/tests/dmctl_basic/check_list/get_config.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +function get_config_wrong_arg() { + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config" \ + "get-config \[--file filename\] \[flags\]" 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config hihi haha" \ + "invalid config type 'hihi'" 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config task haha" \ + "task not found" 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config master haha" \ + "master not found" 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config worker haha" \ + "worker not found" 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config source haha" \ + "source not found" 1 +} + +function diff_get_config() { + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config task test --file $WORK_DIR/get_task.yaml" \ + "\"result\": true" 1 + diff $WORK_DIR/get_task.yaml $cur/conf/get_task.yaml || exit 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config master master1 --file $dm_master_conf" \ + "\"result\": true" 1 + diff $dm_master_conf $cur/conf/get_master1.toml || exit 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config worker worker1 --file $dm_worker1_conf" \ + "\"result\": true" 1 + diff $dm_worker1_conf $cur/conf/get_worker1.toml || exit 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config worker worker2 --file $dm_worker2_conf" \ + "\"result\": true" 1 + diff $dm_worker2_conf $cur/conf/get_worker2.toml || exit 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config source mysql-replica-01 --file $WORK_DIR/get_source1.yaml" \ + "\"result\": true" 1 + diff $WORK_DIR/get_source1.yaml $cur/conf/get_source1.yaml || exit 1 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config source mysql-replica-02 --file $WORK_DIR/get_source2.yaml" \ + "\"result\": true" 1 + diff $WORK_DIR/get_source2.yaml $cur/conf/get_source2.yaml || exit 1 +} + +function get_config_to_file() { + diff_get_config + + sed -i "s/password: '\*\*\*\*\*\*'/password: ''/g" $WORK_DIR/get_task.yaml + sed -i "s/password: '\*\*\*\*\*\*'/password: '123456'/g" $WORK_DIR/get_source1.yaml + sed -i "s/password: '\*\*\*\*\*\*'/password: '123456'/g" $WORK_DIR/get_source2.yaml + + # stop task + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "stop-task test" \ + "\"result\": true" 3 + + # restart source with get config + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "operate-source stop mysql-replica-01" \ + "\"result\": true" 2 + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "operate-source create $WORK_DIR/get_source1.yaml" \ + "\"result\": true" 2 + + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "operate-source stop mysql-replica-02" \ + "\"result\": true" 2 + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "operate-source create $WORK_DIR/get_source2.yaml" \ + "\"result\": true" 2 + + # start task with get config + run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "start-task $WORK_DIR/get_task.yaml" \ + "\"result\": true" 3 + + # restart master with get config + ps aux | grep dm-master |awk '{print $2}'|xargs kill || true + check_port_offline $MASTER_PORT1 20 + run_dm_master $WORK_DIR/master $MASTER_PORT $dm_master_conf + check_rpc_alive $cur/../bin/check_master_online 127.0.0.1:$MASTER_PORT + + # restart worker with get config + ps aux | grep worker1 |awk '{print $2}'|xargs kill || true + check_port_offline $WORKER1_PORT 20 + ps aux | grep worker2 |awk '{print $2}'|xargs kill || true + check_port_offline $WORKER2_PORT 20 + run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "list-member --worker" \ + "offline" 2 + + run_dm_worker $WORK_DIR/worker1 $WORKER1_PORT $dm_worker1_conf + check_rpc_alive $cur/../bin/check_worker_online 127.0.0.1:$WORKER1_PORT + run_dm_worker $WORK_DIR/worker2 $WORKER2_PORT $dm_worker2_conf + check_rpc_alive $cur/../bin/check_worker_online 127.0.0.1:$WORKER2_PORT + run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "list-member --worker" \ + "bound" 2 + + diff_get_config +} diff --git a/tests/dmctl_basic/check_list/get_task_config.sh b/tests/dmctl_basic/check_list/get_task_config.sh deleted file mode 100644 index 8849d87558..0000000000 --- a/tests/dmctl_basic/check_list/get_task_config.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -function get_task_config_wrong_name() { - run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ - "get-task-config haha" \ - "task not found" 1 -} - -function get_task_config_to_file() { - run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ - "get-task-config test --file $WORK_DIR/test.yaml" \ - "\"result\": true" 1 - - sed -i "s/password: '\*\*\*\*\*\*'/password: ''/g" $WORK_DIR/test.yaml - - run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ - "stop-task test" \ - "\"result\": true" 3 - - run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ - "get-task-config test --file $WORK_DIR/test.yaml" \ - "task not found" 1 - - # start task with file - run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ - "start-task $WORK_DIR/test.yaml" \ - "\"result\": true" 3 -} - -function get_task_config_restart_master() { - run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ - "get-task-config test --file $WORK_DIR/test1.yaml" \ - "\"result\": true" 1 - - ps aux | grep dm-master |awk '{print $2}'|xargs kill || true - check_port_offline $MASTER_PORT1 20 - - run_dm_master $WORK_DIR/master $MASTER_PORT $dm_master_conf - check_rpc_alive $cur/../bin/check_master_online 127.0.0.1:$MASTER_PORT - - run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ - "get-task-config test --file $WORK_DIR/test2.yaml" \ - "\"result\": true" 1 - - diff $WORK_DIR/test1.yaml $WORK_DIR/test2.yaml || exit 1 -} diff --git a/tests/dmctl_basic/conf/dm-master.toml b/tests/dmctl_basic/conf/dm-master.toml index 14ac020290..bcef66e4b9 100644 --- a/tests/dmctl_basic/conf/dm-master.toml +++ b/tests/dmctl_basic/conf/dm-master.toml @@ -1,4 +1,5 @@ # Master Configuration. +name = "master1" master-addr = ":8261" advertise-addr = "127.0.0.1:8261" diff --git a/tests/dmctl_basic/conf/get_master1.toml b/tests/dmctl_basic/conf/get_master1.toml new file mode 100644 index 0000000000..bc1589d944 --- /dev/null +++ b/tests/dmctl_basic/conf/get_master1.toml @@ -0,0 +1,21 @@ +log-level = "debug" +log-file = "/tmp/dm_test/dmctl_basic/master/log/dm-master.log" +log-format = "text" +log-rotate = "" +rpc-timeout = "30s" +rpc-rate-limit = 10.0 +rpc-rate-burst = 40 +master-addr = ":8261" +advertise-addr = "127.0.0.1:8261" +config-file = "/tmp/dm_test/dmctl_basic/master/dm-master.toml" +name = "master1" +data-dir = "default.master1" +peer-urls = "http://127.0.0.1:8291" +advertise-peer-urls = "http://127.0.0.1:8291" +initial-cluster = "master1=http://127.0.0.1:8291" +initial-cluster-state = "new" +join = "" +v1-sources-path = "" +ssl-ca = "" +ssl-cert = "" +ssl-key = "" diff --git a/tests/dmctl_basic/conf/get_source1.yaml b/tests/dmctl_basic/conf/get_source1.yaml new file mode 100644 index 0000000000..e059f6098c --- /dev/null +++ b/tests/dmctl_basic/conf/get_source1.yaml @@ -0,0 +1,32 @@ +enable-gtid: false +auto-fix-gtid: false +relay-dir: /tmp/dm_test/dmctl_basic/worker1/relay_log +meta-dir: "" +flavor: mysql +charset: "" +enable-relay: true +relay-binlog-name: "" +relay-binlog-gtid: "" +source-id: mysql-replica-01 +from: + host: 127.0.0.1 + port: 3306 + user: root + password: '******' + max-allowed-packet: null + session: {} + security: null +purge: + interval: 3600 + expires: 0 + remain-space: 15 +checker: + check-enable: true + backoff-rollback: 5m0s + backoff-max: 5m0s + check-interval: 5s + backoff-min: 1s + backoff-jitter: true + backoff-factor: 2 +server-id: 123456 +tracer: {} diff --git a/tests/dmctl_basic/conf/get_source2.yaml b/tests/dmctl_basic/conf/get_source2.yaml new file mode 100644 index 0000000000..b58ef52df0 --- /dev/null +++ b/tests/dmctl_basic/conf/get_source2.yaml @@ -0,0 +1,32 @@ +enable-gtid: false +auto-fix-gtid: false +relay-dir: /tmp/dm_test/dmctl_basic/worker2/relay_log +meta-dir: "" +flavor: mysql +charset: "" +enable-relay: true +relay-binlog-name: "" +relay-binlog-gtid: "" +source-id: mysql-replica-02 +from: + host: 127.0.0.1 + port: 3307 + user: root + password: '******' + max-allowed-packet: null + session: {} + security: null +purge: + interval: 3600 + expires: 0 + remain-space: 15 +checker: + check-enable: true + backoff-rollback: 5m0s + backoff-max: 5m0s + check-interval: 5s + backoff-min: 1s + backoff-jitter: true + backoff-factor: 2 +server-id: 654321 +tracer: {} diff --git a/tests/dmctl_basic/conf/get_task.yaml b/tests/dmctl_basic/conf/get_task.yaml new file mode 100644 index 0000000000..7095f083d4 --- /dev/null +++ b/tests/dmctl_basic/conf/get_task.yaml @@ -0,0 +1,135 @@ +name: test +task-mode: all +is-sharding: true +shard-mode: pessimistic +ignore-checking-items: [] +meta-schema: dm_meta +enable-heartbeat: false +heartbeat-update-interval: 1 +heartbeat-report-interval: 10 +timezone: Asia/Shanghai +case-sensitive: false +target-database: + host: 127.0.0.1 + port: 4000 + user: root + password: '******' + max-allowed-packet: null + session: + tidb_txn_mode: optimistic + security: null +mysql-instances: +- source-id: mysql-replica-01 + meta: null + filter-rules: [] + column-mapping-rules: + - cm-01 + route-rules: + - route-01 + - route-02 + black-white-list: "" + block-allow-list: balist-01 + mydumper-config-name: dump-01 + mydumper: null + mydumper-thread: 0 + loader-config-name: load-01 + loader: null + loader-thread: 0 + syncer-config-name: sync-01 + syncer: null + syncer-thread: 0 +- source-id: mysql-replica-02 + meta: null + filter-rules: [] + column-mapping-rules: + - cm-02 + route-rules: + - route-01 + - route-02 + black-white-list: "" + block-allow-list: balist-01 + mydumper-config-name: dump-01 + mydumper: null + mydumper-thread: 0 + loader-config-name: load-01 + loader: null + loader-thread: 0 + syncer-config-name: sync-01 + syncer: null + syncer-thread: 0 +online-ddl-scheme: "" +routes: + route-01: + schema-pattern: dmctl + table-pattern: t_* + target-schema: dmctl + target-table: t_target + route-02: + schema-pattern: dmctl + table-pattern: "" + target-schema: dmctl + target-table: "" +filters: {} +column-mappings: + cm-01: + schema-pattern: dmctl + table-pattern: t_* + source-column: id + target-column: id + expression: partition id + arguments: + - "1" + - "" + - t_ + create-table-query: "" + cm-02: + schema-pattern: dmctl + table-pattern: t_* + source-column: id + target-column: id + expression: partition id + arguments: + - "2" + - "" + - t_ + create-table-query: "" +black-white-list: {} +block-allow-list: + balist-01: + do-tables: + - db-name: dmctl + tbl-name: ~^t_[\d]+ + do-dbs: + - dmctl + ignore-tables: [] + ignore-dbs: [] +mydumpers: + dump-01: + mydumper-path: ./bin/mydumper + threads: 4 + chunk-filesize: "64" + statement-size: 0 + rows: 0 + where: "" + skip-tz-utc: true + extra-args: "" +loaders: + load-01: + pool-size: 16 + dir: ./dumped_data.test +syncers: + sync-01: + meta-file: "" + worker-count: 16 + batch: 100 + queue-size: 1024 + checkpoint-flush-interval: 30 + max-retry: 0 + auto-fix-gtid: false + enable-gtid: false + disable-detect: false + safe-mode: false + enable-ansi-quotes: false +clean-dump-file: true +ansi-quotes: false +remove-meta: false diff --git a/tests/dmctl_basic/conf/get_worker1.toml b/tests/dmctl_basic/conf/get_worker1.toml new file mode 100644 index 0000000000..c2ef225d2d --- /dev/null +++ b/tests/dmctl_basic/conf/get_worker1.toml @@ -0,0 +1,13 @@ +name = "worker1" +log-level = "debug" +log-file = "/tmp/dm_test/dmctl_basic/worker1/log/dm-worker.log" +log-format = "text" +log-rotate = "" +join = "http://127.0.0.1:8261" +worker-addr = "0.0.0.0:8262" +advertise-addr = "127.0.0.1:8262" +config-file = "/tmp/dm_test/dmctl_basic/worker1/dm-worker.toml" +keepalive-ttl = 10 +ssl-ca = "" +ssl-cert = "" +ssl-key = "" diff --git a/tests/dmctl_basic/conf/get_worker2.toml b/tests/dmctl_basic/conf/get_worker2.toml new file mode 100644 index 0000000000..a873a41fb7 --- /dev/null +++ b/tests/dmctl_basic/conf/get_worker2.toml @@ -0,0 +1,13 @@ +name = "worker2" +log-level = "debug" +log-file = "/tmp/dm_test/dmctl_basic/worker2/log/dm-worker.log" +log-format = "text" +log-rotate = "" +join = "http://127.0.0.1:8261" +worker-addr = "0.0.0.0:8263" +advertise-addr = "127.0.0.1:8263" +config-file = "/tmp/dm_test/dmctl_basic/worker2/dm-worker.toml" +keepalive-ttl = 10 +ssl-ca = "" +ssl-cert = "" +ssl-key = "" diff --git a/tests/dmctl_basic/conf/source1.yaml b/tests/dmctl_basic/conf/source1.yaml index 80b527688d..4bbcf0f019 100644 --- a/tests/dmctl_basic/conf/source1.yaml +++ b/tests/dmctl_basic/conf/source1.yaml @@ -1,5 +1,5 @@ source-id: mysql-replica-01 -flavor: '' +server-id: 123456 enable-gtid: false relay-binlog-name: '' relay-binlog-gtid: '' diff --git a/tests/dmctl_basic/conf/source2.yaml b/tests/dmctl_basic/conf/source2.yaml index a3d54dbfc6..871d35d6eb 100644 --- a/tests/dmctl_basic/conf/source2.yaml +++ b/tests/dmctl_basic/conf/source2.yaml @@ -1,5 +1,5 @@ source-id: mysql-replica-02 -flavor: '' +server-id: 654321 enable-gtid: false relay-binlog-name: '' relay-binlog-gtid: '' diff --git a/tests/dmctl_basic/run.sh b/tests/dmctl_basic/run.sh index 40116c2fed..157e2ab23b 100755 --- a/tests/dmctl_basic/run.sh +++ b/tests/dmctl_basic/run.sh @@ -174,10 +174,9 @@ function run() { "\"stage\": \"Running\"" 4 # update_task_not_paused $TASK_CONF - echo "get_task_config" - get_task_config_wrong_name - get_task_config_to_file - get_task_config_restart_master + echo "get_config" + get_config_wrong_arg + get_config_to_file # retry to wait for recovered from etcd ready run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ diff --git a/tests/ha_master/run.sh b/tests/ha_master/run.sh index 7d1b713a5e..cfee6661e1 100755 --- a/tests/ha_master/run.sh +++ b/tests/ha_master/run.sh @@ -232,6 +232,14 @@ function test_list_member() { "list-member --worker" \ "\"stage\": \"bound\"" 2 + run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config master master1" \ + "master1" 1 + + run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ + "get-config master master2" \ + "master2" 1 + echo "[$(date)] <<<<<< finish test_list_member_command >>>>>>" } diff --git a/tests/http_apis/run.sh b/tests/http_apis/run.sh index 09087cc40b..1f4980deab 100644 --- a/tests/http_apis/run.sh +++ b/tests/http_apis/run.sh @@ -57,10 +57,6 @@ function run() { curl -X GET 127.0.0.1:$MASTER_PORT/apis/${API_VERSION}/subtasks/test > $WORK_DIR/subtask.log check_log_contains $WORK_DIR/subtask.log "is-sharding = false" 1 - echo "get task config" - curl -X GET 127.0.0.1:$MASTER_PORT/apis/${API_VERSION}/tasks/test > $WORK_DIR/task.log - check_log_contains $WORK_DIR/task.log "is-sharding: false" 1 - echo "pause task and check stage" curl -X PUT 127.0.0.1:$MASTER_PORT/apis/${API_VERSION}/tasks/test -d '{ "op": 2 }' > $WORK_DIR/pause.log check_log_contains $WORK_DIR/pause.log "\"op\": \"Pause\"" 1 diff --git a/tests/import_v10x/run.sh b/tests/import_v10x/run.sh index 8dfc31b27b..918b8ed163 100644 --- a/tests/import_v10x/run.sh +++ b/tests/import_v10x/run.sh @@ -75,7 +75,7 @@ function run() { # check task config, just a simple match run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ - "get-task-config test --file $WORK_DIR/task.yaml" \ + "get-config task test --file $WORK_DIR/task.yaml" \ "\"result\": true" 1 sed -i "s/password: '\*\*\*\*\*\*'/password: \"\"/g" $WORK_DIR/task.yaml