MCPcopy Create free account
hub / github.com/actiontech/dtle / validateTaskConfig

Function validateTaskConfig

api/handler/v2/validation.go:100–189  ·  view source on GitHub ↗
(apiSrcTask *models.SrcTaskConfig, apiDestTask *models.DestTaskConfig)

Source from the content-addressed store, hash-verified

98}
99
100func validateTaskConfig(apiSrcTask *models.SrcTaskConfig, apiDestTask *models.DestTaskConfig) ([]*models.MysqlTaskValidationReport, error) {
101 taskValidationRes := []*models.MysqlTaskValidationReport{}
102 srcTaskConfig := common.DtleTaskConfig{}
103 // validate src task
104 if apiSrcTask.MysqlSrcTaskConfig != nil {
105 srcTaskMap := buildDatabaseSrcTaskConfigMap(apiSrcTask, apiDestTask, nil)
106 if err := mapstructure.WeakDecode(srcTaskMap, &srcTaskConfig); err != nil {
107 return nil, fmt.Errorf("convert src task config failed: %v", err)
108 }
109
110 validationRes := &models.MysqlTaskValidationReport{
111 TaskName: apiSrcTask.TaskName,
112 }
113
114 srcTaskInspector := mysql.NewInspector(&common.MySQLDriverConfig{
115 DtleTaskConfig: srcTaskConfig,
116 }, g.Logger.Named("http api: validateTaskConfig"))
117 defer srcTaskInspector.Close()
118
119 if err := srcTaskInspector.InitDB(); nil != err {
120 return nil, fmt.Errorf("init src task inspector failed: %v", err)
121 }
122
123 validationRes.ConnectionValidation = &models.ConnectionValidation{Validated: true}
124 if err := srcTaskInspector.ValidateConnection(); nil != err {
125 validationRes.ConnectionValidation.Error = err.Error()
126 goto endSrcTaskValidation
127 }
128
129 validationRes.GtidModeValidation = &models.GtidModeValidation{Validated: true}
130 if err := srcTaskInspector.ValidateGTIDMode(); nil != err {
131 validationRes.GtidModeValidation.Error = err.Error()
132 }
133
134 validationRes.ServerIdValidation = &models.ServerIDValidation{Validated: true}
135 if err := srcTaskInspector.ValidateServerId(); nil != err {
136 validationRes.ServerIdValidation.Error = err.Error()
137 }
138
139 validationRes.BinlogValidation = &models.BinlogValidation{Validated: true}
140 if err := srcTaskInspector.ValidateBinlogs(); nil != err {
141 validationRes.BinlogValidation.Error = err.Error()
142 }
143
144 validationRes.PrivilegesValidation = &models.PrivilegesValidation{Validated: true}
145 if err := srcTaskInspector.ValidateGrants(); nil != err {
146 validationRes.PrivilegesValidation.Error = err.Error()
147 }
148
149 endSrcTaskValidation:
150 taskValidationRes = append(taskValidationRes, validationRes)
151 }
152 // validate dest task
153 {
154 validationRes := &models.MysqlTaskValidationReport{
155 TaskName: apiDestTask.TaskName,
156 }
157 destTaskInspector, err := mysql.NewApplier(

Callers 2

ReverseJobV2Function · 0.85
ValidateJobV2Function · 0.85

Calls 14

CloseMethod · 0.95
InitDBMethod · 0.95
ValidateConnectionMethod · 0.95
ValidateGTIDModeMethod · 0.95
ValidateServerIdMethod · 0.95
ValidateBinlogsMethod · 0.95
ValidateGrantsMethod · 0.95
InitDBMethod · 0.95
ShutdownMethod · 0.95
ValidateConnectionMethod · 0.95
ValidateGrantsMethod · 0.95
NewInspectorFunction · 0.92

Tested by

no test coverage detected