You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
4.9 KiB
128 lines
4.9 KiB
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"` |
|
}
|
|
|