fix: 网元列表查询同步更新网元状态

This commit is contained in:
TsMask
2024-03-05 16:14:37 +08:00
parent e0583d8a7d
commit aa3fb21254
3 changed files with 50 additions and 10 deletions

View File

@@ -193,12 +193,18 @@ func (s *NeInfoController) Add(c *gin.Context) {
return
}
// 获取网元状态是否正常
_, err = neService.NeState(body)
if err != nil {
body.Status = "1"
} else {
// 下发网管配置信息给网元
_, err = neService.NeConfigOMC(body)
if err == nil {
body.Status = "1"
} else {
body.Status = "0"
} else {
body.Status = "3"
}
}
insertId := s.neInfoService.Insert(body)
@@ -238,12 +244,18 @@ func (s *NeInfoController) Edit(c *gin.Context) {
return
}
// 获取网元状态是否正常
_, err = neService.NeState(body)
if err != nil {
body.Status = "1"
} else {
// 下发网管配置信息给网元
_, err = neService.NeConfigOMC(body)
if err == nil {
body.Status = "1"
} else {
body.Status = "0"
} else {
body.Status = "3"
}
}
rows := s.neInfoService.Update(body)

View File

@@ -14,7 +14,7 @@ type NeInfo struct {
VendorName string `json:"vendorName"`
Dn string `json:"dn"`
NeAddress string `json:"neAddress"`
Status string `json:"status"` // 0: 在线 1: 下线 2: 备用 3: 工程
Status string `json:"status"` // 0: 在线 1: 下线 2: 备用 3: 待下发配置
UpdateTime string `json:"updateTime"`
HostIDs string `json:"hostIds"` // 网元主机ID组 数据格式(ssh,telnet,telnet)
@@ -24,5 +24,5 @@ type NeInfo struct {
ServerState map[string]any `json:"serverState,omitempty"`
// 主机对象组
Hosts []NeHost `json:"hosts,omitempty" binding:"hosts"`
Hosts []NeHost `json:"hosts,omitempty"`
}

View File

@@ -90,10 +90,24 @@ func (r *NeInfoImpl) SelectPage(query map[string]any, bandStatus bool) map[strin
(*arr)[i].ServerState = map[string]any{
"online": false,
}
// 网元状态设置为离线
if v.Status != "1" {
v.Status = "1"
r.neInfoRepository.Update(v)
}
continue
}
result["online"] = true
(*arr)[i].ServerState = result
// 网元状态设置为在线
if v.Status != "0" {
// 下发网管配置信息给网元
_, err = NeConfigOMC(v)
if err == nil {
v.Status = "0"
r.neInfoRepository.Update(v)
}
}
}
}
@@ -116,10 +130,24 @@ func (r *NeInfoImpl) SelectList(ne model.NeInfo, bandStatus bool) []model.NeInfo
(*neList)[i].ServerState = map[string]any{
"online": false,
}
// 网元状态设置为离线
if v.Status != "1" {
v.Status = "1"
r.neInfoRepository.Update(v)
}
continue
}
result["online"] = true
(*neList)[i].ServerState = result
// 网元状态设置为在线
if v.Status != "0" {
// 下发网管配置信息给网元
_, err = NeConfigOMC(v)
if err == nil {
v.Status = "0"
r.neInfoRepository.Update(v)
}
}
}
}