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

Function buildSrcTaskDetail

api/handler/v2/job.go:982–1056  ·  view source on GitHub ↗
(taskName string, internalTaskConfig common.DtleTaskConfig, allocsFromNomad []nomadApi.Allocation)

Source from the content-addressed store, hash-verified

980}
981
982func buildSrcTaskDetail(taskName string, internalTaskConfig common.DtleTaskConfig, allocsFromNomad []nomadApi.Allocation) (srcTaskDetail models.SrcTaskDetail) {
983 convertInternalMysqlDataSourceToApi := func(internalDataSource []*common.DataSource) []*models.DataSourceConfig {
984 apiMysqlDataSource := []*models.DataSourceConfig{}
985 for _, db := range internalDataSource {
986 tables := []*models.TableConfig{}
987 for _, tb := range db.Tables {
988 tables = append(tables, &models.TableConfig{
989 TableName: tb.TableName,
990 TableRegex: tb.TableRegex,
991 TableRename: tb.TableRename,
992 ColumnMapFrom: tb.ColumnMapFrom,
993 ColumnMapTo: tb.ColumnMapTo,
994 Where: tb.Where,
995 })
996 }
997 apiMysqlDataSource = append(apiMysqlDataSource, &models.DataSourceConfig{
998 TableSchema: db.TableSchema,
999 TableSchemaRegex: db.TableSchemaRegex,
1000 TableSchemaRename: db.TableSchemaRename,
1001 Tables: tables,
1002 })
1003 }
1004 return apiMysqlDataSource
1005 }
1006
1007 replicateDoDb := convertInternalMysqlDataSourceToApi(internalTaskConfig.ReplicateDoDb)
1008 replicateIgnoreDb := convertInternalMysqlDataSourceToApi(internalTaskConfig.ReplicateIgnoreDb)
1009 srcTaskDetail.TaskConfig = models.SrcTaskConfig{
1010 TaskName: taskName,
1011 GroupMaxSize: internalTaskConfig.GroupMaxSize,
1012 ChunkSize: internalTaskConfig.ChunkSize,
1013 DropTableIfExists: internalTaskConfig.DropTableIfExists,
1014 SkipCreateDbTable: internalTaskConfig.SkipCreateDbTable,
1015 ReplChanBufferSize: internalTaskConfig.ReplChanBufferSize,
1016 ReplicateDoDb: replicateDoDb,
1017 ReplicateIgnoreDb: replicateIgnoreDb,
1018 GroupTimeout: internalTaskConfig.GroupTimeout,
1019 SQLFilter: internalTaskConfig.SqlFilter,
1020 }
1021
1022 connectionConfig := new(models.DatabaseConnectionConfig)
1023 if internalTaskConfig.SrcOracleConfig != nil {
1024 connectionConfig.DatabaseType = "Oracle"
1025 connectionConfig.Host = internalTaskConfig.SrcOracleConfig.Host
1026 connectionConfig.Port = internalTaskConfig.SrcOracleConfig.Port
1027 connectionConfig.User = internalTaskConfig.SrcOracleConfig.User
1028 connectionConfig.Password = internalTaskConfig.SrcOracleConfig.Password
1029 connectionConfig.ServiceName = internalTaskConfig.SrcOracleConfig.ServiceName
1030 } else if internalTaskConfig.SrcConnectionConfig != nil {
1031 connectionConfig.DatabaseType = "MySQL"
1032 connectionConfig.Host = internalTaskConfig.SrcConnectionConfig.Host
1033 connectionConfig.Port = internalTaskConfig.SrcConnectionConfig.Port
1034 connectionConfig.User = internalTaskConfig.SrcConnectionConfig.User
1035 connectionConfig.Password = internalTaskConfig.SrcConnectionConfig.Password
1036 srcTaskDetail.TaskConfig.MysqlSrcTaskConfig = &models.MysqlSrcTaskConfig{
1037 ExpandSyntaxSupport: internalTaskConfig.ExpandSyntaxSupport,
1038 AutoGtid: internalTaskConfig.AutoGtid,
1039 Gtid: internalTaskConfig.Gtid,

Callers 2

buildJobDetailRespFunction · 0.85

Calls 1

Tested by

no test coverage detected