feat: 支持修改邮件标题,告警转发默认关闭
This commit is contained in:
@@ -17,6 +17,7 @@ import (
|
||||
"be.ems/lib/services"
|
||||
"be.ems/src/framework/constants"
|
||||
"be.ems/src/framework/resp"
|
||||
"be.ems/src/framework/utils/date"
|
||||
neDataModel "be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
traceService "be.ems/src/modules/trace/service"
|
||||
@@ -270,13 +271,14 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
||||
var activeAlarmNum int = 0
|
||||
for _, alarmData := range *alarmArray {
|
||||
log.Debug("alarmData:", alarmData)
|
||||
tm, _ := time.Parse(time.RFC3339, alarmData.EventTime)
|
||||
eventTimeGMT := date.ParseDateToStr(tm, date.YYYY_MM_DD_HH_MM_SS_GMT_TZ)
|
||||
|
||||
session := xEngine.NewSession()
|
||||
defer session.Close()
|
||||
if alarmData.AlarmStatus == AlarmStatusClear {
|
||||
alarmData.ClearType = ClearTypeAutoClear
|
||||
alarmData.ClearTime.Valid = true
|
||||
tm, _ := time.Parse(time.RFC3339, alarmData.EventTime)
|
||||
log.Debugf("EventTime:%s tm:%d tm-datetime:%s", alarmData.EventTime, tm, tm.Local().Format(time.DateTime))
|
||||
alarmData.ClearTime.Time = tm
|
||||
if IsNeedToAckAlarm(valueJson, &alarmData) {
|
||||
@@ -471,7 +473,9 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
session.Commit()
|
||||
}
|
||||
|
||||
if config.GetYamlConfig().Alarm.EmailForward.Enable {
|
||||
alarmData.EventTime = eventTimeGMT
|
||||
if err = AlarmEmailForward(&alarmData); err != nil {
|
||||
log.Error("Failed to AlarmEmailForward:", err)
|
||||
}
|
||||
|
||||
@@ -4,34 +4,41 @@ import (
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/lib/config"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/global"
|
||||
"be.ems/lib/log"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
|
||||
"gopkg.in/gomail.v2"
|
||||
)
|
||||
|
||||
func AlarmEmailForward(alarmData *Alarm) error {
|
||||
log.Info("AlarmEmailForward processing... ")
|
||||
neInfo := neService.NewNeInfo.SelectNeInfoByRmuid(alarmData.NeId)
|
||||
|
||||
alarmStatus := "Clear"
|
||||
if alarmData.AlarmStatus == 1 {
|
||||
alarmStatus = "Active"
|
||||
}
|
||||
severity := alarmData.OrigSeverity
|
||||
subjectTime := fmt.Sprintf("%s-%s-%s", severity, alarmData.NeName, alarmData.AlarmTitle)
|
||||
|
||||
subjectTitle := config.GetYamlConfig().Alarm.EmailForward.Title
|
||||
if subjectTitle == "" {
|
||||
severity := alarmData.OrigSeverity
|
||||
subjectTitle = fmt.Sprintf("%s-%s-%s", severity, alarmData.NeName, alarmData.AlarmTitle)
|
||||
}
|
||||
message := fmt.Sprintf(`
|
||||
<p>Alarm information</p>
|
||||
<p style="text-indent:2.5em">Sequence: %d</p>
|
||||
<p style="text-indent:3em">NE name: %s</p>
|
||||
<p style="text-indent:4em">Title: %s</p>
|
||||
<p style="text-indent:3em">NE IP: %s</p>
|
||||
<p style="text-indent:4em">Alarm Title: %s</p>
|
||||
<p style="text-indent:2.5em">Severity: %s</p>
|
||||
<p style="text-indent:1.5em">Event Time: %s</p>
|
||||
<p style="text-indent:0.5em">Alarm Status: %s</p>
|
||||
<p>Automatic sent by OMC, please do not reply!</p>
|
||||
`, alarmData.AlarmSeq, alarmData.NeName, alarmData.AlarmTitle, alarmData.OrigSeverity, alarmData.EventTime, alarmStatus)
|
||||
`, alarmData.AlarmSeq, alarmData.NeName, neInfo.IP, alarmData.AlarmTitle, alarmData.OrigSeverity, alarmData.EventTime, alarmStatus)
|
||||
|
||||
// message := fmt.Sprintf(`
|
||||
// Alarm information
|
||||
@@ -73,13 +80,14 @@ func AlarmEmailForward(alarmData *Alarm) error {
|
||||
// return err
|
||||
// }
|
||||
emails := strings.Split(config.GetYamlConfig().Alarm.EmailForward.EmailList, ",")
|
||||
eventTime := global.GetFmtTimeString(time.RFC3339, alarmData.EventTime, time.DateTime)
|
||||
forwardLog := &dborm.AlarmForwardLog{
|
||||
NeType: alarmData.NeType,
|
||||
NeID: alarmData.NeId,
|
||||
AlarmID: alarmData.AlarmId,
|
||||
AlarmTitle: alarmData.AlarmTitle,
|
||||
AlarmSeq: alarmData.AlarmSeq,
|
||||
EventTime: alarmData.EventTime,
|
||||
EventTime: eventTime,
|
||||
ToUser: config.GetYamlConfig().Alarm.EmailForward.EmailList,
|
||||
}
|
||||
|
||||
@@ -88,7 +96,7 @@ func AlarmEmailForward(alarmData *Alarm) error {
|
||||
//m.SetHeader("To", "zhangshuzhong@agrandtech.com", "simonzhangsz@outlook.com") // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
|
||||
//m.SetHeader("Cc", "******@qq.com") // 抄送,可以多个
|
||||
//m.SetHeader("Bcc", "******@qq.com") // 暗送,可以多个
|
||||
m.SetHeader("Subject", subjectTime) // 邮件主题
|
||||
m.SetHeader("Subject", subjectTitle) // 邮件主题
|
||||
|
||||
// text/html 的意思是将文件的 content-type 设置为 text/html 的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。
|
||||
// 可以通过 text/html 处理文本格式进行特殊处理,如换行、缩进、加粗等等
|
||||
|
||||
Reference in New Issue
Block a user