117 lines
3.6 KiB
Go
117 lines
3.6 KiB
Go
package canal
|
|
|
|
import (
|
|
"go-common/library/time"
|
|
)
|
|
|
|
//type and explanation
|
|
const (
|
|
TypeApply = int8(iota)
|
|
TypeReview
|
|
ReviewReject
|
|
ReviewSuccess
|
|
ReviewFailed
|
|
)
|
|
|
|
//TypeMap struct
|
|
var (
|
|
TypeMap = map[int8]string{
|
|
TypeApply: "申请",
|
|
TypeReview: "审核",
|
|
ReviewReject: "驳回",
|
|
ReviewSuccess: "通过",
|
|
ReviewFailed: "失败",
|
|
}
|
|
)
|
|
|
|
// TableName case tablename
|
|
func (*Apply) TableName() string {
|
|
return "canal_apply"
|
|
}
|
|
|
|
//Apply apply model
|
|
type Apply struct {
|
|
ID int `gorm:"column:id" json:"id"`
|
|
Addr string `gorm:"column:addr" json:"addr"`
|
|
Remark string `gorm:"column:remark" json:"remark"`
|
|
Cluster string `gorm:"column:cluster" json:"project"`
|
|
Leader string `gorm:"column:leader" json:"leader"`
|
|
Comment string `gorm:"column:comment" json:"comment"`
|
|
State int8 `gorm:"column:state" json:"status"`
|
|
Operator string `gorm:"column:operator" json:"operator"`
|
|
Ctime time.Time `gorm:"column:ctime" json:"ctime"`
|
|
Mtime time.Time `gorm:"column:mtime" json:"mtime"`
|
|
ConfID int `gorm:"column:conf_id" json:"conf_id"`
|
|
}
|
|
|
|
//Config struct
|
|
type Config struct {
|
|
Instance *Instance `json:"instance" toml:"instance"`
|
|
}
|
|
|
|
//Instance struct
|
|
type Instance struct {
|
|
Caddr string `json:"caddr" toml:"addr"`
|
|
User string `json:"user" toml:"user"`
|
|
Password string `json:"password" toml:"password"`
|
|
MonitorPeriod string `json:"monitor_period" toml:"monitor_period,omitempty"`
|
|
ServerID int64 `json:"server_id" toml:"server_id"`
|
|
Flavor string `json:"flavor" toml:"flavor"`
|
|
HeartbeatPeriod time.Duration `json:"heartbeat_period" toml:"heartbeat_period"`
|
|
ReadTimeout time.Duration `json:"read_timeout" toml:"read_timeout"`
|
|
DB []*DB `json:"db" toml:"db"`
|
|
}
|
|
|
|
//DB struct
|
|
type DB struct {
|
|
Schema string `json:"schema" toml:"schema"`
|
|
Table []*Table `json:"table" toml:"table"`
|
|
Databus *Databus `json:"databus" toml:"databus"`
|
|
Infoc *Infoc `json:"infoc" toml:"infoc"`
|
|
}
|
|
|
|
//Table struct
|
|
type Table struct {
|
|
Name string `json:"name" toml:"name"`
|
|
Primarykey []string `json:"primarykey" toml:"primarykey"`
|
|
Omitfield []string `json:"omitfield" toml:"omitfield"`
|
|
}
|
|
|
|
//Databus struct
|
|
type Databus struct {
|
|
Key string `json:"key" toml:"key"`
|
|
Secret string `json:"secret" toml:"secret"`
|
|
Group string `json:"group" toml:"group"`
|
|
Topic string `json:"topic" toml:"topic"`
|
|
Action string `json:"action" toml:"action"`
|
|
Name string `json:"name" toml:"name"`
|
|
Proto string `json:"proto" toml:"proto"`
|
|
Addr string `json:"addr" toml:"addr"`
|
|
Idle int `json:"idle" toml:"idle"`
|
|
Active int `json:"active" toml:"active"`
|
|
DialTimeout string `json:"dialTimeout" toml:"dialTimeout"`
|
|
ReadTimeout string `json:"readTimeout" toml:"readTimeout"`
|
|
WriteTimeout string `json:"writeTimeout" toml:"writeTimeout"`
|
|
IdleTimeout string `json:"idleTimeout" toml:"idleTimeout"`
|
|
}
|
|
|
|
//Infoc struct
|
|
type Infoc struct {
|
|
TaskID string `json:"taskID" toml:"taskID"`
|
|
Proto string `json:"proto" toml:"proto"`
|
|
Addr string `json:"addr" toml:"addr"`
|
|
ReporterAddr string `json:"reporterAddr" toml:"reporterAddr"`
|
|
}
|
|
|
|
//ConfigReq struct is
|
|
type ConfigReq struct {
|
|
Addr string `form:"addr" validate:"required"`
|
|
User string `form:"user"`
|
|
Password string `form:"password"`
|
|
MonitorPeriod string `form:"monitor_period"`
|
|
Databases string `form:"databases" validate:"required"`
|
|
Project string `form:"project"`
|
|
Leader string `form:"leader"`
|
|
Mark string `form:"mark" validate:"required"`
|
|
}
|