From edf7cb1e9d4070b07d0d1c8df1792be0e808387e Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Thu, 20 Jun 2024 18:15:04 +0800 Subject: [PATCH 1/9] fix: remove nehosts default host list --- misc/nehosts | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/misc/nehosts b/misc/nehosts index 98507489..96f19036 100644 --- a/misc/nehosts +++ b/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 From 278142dd06a0ee8cde6a5e74f98ecd248e1032e7 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 20 Jun 2024 20:42:11 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E8=AE=B8=E5=8F=AF?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E7=8A=B6=E6=80=81=E5=93=8D=E5=BA=94nil?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/network_element/controller/ne_license.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/network_element/controller/ne_license.go b/src/modules/network_element/controller/ne_license.go index 2ea9da3b..fad2e0c4 100644 --- a/src/modules/network_element/controller/ne_license.go +++ b/src/modules/network_element/controller/ne_license.go @@ -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"]) From e91ec1b9d2435ace6ebfe9c7b7c65104ec5d8aec Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 20 Jun 2024 21:08:22 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix:=20=E5=85=B3=E9=97=ADcrontask=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=BC=82=E5=B8=B8TaskHandShakeToNF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crontask/tasks.go | 102 +++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/crontask/tasks.go b/crontask/tasks.go index 3b8a931c..e64e8446 100644 --- a/crontask/tasks.go +++ b/crontask/tasks.go @@ -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) { From a434d1003d534c0741db4f7ba8ab29dcd11f25d0 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 21 Jun 2024 15:28:38 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix:=20MML-UPF=E6=A0=87=E5=87=86=E7=89=8850?= =?UTF-8?q?02=E6=95=B0=E6=8D=AE=E8=A1=8C=E7=BA=A6=E6=9C=89400+?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/etc/default/restconf.yaml | 2 +- features/mml/mml.go | 14 ++++++++++---- restagent/config/config.go | 8 ++++---- restagent/etc/restconf-t.yaml | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/config/etc/default/restconf.yaml b/config/etc/default/restconf.yaml index bd9e658b..cf274876 100644 --- a/config/etc/default/restconf.yaml +++ b/config/etc/default/restconf.yaml @@ -73,7 +73,7 @@ mml: port2: 5002 sleep: 200 deadLine: 10 - sizeRow: 100 + sizeRow: 600 sizeCol: 128 bufferSize: 65535 user: admin diff --git a/features/mml/mml.go b/features/mml/mml.go index 1df4fcae..04417737 100644 --- a/features/mml/mml.go +++ b/features/mml/mml.go @@ -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, 251, 31}) // 发送WILL 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) diff --git a/restagent/config/config.go b/restagent/config/config.go index 181cbefd..59585c83 100644 --- a/restagent/config/config.go +++ b/restagent/config/config.go @@ -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{ diff --git a/restagent/etc/restconf-t.yaml b/restagent/etc/restconf-t.yaml index 223e2cb5..9b447119 100644 --- a/restagent/etc/restconf-t.yaml +++ b/restagent/etc/restconf-t.yaml @@ -73,7 +73,7 @@ mml: port2: 5002 sleep: 200 deadLine: 10 - sizeRow: 100 + sizeRow: 600 sizeCol: 128 bufferSize: 65535 user: admin From 765044e1e5028a633705f04e0bdb2644d58f52f2 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 21 Jun 2024 16:15:56 +0800 Subject: [PATCH 5/9] =?UTF-8?q?fix:=20telnet=E8=B0=83=E6=95=B4=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/framework/utils/telnet/telnet.go | 27 ++++++++++++++++++--------- src/modules/ws/controller/ws.go | 10 +++++----- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/framework/utils/telnet/telnet.go b/src/framework/utils/telnet/telnet.go index ce2e87a9..bcafd082 100644 --- a/src/framework/utils/telnet/telnet.go +++ b/src/framework/utils/telnet/telnet.go @@ -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 +} diff --git a/src/modules/ws/controller/ws.go b/src/modules/ws/controller/ws.go index afb4722c..8e077c03 100644 --- a/src/modules/ws/controller/ws.go +++ b/src/modules/ws/controller/ws.go @@ -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"))) From 1f437945bc50aa361b7f49878429a256496521f9 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 21 Jun 2024 20:43:56 +0800 Subject: [PATCH 6/9] =?UTF-8?q?sql:=20UDM=20CN=20Type=E5=8F=AF=E9=80=89?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=AD=97=E5=85=B8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/install/sys_dict_data0.sql | 4 ++++ database/install/sys_dict_data1_i18n_zh.sql | 5 +++++ database/install/sys_dict_data2_i18n_en.sql | 7 ++++++- database/install/sys_dict_type.sql | 1 + database/upgrade/upg_sys_dict_data0.sql | 4 ++++ database/upgrade/upg_sys_dict_data1_i18n_zh.sql | 5 +++++ database/upgrade/upg_sys_dict_data2_i18n_en.sql | 7 ++++++- database/upgrade/upg_sys_dict_type.sql | 1 + 8 files changed, 32 insertions(+), 2 deletions(-) diff --git a/database/install/sys_dict_data0.sql b/database/install/sys_dict_data0.sql index 91170c81..c926bb93 100644 --- a/database/install/sys_dict_data0.sql +++ b/database/install/sys_dict_data0.sql @@ -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; diff --git a/database/install/sys_dict_data1_i18n_zh.sql b/database/install/sys_dict_data1_i18n_zh.sql index 31ed7545..21181ec1 100644 --- a/database/install/sys_dict_data1_i18n_zh.sql +++ b/database/install/sys_dict_data1_i18n_zh.sql @@ -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; diff --git a/database/install/sys_dict_data2_i18n_en.sql b/database/install/sys_dict_data2_i18n_en.sql index c46e2459..674de94f 100644 --- a/database/install/sys_dict_data2_i18n_en.sql +++ b/database/install/sys_dict_data2_i18n_en.sql @@ -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; diff --git a/database/install/sys_dict_type.sql b/database/install/sys_dict_type.sql index ab928949..e45b2681 100644 --- a/database/install/sys_dict_type.sql +++ b/database/install/sys_dict_type.sql @@ -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; diff --git a/database/upgrade/upg_sys_dict_data0.sql b/database/upgrade/upg_sys_dict_data0.sql index 5876c198..942fe273 100644 --- a/database/upgrade/upg_sys_dict_data0.sql +++ b/database/upgrade/upg_sys_dict_data0.sql @@ -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, ''); -- 指定记录条件更新 diff --git a/database/upgrade/upg_sys_dict_data1_i18n_zh.sql b/database/upgrade/upg_sys_dict_data1_i18n_zh.sql index fc60519a..ffe43fdb 100644 --- a/database/upgrade/upg_sys_dict_data1_i18n_zh.sql +++ b/database/upgrade/upg_sys_dict_data1_i18n_zh.sql @@ -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; diff --git a/database/upgrade/upg_sys_dict_data2_i18n_en.sql b/database/upgrade/upg_sys_dict_data2_i18n_en.sql index 1b12f2a2..f9ae16e9 100644 --- a/database/upgrade/upg_sys_dict_data2_i18n_en.sql +++ b/database/upgrade/upg_sys_dict_data2_i18n_en.sql @@ -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; diff --git a/database/upgrade/upg_sys_dict_type.sql b/database/upgrade/upg_sys_dict_type.sql index ee7fd679..ab0fcd5c 100644 --- a/database/upgrade/upg_sys_dict_type.sql +++ b/database/upgrade/upg_sys_dict_type.sql @@ -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; From c699bf22edc83229487ab35debc063a3f3a52122 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 21 Jun 2024 20:47:47 +0800 Subject: [PATCH 7/9] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 18aa6621..7cd472fd 100644 --- a/README.md +++ b/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`'" + ``` ## 安装 From d8e7de9e183634e2e5b44ee2bc8e2d1f5852c7e6 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Mon, 24 Jun 2024 17:24:55 +0800 Subject: [PATCH 8/9] fix: kpi_report issue --- .../network_data/repository/perf_kpi.impl.go | 43 ++++++++++++++++--- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/src/modules/network_data/repository/perf_kpi.impl.go b/src/modules/network_data/repository/perf_kpi.impl.go index fab63d06..94e2aa20 100644 --- a/src/modules/network_data/repository/perf_kpi.impl.go +++ b/src/modules/network_data/repository/perf_kpi.impl.go @@ -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) From 4161ec2dfdd3c3b022c83236c726b25469a744a5 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Mon, 24 Jun 2024 17:26:39 +0800 Subject: [PATCH 9/9] fix: kpi_report index issue --- misc/importdb.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/misc/importdb.sh b/misc/importdb.sh index 88778c57..d3c08a73 100644 --- a/misc/importdb.sh +++ b/misc/importdb.sh @@ -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