This commit is contained in:
TsMask
2023-08-17 10:40:15 +08:00
57 changed files with 625 additions and 1809 deletions

View File

@@ -235,12 +235,15 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
//services.ResponseInternalServerError500ProcessError(w, err)
//return
}
log.Debug("valueJson:", valueJson)
session := xEngine.NewSession()
defer session.Close()
log.Trace("valueJson:", valueJson)
// session := xEngine.NewSession()
// defer session.Close()
var activeAlarmNum int = 0
for _, alarmData := range *alarmArray {
log.Debug("alarmData:", alarmData)
session := xEngine.NewSession()
defer session.Close()
if alarmData.AlarmStatus == AlarmStatusClear {
alarmData.ClearType = ClearTypeAutoClear
alarmData.ClearTime.Valid = true
@@ -267,7 +270,7 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
continue
}
}
log.Debug("alarmData:", alarmData)
log.Trace("alarmData:", alarmData)
var currentSeq string
var seq int
has, err := xEngine.Table("alarm").
@@ -325,6 +328,7 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
continue
}
}
session.Commit()
// for alarm forward time format
alarmData.EventTime = eventTime
} else {
@@ -350,11 +354,12 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
log.Error("Failed to get alarm:", err)
continue
}
log.Debugf("neType=%s, neId=%s, currentSeq=%s", alarmData.NeType, alarmData.NeId, currentSeq)
log.Debugf("neType=%s, neId=%s, currentSeq=%s activeAlarmNum=%d",
alarmData.NeType, alarmData.NeId, currentSeq, activeAlarmNum)
if has == true {
seq, _ := strconv.Atoi(currentSeq)
alarmData.AlarmSeq = seq + activeAlarmNum
alarmData.AlarmSeq = seq + 1
if alarmData.AlarmSeq > global.MaxInt32Number {
alarmData.AlarmSeq = AlarmSeqBeginNumber
}
@@ -420,12 +425,13 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
alarmLog.AlarmCode = alarmData.AlarmCode
alarmLog.AlarmStatus = alarmData.AlarmStatus
alarmLog.EventTime = eventTime
log.Debug("alarmLog:", alarmLog)
log.Trace("alarmLog:", alarmLog)
affected, err = session.Insert(alarmLog)
if err != nil && affected <= 0 {
log.Error("Failed to insert alarm_log:", err)
}
session.Commit()
}
if config.GetYamlConfig().Alarm.ForwardAlarm {
if err = AlarmEmailForward(&alarmData); err != nil {
@@ -437,7 +443,6 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
}
}
session.Commit()
services.ResponseStatusOK200Null(w)
}
@@ -487,11 +492,14 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
//services.ResponseInternalServerError500ProcessError(w, err)
continue
}
session := xEngine.NewSession()
defer session.Close()
// session := xEngine.NewSession()
// defer session.Close()
var activeAlarmNum int = 0
for _, alarmData := range *alarmArray {
log.Debug("alarmData:", alarmData)
session := xEngine.NewSession()
defer session.Close()
// todo: clear alarm ....
if alarmData.AlarmStatus == AlarmStatusClear {
exist, err := session.Table("alarm").
@@ -571,7 +579,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
continue
}
}
session.Commit()
// for alarm forward time format
alarmData.EventTime = eventTime
} else {
@@ -597,11 +605,12 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
log.Error("Failed to get alarm:", err)
continue
}
log.Debugf("neType=%s, neId=%s, currentSeq=%s", alarmData.NeType, alarmData.NeId, currentSeq)
log.Debugf("neType=%s, neId=%s, currentSeq=%s, activeAlarmNum=%d",
alarmData.NeType, alarmData.NeId, currentSeq, activeAlarmNum)
if has == true {
seq, _ := strconv.Atoi(currentSeq)
alarmData.AlarmSeq = seq + activeAlarmNum
alarmData.AlarmSeq = seq + 1
if alarmData.AlarmSeq > global.MaxInt32Number {
alarmData.AlarmSeq = AlarmSeqBeginNumber
}
@@ -646,7 +655,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
if IsNeedToAckAlarm(valueJson, &alarmData) == true {
SetAlarmAckInfo(valueJson, &alarmData)
}
log.Debug("alarmData:", alarmData)
log.Trace("alarmData:", alarmData)
affected, err := session.Insert(alarmData)
if err == nil && affected > 0 {
alarmLog := new(AlarmLog)

View File

@@ -50,6 +50,12 @@ var (
func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
log.Debug("PostMMLToNF processing... ")
token, err := services.CheckExtValidRequest(w, r)
if err != nil {
log.Error("Request error:", err)
return
}
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
params := r.URL.Query()
@@ -61,14 +67,36 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
}
log.Debug("neType:", neType, "neId", neId)
if strings.ToLower(neType) == "omc" {
PostMMLToOMC(w, r)
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, neType, neId[0])
var buf [8192]byte
var n int
var mmlResult []string
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), neType, neId[0])
if err != nil {
log.Error("Failed to get permission:", err)
errMsg := fmt.Sprintf("RetCode = -1 operation failed: do not have the operation permissions")
log.Error(errMsg)
mmlResult = append(mmlResult, errMsg)
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
//services.ResponseForbidden403NotPermission(w)
return
}
if !exist {
log.Error("Not permission!")
errMsg := fmt.Sprintf("RetCode = -1 operation failed: do not have the operation permissions")
log.Error(errMsg)
mmlResult = append(mmlResult, errMsg)
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
//services.ResponseForbidden403NotPermission(w)
return
}
_, err := services.CheckExtValidRequest(w, r)
if err != nil {
log.Error("Failed to CheckMmlValidRequest:", err)
if strings.ToLower(neType) == "omc" {
PostMMLToOMC(w, r)
return
}
@@ -80,10 +108,6 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
return
}
var buf [8192]byte
var n int
var mmlResult []string
if neInfo != nil {
hostMML := fmt.Sprintf("%s:%d", neInfo.Ip, config.GetYamlConfig().MML.Port)
conn, err := net.Dial("tcp", hostMML)

View File

@@ -129,7 +129,7 @@ func CheckLocalRmUID(rmUIDs []string) string {
}
func NBIGetNRMFromNF(w http.ResponseWriter, r *http.Request) {
log.Debug("NorthGetNRMFromNF processing... ")
log.Debug("NBIGetNRMFromNF processing... ")
// response 414-4 uri too long ? (optional)
// todo ... ?
@@ -220,19 +220,9 @@ func NBIGetNRMFromNF(w http.ResponseWriter, r *http.Request) {
services.ResponseRequestURITooLong414NRMNumExceed(w, config.GetYamlConfig().Params.RmUIDMaxNum)
return
}
/*
// response 400-1
// check rmUID is valid
// todo ...
invalidRmUIDs := CheckValidRmUID(rmUIDValues)
if len(invalidRmUIDs) != 0 {
log.Debug("rmUID is invalid")
services.ResponseBadRequest400RmUIDsIsInvalid(w, invalidRmUIDs)
return
}
*/
var response *resty.Response
// respMsg := make(map[string]interface{})
respMsg := make(map[string]interface{})
for _, rmUID := range rmUIDValues {
neInfo, err := dborm.XormGetNeInfoByRmUID(neType, rmUID)
if err != nil {
@@ -255,16 +245,14 @@ func NBIGetNRMFromNF(w http.ResponseWriter, r *http.Request) {
services.ResponseInternalServerError500NFConnectRefused(w)
return
}
/*
switch response.StatusCode() {
case http.StatusOK, http.StatusAccepted, http.StatusNoContent, http.StatusCreated:
respMsg["data"] = response
default:
if response != nil {
services.TransportResponse(w, response.StatusCode(), response.Body())
}
switch response.StatusCode() {
case http.StatusOK, http.StatusAccepted, http.StatusNoContent, http.StatusCreated:
respMsg["data"] = response
default:
if response != nil {
services.TransportResponse(w, response.StatusCode(), response.Body())
}
*/
}
}
services.TransportResponse(w, response.StatusCode(), response.Body())

View File

@@ -89,6 +89,8 @@ func PostTraceTaskToNF(w http.ResponseWriter, r *http.Request) {
services.ResponseInternalServerError500ProcessError(w, err)
return
}
} else {
neTypes = []string{"AMF", "SMF", "UDM", "AUSF", "UPF"}
}
} else {
neTypes = append(neTypes, traceTask.NeType)
@@ -215,7 +217,10 @@ func PutTraceTaskToNF(w http.ResponseWriter, r *http.Request) {
services.ResponseInternalServerError500ProcessError(w, err)
return
}
} else {
neTypes = []string{"AMF", "SMF", "UDM", "AUSF", "UPF"}
}
} else {
neTypes = append(neTypes, traceTask.NeType)
}