Merge remote-tracking branch 'origin/main' into lichang
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
# Makefile for rest agent project
|
# Makefile for rest agent project
|
||||||
|
|
||||||
PROJECT = OMC
|
PROJECT = OMC
|
||||||
VERSION = 2.2404.3
|
VERSION = 2.2404.4
|
||||||
PLATFORM = amd64
|
PLATFORM = amd64
|
||||||
ARMPLATFORM = aarch64
|
ARMPLATFORM = aarch64
|
||||||
BUILDDIR = ../../build
|
BUILDDIR = ../../build
|
||||||
|
|||||||
@@ -55,13 +55,13 @@ redis:
|
|||||||
default:
|
default:
|
||||||
port: 6379 # Redis port
|
port: 6379 # Redis port
|
||||||
host: "127.0.0.1" # Redis host
|
host: "127.0.0.1" # Redis host
|
||||||
password: ""
|
password: "helloearth"
|
||||||
db: 10 # Redis db_num
|
db: 10 # Redis db_num
|
||||||
# UDM sub/auth db
|
# UDM sub/auth db
|
||||||
udmuser:
|
udmuser:
|
||||||
port: 6379 # Redis port
|
port: 6379 # Redis port
|
||||||
host: "127.0.0.1"
|
host: "127.0.0.1"
|
||||||
password: ""
|
password: "helloearth"
|
||||||
db: 0 # Redis db_num
|
db: 0 # Redis db_num
|
||||||
# used to specify the default data source for multiple data resourece
|
# used to specify the default data source for multiple data resourece
|
||||||
defaultDataSourceName: "default"
|
defaultDataSourceName: "default"
|
||||||
@@ -73,6 +73,9 @@ mml:
|
|||||||
port2: 5002
|
port2: 5002
|
||||||
sleep: 200
|
sleep: 200
|
||||||
deadLine: 10
|
deadLine: 10
|
||||||
|
sizeRow: 100
|
||||||
|
sizeCol: 128
|
||||||
|
bufferSize: 65535
|
||||||
user: admin
|
user: admin
|
||||||
password: admin
|
password: admin
|
||||||
mmlHome: ./mmlhome
|
mmlHome: ./mmlhome
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Makefile for OMC-OMC-crontask project
|
# Makefile for OMC-OMC-crontask project
|
||||||
|
|
||||||
PROJECT = OMC
|
PROJECT = OMC
|
||||||
VERSION = 2.2404.3
|
VERSION = 2.2404.4
|
||||||
LIBDIR = be.ems/lib
|
LIBDIR = be.ems/lib
|
||||||
BINNAME = crontask
|
BINNAME = crontask
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Makefile for rest agent project
|
# Makefile for rest agent project
|
||||||
|
|
||||||
PROJECT = OMC
|
PROJECT = OMC
|
||||||
VERSION = 2.2404.3
|
VERSION = 2.2404.4
|
||||||
RelDate = `date +%Y%m%d`
|
RelDate = `date +%Y%m%d`
|
||||||
Release = $(RelDate)
|
Release = $(RelDate)
|
||||||
RelVer = $(VERSION)-$(RelDate)
|
RelVer = $(VERSION)-$(RelDate)
|
||||||
|
|||||||
@@ -1,52 +1,41 @@
|
|||||||
-- 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 `ne_state`
|
Target Server Version : 100338 (10.3.38-MariaDB)
|
||||||
--
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 16/04/2024 09:47:50
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for ne_state
|
||||||
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `ne_state`;
|
DROP TABLE IF EXISTS `ne_state`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
CREATE TABLE `ne_state` (
|
||||||
/*!40101 SET character_set_client = utf8 */;
|
|
||||||
CREATE TABLE `ne_state` (
|
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) DEFAULT NULL,
|
`ne_type` varchar(16) 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,
|
||||||
`version` varchar(16) DEFAULT NULL,
|
`version` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`capability` varchar(64) DEFAULT NULL,
|
`capability` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`serial_num` varchar(16) DEFAULT NULL,
|
`serial_num` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`expiry_date` date DEFAULT NULL,
|
`expiry_date` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-',
|
||||||
`cpu_usage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
`cpu_usage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
||||||
`mem_usage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
`mem_usage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
||||||
`disk_space` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
`disk_space` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
||||||
`timestamp` datetime DEFAULT current_timestamp(),
|
`timestamp` datetime NULL DEFAULT current_timestamp(),
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_ne_type_id` (`ne_type`,`ne_id`) USING BTREE,
|
INDEX `idx_ne_type_id`(`ne_type`, `ne_id`) USING BTREE,
|
||||||
KEY `idx_timestamp` (`timestamp`) USING BTREE
|
INDEX `idx_timestamp`(`timestamp`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=8047062 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
) ENGINE = InnoDB AUTO_INCREMENT = 8551941 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:57
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -638,7 +638,7 @@ SET
|
|||||||
`is_frame` = '1',
|
`is_frame` = '1',
|
||||||
`is_cache` = '0',
|
`is_cache` = '0',
|
||||||
`menu_type` = 'M',
|
`menu_type` = 'M',
|
||||||
`visible` = '1',
|
`visible` = '0',
|
||||||
`status` = '1',
|
`status` = '1',
|
||||||
`perms` = 'traceManage:task:index',
|
`perms` = 'traceManage:task:index',
|
||||||
`icon` = 'icon-chexiao',
|
`icon` = 'icon-chexiao',
|
||||||
@@ -660,7 +660,7 @@ SET
|
|||||||
`is_frame` = '1',
|
`is_frame` = '1',
|
||||||
`is_cache` = '0',
|
`is_cache` = '0',
|
||||||
`menu_type` = 'M',
|
`menu_type` = 'M',
|
||||||
`visible` = '1',
|
`visible` = '0',
|
||||||
`status` = '1',
|
`status` = '1',
|
||||||
`perms` = 'traceManage:analysis:index',
|
`perms` = 'traceManage:analysis:index',
|
||||||
`icon` = 'icon-gongnengjieshao',
|
`icon` = 'icon-gongnengjieshao',
|
||||||
|
|||||||
@@ -184,3 +184,6 @@ ADD INDEX IF NOT EXISTS `idx_severity_status` (
|
|||||||
|
|
||||||
ALTER TABLE `omc_db`.`mml_system`
|
ALTER TABLE `omc_db`.`mml_system`
|
||||||
ADD COLUMN IF NOT EXISTS `object_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'mml' AFTER `mml_display`;
|
ADD COLUMN IF NOT EXISTS `object_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'mml' AFTER `mml_display`;
|
||||||
|
|
||||||
|
ALTER TABLE `omc_db`.`ne_state`
|
||||||
|
MODIFY COLUMN `expiry_date` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' AFTER `serial_num`;
|
||||||
@@ -637,7 +637,7 @@ SET
|
|||||||
`is_frame` = '1',
|
`is_frame` = '1',
|
||||||
`is_cache` = '0',
|
`is_cache` = '0',
|
||||||
`menu_type` = 'M',
|
`menu_type` = 'M',
|
||||||
`visible` = '1',
|
`visible` = '0',
|
||||||
`status` = '1',
|
`status` = '1',
|
||||||
`perms` = 'traceManage:task:index',
|
`perms` = 'traceManage:task:index',
|
||||||
`icon` = 'icon-chexiao',
|
`icon` = 'icon-chexiao',
|
||||||
@@ -659,7 +659,7 @@ SET
|
|||||||
`is_frame` = '1',
|
`is_frame` = '1',
|
||||||
`is_cache` = '0',
|
`is_cache` = '0',
|
||||||
`menu_type` = 'M',
|
`menu_type` = 'M',
|
||||||
`visible` = '1',
|
`visible` = '0',
|
||||||
`status` = '1',
|
`status` = '1',
|
||||||
`perms` = 'traceManage:analysis:index',
|
`perms` = 'traceManage:analysis:index',
|
||||||
`icon` = 'icon-gongnengjieshao',
|
`icon` = 'icon-gongnengjieshao',
|
||||||
|
|||||||
@@ -184,3 +184,6 @@ ADD INDEX IF NOT EXISTS `idx_severity_status` (
|
|||||||
|
|
||||||
ALTER TABLE `omc_db`.`mml_system`
|
ALTER TABLE `omc_db`.`mml_system`
|
||||||
ADD COLUMN IF NOT EXISTS `object_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'mml' AFTER `mml_display`;
|
ADD COLUMN IF NOT EXISTS `object_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'mml' AFTER `mml_display`;
|
||||||
|
|
||||||
|
ALTER TABLE `omc_db`.`ne_state`
|
||||||
|
MODIFY COLUMN `expiry_date` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' AFTER `serial_num`;
|
||||||
@@ -858,15 +858,20 @@ func PostNeServiceAction(w http.ResponseWriter, r *http.Request) {
|
|||||||
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
|
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
|
||||||
switch neTypeLower {
|
switch neTypeLower {
|
||||||
case "omc":
|
case "omc":
|
||||||
actionCmd := fmt.Sprintf("sudo %s/bin/omcsvc.sh %s", config.GetYamlConfig().NE.OmcDir, action)
|
// send 204 to fe firstly
|
||||||
cmd := exec.Command("ssh", sshHost, actionCmd)
|
services.ResponseStatusOK204NoContent(w)
|
||||||
out, err := cmd.CombinedOutput()
|
//actionCmd := fmt.Sprintf("sudo %s/bin/omcsvc.sh %s", config.GetYamlConfig().NE.OmcDir, action)
|
||||||
log.Debugf("Exec output: %v", string(out))
|
actionCmd := fmt.Sprintf("sudo systemctl %s restagent", action)
|
||||||
if err != nil {
|
go RunSSHCmd(sshHost, actionCmd)
|
||||||
log.Errorf("Faile to execute ssh %s omc:%v", action, err)
|
return
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
// cmd := exec.Command("ssh", sshHost, actionCmd)
|
||||||
return
|
// out, err := cmd.CombinedOutput()
|
||||||
}
|
// log.Debugf("Exec output: %v", string(out))
|
||||||
|
// if err != nil {
|
||||||
|
// log.Errorf("Faile to execute ssh %s omc:%v", action, err)
|
||||||
|
// services.ResponseInternalServerError500ProcessError(w, err)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
case "ims":
|
case "ims":
|
||||||
switch action {
|
switch action {
|
||||||
case "start", "stop":
|
case "start", "stop":
|
||||||
|
|||||||
@@ -930,7 +930,7 @@ func RollBackSoftwareToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
services.ResponseStatusOK204NoContent(w)
|
services.ResponseStatusOK204NoContent(w)
|
||||||
RunSSHCmd(sshHost, runCmd)
|
go RunSSHCmd(sshHost, runCmd)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
err = RunSSHCmd(sshHost, runCmd)
|
err = RunSSHCmd(sshHost, runCmd)
|
||||||
|
|||||||
@@ -51,16 +51,24 @@ var (
|
|||||||
CustomUriOmMmlInt = config.UriPrefix + "/omManagement/{apiVersion}/mml/{neType}/{neId}"
|
CustomUriOmMmlInt = config.UriPrefix + "/omManagement/{apiVersion}/mml/{neType}/{neId}"
|
||||||
)
|
)
|
||||||
|
|
||||||
var TIME_DELAY_AFTER_WRITE time.Duration = 200
|
var (
|
||||||
var TIME_DEAD_LINE time.Duration = 10
|
TIME_DELAY_AFTER_WRITE time.Duration = 200
|
||||||
|
TIME_DEAD_LINE time.Duration = 10
|
||||||
|
WIN_ROW_SIZE byte = 100
|
||||||
|
WIN_COL_SIZE byte = 100
|
||||||
|
BUFFER_SIZE int = 65535
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func InitMML() {
|
||||||
if config.GetYamlConfig().MML.Sleep != 0 {
|
if config.GetYamlConfig().MML.Sleep != 0 {
|
||||||
TIME_DELAY_AFTER_WRITE = time.Duration(config.GetYamlConfig().MML.Sleep)
|
TIME_DELAY_AFTER_WRITE = time.Duration(config.GetYamlConfig().MML.Sleep)
|
||||||
}
|
}
|
||||||
if config.GetYamlConfig().MML.DeadLine != 0 {
|
if config.GetYamlConfig().MML.DeadLine != 0 {
|
||||||
TIME_DEAD_LINE = time.Duration(config.GetYamlConfig().MML.DeadLine)
|
TIME_DEAD_LINE = time.Duration(config.GetYamlConfig().MML.DeadLine)
|
||||||
}
|
}
|
||||||
|
WIN_ROW_SIZE = config.GetYamlConfig().MML.SizeRow
|
||||||
|
WIN_COL_SIZE = config.GetYamlConfig().MML.SizeCol
|
||||||
|
BUFFER_SIZE = config.GetYamlConfig().MML.BufferSize
|
||||||
}
|
}
|
||||||
|
|
||||||
func PostMML2ToNF(w http.ResponseWriter, r *http.Request) {
|
func PostMML2ToNF(w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -78,8 +86,7 @@ func PostMML2ToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var buf [100 * 1024]byte
|
buf := make([]byte, BUFFER_SIZE)
|
||||||
//buf := make([]byte, 0)
|
|
||||||
var n int
|
var n int
|
||||||
var mmlResult []string
|
var mmlResult []string
|
||||||
port2 := 5002
|
port2 := 5002
|
||||||
@@ -90,6 +97,7 @@ func PostMML2ToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
if neInfo != nil {
|
if neInfo != nil {
|
||||||
hostMML := fmt.Sprintf("%s:%d", neInfo.Ip, port2)
|
hostMML := fmt.Sprintf("%s:%d", neInfo.Ip, port2)
|
||||||
conn, err := net.Dial("tcp", hostMML)
|
conn, err := net.Dial("tcp", hostMML)
|
||||||
|
//conn, err := net.Dial("tcp", hostMML)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
|
errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
|
||||||
log.Error(errMsg)
|
log.Error(errMsg)
|
||||||
@@ -110,6 +118,9 @@ func PostMML2ToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
// services.ResponseWithJson(w, http.StatusOK, response)
|
// services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
// return
|
// return
|
||||||
// }
|
// }
|
||||||
|
// 发送窗口大小设置命令
|
||||||
|
conn.Write([]byte{255, 251, 31}) // 发送WILL WINDOW SIZE
|
||||||
|
conn.Write([]byte{255, 250, 31, 0, WIN_ROW_SIZE, 0, WIN_COL_SIZE, 255, 240}) // 发送设置 WINDOW SIZE
|
||||||
|
|
||||||
conn.SetDeadline(time.Now().Add(TIME_DEAD_LINE * time.Second))
|
conn.SetDeadline(time.Now().Add(TIME_DEAD_LINE * time.Second))
|
||||||
loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
|
loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"be.ems/lib/core/vo"
|
"be.ems/src/framework/constants/token"
|
||||||
commonConstants "be.ems/src/framework/constants/common"
|
tokenUtils "be.ems/src/framework/utils/token"
|
||||||
tokenConst "be.ems/src/framework/constants/token"
|
"be.ems/src/framework/vo"
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"golang.org/x/text/language"
|
"golang.org/x/text/language"
|
||||||
)
|
)
|
||||||
@@ -122,12 +122,26 @@ func SaveUploadedFile(r *http.Request, dst string) error {
|
|||||||
|
|
||||||
// Authorization 解析请求头
|
// Authorization 解析请求头
|
||||||
func Authorization(r *http.Request) string {
|
func Authorization(r *http.Request) string {
|
||||||
authHeader := r.Header.Get(tokenConst.HEADER_KEY)
|
// Query请求查询
|
||||||
|
if authQuery := r.URL.Query().Get(token.ACCESS_TOKEN); authQuery != "" {
|
||||||
|
return authQuery
|
||||||
|
}
|
||||||
|
// Header请求头
|
||||||
|
if authHeader := r.Header.Get(token.ACCESS_TOKEN); authHeader != "" {
|
||||||
|
return authHeader
|
||||||
|
}
|
||||||
|
|
||||||
|
// Query请求查询
|
||||||
|
if authQuery := r.URL.Query().Get(token.RESPONSE_FIELD); authQuery != "" {
|
||||||
|
return authQuery
|
||||||
|
}
|
||||||
|
// Header请求头
|
||||||
|
authHeader := r.Header.Get(token.HEADER_KEY)
|
||||||
if authHeader == "" {
|
if authHeader == "" {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
// 拆分 Authorization 请求头,提取 JWT 令牌部分
|
// 拆分 Authorization 请求头,提取 JWT 令牌部分
|
||||||
arr := strings.Split(authHeader, tokenConst.HEADER_PREFIX)
|
arr := strings.Split(authHeader, token.HEADER_PREFIX)
|
||||||
if len(arr) == 2 && arr[1] == "" {
|
if len(arr) == 2 && arr[1] == "" {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
@@ -164,12 +178,24 @@ type ContextKey string
|
|||||||
|
|
||||||
// LoginUser 登录用户信息需要Authorize中间件
|
// LoginUser 登录用户信息需要Authorize中间件
|
||||||
func LoginUser(r *http.Request) (vo.LoginUser, error) {
|
func LoginUser(r *http.Request) (vo.LoginUser, error) {
|
||||||
// 上下文
|
// 获取请求头标识信息
|
||||||
v := r.Context().Value(ContextKey(commonConstants.CTX_LOGIN_USER))
|
tokenStr := Authorization(r)
|
||||||
if v != nil {
|
if tokenStr == "" {
|
||||||
return v.(vo.LoginUser), nil
|
return vo.LoginUser{}, fmt.Errorf("not token info")
|
||||||
}
|
}
|
||||||
return vo.LoginUser{}, fmt.Errorf("No user information")
|
// 验证令牌
|
||||||
|
claims, err := tokenUtils.Verify(tokenStr)
|
||||||
|
if err != nil {
|
||||||
|
return vo.LoginUser{}, fmt.Errorf("token verify fail")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取缓存的用户信息
|
||||||
|
loginUser := tokenUtils.LoginUser(claims)
|
||||||
|
if loginUser.UserID == "" {
|
||||||
|
return vo.LoginUser{}, fmt.Errorf("not user info")
|
||||||
|
}
|
||||||
|
|
||||||
|
return loginUser, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoginUserToUserID 登录用户信息-用户ID
|
// LoginUserToUserID 登录用户信息-用户ID
|
||||||
@@ -187,5 +213,5 @@ func LoginUserToUserName(r *http.Request) string {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
return loginUser.UserName
|
return loginUser.User.UserName
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import (
|
|||||||
"be.ems/lib/core/datasource"
|
"be.ems/lib/core/datasource"
|
||||||
"be.ems/lib/core/utils/ctx"
|
"be.ems/lib/core/utils/ctx"
|
||||||
"be.ems/lib/core/utils/date"
|
"be.ems/lib/core/utils/date"
|
||||||
"be.ems/lib/dborm"
|
|
||||||
"be.ems/lib/log"
|
"be.ems/lib/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -50,19 +49,12 @@ func LogMML(next http.Handler) http.Handler {
|
|||||||
resultStr := fmt.Sprintf(`{"status":"%s","size":"%s","content-type":"%s"}`, status, size, contentType)
|
resultStr := fmt.Sprintf(`{"status":"%s","size":"%s","content-type":"%s"}`, status, size, contentType)
|
||||||
|
|
||||||
// 用户名
|
// 用户名
|
||||||
username := "-"
|
username := ctx.LoginUserToUserName(r)
|
||||||
accessToken := r.Header.Get("AccessToken")
|
|
||||||
if accessToken != "" {
|
|
||||||
// 验证令牌 == 这里直接查数据库session
|
|
||||||
se, _ := dborm.XormUpdateSessionShakeTime(accessToken)
|
|
||||||
username = se.AccountId
|
|
||||||
}
|
|
||||||
|
|
||||||
// 执行插入
|
// 执行插入
|
||||||
sql := "insert into mml_log (user,ip,ne_type,ne_id,mml,result,log_time)values(?,?,?,?,?,?,?)"
|
sql := "insert into mml_log (user,ip,ne_type,ne_id,mml,result,log_time)values(?,?,?,?,?,?,?)"
|
||||||
_, sqlerr := datasource.ExecDB("", sql, []any{username, ipAddr, neType, neId, mmlCmd, resultStr, timeStr})
|
_, sqlerr := datasource.ExecDB("", sql, []any{username, ipAddr, neType, neId, mmlCmd, resultStr, timeStr})
|
||||||
if sqlerr != nil {
|
if sqlerr != nil {
|
||||||
log.Errorf("insert row : %v", err.Error())
|
log.Errorf("insert row : %v", sqlerr.Error())
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -174,11 +174,11 @@ func init() {
|
|||||||
Register("POST", mml.UriMML, mml.PostMMLToNF, midware.LogMML)
|
Register("POST", mml.UriMML, mml.PostMMLToNF, midware.LogMML)
|
||||||
Register("POST", mml.UriMMLDiscard, mml.PostMMLToNF, nil)
|
Register("POST", mml.UriMMLDiscard, mml.PostMMLToNF, nil)
|
||||||
Register("POST", mml.UriOmMmlExt, mml.PostMMLToOMC, midware.LogMML)
|
Register("POST", mml.UriOmMmlExt, mml.PostMMLToOMC, midware.LogMML)
|
||||||
Register("POST", mml.CustomUriMML, mml.PostMMLToNF, midware.LogMML)
|
Register("POST", mml.CustomUriMML, mml.PostMMLToNF, nil)
|
||||||
Register("POST", mml.CustomUriOmMmlExt, mml.PostMMLToOMC, midware.LogMML)
|
Register("POST", mml.CustomUriOmMmlExt, mml.PostMMLToOMC, nil)
|
||||||
// post mml2 (standard upf port=5002)
|
// post mml2 (standard upf port=5002)
|
||||||
Register("POST", mml.UriMML2, mml.PostMML2ToNF, midware.LogMML)
|
Register("POST", mml.UriMML2, mml.PostMML2ToNF, midware.LogMML)
|
||||||
Register("POST", mml.CustomUriMML2, mml.PostMML2ToNF, midware.LogMML)
|
Register("POST", mml.CustomUriMML2, mml.PostMML2ToNF, nil)
|
||||||
|
|
||||||
// Northbound Get NRM
|
// Northbound Get NRM
|
||||||
Register("GET", nbi.GetNRMUri, nbi.NBIGetNRMFromNF, nil)
|
Register("GET", nbi.GetNRMUri, nbi.NBIGetNRMFromNF, nil)
|
||||||
|
|||||||
2
makefile
2
makefile
@@ -3,7 +3,7 @@
|
|||||||
ProjectL = omc
|
ProjectL = omc
|
||||||
ProjectU = OMC
|
ProjectU = OMC
|
||||||
PROJECT = $(ProjectL)
|
PROJECT = $(ProjectL)
|
||||||
VERSION = 2.2404.3
|
VERSION = 2.2404.4
|
||||||
RelDate = `date +%Y%m%d`
|
RelDate = `date +%Y%m%d`
|
||||||
Release = $(RelDate)
|
Release = $(RelDate)
|
||||||
RelVer = $(VERSION)-$(RelDate)
|
RelVer = $(VERSION)-$(RelDate)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ case "${extension}" in
|
|||||||
EOF
|
EOF
|
||||||
if [ ${neType} == "OMC" ]; then
|
if [ ${neType} == "OMC" ]; then
|
||||||
${omcBin}/setomc.sh -m upgrade >> ${logFile}
|
${omcBin}/setomc.sh -m upgrade >> ${logFile}
|
||||||
${omcBin}/omcsvc.sh restart
|
${omcBin}/omcsvc.sh restart >> ${logFile}
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
rpm)
|
rpm)
|
||||||
@@ -43,7 +43,7 @@ EOF
|
|||||||
EOF
|
EOF
|
||||||
if [ ${neType} == "OMC" ]; then
|
if [ ${neType} == "OMC" ]; then
|
||||||
${omcBin}/setomc.sh -m upgrade >> ${logFile}
|
${omcBin}/setomc.sh -m upgrade >> ${logFile}
|
||||||
${omcBin}/omcsvc.sh restart
|
${omcBin}/omcsvc.sh restart >> ${logFile}
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ case "${extension}" in
|
|||||||
EOF
|
EOF
|
||||||
if [ ${neType} == "OMC" ]; then
|
if [ ${neType} == "OMC" ]; then
|
||||||
${omcBin}/setomc.sh -m upgrade >> ${logFile}
|
${omcBin}/setomc.sh -m upgrade >> ${logFile}
|
||||||
${omcBin}/omcsvc.sh restart
|
${omcBin}/omcsvc.sh restart >> ${logFile}
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
rpm)
|
rpm)
|
||||||
@@ -43,7 +43,7 @@ EOF
|
|||||||
EOF
|
EOF
|
||||||
if [ ${neType} == "OMC" ]; then
|
if [ ${neType} == "OMC" ]; then
|
||||||
${omcBin}/setomc.sh -m upgrade >> ${logFile}
|
${omcBin}/setomc.sh -m upgrade >> ${logFile}
|
||||||
${omcBin}/omcsvc.sh restart
|
${omcBin}/omcsvc.sh restart >> ${logFile}
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|||||||
2
mkpkg.sh
2
mkpkg.sh
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
ProcList="restagent crontask sshsvc captrace data2html"
|
ProcList="restagent crontask sshsvc captrace data2html"
|
||||||
ProjectL=omc
|
ProjectL=omc
|
||||||
VERSION=2.2404.3
|
VERSION=2.2404.4
|
||||||
RelDate=`date +%Y%m%d`
|
RelDate=`date +%Y%m%d`
|
||||||
Release=${RelDate}
|
Release=${RelDate}
|
||||||
RelVer=${VERSION}-${RelDate}
|
RelVer=${VERSION}-${RelDate}
|
||||||
|
|||||||
@@ -11,17 +11,6 @@ import (
|
|||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
type DbConfig struct {
|
|
||||||
Type string `yaml:"type"`
|
|
||||||
User string `yaml:"user"`
|
|
||||||
Password string `yaml:"password"`
|
|
||||||
Host string `yaml:"host"`
|
|
||||||
Port string `yaml:"port"`
|
|
||||||
Name string `yaml:"name"`
|
|
||||||
ConnParam string `yaml:"connParam,omitempty"`
|
|
||||||
Backup string `yaml:"backup"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Yaml struct of config
|
// Yaml struct of config
|
||||||
type YamlConfig struct {
|
type YamlConfig struct {
|
||||||
Logger struct {
|
Logger struct {
|
||||||
@@ -110,16 +99,7 @@ type YamlConfig struct {
|
|||||||
} `yaml:"smsc"`
|
} `yaml:"smsc"`
|
||||||
} `yaml:"alarm"`
|
} `yaml:"alarm"`
|
||||||
|
|
||||||
MML struct {
|
MML MMLParam `yaml:"mml"`
|
||||||
Port int `yaml:"port"`
|
|
||||||
Port2 int `yaml:"port2"`
|
|
||||||
Sleep int64 `yaml:"sleep"`
|
|
||||||
DeadLine int64 `yaml:"deadLine"`
|
|
||||||
User string `yaml:"user"`
|
|
||||||
Password string `ymal:"password"`
|
|
||||||
MmlHome string `yaml:"mmlHome"`
|
|
||||||
Upload string `yaml:"upload"`
|
|
||||||
} `yaml:"mml"`
|
|
||||||
|
|
||||||
NE struct {
|
NE struct {
|
||||||
Addr string `yaml:"addr"`
|
Addr string `yaml:"addr"`
|
||||||
@@ -171,6 +151,31 @@ type RestParam struct {
|
|||||||
KeyFile string `yaml:"keyFile"`
|
KeyFile string `yaml:"keyFile"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type DbConfig struct {
|
||||||
|
Type string `yaml:"type"`
|
||||||
|
User string `yaml:"user"`
|
||||||
|
Password string `yaml:"password"`
|
||||||
|
Host string `yaml:"host"`
|
||||||
|
Port string `yaml:"port"`
|
||||||
|
Name string `yaml:"name"`
|
||||||
|
ConnParam string `yaml:"connParam,omitempty"`
|
||||||
|
Backup string `yaml:"backup"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MMLParam struct {
|
||||||
|
Port int `yaml:"port"`
|
||||||
|
Port2 int `yaml:"port2"`
|
||||||
|
Sleep int64 `yaml:"sleep"`
|
||||||
|
DeadLine int64 `yaml:"deadLine"`
|
||||||
|
SizeRow byte `yaml:"sizeRow"`
|
||||||
|
SizeCol byte `yaml:"sizeCol"`
|
||||||
|
BufferSize int `yaml:"bufferSize"`
|
||||||
|
User string `yaml:"user"`
|
||||||
|
Password string `ymal:"password"`
|
||||||
|
MmlHome string `yaml:"mmlHome"`
|
||||||
|
Upload string `yaml:"upload"`
|
||||||
|
}
|
||||||
|
|
||||||
type TestDatas struct {
|
type TestDatas struct {
|
||||||
UDM struct {
|
UDM struct {
|
||||||
CapUsed uint32 `yaml:"capUsed"`
|
CapUsed uint32 `yaml:"capUsed"`
|
||||||
@@ -211,6 +216,11 @@ func NewYamlConfig() YamlConfig {
|
|||||||
Type: "mysql",
|
Type: "mysql",
|
||||||
ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True",
|
ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True",
|
||||||
},
|
},
|
||||||
|
MML: MMLParam{
|
||||||
|
SizeRow: 100,
|
||||||
|
SizeCol: 128,
|
||||||
|
BufferSize: 65535,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,6 +73,9 @@ mml:
|
|||||||
port2: 5002
|
port2: 5002
|
||||||
sleep: 200
|
sleep: 200
|
||||||
deadLine: 10
|
deadLine: 10
|
||||||
|
sizeRow: 100
|
||||||
|
sizeCol: 128
|
||||||
|
bufferSize: 65535
|
||||||
user: admin
|
user: admin
|
||||||
password: admin
|
password: admin
|
||||||
mmlHome: ./mmlhome
|
mmlHome: ./mmlhome
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Makefile for rest agent project
|
# Makefile for rest agent project
|
||||||
|
|
||||||
PROJECT = OMC
|
PROJECT = OMC
|
||||||
VERSION = 2.2404.3
|
VERSION = 2.2404.4
|
||||||
PLATFORM = amd64
|
PLATFORM = amd64
|
||||||
ARMPLATFORM = aarch64
|
ARMPLATFORM = aarch64
|
||||||
BUILDDIR = ../../build
|
BUILDDIR = ../../build
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import (
|
|||||||
"be.ems/features/event"
|
"be.ems/features/event"
|
||||||
"be.ems/features/fm"
|
"be.ems/features/fm"
|
||||||
"be.ems/features/lm"
|
"be.ems/features/lm"
|
||||||
|
"be.ems/features/mml"
|
||||||
"be.ems/features/pm"
|
"be.ems/features/pm"
|
||||||
"be.ems/lib/dborm"
|
"be.ems/lib/dborm"
|
||||||
"be.ems/lib/global"
|
"be.ems/lib/global"
|
||||||
@@ -21,7 +22,6 @@ import (
|
|||||||
"be.ems/restagent/config"
|
"be.ems/restagent/config"
|
||||||
"be.ems/src"
|
"be.ems/src"
|
||||||
"be.ems/src/framework/middleware"
|
"be.ems/src/framework/middleware"
|
||||||
libSession "be.ems/src/lib_features/session"
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"golang.org/x/net/http2"
|
"golang.org/x/net/http2"
|
||||||
"golang.org/x/net/http2/h2c"
|
"golang.org/x/net/http2/h2c"
|
||||||
@@ -227,16 +227,16 @@ func main() {
|
|||||||
os.Exit(4)
|
os.Exit(4)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mml.InitMML()
|
||||||
|
|
||||||
// 将 mux.Router 注册到 gin.Engine
|
// 将 mux.Router 注册到 gin.Engine
|
||||||
|
|
||||||
// 默认路由组
|
// 默认路由组
|
||||||
defaultUriGroup := app.Group(config.DefaultUriPrefix)
|
defaultUriGroup := app.Group(config.DefaultUriPrefix)
|
||||||
defaultUriGroup.Use(middleware.PreAuthorize(nil))
|
defaultUriGroup.Use(middleware.PreAuthorize(nil))
|
||||||
defaultUriGroup.Use(libSession.SessionHeader())
|
|
||||||
defaultUriGroup.Any("/*any", gin.WrapH(routes.NewRouter()))
|
defaultUriGroup.Any("/*any", gin.WrapH(routes.NewRouter()))
|
||||||
// 可配置前缀路由组
|
// 可配置前缀路由组
|
||||||
uriGroup := app.Group(config.UriPrefix)
|
uriGroup := app.Group(config.UriPrefix)
|
||||||
uriGroup.Use(libSession.SessionHeader())
|
|
||||||
uriGroup.Any("/*any", gin.WrapH(routes.NewRouter()))
|
uriGroup.Any("/*any", gin.WrapH(routes.NewRouter()))
|
||||||
// AMF上报的UE事件, 无前缀,暂时特殊处理
|
// AMF上报的UE事件, 无前缀,暂时特殊处理
|
||||||
app.POST(event.UriUEEvent, event.PostUEEventFromAMF)
|
app.POST(event.UriUEEvent, event.PostUEEventFromAMF)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# 项目信息
|
# 项目信息
|
||||||
framework:
|
framework:
|
||||||
name: "CN EMS"
|
name: "CN EMS"
|
||||||
version: "2.2404.3"
|
version: "2.2404.4"
|
||||||
|
|
||||||
# 应用服务配置
|
# 应用服务配置
|
||||||
server:
|
server:
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
package libfeatures
|
|
||||||
|
|
||||||
import (
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"be.ems/lib/dborm"
|
|
||||||
"be.ems/lib/oauth"
|
|
||||||
libConfig "be.ems/restagent/config"
|
|
||||||
"be.ems/src/framework/logger"
|
|
||||||
"be.ems/src/framework/redis"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SessionToken 设置登录会话-兼容旧登录方式
|
|
||||||
func SessionToken(username, sourceAddr string) bool {
|
|
||||||
// token, _ := redis.Get("", "session_token")
|
|
||||||
// if token != "" {
|
|
||||||
// se, err := dborm.XormUpdateSessionShakeTime(token)
|
|
||||||
// if se.AccountId != username || err != nil {
|
|
||||||
// // 过期时间单位秒 配置1800是半小时
|
|
||||||
// expireTime := time.Duration(int64(libConfig.GetExpiresFromConfig())) * time.Second
|
|
||||||
// redis.SetByExpire("", "session_token", token, expireTime)
|
|
||||||
// return true
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// 不管原先的登录情况,直接插入写入覆盖redis中session
|
|
||||||
//
|
|
||||||
token := oauth.GenRandToken("omc") // Generate new token to session ID
|
|
||||||
affected, err := dborm.XormInsertSession(username, sourceAddr, token, libConfig.GetExpiresFromConfig(), libConfig.GetYamlConfig().Auth.Session)
|
|
||||||
if err != nil {
|
|
||||||
logger.Errorf("SessionToken XormInsertSession err %v", err)
|
|
||||||
}
|
|
||||||
if affected >= 1 {
|
|
||||||
// 过期时间单位秒 配置1800是半小时
|
|
||||||
expireTime := time.Duration(int64(libConfig.GetExpiresFromConfig())) * time.Second
|
|
||||||
redis.SetByExpire("", "session_token", token, expireTime)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
# 外层 lib 和 features 粘合层
|
# 外层 lib 和 features 粘合层
|
||||||
|
|
||||||
- config.go 配置合并: restagent.yaml 文件内容,主要是数据库配置
|
- config.go 配置合并: restagent.yaml 文件内容,主要是数据库配置
|
||||||
- account.go 登录会话生成 token
|
|
||||||
- session.go 中间件方式设置请求头 token 值
|
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
package session
|
|
||||||
|
|
||||||
import (
|
|
||||||
"time"
|
|
||||||
|
|
||||||
libConfig "be.ems/restagent/config"
|
|
||||||
"be.ems/src/framework/redis"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SessionHeader 旧登录方式token头
|
|
||||||
func SessionHeader() gin.HandlerFunc {
|
|
||||||
return func(c *gin.Context) {
|
|
||||||
// 读取登录生成的会话token
|
|
||||||
token, _ := redis.Get("", "session_token")
|
|
||||||
if token != "" {
|
|
||||||
// 过期时间单位秒 配置1800是半小时
|
|
||||||
expireTime := time.Duration(int64(libConfig.GetExpiresFromConfig())) * time.Second
|
|
||||||
redis.SetByExpire("", "session_token", token, expireTime)
|
|
||||||
c.Request.Header.Set("Accesstoken", token)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Accesstoken: omc-ce4d0a86-8515-ad51-3249-4913c95f8e34
|
|
||||||
// 调用下一个处理程序
|
|
||||||
c.Next()
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -9,7 +9,6 @@ import (
|
|||||||
tokenUtils "be.ems/src/framework/utils/token"
|
tokenUtils "be.ems/src/framework/utils/token"
|
||||||
"be.ems/src/framework/vo"
|
"be.ems/src/framework/vo"
|
||||||
"be.ems/src/framework/vo/result"
|
"be.ems/src/framework/vo/result"
|
||||||
libAccount "be.ems/src/lib_features/account"
|
|
||||||
commonModel "be.ems/src/modules/common/model"
|
commonModel "be.ems/src/modules/common/model"
|
||||||
commonService "be.ems/src/modules/common/service"
|
commonService "be.ems/src/modules/common/service"
|
||||||
systemService "be.ems/src/modules/system/service"
|
systemService "be.ems/src/modules/system/service"
|
||||||
@@ -83,9 +82,6 @@ func (s *AccountController) Login(c *gin.Context) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置登录会话-兼容旧登录方式
|
|
||||||
libAccount.SessionToken(loginBody.Username, ipaddr)
|
|
||||||
|
|
||||||
c.JSON(200, result.OkData(map[string]any{
|
c.JSON(200, result.OkData(map[string]any{
|
||||||
tokenConstants.RESPONSE_FIELD: tokenStr,
|
tokenConstants.RESPONSE_FIELD: tokenStr,
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -116,17 +116,20 @@ func (s *BarProcessor) Execute(data any) (any, error) {
|
|||||||
log.Trace("response body:", string(response.Body()))
|
log.Trace("response body:", string(response.Body()))
|
||||||
state := new(SystemState)
|
state := new(SystemState)
|
||||||
_ = json.Unmarshal(response.Body(), &state)
|
_ = json.Unmarshal(response.Body(), &state)
|
||||||
var dateStr *string = nil
|
// var dateStr *string = nil
|
||||||
if state.ExpiryDate != "" && state.ExpiryDate != "-" {
|
// if state.ExpiryDate != "" && state.ExpiryDate != "-" {
|
||||||
dateStr = &state.ExpiryDate
|
// dateStr = &state.ExpiryDate
|
||||||
}
|
// }
|
||||||
neState := new(dborm.NeState)
|
neState := new(dborm.NeState)
|
||||||
neState.NeType = ne.NeType
|
neState.NeType = ne.NeType
|
||||||
neState.NeId = ne.NeId
|
neState.NeId = ne.NeId
|
||||||
neState.Version = state.Version
|
neState.Version = state.Version
|
||||||
neState.Capability = state.Capability
|
neState.Capability = state.Capability
|
||||||
neState.SerialNum = state.SerialNum
|
neState.SerialNum = state.SerialNum
|
||||||
neState.ExpiryDate = *dateStr
|
// if dateStr != nil {
|
||||||
|
// neState.ExpiryDate = *dateStr
|
||||||
|
// }
|
||||||
|
neState.ExpiryDate = state.ExpiryDate
|
||||||
cu, _ := json.Marshal(state.CpuUsage)
|
cu, _ := json.Marshal(state.CpuUsage)
|
||||||
neState.CpuUsage = string(cu)
|
neState.CpuUsage = string(cu)
|
||||||
mu, _ := json.Marshal(state.MemUsage)
|
mu, _ := json.Marshal(state.MemUsage)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Makefile for OMC-OMC-crontask project
|
# Makefile for OMC-OMC-crontask project
|
||||||
|
|
||||||
PROJECT = OMC
|
PROJECT = OMC
|
||||||
VERSION = 2.2404.3
|
VERSION = 2.2404.4
|
||||||
LIBDIR = be.ems/lib
|
LIBDIR = be.ems/lib
|
||||||
BINNAME = sshsvc
|
BINNAME = sshsvc
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user