Merge branch 'lichang' into lite
This commit is contained in:
@@ -5,13 +5,10 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/lib/config"
|
||||
"be.ems/lib/core/ctx"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/global"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/lib/services"
|
||||
@@ -105,32 +102,7 @@ var (
|
||||
CustomUriAlarmsFmt = config.UriPrefix + "/faultManagement/v1/elementType/%s/objectType/alarms"
|
||||
)
|
||||
|
||||
func IsNeedToAckAlarm(valueJson *dborm.ValueJson, alarm *Alarm) bool {
|
||||
log.Info("IsNeedToAckAlarm processing... ")
|
||||
if valueJson != nil {
|
||||
status, _ := strconv.Atoi(valueJson.AlarmStatus)
|
||||
log.Tracef("alarm.AlarmStatus=%d, alarm.AlarmType=%s, alarm.OrigSeverity=%s", alarm.AlarmStatus, alarm.AlarmType, alarm.OrigSeverity)
|
||||
log.Tracef("status=%d, valueJson.AlarmType=%s, valueJson.OrigSeverity=%s", status, valueJson.AlarmType, valueJson.OrigSeverity)
|
||||
|
||||
if alarm.AlarmStatus == status &&
|
||||
alarm.AlarmType == valueJson.AlarmType &&
|
||||
alarm.OrigSeverity == valueJson.OrigSeverity {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func SetAlarmAckInfo(valueJson *dborm.ValueJson, alarm *Alarm) {
|
||||
log.Info("SetAlarmAckInfo processing... ")
|
||||
alarm.AckState = AckStateAcked
|
||||
alarm.AckTime.Valid = true
|
||||
alarm.AckTime.Time = time.Now()
|
||||
alarm.AckUser = valueJson.AckUser
|
||||
}
|
||||
|
||||
// process alarm post message from NFs
|
||||
// PostAlarmFromNF 网元告警数据上报接收
|
||||
func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
||||
log.Debug("PostAlarmFromNF processing... ")
|
||||
apiVer := ctx.GetParam(r, "apiVersion")
|
||||
@@ -485,7 +457,7 @@ func alarmEventNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, erro
|
||||
}
|
||||
// 网元重启后,有跟踪任务的需要重新补发启动任务
|
||||
if v.AlarmCode == constants.ALARM_EVENT_REBOOT {
|
||||
traceService.NewTraceTask.RunUnstopped()
|
||||
traceService.NewTraceTask.RunUnstopped(neInfo.NeType, neInfo.NeId)
|
||||
}
|
||||
return alarmEvent, nil
|
||||
}
|
||||
@@ -512,7 +484,7 @@ func mapToAlarm(data []map[string]any) []Alarm {
|
||||
return result
|
||||
}
|
||||
|
||||
// process alarm get from NFs
|
||||
// GetAlarmFromNF 告警历史数据,从网元获取
|
||||
func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
||||
log.Debug("GetAlarmFromNF processing... ")
|
||||
neType := ctx.GetParam(r, "elementTypeValue")
|
||||
@@ -591,5 +563,5 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
}
|
||||
services.ResponseStatusOK204NoContent(w)
|
||||
services.ResponseWithJson(w, 200, resp.OkMsg("sync alarms success"))
|
||||
}
|
||||
|
||||
@@ -85,6 +85,9 @@ func AlarmEmailForward(alarmData *Alarm) error {
|
||||
// return err
|
||||
// }
|
||||
emails := strings.Split(config.GetYamlConfig().Alarm.EmailForward.EmailList, ",")
|
||||
if len(emails) == 0 {
|
||||
return fmt.Errorf("not found forward email list")
|
||||
}
|
||||
m.SetHeader("To", emails...) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
|
||||
//m.SetHeader("To", strings.Join(*emails, " ")) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
|
||||
//m.SetHeader("To", "zhangshuzhong@agrandtech.com", "simonzhangsz@outlook.com") // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
|
||||
|
||||
@@ -52,13 +52,18 @@ func AlarmForwardBySMS(alarmData *Alarm) (string, error) {
|
||||
if err != nil {
|
||||
log.Error("Failed to XormGetAlarmForward:", err)
|
||||
return "", err
|
||||
} else if toUsers == nil {
|
||||
}
|
||||
if toUsers == nil {
|
||||
err := errors.New("not found forward phone number")
|
||||
log.Error(err)
|
||||
return "", err
|
||||
}
|
||||
userList := strings.Join(*toUsers, ",")
|
||||
|
||||
if len(userList) == 0 {
|
||||
err := errors.New("not found forward phone number")
|
||||
log.Error(err)
|
||||
return "", err
|
||||
}
|
||||
// 短信相关参数
|
||||
params := url.Values{}
|
||||
params.Set("PhoneNumbers", userList)
|
||||
@@ -110,6 +115,11 @@ func AlarmForwardBySMPP(alarmData *Alarm) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
userList := smsForward.MobileList
|
||||
if len(userList) == 0 {
|
||||
err := errors.New("not found forward phone number")
|
||||
log.Error(err)
|
||||
return "", err
|
||||
}
|
||||
auth := gosmpp.Auth{
|
||||
SMSC: smsForward.SMSCAddr,
|
||||
SystemID: smsForward.SystemID,
|
||||
@@ -140,19 +150,22 @@ func AlarmForwardBySMPP(alarmData *Alarm) (string, error) {
|
||||
}, -1)
|
||||
if err != nil {
|
||||
log.Error("Failed to create SMPP new session:", err)
|
||||
return userList, err
|
||||
return "", err
|
||||
}
|
||||
// defer func() {
|
||||
// if err := trans.Close(); err != nil {
|
||||
// log.Error(err)
|
||||
// }
|
||||
// }()
|
||||
defer func() {
|
||||
if err := trans.Close(); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
}()
|
||||
|
||||
message := "Alarm Notification: " + alarmData.AlarmTitle +
|
||||
" from " + alarmData.NeType + "_" + alarmData.NeId +
|
||||
" at " + alarmData.EventTime
|
||||
users := strings.Split(userList, ",")
|
||||
for _, user := range users {
|
||||
if user == "" {
|
||||
continue
|
||||
}
|
||||
sm, err := newSubmitSM(user, message)
|
||||
if err != nil {
|
||||
log.Errorf("Failed to newSubmitSM %s short message: %v", user, err)
|
||||
|
||||
Reference in New Issue
Block a user