Merge remote-tracking branch 'origin/main' into practical-training
This commit is contained in:
28
README.md
28
README.md
@@ -18,19 +18,34 @@ bind 0.0.0.0
|
||||
port 6379
|
||||
# 安全设置
|
||||
protected-mode yes
|
||||
requirepass ""
|
||||
requirepass "helloearth"
|
||||
# 查看主备
|
||||
info replication
|
||||
# 从节点只能读取数据,不能直接写入数据
|
||||
# replicaof是新版本的命令,旧版本是slaveof命令
|
||||
slaveof 192.168.114.114 6379
|
||||
replicaof 192.168.114.114 6379
|
||||
masterauth "helloearth"
|
||||
# 允许从节点进行读写操作
|
||||
replica-read-only no
|
||||
```
|
||||
|
||||
## 版本发布空间
|
||||
## 一些服务器
|
||||
|
||||
```txt
|
||||
# 版本发布空间
|
||||
\\192.168.1.205\share\release\omc
|
||||
|
||||
# 研发git
|
||||
192.168.1.120
|
||||
altouser/a1t0U53r
|
||||
|
||||
# 默认IOS镜像用户和密码
|
||||
agtuser/admin123
|
||||
manager/admin123
|
||||
omcuser/a9tU53r
|
||||
```
|
||||
|
||||
## 开发
|
||||
|
||||
```sh
|
||||
@@ -40,7 +55,7 @@ cd ./restagent
|
||||
go mod download
|
||||
|
||||
# 调试启动
|
||||
go run restagent.go -c ./restagent/etc/restconf.yaml --env local
|
||||
go run restagent.go -c ./etc/restconf.yaml --env local
|
||||
|
||||
# 打包命名 restagent
|
||||
go build -ldflags="-s -w" -o restagent
|
||||
@@ -53,7 +68,12 @@ go env -w GOOS=linux
|
||||
|
||||
go env -w GOOS=windows
|
||||
|
||||
go build -o restagent -v -ldflags "-X 'be.ems/lib/global.Version=2.2311.8' -X 'be.ems/lib/global.BuildTime=`date`' -X 'be.ems/lib/global.GoVer=`go version`'"
|
||||
cd ./restagent
|
||||
|
||||
go build -o restagent -v -ldflags="-s -w -X 'be.ems/lib/global.Version=2.240620.1' -X 'be.ems/lib/global.BuildTime=`date`' -X 'be.ems/lib/global.GoVer=`go version`'"
|
||||
|
||||
go build -o crontask -v -ldflags="-s -w -X 'be.ems/lib/global.Version=2.240620.1' -X 'be.ems/lib/global.BuildTime=`date`' -X 'be.ems/lib/global.GoVer=`go version`'"
|
||||
|
||||
```
|
||||
|
||||
## 安装
|
||||
|
||||
@@ -73,7 +73,7 @@ mml:
|
||||
port2: 5002
|
||||
sleep: 200
|
||||
deadLine: 10
|
||||
sizeRow: 100
|
||||
sizeRow: 600
|
||||
sizeCol: 128
|
||||
bufferSize: 65535
|
||||
user: admin
|
||||
|
||||
@@ -493,59 +493,59 @@ type SystemState struct {
|
||||
func (t *TaskFunc) TaskHandShakeToNF(uri, params, body string) {
|
||||
log.Debug("TaskHandShakeToNF processing... ")
|
||||
|
||||
var nes []NeInfo
|
||||
_, err := XormGetAllNeInfo(&nes)
|
||||
if err != nil {
|
||||
log.Error("Failed to get all ne info:", err)
|
||||
}
|
||||
// var nes []NeInfo
|
||||
// _, err := XormGetAllNeInfo(&nes)
|
||||
// if err != nil {
|
||||
// log.Error("Failed to get all ne info:", err)
|
||||
// }
|
||||
|
||||
for _, ne := range nes {
|
||||
requestURI := fmt.Sprintf(uri, strings.ToLower(ne.NeType))
|
||||
if params != "" {
|
||||
requestURI = fmt.Sprintf("%s?%s", requestURI, params)
|
||||
}
|
||||
requestURL := fmt.Sprintf("http://%s:%s%s", ne.Ip, ne.Port, requestURI)
|
||||
log.Debug("requestURL: Get", requestURL)
|
||||
client := resty.New()
|
||||
response, err := client.R().
|
||||
EnableTrace().
|
||||
SetHeaders(map[string]string{"User-Agent": GetDefaultUserAgent()}).
|
||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
||||
Get(requestURL)
|
||||
if err != nil {
|
||||
log.Error("Failed to Get:", err)
|
||||
}
|
||||
// for _, ne := range nes {
|
||||
// requestURI := fmt.Sprintf(uri, strings.ToLower(ne.NeType))
|
||||
// if params != "" {
|
||||
// requestURI = fmt.Sprintf("%s?%s", requestURI, params)
|
||||
// }
|
||||
// requestURL := fmt.Sprintf("http://%s:%s%s", ne.Ip, ne.Port, requestURI)
|
||||
// log.Debug("requestURL: Get", requestURL)
|
||||
// client := resty.New()
|
||||
// response, err := client.R().
|
||||
// EnableTrace().
|
||||
// SetHeaders(map[string]string{"User-Agent": GetDefaultUserAgent()}).
|
||||
// SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
||||
// Get(requestURL)
|
||||
// if err != nil {
|
||||
// log.Error("Failed to Get:", err)
|
||||
// }
|
||||
|
||||
log.Debug("StatusCode: ", response.StatusCode())
|
||||
switch response.StatusCode() {
|
||||
case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
|
||||
log.Debug("response body:", string(response.Body()))
|
||||
state := new(SystemState)
|
||||
_ = json.Unmarshal(response.Body(), &state)
|
||||
neState := new(NeState)
|
||||
neState.NeType = ne.NeType
|
||||
neState.NeId = ne.NeId
|
||||
neState.Version = state.Version
|
||||
neState.Capability = state.Capability
|
||||
neState.SerialNum = state.SerialNum
|
||||
neState.ExpiryDate = state.ExpiryDate
|
||||
cu, _ := json.Marshal(state.CpuUsage)
|
||||
neState.CpuUsage = string(cu)
|
||||
mu, _ := json.Marshal(state.MemUsage)
|
||||
neState.MemUsage = string(mu)
|
||||
ds, _ := json.Marshal(state.DiskSpace)
|
||||
neState.DiskSpace = string(ds)
|
||||
log.Debug("neState:", neState)
|
||||
_, err := XormInsertNeState(neState)
|
||||
if err != nil {
|
||||
log.Error("Failed to insert ne_state:", err)
|
||||
}
|
||||
default:
|
||||
log.Debug("response body:", string(response.Body()))
|
||||
body := new(map[string]interface{})
|
||||
_ = json.Unmarshal(response.Body(), &body)
|
||||
}
|
||||
}
|
||||
// log.Debug("StatusCode: ", response.StatusCode())
|
||||
// switch response.StatusCode() {
|
||||
// case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
|
||||
// log.Debug("response body:", string(response.Body()))
|
||||
// state := new(SystemState)
|
||||
// _ = json.Unmarshal(response.Body(), &state)
|
||||
// neState := new(NeState)
|
||||
// neState.NeType = ne.NeType
|
||||
// neState.NeId = ne.NeId
|
||||
// neState.Version = state.Version
|
||||
// neState.Capability = state.Capability
|
||||
// neState.SerialNum = state.SerialNum
|
||||
// neState.ExpiryDate = state.ExpiryDate
|
||||
// cu, _ := json.Marshal(state.CpuUsage)
|
||||
// neState.CpuUsage = string(cu)
|
||||
// mu, _ := json.Marshal(state.MemUsage)
|
||||
// neState.MemUsage = string(mu)
|
||||
// ds, _ := json.Marshal(state.DiskSpace)
|
||||
// neState.DiskSpace = string(ds)
|
||||
// log.Debug("neState:", neState)
|
||||
// _, err := XormInsertNeState(neState)
|
||||
// if err != nil {
|
||||
// log.Error("Failed to insert ne_state:", err)
|
||||
// }
|
||||
// default:
|
||||
// log.Debug("response body:", string(response.Body()))
|
||||
// body := new(map[string]interface{})
|
||||
// _ = json.Unmarshal(response.Body(), &body)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
func (t *TaskFunc) TaskExportCmFromNF(uri, params, body string) {
|
||||
|
||||
@@ -153,5 +153,9 @@ INSERT INTO `sys_dict_data` VALUES (125, 0, 'dictData.ne_version_status.0', '0',
|
||||
INSERT INTO `sys_dict_data` VALUES (126, 1, 'dictData.ne_version_status.1', '1', 'ne_version_status', '', 'success', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (127, 1, 'dictData.ne_version_status.2', '2', 'ne_version_status', '', 'purple', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (128, 1, 'dictData.ne_version_status.3', '3', 'ne_version_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (129, 0, 'dictData.udm_sub_cn_type.0', '0', 'udm_sub_cn_type', '', '', '1', 'supervisor', 1712720201349, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (130, 1, 'dictData.udm_sub_cn_type.1', '1', 'udm_sub_cn_type', '', '', '1', 'supervisor', 1712720201349, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (131, 2, 'dictData.udm_sub_cn_type.2', '2', 'udm_sub_cn_type', '', '', '1', 'supervisor', 1712720201349, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (132, 3, 'dictData.udm_sub_cn_type.3', '3', 'udm_sub_cn_type', '', '', '1', 'supervisor', 1712720201349, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -653,5 +653,10 @@ INSERT INTO `sys_dict_data` VALUES (2142, 2142, 'config.sys.i18nOpenRemark', '
|
||||
INSERT INTO `sys_dict_data` VALUES (2143, 2143, 'menu.dashboard.mmeUE', 'MME-UE事件', 'i18n_zh', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2144, 2144, 'log.operate.title.mmeUE', 'MME-UE事件', 'i18n_zh', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2145, 2145, 'menu.system.user.editPost', '修改用户岗位', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2146, 2146, 'dictType.udm_sub_cn_type', 'UDM Sub CN Type', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2147, 2147, 'dictData.udm_sub_cn_type.0', '没有5GC和EPC', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2148, 2148, 'dictData.udm_sub_cn_type.1', '5GC', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2149, 2149, 'dictData.udm_sub_cn_type.2', 'EPC', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2150, 2150, 'dictData.udm_sub_cn_type.3', '5GC和EPC', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -652,6 +652,11 @@ INSERT INTO `sys_dict_data` VALUES (4141, 4141, 'config.sys.i18nDefaultRemark',
|
||||
INSERT INTO `sys_dict_data` VALUES (4142, 4142, 'config.sys.i18nOpenRemark', 'Whether to display switched controls true/false', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4143, 4143, 'menu.dashboard.mmeUE', 'MME-UE Event', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4144, 4144, 'log.operate.title.mmeUE', 'MME-UE Event', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4145, 4145, 'menu.system.user.editPost', 'Modify User Post', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4145, 4145, 'menu.system.user.editPost', 'Modify User Post', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4146, 4146, 'dictType.udm_sub_cn_type', 'UDM Sub CN Type', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4147, 4147, 'dictData.udm_sub_cn_type.0', 'No 5GC and EPC', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4148, 4148, 'dictData.udm_sub_cn_type.1', '5GC', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4149, 4149, 'dictData.udm_sub_cn_type.2', 'EPC', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4150, 4150, 'dictData.udm_sub_cn_type.3', '5GC and EPC', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -55,6 +55,7 @@ INSERT INTO `sys_dict_type` VALUES (120, 'dictType.ne_host_authMode', 'ne_host_a
|
||||
INSERT INTO `sys_dict_type` VALUES (121, 'dictType.ne_host_cmd_groupId', 'ne_host_cmd_groupId', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (122, 'dictType.ne_info_status', 'ne_info_status', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (123, 'dictType.ne_license_status', 'ne_license_status', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (124, 'dictType.udm_sub_cn_type', 'udm_sub_cn_type', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
|
||||
UNLOCK TABLES;
|
||||
|
||||
|
||||
@@ -153,6 +153,10 @@ INSERT IGNORE INTO `sys_dict_data` VALUES (125, 0, 'dictData.ne_version_status.0
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (126, 1, 'dictData.ne_version_status.1', '1', 'ne_version_status', '', 'success', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (127, 1, 'dictData.ne_version_status.2', '2', 'ne_version_status', '', 'purple', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (128, 1, 'dictData.ne_version_status.3', '3', 'ne_version_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (129, 0, 'dictData.udm_sub_cn_type.0', '0', 'udm_sub_cn_type', '', '', '1', 'supervisor', 1712720201349, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (130, 1, 'dictData.udm_sub_cn_type.1', '1', 'udm_sub_cn_type', '', '', '1', 'supervisor', 1712720201349, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (131, 2, 'dictData.udm_sub_cn_type.2', '2', 'udm_sub_cn_type', '', '', '1', 'supervisor', 1712720201349, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (132, 3, 'dictData.udm_sub_cn_type.3', '3', 'udm_sub_cn_type', '', '', '1', 'supervisor', 1712720201349, '', 0, '');
|
||||
|
||||
-- 指定记录条件更新
|
||||
|
||||
|
||||
@@ -660,5 +660,10 @@ REPLACE INTO `sys_dict_data` VALUES (2142, 2142, 'config.sys.i18nOpenRemark', '
|
||||
REPLACE INTO `sys_dict_data` VALUES (2143, 2143, 'menu.dashboard.mmeUE', 'MME-UE事件', 'i18n_zh', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2144, 2144, 'log.operate.title.mmeUE', 'MME-UE事件', 'i18n_zh', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2145, 2145, 'menu.system.user.editPost', '修改用户岗位', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2146, 2146, 'dictType.udm_sub_cn_type', 'UDM Sub CN Type', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2147, 2147, 'dictData.udm_sub_cn_type.0', '没有5GC和EPC', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2148, 2148, 'dictData.udm_sub_cn_type.1', '5GC', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2149, 2149, 'dictData.udm_sub_cn_type.2', 'EPC', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2150, 2150, 'dictData.udm_sub_cn_type.3', '5GC和EPC', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -654,6 +654,11 @@ REPLACE INTO `sys_dict_data` VALUES (4141, 4141, 'config.sys.i18nDefaultRemark',
|
||||
REPLACE INTO `sys_dict_data` VALUES (4142, 4142, 'config.sys.i18nOpenRemark', 'Whether to display switched controls true/false', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4143, 4143, 'menu.dashboard.mmeUE', 'MME-UE Event', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4144, 4144, 'log.operate.title.mmeUE', 'MME-UE Event', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4145, 4145, 'menu.system.user.editPost', 'Modify User Post', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4145, 4145, 'menu.system.user.editPost', 'Modify User Post', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4146, 4146, 'dictType.udm_sub_cn_type', 'UDM Sub CN Type', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4147, 4147, 'dictData.udm_sub_cn_type.0', 'No 5GC and EPC', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4148, 4148, 'dictData.udm_sub_cn_type.1', '5GC', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4149, 4149, 'dictData.udm_sub_cn_type.2', 'EPC', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4150, 4150, 'dictData.udm_sub_cn_type.3', '5GC and EPC', 'i18n_en', '', '', '1', 'supervisor', 1718441035866, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -53,5 +53,6 @@ INSERT IGNORE INTO `sys_dict_type` VALUES (120, 'dictType.ne_host_authMode', 'ne
|
||||
INSERT IGNORE INTO `sys_dict_type` VALUES (121, 'dictType.ne_host_cmd_groupId', 'ne_host_cmd_groupId', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_type` VALUES (122, 'dictType.ne_info_status', 'ne_info_status', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_type` VALUES (123, 'dictType.ne_license_status', 'ne_license_status', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_type` VALUES (124, 'dictType.udm_sub_cn_type', 'udm_sub_cn_type', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -54,8 +54,8 @@ var (
|
||||
var (
|
||||
TIME_DELAY_AFTER_WRITE time.Duration = 200
|
||||
TIME_DEAD_LINE time.Duration = 10
|
||||
WIN_ROW_SIZE byte = 100
|
||||
WIN_COL_SIZE byte = 100
|
||||
WIN_ROW_SIZE int16 = 200
|
||||
WIN_COL_SIZE int16 = 120
|
||||
BUFFER_SIZE int = 65535
|
||||
)
|
||||
|
||||
@@ -118,9 +118,15 @@ func PostMML2ToNF(w http.ResponseWriter, r *http.Request) {
|
||||
// services.ResponseWithJson(w, http.StatusOK, response)
|
||||
// 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.Write([]byte{
|
||||
255, 250, 31,
|
||||
byte(WIN_COL_SIZE >> 8), byte(WIN_COL_SIZE & 0xFF),
|
||||
byte(WIN_ROW_SIZE >> 8), byte(WIN_ROW_SIZE & 0xFF),
|
||||
255, 240,
|
||||
}) // 发送设置 WINDOW SIZE
|
||||
|
||||
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)
|
||||
|
||||
@@ -123,6 +123,12 @@ for ne_type in ${ne_types}; do
|
||||
SQL="CREATE TABLE IF NOT EXISTS ${TABLE_NAME} AS SELECT * FROM kpi_report WHERE 1=0;ALTER TABLE ${TABLE_NAME} MODIFY COLUMN \`id\` int(11) NOT NULL AUTO_INCREMENT FIRST,ADD PRIMARY KEY IF NOT EXISTS (\`id\`);"
|
||||
echo -n "Create table: ${TABLE_NAME} ..."
|
||||
mysql -u${USER} -p${PASSWORD} -P ${PORT} -h ${HOST} --protocol tcp -D ${DBNAME} -e "${SQL}"
|
||||
if [ $? = 0 ]; then
|
||||
echo "done"
|
||||
fi
|
||||
SQL="ALTER TABLE ${TABLE_NAME} ADD INDEX IF NOT EXISTS \`idx_timestamp\`(\`created_at\`) USING BTREE, ADD INDEX IF NOT EXISTS \`idx_uid_datetime\`(\`rm_uid\`, \`date\`, \`start_time\`) USING BTREE;"
|
||||
echo -n "Create index of ${TABLE_NAME} ..."
|
||||
mysql -u${USER} -p${PASSWORD} -P ${PORT} -h ${HOST} --protocol tcp -D ${DBNAME} -e "${SQL}"
|
||||
if [ $? = 0 ]; then
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
16
misc/nehosts
16
misc/nehosts
@@ -1,16 +1,2 @@
|
||||
# host user password
|
||||
# Example: 192.168.4.133 root password
|
||||
172.16.5.100 omcuser admin123
|
||||
172.16.5.110 omcuser admin123
|
||||
172.16.5.120 omcuser admin123
|
||||
172.16.5.130 omcuser admin123
|
||||
172.16.5.140 omcuser admin123
|
||||
172.16.5.150 omcuser admin123
|
||||
172.16.5.160 omcuser admin123
|
||||
172.16.5.170 omcuser admin123
|
||||
172.16.5.180 omcuser admin123
|
||||
172.16.5.190 omcuser admin123
|
||||
172.16.5.220 omcuser admin123
|
||||
172.16.5.230 omcuser admin123
|
||||
172.16.5.210 omcuser admin123
|
||||
172.16.5.200 omcuser admin123
|
||||
# Example: 172.16.5.100 omcuser password
|
||||
|
||||
@@ -177,8 +177,8 @@ type MMLParam struct {
|
||||
Port2 int `yaml:"port2"`
|
||||
Sleep int64 `yaml:"sleep"`
|
||||
DeadLine int64 `yaml:"deadLine"`
|
||||
SizeRow byte `yaml:"sizeRow"`
|
||||
SizeCol byte `yaml:"sizeCol"`
|
||||
SizeRow int16 `yaml:"sizeRow"`
|
||||
SizeCol int16 `yaml:"sizeCol"`
|
||||
BufferSize int `yaml:"bufferSize"`
|
||||
User string `yaml:"user"`
|
||||
Password string `ymal:"password"`
|
||||
@@ -226,8 +226,8 @@ func NewYamlConfig() YamlConfig {
|
||||
ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True",
|
||||
},
|
||||
MML: MMLParam{
|
||||
SizeRow: 100,
|
||||
SizeCol: 128,
|
||||
SizeRow: 200,
|
||||
SizeCol: 120,
|
||||
BufferSize: 65535,
|
||||
},
|
||||
Alarm: AlarmConfig{
|
||||
|
||||
@@ -73,7 +73,7 @@ mml:
|
||||
port2: 5002
|
||||
sleep: 200
|
||||
deadLine: 10
|
||||
sizeRow: 100
|
||||
sizeRow: 600
|
||||
sizeCol: 128
|
||||
bufferSize: 65535
|
||||
user: admin
|
||||
|
||||
@@ -50,11 +50,11 @@ func (c *ConnTelnet) NewClient() (*ConnTelnet, error) {
|
||||
// fmt.Fprintln(client, c.User)
|
||||
// fmt.Fprintln(client, c.Password)
|
||||
|
||||
// 需要确保接收方理解并正确处理发送窗口大小设置命令
|
||||
client.Write([]byte{255, 251, 31}) // 发送窗口大小选项
|
||||
client.Write([]byte{255, 250, 31, 0, 120, 0, 128, 255, 240}) // 发送窗口行和列的大小 (120 列 x 128 行)
|
||||
c.Client = &client
|
||||
|
||||
// 调整窗口大小 (120 列 x 128 行)
|
||||
requestPty(c.Client, 120, 128)
|
||||
|
||||
// 排空连接登录的信息
|
||||
c.RunCMD("")
|
||||
return c, nil
|
||||
@@ -107,15 +107,24 @@ func (c *ConnTelnet) RunCMD(cmd string) (string, error) {
|
||||
}
|
||||
|
||||
// NewClient 创建Telnet客户端会话对象
|
||||
func (c *ConnTelnet) NewClientSession(cols, rows uint8) (*TelnetClientSession, error) {
|
||||
func (c *ConnTelnet) NewClientSession(cols, rows int) (*TelnetClientSession, error) {
|
||||
if c.Client == nil {
|
||||
return nil, fmt.Errorf("telnet client not connected")
|
||||
}
|
||||
conn := *c.Client
|
||||
// 调整窗口
|
||||
conn.Write([]byte{255, 251, 31})
|
||||
conn.Write([]byte{255, 250, 31, 0, cols, 0, rows, 255, 240})
|
||||
requestPty(c.Client, cols, rows)
|
||||
return &TelnetClientSession{
|
||||
Client: conn,
|
||||
Client: *c.Client,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// requestPty 调整终端窗口大小
|
||||
func requestPty(client *net.Conn, cols, rows int) error {
|
||||
if client == nil {
|
||||
return fmt.Errorf("telnet client not connected")
|
||||
}
|
||||
conn := *client
|
||||
// 需要确保接收方理解并正确处理发送窗口大小设置命令
|
||||
conn.Write([]byte{255, 251, 31})
|
||||
conn.Write([]byte{255, 250, 31, byte(cols >> 8), byte(cols & 0xFF), byte(rows >> 8), byte(rows & 0xFF), 255, 240})
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -96,19 +96,47 @@ func (r *PerfKPIImpl) SelectKpiReport(query model.GoldKPIQuery, kpiIds []string)
|
||||
params = append(params, query.RmUID)
|
||||
}
|
||||
if query.NeType != "" {
|
||||
conditions = append(conditions, "gk.ne_type = ?")
|
||||
params = append(params, query.NeType)
|
||||
//conditions = append(conditions, "gk.ne_type = ?")
|
||||
// params = append(params, query.NeType)
|
||||
tableName += strings.ToLower(query.NeType)
|
||||
}
|
||||
var dateTimeStr string = "CONCAT(gk.`date`, \" \", gk.start_time)"
|
||||
|
||||
var dateStr1, dateStr2, timeStr1, timeStr2 string
|
||||
if query.StartTime != "" {
|
||||
conditions = append(conditions, dateTimeStr+" >= ?")
|
||||
params = append(params, query.StartTime)
|
||||
dateStr1 = query.StartTime[:10]
|
||||
timeStr1 = query.StartTime[11:]
|
||||
}
|
||||
if query.EndTime != "" {
|
||||
conditions = append(conditions, dateTimeStr+" <= ?")
|
||||
params = append(params, query.EndTime)
|
||||
dateStr2 = query.EndTime[:10]
|
||||
timeStr2 = query.EndTime[11:]
|
||||
}
|
||||
if dateStr1 == dateStr2 && dateStr1 != "" {
|
||||
conditions = append(conditions, "gk.`date` = ?")
|
||||
params = append(params, dateStr1)
|
||||
conditions = append(conditions, "gk.`start_time` >= ?")
|
||||
params = append(params, timeStr1)
|
||||
conditions = append(conditions, "gk.`start_time` <= ?")
|
||||
params = append(params, timeStr2)
|
||||
} else {
|
||||
if dateStr1 != "" {
|
||||
conditions = append(conditions, "(gk.`date` > ? OR (gk.`date` = ? AND gk.`start_time` >= ?))")
|
||||
params = append(params, dateStr1, dateStr1, timeStr1)
|
||||
}
|
||||
if dateStr2 != "" {
|
||||
conditions = append(conditions, "(gk.`date` < ? OR (gk.`date` = ? AND gk.`start_time` <= ?))")
|
||||
params = append(params, dateStr2, dateStr2, timeStr2)
|
||||
}
|
||||
}
|
||||
|
||||
// var dateTimeStr string = "CONCAT(gk.`date`, \" \", gk.start_time)"
|
||||
// if query.StartTime != "" {
|
||||
// conditions = append(conditions, dateTimeStr+" >= ?")
|
||||
// params = append(params, query.StartTime)
|
||||
// }
|
||||
// if query.EndTime != "" {
|
||||
// conditions = append(conditions, dateTimeStr+" <= ?")
|
||||
// params = append(params, query.EndTime)
|
||||
// }
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
@@ -116,6 +144,7 @@ func (r *PerfKPIImpl) SelectKpiReport(query model.GoldKPIQuery, kpiIds []string)
|
||||
}
|
||||
|
||||
// 查询字段列
|
||||
var dateTimeStr string = "CONCAT(gk.`date`, \" \", gk.start_time)"
|
||||
timeFormat := "DATE_FORMAT(" + dateTimeStr + ", '%Y-%m-%d %H:%i:')"
|
||||
secondGroup := fmt.Sprintf("LPAD(FLOOR(SECOND(gk.start_time) / %d) * %d, 2, '0')", query.Interval, query.Interval)
|
||||
groupByField := fmt.Sprintf("CONCAT( %s, %s ) AS timeGroup", timeFormat, secondGroup)
|
||||
|
||||
@@ -198,7 +198,7 @@ func (s *NeLicenseController) State(c *gin.Context) {
|
||||
c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
if neState, err := neService.NeState(neInfo); err == nil {
|
||||
if neState, err := neService.NeState(neInfo); err == nil && neState["sn"] != nil {
|
||||
neLicense.Status = "1"
|
||||
neLicense.SerialNum = fmt.Sprint(neState["sn"])
|
||||
neLicense.ExpiryDate = fmt.Sprint(neState["expire"])
|
||||
|
||||
@@ -257,18 +257,18 @@ func (s *WSController) Telnet(c *gin.Context) {
|
||||
defer client.Close()
|
||||
|
||||
// 终端单行字符数
|
||||
cols, err := strconv.Atoi(c.Query("cols"))
|
||||
if err != nil || cols > 254 {
|
||||
cols, err := strconv.Atoi(c.DefaultQuery("cols", "120"))
|
||||
if err != nil {
|
||||
cols = 120
|
||||
}
|
||||
// 终端显示行数
|
||||
rows, err := strconv.Atoi(c.Query("rows"))
|
||||
if err != nil || cols > rows {
|
||||
rows, err := strconv.Atoi(c.DefaultQuery("rows", "128"))
|
||||
if err != nil {
|
||||
rows = 128
|
||||
}
|
||||
|
||||
// 创建Telnet客户端会话
|
||||
clientSession, err := client.NewClientSession(uint8(cols), uint8(rows))
|
||||
clientSession, err := client.NewClientSession(cols, rows)
|
||||
if err != nil {
|
||||
// 连接主机失败,请检查连接参数后重试
|
||||
c.JSON(200, result.ErrMsg(i18n.TKey(language, "neHost.errByHostInfo")))
|
||||
|
||||
Reference in New Issue
Block a user