ams agent上报注册代码调整 (#436)
* rdb资源增加volume * rdb用户增加创建时间 * rdb用户添加时间 * rdb新增添加用户时间代码调整 * test * 1.agent上报扩展字段 2.rdb标签批量修改 * 代码调整 * 代码调整 * ams扩展代码调整 * test * test * 测试 * 错误调整 * ams agent上报注册代码调整 * map clear返回值去掉 Co-authored-by: alickliming <alickliming@didi.global.com>
This commit is contained in:
parent
e673c5340c
commit
94eb306692
|
@ -246,6 +246,20 @@ func (f hostRegisterForm) Validate() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// mapKeyClear map key clear
|
||||||
|
func mapKeyClear(src map[string]interface{}, save map[string]struct{}) {
|
||||||
|
var dels []string
|
||||||
|
for k := range src {
|
||||||
|
if _, ok := save[k]; !ok {
|
||||||
|
dels = append(dels, k)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(dels); i++ {
|
||||||
|
delete(src, dels[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// agent主动上报注册信息
|
// agent主动上报注册信息
|
||||||
func v1HostRegister(c *gin.Context) {
|
func v1HostRegister(c *gin.Context) {
|
||||||
var f hostRegisterForm
|
var f hostRegisterForm
|
||||||
|
@ -283,47 +297,52 @@ func v1HostRegister(c *gin.Context) {
|
||||||
renderMessage(c, nil)
|
renderMessage(c, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if err.Error() != cache.ErrCacheMiss.Error() {
|
||||||
|
msg := "get cache err"
|
||||||
|
logger.Error(err)
|
||||||
|
renderMessage(c, msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
host, err := models.HostGet(f.UniqKey+" = ?", uniqValue)
|
host, err := models.HostGet(f.UniqKey+" = ?", uniqValue)
|
||||||
dangerous(err)
|
dangerous(err)
|
||||||
|
|
||||||
hFixed := map[string]struct{}{
|
hFixed := map[string]struct{}{
|
||||||
"sn": struct{}{},
|
|
||||||
"ip": struct{}{},
|
|
||||||
"ident": struct{}{},
|
|
||||||
"name": struct{}{},
|
|
||||||
"note": struct{}{},
|
|
||||||
"cate": struct{}{},
|
|
||||||
"clock": struct{}{},
|
|
||||||
"cpu": struct{}{},
|
"cpu": struct{}{},
|
||||||
"mem": struct{}{},
|
"mem": struct{}{},
|
||||||
"disk": struct{}{},
|
"disk": struct{}{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var dels []string
|
mapKeyClear(f.Fields, hFixed)
|
||||||
for k := range f.Fields {
|
|
||||||
if _, ok := hFixed[k]; !ok {
|
|
||||||
dels = append(dels, k)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := 0; i < len(dels); i++ {
|
|
||||||
delete(f.Fields, dels[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
if host == nil {
|
|
||||||
var err error
|
|
||||||
host, err = models.HostNew(f.SN, f.IP, f.Ident, f.Name, f.Cate, f.Fields)
|
|
||||||
if err == nil {
|
|
||||||
cache.Set(cacheKey, f.Digest, cache.DEFAULT)
|
|
||||||
} else {
|
|
||||||
logger.Warning(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if host == nil {
|
if host == nil {
|
||||||
msg := "create host failed"
|
msg := "create host failed"
|
||||||
logger.Warningf("%s info:%v", msg, f)
|
host, err = models.HostNew(f.SN, f.IP, f.Ident, f.Name, f.Cate, f.Fields)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error(err)
|
||||||
|
renderMessage(c, msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if host == nil {
|
||||||
|
logger.Errorf("%s, report info:%v", msg, f)
|
||||||
|
renderMessage(c, msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
f.Fields["sn"] = f.SN
|
||||||
|
f.Fields["ip"] = f.IP
|
||||||
|
f.Fields["ident"] = f.Ident
|
||||||
|
f.Fields["name"] = f.Name
|
||||||
|
f.Fields["cate"] = f.Cate
|
||||||
|
f.Fields["clock"] = time.Now().Unix()
|
||||||
|
|
||||||
|
err = host.Update(f.Fields)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error(err)
|
||||||
|
msg := "update host err"
|
||||||
renderMessage(c, msg)
|
renderMessage(c, msg)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -372,6 +391,8 @@ func v1HostRegister(c *gin.Context) {
|
||||||
res.Name = f.Name
|
res.Name = f.Name
|
||||||
res.Cate = f.Cate
|
res.Cate = f.Cate
|
||||||
|
|
||||||
|
mapKeyClear(f.Fields, hFixed)
|
||||||
|
|
||||||
js, err := json.Marshal(f.Fields)
|
js, err := json.Marshal(f.Fields)
|
||||||
dangerous(err)
|
dangerous(err)
|
||||||
|
|
||||||
|
@ -380,23 +401,6 @@ func v1HostRegister(c *gin.Context) {
|
||||||
dangerous(res.Update("ident", "name", "cate", "extend"))
|
dangerous(res.Update("ident", "name", "cate", "extend"))
|
||||||
}
|
}
|
||||||
|
|
||||||
f.Fields["sn"] = f.SN
|
|
||||||
f.Fields["ip"] = f.IP
|
|
||||||
f.Fields["ident"] = f.Ident
|
|
||||||
f.Fields["name"] = f.Name
|
|
||||||
f.Fields["cate"] = f.Cate
|
|
||||||
f.Fields["clock"] = time.Now().Unix()
|
|
||||||
|
|
||||||
err = host.Update(f.Fields)
|
|
||||||
if err == nil {
|
|
||||||
cache.Set(cacheKey, f.Digest, cache.DEFAULT)
|
|
||||||
} else {
|
|
||||||
logger.Error(err)
|
|
||||||
msg := "update host err"
|
|
||||||
renderMessage(c, msg)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var objs []models.HostFieldValue
|
var objs []models.HostFieldValue
|
||||||
for k, v := range oldFields {
|
for k, v := range oldFields {
|
||||||
if k == "tenant" {
|
if k == "tenant" {
|
||||||
|
@ -414,5 +418,13 @@ func v1HostRegister(c *gin.Context) {
|
||||||
dangerous(err)
|
dangerous(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
renderMessage(c, err)
|
err = cache.Set(cacheKey, f.Digest, cache.DEFAULT)
|
||||||
|
if err != nil {
|
||||||
|
msg := "set cache err"
|
||||||
|
logger.Error(err)
|
||||||
|
renderMessage(c, msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
renderMessage(c, nil)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue