129 lines
4.9 KiB
Go
129 lines
4.9 KiB
Go
package model
|
|
|
|
// OverlordReq .
|
|
type OverlordReq struct {
|
|
Name string `json:"name" form:"name"`
|
|
Zone string `json:"zone" form:"zone"`
|
|
Type string `json:"type" form:"type"`
|
|
Alias string `json:"alias" form:"alias"`
|
|
Addr string `json:"addr" form:"addr"`
|
|
AppID string `json:"appid" form:"appid"`
|
|
|
|
PN int `form:"pn" default:"1"`
|
|
PS int `form:"ps" default:"20"`
|
|
|
|
Cookie string `json:"-"`
|
|
}
|
|
|
|
// OverlordResp .
|
|
type OverlordResp struct {
|
|
Names []string `json:"names,omitempty"`
|
|
Addrs []string `json:"addrs,omitempty"`
|
|
Cluster *OverlordCluster `json:"cluster,omitempty"`
|
|
Clusters []*OverlordCluster `json:"clusters,omitempty"`
|
|
Total int64 `json:"total"`
|
|
Nodes []*OverlordNode `json:"nodes,omitempty"`
|
|
Apps []*OverlordApp `json:"apps,omitempty"`
|
|
AppIDs []string `json:"appids,omitempty"`
|
|
}
|
|
|
|
// TableName gorm table name.
|
|
func (*OverlordCluster) TableName() string {
|
|
return "overlord_cluster"
|
|
}
|
|
|
|
// OverlordCluster .
|
|
type OverlordCluster struct {
|
|
ID int64 `json:"id" gorm:"column:id"`
|
|
Name string `json:"name" gorm:"column:name"` // 集群名字
|
|
Type string `json:"type" gorm:"column:type"` // 缓存类型. (memcache,redis,redis-cluster)
|
|
Zone string `json:"zone" gorm:"column:zone"` // 机房
|
|
HashMethod string `json:"hash_method" gorm:"column:hash_method"` // 哈希方法 默认sha1
|
|
HashDistribution string `json:"hash_distribution" gorm:"column:hash_distribution"` // key分布策略 默认为ketama一致性hash
|
|
HashTag string `json:"hash_tag" gorm:"column:hashtag"` // key hash 标识
|
|
ListenProto string `json:"listen_proto" gorm:"column:listen_proto"`
|
|
ListenAddr string `json:"listen_addr" gorm:"column:listen_addr"`
|
|
DailTimeout int32 `json:"dail_timeout" gorm:"column:dial"` // dial 超时
|
|
ReadTimeout int32 `json:"read_timeout" gorm:"column:read"` // read 超时
|
|
WriteTimeout int32 `json:"write_timeout" gorm:"column:write"` // write 超时
|
|
NodeConn int8 `json:"node_conn" gorm:"column:nodeconn"` // 集群内节点连接数
|
|
PingFailLimit int32 `json:"ping_fail_limit" gorm:"column:ping_fail_limit"` // 节点失败检测次数
|
|
PingAutoEject bool `json:"ping_auto_eject" gorm:"column:auto_eject"` // 是否自动剔除节点
|
|
|
|
Nodes []*OverlordNode `json:"nodes" gorm:"-"`
|
|
}
|
|
|
|
// TableName gorm table name.
|
|
func (*OverlordNode) TableName() string {
|
|
return "overlord_node"
|
|
}
|
|
|
|
// OverlordNode .
|
|
type OverlordNode struct {
|
|
Cid int64 `json:"cid" gorm:"column:cid"`
|
|
Alias string `json:"alias" gorm:"column:alias"`
|
|
Addr string `json:"addr" gorm:"column:addr"`
|
|
Weight int8 `json:"weight" gorm:"column:weight"`
|
|
}
|
|
|
|
// TableName gorm table name.
|
|
func (*OverlordApp) TableName() string {
|
|
return "overlord_appid"
|
|
}
|
|
|
|
// OverlordApp .
|
|
type OverlordApp struct {
|
|
ID int64 `json:"-" gorm:"column:id"`
|
|
TreeID int64 `json:"treeid" gorm:"column:tree_id"`
|
|
AppID string `json:"appid" gorm:"column:app_id"`
|
|
Cid int64 `json:"cid" gorm:"column:cid"`
|
|
|
|
Cluster *OverlordCluster `json:"cluster,omitempty"`
|
|
}
|
|
|
|
// OverlordApiserver resp result of clusters.
|
|
type OverlordApiserver struct {
|
|
Group string `json:"group"`
|
|
Clusters []struct {
|
|
Name string `json:"name"`
|
|
Type string `json:"cache_type"`
|
|
// HashMethod string `json:"hash_method"`
|
|
// HashDistribution string `json:"hash_distribution"`
|
|
// HashTag string `json:"hash_tag"`
|
|
// DailTimeout int32 `json:"dail_timeout"`
|
|
// ReadTimeout int32 `json:"read_timeout"`
|
|
// WriteTimeout int32 `json:"write_timeout"`
|
|
// NodeConn int8 `json:"node_connections"`
|
|
// PingFailLimit int32 `json:"ping_fail_limit"`
|
|
// PingAutoEject bool `json:"ping_auto_eject"`
|
|
FrontEndPort int `json:"front_end_port"`
|
|
|
|
Instances []struct {
|
|
IP string `json:"ip"`
|
|
Port int `json:"port"`
|
|
Weight int8 `json:"weight"`
|
|
Alias string `json:"alias"`
|
|
State string `json:"state"`
|
|
Role string `json:"role"`
|
|
} `json:"instances"`
|
|
} `json:"clusters"`
|
|
}
|
|
|
|
// OverlordToml resp result of clusters.
|
|
type OverlordToml struct {
|
|
Name string `toml:"name"`
|
|
Type string `toml:"cache_type"`
|
|
HashMethod string `toml:"hash_method"`
|
|
HashDistribution string `toml:"hash_distribution"`
|
|
HashTag string `toml:"hash_tag"`
|
|
DailTimeout int32 `toml:"dail_timeout"`
|
|
ReadTimeout int32 `toml:"read_timeout"`
|
|
WriteTimeout int32 `toml:"write_timeout"`
|
|
NodeConn int8 `toml:"node_connections"`
|
|
PingFailLimit int32 `toml:"ping_fail_limit"`
|
|
PingAutoEject bool `toml:"ping_auto_eject"`
|
|
ListenProto string `toml:"listen_proto"`
|
|
ListenAddr string `toml:"listen_addr"`
|
|
Servers []string `toml:"servers"`
|
|
}
|