Merge pull request #762 from yaziming/fix-bug

修复子节点名称显示错误
This commit is contained in:
yaziming
2020-06-03 18:13:37 +08:00
committed by GitHub

View File

@@ -14,16 +14,18 @@ import (
"github.com/apex/log"
"github.com/globalsign/mgo/bson"
"github.com/gomodule/redigo/redis"
"github.com/spf13/viper"
"runtime/debug"
"time"
)
type Data struct {
Key string `json:"key"`
Mac string `json:"mac"`
Ip string `json:"ip"`
Hostname string `json:"hostname"`
Key string `json:"key"`
Mac string `json:"mac"`
Ip string `json:"ip"`
Hostname string `json:"hostname"`
Name string `json:"name"`
NameType string `json:"name_type"`
Master bool `json:"master"`
UpdateTs time.Time `json:"update_ts"`
UpdateTsUnix int64 `json:"update_ts_unix"`
@@ -122,19 +124,6 @@ func UpdateNodeStatus() {
}
}
func getNodeName(data *Data) string {
registerType := viper.GetString("server.register.type")
if registerType == constants.RegisterTypeMac {
return data.Ip
} else if registerType == constants.RegisterTypeIp {
return data.Ip
} else if registerType == constants.RegisterTypeHostname {
return data.Hostname
} else {
return data.Ip
}
}
// 处理节点信息
func UpdateNodeInfo(data *Data) (err error) {
// 更新节点信息到数据库
@@ -144,17 +133,18 @@ func UpdateNodeInfo(data *Data) (err error) {
_, err = c.Upsert(bson.M{"key": data.Key}, bson.M{
"$set": bson.M{
"status": constants.StatusOnline,
"key": data.Key,
"name": data.Name,
"name_type": data.NameType,
"ip": data.Ip,
"port": "8000",
"mac": data.Mac,
"is_master": data.Master,
"update_ts": time.Now(),
"update_ts_unix": time.Now().Unix(),
},
"$setOnInsert": bson.M{
"_id": bson.NewObjectId(),
"key": data.Key,
"name": getNodeName(data),
"ip": data.Ip,
"port": "8000",
"mac": data.Mac,
"is_master": data.Master,
"_id": bson.NewObjectId(),
},
})
return err
@@ -170,6 +160,8 @@ func UpdateNodeData() {
Mac: localNode.Mac,
Ip: localNode.Ip,
Hostname: localNode.Hostname,
Name: localNode.Identify,
NameType: string(localNode.IdentifyType),
Master: model.IsMaster(),
UpdateTs: time.Now(),
UpdateTsUnix: time.Now().Unix(),
@@ -243,7 +235,12 @@ func InitNodeService() error {
// 首次更新节点数据注册到Redis
UpdateNodeData()
if model.IsMaster() {
err = model.UpdateMasterNodeInfo(node.Identify, node.Ip, node.Mac, node.Hostname)
if err != nil {
return err
}
}
err = node.Ready()
if err != nil {
@@ -251,11 +248,6 @@ func InitNodeService() error {
}
if model.IsMaster() {
err = model.UpdateMasterNodeInfo(node.Identify, node.Ip, node.Mac, node.Hostname)
if err != nil {
return err
}
// 如果为主节点,订阅主节点通信频道
if err := database.Sub(constants.ChannelMasterNode, MasterNodeCallback); err != nil {
return err