fix: alarm forward by sms and email issue
This commit is contained in:
@@ -137,6 +137,7 @@ alarm:
|
|||||||
password: xxxxxx
|
password: xxxxxx
|
||||||
# TLS skip verify: true/false
|
# TLS skip verify: true/false
|
||||||
tlsSkipVerify: true
|
tlsSkipVerify: true
|
||||||
|
smProxy: smsc
|
||||||
sms:
|
sms:
|
||||||
apiURL: http://smsc.xxx.com
|
apiURL: http://smsc.xxx.com
|
||||||
accessKeyID: xxx
|
accessKeyID: xxx
|
||||||
|
|||||||
@@ -1,49 +1,39 @@
|
|||||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
/*
|
||||||
--
|
Navicat Premium Data Transfer
|
||||||
-- Host: 192.168.2.219 Database: omc_db
|
|
||||||
-- ------------------------------------------------------
|
|
||||||
-- Server version 10.3.38-MariaDB
|
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
Source Server : local_mariadb
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
Source Server Type : MariaDB
|
||||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
Source Server Version : 100338 (10.3.38-MariaDB)
|
||||||
/*!40101 SET NAMES utf8mb4 */;
|
Source Host : localhost:33066
|
||||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
Source Schema : omc_db
|
||||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
|
||||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
||||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
||||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
||||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
||||||
|
|
||||||
--
|
Target Server Type : MariaDB
|
||||||
-- Table structure for table `alarm_forward_log`
|
Target Server Version : 100338 (10.3.38-MariaDB)
|
||||||
--
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 23/04/2024 14:05:00
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for alarm_forward_log
|
||||||
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `alarm_forward_log`;
|
DROP TABLE IF EXISTS `alarm_forward_log`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!40101 SET character_set_client = utf8 */;
|
|
||||||
CREATE TABLE `alarm_forward_log` (
|
CREATE TABLE `alarm_forward_log` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) DEFAULT NULL,
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`ne_id` varchar(32) DEFAULT NULL,
|
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`alarm_id` varchar(32) DEFAULT NULL,
|
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`alarm_title` varchar(255) DEFAULT NULL,
|
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`alarm_seq` varchar(20) DEFAULT NULL,
|
`alarm_seq` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`event_time` datetime DEFAULT NULL,
|
`event_time` datetime NULL DEFAULT NULL,
|
||||||
`to_user` varchar(255) DEFAULT NULL,
|
`interface` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`oper_result` varchar(255) DEFAULT NULL,
|
`to_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`log_time` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
`oper_result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
|
`log_time` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=209122 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
) ENGINE = InnoDB AUTO_INCREMENT = 209149 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
|
||||||
|
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
||||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
||||||
|
|
||||||
-- Dump completed on 2024-03-06 17:26:55
|
|
||||||
|
|||||||
@@ -187,3 +187,6 @@ ADD COLUMN IF NOT EXISTS `object_type` varchar(16) CHARACTER SET utf8mb4 COLLATE
|
|||||||
|
|
||||||
ALTER TABLE `omc_db`.`ne_state`
|
ALTER TABLE `omc_db`.`ne_state`
|
||||||
MODIFY COLUMN `expiry_date` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' AFTER `serial_num`;
|
MODIFY COLUMN `expiry_date` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' AFTER `serial_num`;
|
||||||
|
|
||||||
|
ALTER TABLE `omc_db`.`alarm_forward_log`
|
||||||
|
ADD COLUMN IF NOT EXISTS `interface` varchar(16) NULL AFTER `event_time`;
|
||||||
@@ -187,3 +187,6 @@ ADD COLUMN IF NOT EXISTS `object_type` varchar(16) CHARACTER SET utf8mb4 COLLATE
|
|||||||
|
|
||||||
ALTER TABLE `omc_db`.`ne_state`
|
ALTER TABLE `omc_db`.`ne_state`
|
||||||
MODIFY COLUMN `expiry_date` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' AFTER `serial_num`;
|
MODIFY COLUMN `expiry_date` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' AFTER `serial_num`;
|
||||||
|
|
||||||
|
ALTER TABLE `omc_db`.`alarm_forward_log`
|
||||||
|
ADD COLUMN IF NOT EXISTS `interface` varchar(16) NULL AFTER `event_time`;
|
||||||
@@ -142,7 +142,8 @@ func PostNeInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
services.ResponseInternalServerError500ProcessError(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
neInfo.UpdateTime = time.Now().Format(time.DateTime)
|
//neInfo.UpdateTime = time.Now().Format(time.DateTime)
|
||||||
|
neInfo.UpdateTime = time.Now()
|
||||||
log.Debug("NE info:", neInfo)
|
log.Debug("NE info:", neInfo)
|
||||||
|
|
||||||
//if !config.GetYamlConfig().OMC.Chk2Ne {
|
//if !config.GetYamlConfig().OMC.Chk2Ne {
|
||||||
@@ -252,7 +253,7 @@ func PutNeInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
neInfo := new(dborm.NeInfo)
|
neInfo := new(dborm.NeInfo)
|
||||||
_ = json.Unmarshal(body, neInfo)
|
_ = json.Unmarshal(body, neInfo)
|
||||||
neInfo.NeType = strings.ToUpper(neType)
|
neInfo.NeType = strings.ToUpper(neType)
|
||||||
neInfo.UpdateTime = time.Now().Format(time.DateTime)
|
neInfo.UpdateTime = time.Now()
|
||||||
log.Debug("NE info:", neInfo)
|
log.Debug("NE info:", neInfo)
|
||||||
|
|
||||||
//if !config.GetYamlConfig().OMC.Chk2Ne {
|
//if !config.GetYamlConfig().OMC.Chk2Ne {
|
||||||
|
|||||||
@@ -461,8 +461,8 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
if err = AlarmEmailForward(&alarmData); err != nil {
|
if err = AlarmEmailForward(&alarmData); err != nil {
|
||||||
log.Error("Failed to AlarmEmailForward:", err)
|
log.Error("Failed to AlarmEmailForward:", err)
|
||||||
}
|
}
|
||||||
if err = AlarmForwardBySMPP(&alarmData); err != nil {
|
if err = AlarmSMSForward(&alarmData); err != nil {
|
||||||
log.Error("Failed to AlarmForwardBySMPP:", err)
|
log.Error("Failed to AlarmSMSForward:", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -735,8 +735,8 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
if err = AlarmEmailForward(&alarmData); err != nil {
|
if err = AlarmEmailForward(&alarmData); err != nil {
|
||||||
log.Error("Failed to AlarmEmailForward:", err)
|
log.Error("Failed to AlarmEmailForward:", err)
|
||||||
}
|
}
|
||||||
if err = AlarmForwardBySMPP(&alarmData); err != nil {
|
if err = AlarmSMSForward(&alarmData); err != nil {
|
||||||
log.Error("Failed to AlarmForwardBySMPP:", err)
|
log.Error("Failed to AlarmSMSForward:", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"be.ems/lib/dborm"
|
"be.ems/lib/dborm"
|
||||||
@@ -15,7 +16,24 @@ import (
|
|||||||
"github.com/linxGnu/gosmpp/pdu"
|
"github.com/linxGnu/gosmpp/pdu"
|
||||||
)
|
)
|
||||||
|
|
||||||
func AlarmForwardBySMS(alarmData *Alarm) error {
|
func AlarmSMSForward(alarmData *Alarm) error {
|
||||||
|
switch config.GetYamlConfig().Alarm.SMProxy {
|
||||||
|
case "sms":
|
||||||
|
users, err := AlarmForwardBySMS(alarmData)
|
||||||
|
writeLog(alarmData, users, "SMS", err)
|
||||||
|
return err
|
||||||
|
case "smsc":
|
||||||
|
users, err := AlarmForwardBySMPP(alarmData)
|
||||||
|
writeLog(alarmData, users, "SMS", err)
|
||||||
|
return err
|
||||||
|
default:
|
||||||
|
users, err := AlarmForwardBySMPP(alarmData)
|
||||||
|
writeLog(alarmData, users, "SMS", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func AlarmForwardBySMS(alarmData *Alarm) (string, error) {
|
||||||
log.Info("AlarmForwardBySMS processing... ")
|
log.Info("AlarmForwardBySMS processing... ")
|
||||||
|
|
||||||
SMSFforwardconfig := config.GetYamlConfig().Alarm.SMS
|
SMSFforwardconfig := config.GetYamlConfig().Alarm.SMS
|
||||||
@@ -29,17 +47,17 @@ func AlarmForwardBySMS(alarmData *Alarm) error {
|
|||||||
toUsers, err := dborm.XormGetAlarmForward("SMS")
|
toUsers, err := dborm.XormGetAlarmForward("SMS")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Failed to XormGetAlarmForward:", err)
|
log.Error("Failed to XormGetAlarmForward:", err)
|
||||||
return err
|
return "", err
|
||||||
} else if toUsers == nil {
|
} else if toUsers == nil {
|
||||||
err := errors.New("not found forward phone number")
|
err := errors.New("not found forward phone number")
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
|
userList := strings.Join(*toUsers, ",")
|
||||||
|
|
||||||
for _, toUser := range *toUsers {
|
|
||||||
// 短信相关参数
|
// 短信相关参数
|
||||||
params := url.Values{}
|
params := url.Values{}
|
||||||
params.Set("PhoneNumbers", toUser)
|
params.Set("PhoneNumbers", userList)
|
||||||
params.Set("SignName", SMSFforwardconfig.SignName)
|
params.Set("SignName", SMSFforwardconfig.SignName)
|
||||||
params.Set("TemplateCode", SMSFforwardconfig.TemplateCode)
|
params.Set("TemplateCode", SMSFforwardconfig.TemplateCode)
|
||||||
params.Set("TemplateParam", `{"message":"alarm"}`)
|
params.Set("TemplateParam", `{"message":"alarm"}`)
|
||||||
@@ -51,64 +69,47 @@ func AlarmForwardBySMS(alarmData *Alarm) error {
|
|||||||
req, err := http.NewRequest("GET", reqURL, nil)
|
req, err := http.NewRequest("GET", reqURL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Failed to create request:", err)
|
log.Error("Failed to create request:", err)
|
||||||
return err
|
return userList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加请求头部
|
// 添加请求头部
|
||||||
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||||||
req.Header.Set("Authorization", "APPCODE "+accessKeySecret)
|
req.Header.Set("Authorization", "APPCODE "+accessKeySecret)
|
||||||
|
|
||||||
forwardLog := &dborm.AlarmForwardLog{
|
|
||||||
NeType: alarmData.NeType,
|
|
||||||
NeID: alarmData.NeId,
|
|
||||||
AlarmID: alarmData.AlarmId,
|
|
||||||
AlarmTitle: alarmData.AlarmTitle,
|
|
||||||
AlarmSeq: alarmData.AlarmSeq,
|
|
||||||
EventTime: alarmData.EventTime,
|
|
||||||
ToUser: toUser,
|
|
||||||
}
|
|
||||||
// 发送请求
|
// 发送请求
|
||||||
client := &http.Client{}
|
client := &http.Client{}
|
||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
operResult := fmt.Sprintf("Failed to send request:%v", err)
|
log.Error("Failed to send request:%v", err)
|
||||||
log.Error(operResult)
|
return userList, err
|
||||||
forwardLog.OperResult = operResult
|
|
||||||
affected, err := dborm.XormInsertAlarmForwardLog(forwardLog)
|
|
||||||
if err != nil && affected <= 0 {
|
|
||||||
log.Error("Failed to insert data:", err)
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
// 解析响应
|
// 解析响应
|
||||||
if resp.StatusCode == http.StatusOK {
|
switch resp.StatusCode {
|
||||||
operResult := "SMS sent successfully!"
|
case http.StatusOK, http.StatusAccepted, http.StatusNoContent, http.StatusCreated:
|
||||||
log.Info(operResult)
|
return userList, nil
|
||||||
forwardLog.OperResult = operResult
|
default:
|
||||||
affected, err := dborm.XormInsertAlarmForwardLog(forwardLog)
|
err := fmt.Errorf("Failed to send SMS: %s(Code=%d)", resp.Status, resp.StatusCode)
|
||||||
if err != nil && affected <= 0 {
|
log.Error(err)
|
||||||
log.Error("Failed to insert data:", err)
|
return userList, err
|
||||||
continue
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
operResult := fmt.Sprintf("Failed to send SMS, StatusCode=%d", resp.StatusCode)
|
|
||||||
log.Error(operResult)
|
|
||||||
forwardLog.OperResult = operResult
|
|
||||||
affected, err := dborm.XormInsertAlarmForwardLog(forwardLog)
|
|
||||||
if err != nil && affected <= 0 {
|
|
||||||
log.Error("Failed to insert data:", err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func AlarmForwardBySMPP(alarmData *Alarm) error {
|
func AlarmForwardBySMPP(alarmData *Alarm) (string, error) {
|
||||||
log.Info("AlarmForwardBySMPP processing... ")
|
log.Info("AlarmForwardBySMPP processing... ")
|
||||||
|
|
||||||
|
toUsers, err := dborm.XormGetAlarmForward("SMS")
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to XormGetAlarmForward:", err)
|
||||||
|
return "", err
|
||||||
|
} else if toUsers == nil {
|
||||||
|
err := errors.New("not found forward phone number")
|
||||||
|
log.Error(err)
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
userList := strings.Join(*toUsers, ",")
|
||||||
|
|
||||||
auth := gosmpp.Auth{
|
auth := gosmpp.Auth{
|
||||||
SMSC: config.GetYamlConfig().Alarm.SMSC.Addr,
|
SMSC: config.GetYamlConfig().Alarm.SMSC.Addr,
|
||||||
SystemID: config.GetYamlConfig().Alarm.SMSC.SystemID,
|
SystemID: config.GetYamlConfig().Alarm.SMSC.SystemID,
|
||||||
@@ -142,23 +143,33 @@ func AlarmForwardBySMPP(alarmData *Alarm) error {
|
|||||||
}, -1)
|
}, -1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Failed to create SMPP new session:", err)
|
log.Error("Failed to create SMPP new session:", err)
|
||||||
return err
|
return userList, err
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
_ = trans.Close()
|
_ = trans.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
toUsers, err := dborm.XormGetAlarmForward("SMS")
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to XormGetAlarmForward:", err)
|
|
||||||
return err
|
|
||||||
} else if toUsers == nil {
|
|
||||||
err := errors.New("not found forward phone number")
|
|
||||||
log.Error(err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// sending SMS(s)
|
// sending SMS(s)
|
||||||
for _, toUser := range *toUsers {
|
// var results []string
|
||||||
|
// for _, toUser := range *toUsers {
|
||||||
|
message := "Alarm Notification: " + alarmData.AlarmTitle + " from " + alarmData.NeType + " " + alarmData.NeId + " at " + alarmData.EventTime
|
||||||
|
if err = trans.Transceiver().Submit(newSubmitSM(userList, message)); err != nil {
|
||||||
|
// result := fmt.Sprintf("Failed to submit %s hort message:%s", toUser, err.Error())
|
||||||
|
// results = append(results, result)
|
||||||
|
log.Error("Failed to submit hort message:", err)
|
||||||
|
return userList, err
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
return userList, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func writeLog(alarmData *Alarm, toUser, forwardBy string, err error) error {
|
||||||
|
var result string
|
||||||
|
if err == nil {
|
||||||
|
result = "SMS sent successfully"
|
||||||
|
} else {
|
||||||
|
result = err.Error()
|
||||||
|
}
|
||||||
forwardLog := &dborm.AlarmForwardLog{
|
forwardLog := &dborm.AlarmForwardLog{
|
||||||
NeType: alarmData.NeType,
|
NeType: alarmData.NeType,
|
||||||
NeID: alarmData.NeId,
|
NeID: alarmData.NeId,
|
||||||
@@ -166,24 +177,15 @@ func AlarmForwardBySMPP(alarmData *Alarm) error {
|
|||||||
AlarmTitle: alarmData.AlarmTitle,
|
AlarmTitle: alarmData.AlarmTitle,
|
||||||
AlarmSeq: alarmData.AlarmSeq,
|
AlarmSeq: alarmData.AlarmSeq,
|
||||||
EventTime: alarmData.EventTime,
|
EventTime: alarmData.EventTime,
|
||||||
|
Interface: forwardBy,
|
||||||
ToUser: toUser,
|
ToUser: toUser,
|
||||||
}
|
OperResult: result,
|
||||||
message := "Alarm Notification: " + alarmData.AlarmTitle + " from " + alarmData.NeType + " " + alarmData.NeId + " at " + alarmData.EventTime
|
|
||||||
if err = trans.Transceiver().Submit(newSubmitSM(toUser, message)); err != nil {
|
|
||||||
operResult := fmt.Sprintf("Failed to submit short message:%v", err)
|
|
||||||
log.Error(operResult)
|
|
||||||
forwardLog.OperResult = operResult
|
|
||||||
} else {
|
|
||||||
operResult := "SMS sent successfully!"
|
|
||||||
log.Trace(operResult)
|
|
||||||
forwardLog.OperResult = operResult
|
|
||||||
}
|
}
|
||||||
|
|
||||||
affected, err := dborm.XormInsertAlarmForwardLog(forwardLog)
|
affected, err := dborm.XormInsertAlarmForwardLog(forwardLog)
|
||||||
if err != nil && affected <= 0 {
|
if err != nil && affected <= 0 {
|
||||||
log.Error("Failed to insert data:", err)
|
log.Error("Failed to insert data:", err)
|
||||||
continue
|
return err
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ type NeInfo struct {
|
|||||||
VendorName string `json:"vendorName" xorm:"vendor_name"` // 厂商名称
|
VendorName string `json:"vendorName" xorm:"vendor_name"` // 厂商名称
|
||||||
Dn string `json:"dn" xorm:"dn"` // 网络标识
|
Dn string `json:"dn" xorm:"dn"` // 网络标识
|
||||||
Status int `json:"status" xorm:"status"`
|
Status int `json:"status" xorm:"status"`
|
||||||
UpdateTime string `json:"-" xorm:"-"`
|
UpdateTime time.Time `json:"updateTime" xorm:"<-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func XormGetMySQLVersion() (string, error) {
|
func XormGetMySQLVersion() (string, error) {
|
||||||
@@ -1634,9 +1634,10 @@ type AlarmForwardLog struct {
|
|||||||
AlarmTitle string `json:"alarmTitle" xorm:"alarm_title"`
|
AlarmTitle string `json:"alarmTitle" xorm:"alarm_title"`
|
||||||
AlarmSeq int `json:"alarmSeq" xorm:"alarm_seq"`
|
AlarmSeq int `json:"alarmSeq" xorm:"alarm_seq"`
|
||||||
EventTime string `json:"eventTime" xorm:"event_time"`
|
EventTime string `json:"eventTime" xorm:"event_time"`
|
||||||
|
Interface string `json:"interface" xorm:"interface"`
|
||||||
ToUser string `json:"toUser" xorm:"to_user"`
|
ToUser string `json:"toUser" xorm:"to_user"`
|
||||||
OperResult string `json:"operResult" xorm:"oper_result"`
|
OperResult string `json:"operResult" xorm:"oper_result"`
|
||||||
LogTime string `json:"-" xorm:"-"`
|
LogTime string `json:"logTime" xorm:"<-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func XormInsertAlarmForwardLog(logData *AlarmForwardLog) (int64, error) {
|
func XormInsertAlarmForwardLog(logData *AlarmForwardLog) (int64, error) {
|
||||||
@@ -1671,7 +1672,7 @@ func XormInsertSystemLog(logData *SystemLog) (int64, error) {
|
|||||||
return affected, err
|
return affected, err
|
||||||
}
|
}
|
||||||
|
|
||||||
type permission struct {
|
type Permission struct {
|
||||||
ID int `json:"-" xorm:"pk 'id' autoincr"`
|
ID int `json:"-" xorm:"pk 'id' autoincr"`
|
||||||
PermissionName string `json:"permissionName"`
|
PermissionName string `json:"permissionName"`
|
||||||
Method string `json:"method"`
|
Method string `json:"method"`
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ type YamlConfig struct {
|
|||||||
|
|
||||||
Alarm struct {
|
Alarm struct {
|
||||||
ForwardAlarm bool `yaml:"forwardAlarm"`
|
ForwardAlarm bool `yaml:"forwardAlarm"`
|
||||||
|
SMProxy string `yaml:"smProxy"`
|
||||||
Email struct {
|
Email struct {
|
||||||
Smtp string `yaml:"smtp"`
|
Smtp string `yaml:"smtp"`
|
||||||
Port uint16 `yaml:"port"`
|
Port uint16 `yaml:"port"`
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ omc:
|
|||||||
# Alarm module setting
|
# Alarm module setting
|
||||||
# Forward interface:
|
# Forward interface:
|
||||||
# email/sms
|
# email/sms
|
||||||
|
# smProxy: sms(Short Message Service)/smsc(SMS Centre)
|
||||||
alarm:
|
alarm:
|
||||||
forwardAlarm: true
|
forwardAlarm: true
|
||||||
email:
|
email:
|
||||||
@@ -137,8 +138,9 @@ alarm:
|
|||||||
password: "1000smtp@omc!"
|
password: "1000smtp@omc!"
|
||||||
# TLS skip verify: true/false
|
# TLS skip verify: true/false
|
||||||
tlsSkipVerify: true
|
tlsSkipVerify: true
|
||||||
|
smProxy: smsc
|
||||||
sms:
|
sms:
|
||||||
apiURL: http://smsc.xxx.com.cn/
|
apiURL: http://smsc.xxx.com/
|
||||||
accessKeyID: xxxx
|
accessKeyID: xxxx
|
||||||
accessKeySecret: xxxx
|
accessKeySecret: xxxx
|
||||||
signName: xxx SMSC
|
signName: xxx SMSC
|
||||||
|
|||||||
Reference in New Issue
Block a user