feat: 新增函数定义
This commit is contained in:
@@ -1,15 +1,20 @@
|
||||
package constants
|
||||
|
||||
// 告警 alarmCode 常量
|
||||
const (
|
||||
// ALARM_EVENT_REBOOT 事件-网元重启
|
||||
ALARM_EVENT_REBOOT = 9000
|
||||
// ALARM_STATE_CHECK 告警-状态检查
|
||||
ALARM_STATE_CHECK = 10000
|
||||
// ALARM_RAM_CPU_CHECK 告警-内存/CPU/磁盘检查
|
||||
ALARM_CMD_CHECK = 10001
|
||||
// ALARM_LICENSE_CHECK 告警-网元License到期检查
|
||||
ALARM_LICENSE_CHECK = 10002
|
||||
// ALARM_UDM_DB_SYNC 告警-UDM DB同步检查
|
||||
ALARM_UDM_DB_SYNC = 10003
|
||||
ALARM_EVENT_REBOOT = 9000 // 告警Code-事件-网元重启
|
||||
ALARM_STATE_CHECK = 10000 // 告警Code-状态检查
|
||||
ALARM_CMD_CHECK = 10001 // 告警Code-内存/CPU/磁盘检查
|
||||
ALARM_LICENSE_CHECK = 10002 // 告警Code-网元License到期检查
|
||||
ALARM_UDM_DB_SYNC = 10003 // 告警Code-UDM DB同步检查
|
||||
)
|
||||
|
||||
const (
|
||||
ALARM_ACK_STATE_NOT_ACK = "NotAck" // 告警确认状态-未确认
|
||||
ALARM_ACK_STATE_ACK = "Ack" // 告警确认状态-已确认
|
||||
)
|
||||
|
||||
const (
|
||||
ALARM_CLEAR_TYPE_NOT_CLEAR = "NotClear" // 告警清除状态-未清除
|
||||
ALARM_CLEAR_TYPE_AUTO_CLEAR = "AutoClear" // 告警清除状态-自动清除
|
||||
ALARM_CLEAR_TYPE_MANUAL_CLEAR = "ManualClear" // 告警清除状态-手动清除
|
||||
)
|
||||
|
||||
44
src/framework/utils/expr/expr.go
Normal file
44
src/framework/utils/expr/expr.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package expr
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/expr-lang/expr"
|
||||
)
|
||||
|
||||
// Eval 计算表达式返回结果
|
||||
func Eval(exprStr string, env map[string]any) (any, error) {
|
||||
return expr.Eval(exprStr, env)
|
||||
}
|
||||
|
||||
// ParseExprEnv 解析表达式环境变量
|
||||
// 比如 "('SMF.03'/'SMF.04')*100"
|
||||
// 变量传入"SMF.03": 3
|
||||
func ParseExprEnv(exprStr string, env map[string]any) (string, map[string]any) {
|
||||
// 使用正则表达式匹配带单引号的变量名
|
||||
re := regexp.MustCompile(`'([^']+)'`)
|
||||
tempEnv := make(map[string]any)
|
||||
tempExpr := exprStr
|
||||
varCount := 0
|
||||
matches := re.FindAllStringSubmatch(exprStr, -1)
|
||||
for _, match := range matches {
|
||||
paramName := match[1]
|
||||
tempVarName := fmt.Sprintf("var%d", varCount)
|
||||
tempEnv[tempVarName] = env[paramName]
|
||||
tempExpr = strings.Replace(tempExpr, match[0], tempVarName, 1)
|
||||
varCount++
|
||||
}
|
||||
|
||||
// 合并临时环境变量和原环境变量
|
||||
combinedEnv := make(map[string]any)
|
||||
for k, v := range env {
|
||||
combinedEnv[k] = v
|
||||
}
|
||||
for k, v := range tempEnv {
|
||||
combinedEnv[k] = v
|
||||
}
|
||||
|
||||
return tempExpr, combinedEnv
|
||||
}
|
||||
Reference in New Issue
Block a user