mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-21 17:21:09 +01:00
support custom node name
This commit is contained in:
@@ -23,8 +23,9 @@ server:
|
||||
master: "Y"
|
||||
secret: "crawlab"
|
||||
register:
|
||||
# mac地址/ip地址/hostname, 如果是ip,则需要手动指定IP
|
||||
# type 填 mac/ip/customName, 如果是ip,则需要手动指定IP, 如果是 customName, 需填写你的 customNodeName
|
||||
type: "mac"
|
||||
customNodeName: "" # 自定义节点名称, default node1,只有在type = customName 时生效
|
||||
ip: ""
|
||||
lang: # 安装语言环境, Y 为安装,N 为不安装
|
||||
python: "Y"
|
||||
|
||||
@@ -4,4 +4,5 @@ const (
|
||||
RegisterTypeMac = "mac"
|
||||
RegisterTypeIp = "ip"
|
||||
RegisterTypeHostname = "hostname"
|
||||
RegisterTypeCustomName = "customName"
|
||||
)
|
||||
|
||||
@@ -80,7 +80,7 @@ func GetCurrentNode() (Node, error) {
|
||||
Key: key,
|
||||
Id: bson.NewObjectId(),
|
||||
Ip: ip,
|
||||
Name: ip,
|
||||
Name: key,
|
||||
Mac: mac,
|
||||
Hostname: hostname,
|
||||
IsMaster: true,
|
||||
|
||||
@@ -25,6 +25,7 @@ type Register interface {
|
||||
GetMac() (string, error)
|
||||
// 注册节点的Hostname
|
||||
GetHostname() (string, error)
|
||||
GetCustomName() (string, error)
|
||||
}
|
||||
|
||||
// ===================== mac 地址注册 =====================
|
||||
@@ -50,11 +51,50 @@ func (mac *MacRegister) GetHostname() (string, error) {
|
||||
return getHostname()
|
||||
}
|
||||
|
||||
func (mac *MacRegister) GetCustomName() (string, error) {
|
||||
return getMac()
|
||||
}
|
||||
|
||||
// ===================== ip 地址注册 =====================
|
||||
type IpRegister struct {
|
||||
Ip string
|
||||
}
|
||||
|
||||
func (ip *IpRegister) GetCustomName() (string, error) {
|
||||
return ip.Ip, nil
|
||||
}
|
||||
|
||||
// ============= 自定义节点名称注册 ==============
|
||||
type CustomNameRegister struct {
|
||||
CustomName string
|
||||
}
|
||||
|
||||
func (c *CustomNameRegister) GetType() string {
|
||||
return "customName"
|
||||
}
|
||||
|
||||
func (c *CustomNameRegister) GetIp() (string, error) {
|
||||
return getIp()
|
||||
}
|
||||
|
||||
func (c *CustomNameRegister) GetMac() (string, error) {
|
||||
return getMac()
|
||||
}
|
||||
|
||||
func (c *CustomNameRegister) GetKey() (string, error) {
|
||||
return c.CustomName, nil
|
||||
}
|
||||
|
||||
func (c *CustomNameRegister) GetHostname() (string, error) {
|
||||
|
||||
return getHostname()
|
||||
}
|
||||
|
||||
func (c *CustomNameRegister) GetCustomName() (string, error) {
|
||||
return c.CustomName, nil
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
func (ip *IpRegister) GetType() string {
|
||||
return "ip"
|
||||
}
|
||||
@@ -98,6 +138,10 @@ func (h *HostnameRegister) GetHostname() (string, error) {
|
||||
return getHostname()
|
||||
}
|
||||
|
||||
func (h *HostnameRegister) GetCustomName() (string, error) {
|
||||
return getHostname()
|
||||
}
|
||||
|
||||
// ===================== 公共方法 =====================
|
||||
// 获取本机的IP地址
|
||||
// TODO: 考虑多个IP地址的情况
|
||||
@@ -158,9 +202,14 @@ var once sync.Once
|
||||
func GetRegister() Register {
|
||||
once.Do(func() {
|
||||
registerType := viper.GetString("server.register.type")
|
||||
if registerType == constants.RegisterTypeMac {
|
||||
|
||||
switch registerType {
|
||||
case constants.RegisterTypeMac:
|
||||
|
||||
register = &MacRegister{}
|
||||
} else if registerType == constants.RegisterTypeIp {
|
||||
|
||||
case constants.RegisterTypeIp:
|
||||
|
||||
ip := viper.GetString("server.register.ip")
|
||||
if ip == "" {
|
||||
log.Error("server.register.ip is empty")
|
||||
@@ -170,8 +219,22 @@ func GetRegister() Register {
|
||||
register = &IpRegister{
|
||||
Ip: ip,
|
||||
}
|
||||
} else if registerType == constants.RegisterTypeHostname {
|
||||
|
||||
case constants.RegisterTypeHostname:
|
||||
|
||||
register = &HostnameRegister{}
|
||||
|
||||
case constants.RegisterTypeCustomName:
|
||||
|
||||
customNodeName := viper.GetString("server.register.customNodeName")
|
||||
if customNodeName == "" {
|
||||
log.Error("server.register.customNodeName is empty")
|
||||
debug.PrintStack()
|
||||
register = nil
|
||||
}
|
||||
register = &CustomNameRegister{
|
||||
CustomName: customNodeName,
|
||||
}
|
||||
}
|
||||
log.Info("register type is :" + reflect.TypeOf(register).String())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user