Merge remote-tracking branch 'origin/main' into lichang

This commit is contained in:
TsMask
2024-10-12 15:44:41 +08:00
12 changed files with 189 additions and 15 deletions

View File

@@ -32,7 +32,7 @@ sshd:
userName: manager
password: pass123
authType: local
tagNE: hlr
tagNE: omc
# authType: local/omc
telnetServer:
@@ -45,7 +45,7 @@ telnetServer:
userName: manager
password: pass123
authType: local
tagNE: hlr
tagNE: omc
# authproto: NoAuth/MD5/SHA
# privProto: NoPriv/DES/AES/AES192/AES256
@@ -63,15 +63,15 @@ snmpServer:
trapBool: false
trapTick: 60
timeOut: 5
trapTarget: "2001:db8::9219"
trapTarget: ""
database:
type: mysql
user: administrator
password: "*86#ROtartsinim"
host: 192.168.13.117
port: 3306
name: OMC_PUB
user: root
password: 1000omc@kp!
host: 127.0.0.1
port: 33066
name: omc_db
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
omc:

View File

@@ -42,7 +42,7 @@ CREATE TABLE `mml_http_map` (
-- ----------------------------
INSERT INTO `mml_http_map` VALUES (1, 'OMC', 'dsp', 'sysinfo', 'Get', '/api/rest/systemManagement/v1/sysInfo', '/%s', NULL, NULL, '{}', '{\r\n \"retFmt\": \"GetNF\",\r\n \"retMsg\": \"RetCode = %d operation succeeded\\n\\n\",\r\n \"errMsg\": \"ErrorCode = %d operation failed: %s\\n\\n\",\r\n \"title\": \"NE System Information\",\r\n \"singleList\": true,\r\n \"sepSpaceNum\": 2,\r\n \"alignmentM\": \"Left\",\r\n \"alignmentSN\": \"Right\",\r\n \"alignmentSV\": \"Left\",\r\n \"cols\": [\r\n {\r\n \"name\": \"neType\",\r\n \"display\": \"NE type\",\r\n \"length\": 10\r\n },\r\n {\r\n \"name\": \"neId\",\r\n \"display\": \"NE ID\",\r\n \"length\": 28\r\n }, \r\n {\r\n \"name\": \"hostName\",\r\n \"display\": \"Host name\",\r\n \"length\": 16\r\n },\r\n {\r\n \"name\": \"osInfo\",\r\n \"display\": \"OS information\",\r\n \"length\": 128\r\n },\r\n {\r\n \"name\": \"dbInfo\",\r\n \"display\": \"Database information\",\r\n \"length\": 80\r\n },\r\n {\r\n \"name\": \"version\",\r\n \"display\": \"Software version\",\r\n \"length\": 12\r\n },\r\n {\r\n \"name\": \"ipAddr\",\r\n \"display\": \"IP address\",\r\n \"length\": 20\r\n },\r\n {\r\n \"name\": \"port\",\r\n \"display\": \"Port\",\r\n \"length\": 6\r\n },\r\n {\r\n \"name\": \"cpus\",\r\n \"display\": \"CPUs\",\r\n \"length\": 4\r\n },\r\n {\r\n \"name\": \"totalMem\",\r\n \"display\": \"Total memory(KB)\",\r\n \"length\": 11\r\n } \r\n ],\r\n \"end\": \"(Number of results = %d)\\n\\n\"\r\n}');
INSERT INTO `mml_http_map` VALUES (2, 'OMC', 'lst', 'memap', 'Get', '/api/rest/dataManagement/v1/omc_db/ne_info', NULL, NULL, '?loc=', '{}', '{\r\n \"retFmt\": \"GetDB\",\r\n \"retMsg\": \"RetCode = %d operation succeeded\\n\\n\",\r\n \"errMsg\": \"ErrorCode = %d operation failed: %s\\n\\n\",\r\n \"title\": \"Managed Element Map\",\r\n \"singleList\": true,\r\n \"sepSpaceNum\": 2,\r\n \"alignmentM\": \"Left\",\r\n \"alignmentSN\": \"Right\",\r\n \"alignmentSV\": \"Left\",\r\n \"cols\": [\r\n {\r\n \"name\": \"rm_uid\",\r\n \"display\": \"Resource management UID\",\r\n \"length\": 28\r\n },\r\n {\r\n \"name\": \"ne_name\",\r\n \"display\": \"NE name\",\r\n \"length\": 28\r\n }\r\n ],\r\n \"end\": \"(Number of results = %d)\\n\\n\"\r\n}');
INSERT INTO `mml_http_map` VALUES (3, 'OMC', 'lst', 'neinfo', 'Get', '/api/rest/dataManagement/v1/omc_db/ne_info', NULL, NULL, '?loc=', '{}', '{\r\n \"retFmt\": \"GetDB\",\r\n \"retMsg\": \"RetCode = %d operation succeeded\\n\\n\",\r\n \"errMsg\": \"ErrorCode = %d operation failed: %s\\n\\n\",\r\n \"title\": \"Network element information\",\r\n \"singleList\": true,\r\n \"sepSpaceNum\": 2,\r\n \"alignmentM\": \"Left\",\r\n \"alignmentSN\": \"Right\",\r\n \"alignmentSV\": \"Left\",\r\n \"cols\": [\r\n {\r\n \"name\": \"ne_type\",\r\n \"display\": \"NE type\",\r\n \"length\": 10\r\n },\r\n {\r\n \"name\": \"ne_id\",\r\n \"display\": \"NE ID\",\r\n \"length\": 16\r\n },\r\n {\r\n \"name\": \"rm_uid\",\r\n \"display\": \"Resource management UID\",\r\n \"length\": 28\r\n },\r\n {\r\n \"name\": \"ne_name\",\r\n \"display\": \"NE name\",\r\n \"length\": 28\r\n },\r\n {\r\n \"name\": \"pv_flag\",\r\n \"display\": \"PV flag\",\r\n \"length\": 10\r\n },\r\n {\r\n \"name\": \"ip\",\r\n \"display\": \"IP address\",\r\n \"length\": 32\r\n },\r\n {\r\n \"name\": \"port\",\r\n \"display\": \"Port\",\r\n \"length\": 6\r\n },\r\n {\r\n \"name\": \"status\",\r\n \"display\": \"Status\",\r\n \"length\": 10,\r\n \"alias\": [\r\n \"online\",\r\n \"offline\",\r\n \"standby\",\r\n \"maintain\"\r\n ]\r\n }\r\n ],\r\n \"end\": \"(Number of results = %d)\\n\\n\"\r\n}\r\n');
INSERT INTO `mml_http_map` VALUES (3, 'OMC', 'lst', 'neinfo', 'Get', '/api/rest/dataManagement/v1/omc_db/ne_info', NULL, NULL, '?loc=', '{}', '{\r\n \"retFmt\": \"GetDB\",\r\n \"retMsg\": \"RetCode = %d operation succeeded\\n\\n\",\r\n \"errMsg\": \"ErrorCode = %d operation failed: %s\\n\\n\",\r\n \"title\": \"Network element information\",\r\n \"singleList\": true,\r\n \"sepSpaceNum\": 2,\r\n \"alignmentM\": \"Left\",\r\n \"alignmentSN\": \"Right\",\r\n \"alignmentSV\": \"Left\",\r\n \"cols\": [\r\n {\r\n \"name\": \"ne_type\",\r\n \"display\": \"NE type\",\r\n \"length\": 10\r\n },\r\n {\r\n \"name\": \"ne_id\",\r\n \"display\": \"NE ID\",\r\n \"length\": 16\r\n },\r\n {\r\n \"name\": \"rm_uid\",\r\n \"display\": \"Resource management UID\",\r\n \"length\": 28\r\n },\r\n {\r\n \"name\": \"ne_name\",\r\n \"display\": \"NE name\",\r\n \"length\": 28\r\n },\r\n {\r\n \"name\": \"pv_flag\",\r\n \"display\": \"PV flag\",\r\n \"length\": 10\r\n },\r\n {\r\n \"name\": \"ip\",\r\n \"display\": \"IP address\",\r\n \"length\": 32\r\n },\r\n {\r\n \"name\": \"port\",\r\n \"display\": \"Port\",\r\n \"length\": 6\r\n },\r\n {\r\n \"name\": \"status\",\r\n \"display\": \"Status\",\r\n \"length\": 10,\r\n \"alias\": [\r\n \"offline\",\r\n \"online\",\r\n \"standby\",\r\n \"maintain\"\r\n ]\r\n }\r\n ],\r\n \"end\": \"(Number of results = %d)\\n\\n\"\r\n}\r\n');
INSERT INTO `mml_http_map` VALUES (4, 'OMC', 'add', 'neinfo', 'Post', '/api/rest/dataManagement/v1/omc_db/ne_info', NULL, NULL, '', '{\"bodyFmt\":\"PostDB\", \"bodyKey\":\"ne_info\"}', '{\r\n \"retFmt\": \"PostDB\",\r\n \"retMsg\": \"RetCode = %d operation succeeded\\n\\n\",\r\n \"errMsg\": \"ErrorCode = %d operation failed: %s\\n\\n\",\r\n \"cols\": [\r\n {\r\n \"name\": \"affectedRows\",\r\n \"display\": \"Affected rows\",\r\n \"length\": 11\r\n }\r\n ]\r\n}\r\n');
INSERT INTO `mml_http_map` VALUES (5, 'OMC', 'del', 'neinfo', 'Delete', '/api/rest/dataManagement/v1/omc_db/ne_info', NULL, NULL, '?loc=', '{}', '{\r\n \"retFmt\": \"DeleteDB\",\r\n \"retMsg\": \"RetCode = %d operation succeeded\\n\\n\",\r\n \"errMsg\": \"ErrorCode = %d operation failed: %s\\n\\n\",\r\n \"cols\": [\r\n {\r\n \"name\": \"affectedRows\",\r\n \"display\": \"Affected rows\",\r\n \"length\": 11\r\n }\r\n ]\r\n}');
INSERT INTO `mml_http_map` VALUES (6, 'OMC', 'mod', 'neinfo', 'Put', '/api/rest/dataManagement/v1/omc_db/ne_info', NULL, NULL, '?loc=', '{\"bodyFmt\":\"PutDB\", \"bodyKey\":\"ne_info\"}', '{\r\n \"retFmt\": \"PutDB\",\r\n \"retMsg\": \"RetCode = %d operation succeeded\\n\\n\",\r\n \"errMsg\": \"ErrorCode = %d operation failed: %s\\n\\n\",\r\n \"cols\": [\r\n {\r\n \"name\": \"affectedRows\",\r\n \"display\": \"Affected rows\",\r\n \"length\": 11\r\n }\r\n ]\r\n}');

View File

@@ -689,5 +689,7 @@ INSERT INTO `sys_dict_data` VALUES (2178, 2178, 'dictData.cdr_cause_code.41', '
INSERT INTO `sys_dict_data` VALUES (2179, 2179, 'dictData.cdr_cause_code.42', '拥塞', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
INSERT INTO `sys_dict_data` VALUES (2180, 2180, 'dictData.cdr_cause_code.47', '资源不可用', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
INSERT INTO `sys_dict_data` VALUES (2181, 2181, 'dictData.cdr_cause_code.50', '请求的设施未订阅', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
INSERT INTO `sys_dict_data` VALUES (2182, 2182, 'job.exportSMSCCDR', '定期从短信话单表导出文件至指定目录', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
INSERT INTO `sys_dict_data` VALUES (2183, 2183, 'job.removeExportedFiles', '定期删除指定目录过期文件', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -689,5 +689,7 @@ INSERT INTO `sys_dict_data` VALUES (4178, 4178, 'dictData.cdr_cause_code.41', 'T
INSERT INTO `sys_dict_data` VALUES (4179, 4179, 'dictData.cdr_cause_code.42', 'Congestion', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
INSERT INTO `sys_dict_data` VALUES (4180, 4180, 'dictData.cdr_cause_code.47', 'Resources Unavailable Unspec', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
INSERT INTO `sys_dict_data` VALUES (4181, 4181, 'dictData.cdr_cause_code.50', 'Requested Facility Not Subscribed', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
INSERT INTO `sys_dict_data` VALUES (4182, 4182, 'job.exportSMSCCDR', 'Export regularly from SMSC CDR table', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
INSERT INTO `sys_dict_data` VALUES (4183, 4183, 'job.removeExportedFiles', 'Regularly delete expired files in the specified directory', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -40,5 +40,7 @@ INSERT INTO `sys_job` VALUES (10, 'job.genNeStateAlarm', 'SYSTEM', 'genNeStateAl
INSERT INTO `sys_job` VALUES (11, 'job.exportOperateLog', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"sys_log_operate\",\"timeCol\":\"oper_time\",\"timeUnit\":\"milli\",\"columns\":\"oper_id,omc_get_dict_value(title, \\\"i18n_en\\\") as title,business_type,method,request_method,operator_type,oper_name,dept_name,oper_url,oper_ip,oper_location,oper_param,oper_msg,status,oper_time,cost_time\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/operate_log\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724833786290, 'job.exportOperateLog');
INSERT INTO `sys_job` VALUES (12, 'job.exportIMSCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_ims\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callType\')) as call_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callerParty\')) as caller_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.calledParty\')) as called_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callDuration\')) as call_duration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.serviceResult\')) as service_result,DATE_FORMAT(FROM_UNIXTIME(timestamp), \'%Y-%m-%d %H:%i:%s\') AS timestamp\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/ims_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1722224659251, '');
INSERT INTO `sys_job` VALUES (13, 'job.exportSMFCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_smf\",\"columns\":\"id,ne_type,ne_name,rm_uid,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) AS record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.chargingID\')) AS charging_id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.subscriberIdentifier.subscriptionIDType\')) AS subscriber_id_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.subscriberIdentifier.subscriptionIDData\')) AS subscriber_id_data,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.duration\')) AS duration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.invocationTimestamp\')) as invocationTimestamp,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataVolumeUplink\')) AS data_volume_uplink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataVolumeDownlink\')) AS data_volume_downlink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataTotalVolume\')) AS data_total_volume,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.pDUSessionChargingInformation.pDUAddress.pDUIPv4Address\')) AS pdu_ipv4_address,timestamp\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/smf_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724309047797, '');
INSERT INTO `sys_job` VALUES (14, 'job.exportSMSCCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_smsc\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.serviceType\')) as service_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callerParty\')) as caller_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.calledParty\')) as called_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.result\')) as result,DATE_FORMAT(FROM_UNIXTIME(JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.updateTime\'))), \'%Y-%m-%d %H:%i:%s\') as update_time\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/smsc_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724309047797, '');
INSERT INTO `sys_job` VALUES (15, 'job.removeExportedFiles', 'SYSTEM', 'removeFile', '[{\"filePath\":\"/usr/local/omc/backup/operate_log\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/ims_cdr\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/smf_cdr\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/smsc_cdr\",\"maxDays\":30}]', '0 10 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1728634085631, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -696,5 +696,7 @@ REPLACE INTO `sys_dict_data` VALUES (2178, 2178, 'dictData.cdr_cause_code.41', '
REPLACE INTO `sys_dict_data` VALUES (2179, 2179, 'dictData.cdr_cause_code.42', '拥塞', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
REPLACE INTO `sys_dict_data` VALUES (2180, 2180, 'dictData.cdr_cause_code.47', '资源不可用', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
REPLACE INTO `sys_dict_data` VALUES (2181, 2181, 'dictData.cdr_cause_code.50', '请求的设施未订阅', 'i18n_zh', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
REPLACE INTO `sys_dict_data` VALUES (2182, 2182, 'job.exportSMSCCDR', '定期从短信话单表导出文件至指定目录', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
REPLACE INTO `sys_dict_data` VALUES (2183, 2183, 'job.removeExportedFiles', '定期删除指定目录过期文件', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -691,5 +691,7 @@ REPLACE INTO `sys_dict_data` VALUES (4178, 4178, 'dictData.cdr_cause_code.41', '
REPLACE INTO `sys_dict_data` VALUES (4179, 4179, 'dictData.cdr_cause_code.42', 'Congestion', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
REPLACE INTO `sys_dict_data` VALUES (4180, 4180, 'dictData.cdr_cause_code.47', 'Resources Unavailable Unspec', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
REPLACE INTO `sys_dict_data` VALUES (4181, 4181, 'dictData.cdr_cause_code.50', 'Requested Facility Not Subscribed', 'i18n_en', '', '', '1', 'supervisor', 1725877564156, '', 0, '');
REPLACE INTO `sys_dict_data` VALUES (4182, 4182, 'job.exportSMSCCDR', 'Export regularly from SMSC CDR table', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
REPLACE INTO `sys_dict_data` VALUES (4183, 4183, 'job.removeExportedFiles', 'Regularly delete expired files in the specified directory', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -43,6 +43,8 @@ REPLACE INTO `sys_job` VALUES (9, 'job.getStateFromNE', 'SYSTEM', 'getStateFromN
REPLACE INTO `sys_job` VALUES (10, 'job.genNeStateAlarm', 'SYSTEM', 'genNeStateAlarm', '{\"alarmID\":\"HXEMSSM10000\",\"alarmCode\":10000,\"alarmTitle\":\"The system state is abnormal\",\"neType\":\"OMC\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\": \"Major\",\"objectName\":\"EMS;SystemManagement;Heartbeat\",\"objectType\":\"SystemState\",\"specificProblem\":\"Alarm cause: the system state of target NE has not been received for {threshold} seconds\", \"specificProblemID\":\"AC10000\",\"threshold\":30}', '0/5 * * * * ?', '3', '0', '0', '0', 'supervisor', 1698478134842, 'admin', 1713781643031, 'job.genNeStateAlarmRemark');
REPLACE INTO `sys_job` VALUES (11, 'job.exportOperateLog', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"sys_log_operate\",\"timeCol\":\"oper_time\",\"timeUnit\":\"milli\",\"columns\":\"oper_id,omc_get_dict_value(title, \\\"i18n_en\\\") as title,business_type,method,request_method,operator_type,oper_name,dept_name,oper_url,oper_ip,oper_location,oper_param,oper_msg,status,oper_time,cost_time\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/operate_log\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724833786290, 'job.exportOperateLog');
REPLACE INTO `sys_job` VALUES (12, 'job.exportIMSCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_ims\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callType\')) as call_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callerParty\')) as caller_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.calledParty\')) as called_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callDuration\')) as call_duration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.serviceResult\')) as service_result,DATE_FORMAT(FROM_UNIXTIME(timestamp), \'%Y-%m-%d %H:%i:%s\') AS timestamp\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/ims_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1722224659251, '');
REPLACE INTO `sys_job` VALUES (13, 'job.exportSMFCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_smf\",\"columns\":\"id,ne_type,ne_name,rm_uid,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) AS record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.chargingID\')) AS charging_id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.subscriberIdentifier.subscriptionIDType\')) AS subscriber_id_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.subscriberIdentifier.subscriptionIDData\')) AS subscriber_id_data,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.duration\')) AS duration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.invocationTimestamp\')) as invocationTimestamp,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataVolumeUplink\')) AS data_volume_uplink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataVolumeDownlink\')) AS data_volume_downlink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataTotalVolume\')) AS data_total_volume,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.pDUSessionChargingInformation.pDUAddress.pDUIPv4Address\')) AS pdu_ipv4_address,timestamp\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/smf_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724309047797, '');
REPLACE INTO `sys_job` VALUES (13, 'job.exportSMFCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_smf\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) AS record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.chargingID\')) AS charging_id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.subscriberIdentifier.subscriptionIDType\')) AS subscriber_id_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.subscriberIdentifier.subscriptionIDData\')) AS subscriber_id_data,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.duration\')) AS duration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.invocationTimestamp\')) as invocationTimestamp,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataVolumeUplink\')) AS data_volume_uplink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataVolumeDownlink\')) AS data_volume_downlink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataTotalVolume\')) AS data_total_volume,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.pDUSessionChargingInformation.pDUAddress.pDUIPv4Address\')) AS pdu_ipv4_address,timestamp\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/smf_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724309047797, '');
REPLACE INTO `sys_job` VALUES (14, 'job.exportSMSCCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_smsc\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.serviceType\')) as service_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callerParty\')) as caller_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.calledParty\')) as called_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.result\')) as result,DATE_FORMAT(FROM_UNIXTIME(JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.updateTime\'))), \'%Y-%m-%d %H:%i:%s\') as update_time\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/smsc_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724309047797, '');
REPLACE INTO `sys_job` VALUES (15, 'job.removeExportedFiles', 'SYSTEM', 'removeFile', '[{\"filePath\":\"/usr/local/omc/backup/operate_log\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/ims_cdr\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/smf_cdr\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/smsc_cdr\",\"maxDays\":30}]', '0 10 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1728634085631, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -44,7 +44,7 @@ type KpiReport struct {
NeType string `json:"NeType"`
KPIs []struct {
KPIID string `json:"KPIID"`
Value int `json:"Value"`
Value int64 `json:"Value"`
Err string `json:"Err"`
} `json:"KPIs"`
} `json:"NE"`
@@ -62,7 +62,7 @@ type GoldKpi struct {
RmUid string `json:"rmUid" xorm:"rm_uid"`
NEType string `json:"neType" xorm:"ne_type"`
KpiId string `json:"kpiId" xorm:"kpi_id"`
Value int `json:"value"`
Value int64 `json:"value"`
Error string `json:"error"`
Timestamp string `json:"timestamp"`
}

View File

@@ -10,6 +10,7 @@ import (
"be.ems/src/modules/crontask/processor/getStateFromNE"
processorMonitorSysResource "be.ems/src/modules/crontask/processor/monitor_sys_resource"
processorNeConfigBackup "be.ems/src/modules/crontask/processor/ne_config_backup"
"be.ems/src/modules/crontask/processor/removeFile"
)
// InitCronQueue 初始定时任务队列
@@ -25,4 +26,5 @@ func InitCronQueue() {
cron.CreateQueue("getStateFromNE", getStateFromNE.NewProcessor)
cron.CreateQueue("genNeStateAlarm", genNeStateAlarm.NewProcessor)
cron.CreateQueue("exportTable", exportTable.NewProcessor)
cron.CreateQueue("removeFile", removeFile.NewProcessor)
}

View File

@@ -0,0 +1,159 @@
package removeFile
import (
"encoding/json"
"os"
"path/filepath"
"sort"
"time"
"be.ems/lib/log"
"be.ems/src/framework/cron"
)
var NewProcessor = &BarProcessor{
progress: 0,
count: 0,
}
// bar 队列任务处理
type BarProcessor struct {
// 任务进度
progress int
// 执行次数
count int
}
type BarParams struct {
FilePath string `json:"filePath"` // file path
MaxDays int `json:"maxDays"`
MaxFiles *int `json:"maxFiles"` // keep max files
MaxSize *int64 `json:"maxSize"`
Extras string `json:"extras"` // extras condition for where
}
type FileInfo struct {
Path string
Info os.FileInfo
}
func (s *BarProcessor) Execute(data any) (any, error) {
s.count++
options := data.(cron.JobData)
sysJob := options.SysJob
var params []BarParams
err := json.Unmarshal([]byte(sysJob.TargetParams), &params)
if err != nil {
return nil, err
}
result := []map[string]any{}
for _, param := range params {
res, _ := s.ExecuteOne(param)
result = append(result, res)
}
// 返回结果,用于记录执行结果
return map[string]any{
"result": result,
}, nil
}
func (s *BarProcessor) ExecuteOne(params BarParams) (map[string]any, error) {
var maxFiles int = 0
var maxSize int64 = 0
if params.MaxFiles != nil {
maxFiles = *params.MaxFiles
}
if params.MaxSize != nil {
maxSize = int64(*params.MaxSize * 1024 * 1024)
}
files, err := getFiles(params.FilePath)
if err != nil {
return map[string]any{
"msg": "failed",
"err": err.Error(),
}, err
}
// 获取本地时区
loc, err := time.LoadLocation("Local")
if err != nil {
return map[string]any{
"msg": "failed",
"err": err.Error(),
}, err
}
cutoff := time.Now().In(loc).AddDate(0, 0, -params.MaxDays)
var oldFiles []FileInfo
for _, file := range files {
if file.Info.ModTime().Before(cutoff) {
oldFiles = append(oldFiles, file)
}
}
// 按修改时间排序文件(最旧的在前)
sort.Slice(oldFiles, func(i, j int) bool {
return oldFiles[i].Info.ModTime().Before(oldFiles[j].Info.ModTime())
})
deleted, errorDel := 0, 0
// 删除文件直到满足文件总数不超过maxFiles个且总大小不超过maxSize的条件
var totalSize int64
for i, file := range oldFiles {
if (maxFiles > 0 && i >= maxFiles) || (maxSize > 0 && totalSize+file.Info.Size() > maxSize) {
break
}
err := os.Remove(file.Path)
if err != nil {
log.Error("Error deleting file:", file.Path, err)
errorDel++
continue
}
totalSize += file.Info.Size()
deleted++
}
// 如果仍然有超过maxFiles个文件或总大小超过maxSize继续删除最旧的文件
remainingFiles := files
sort.Slice(remainingFiles, func(i, j int) bool {
return remainingFiles[i].Info.ModTime().Before(remainingFiles[j].Info.ModTime())
})
for (maxFiles > 0 && len(remainingFiles) > maxFiles) || (maxSize > 0 && totalSize > maxSize) {
file := remainingFiles[0]
err := os.Remove(file.Path)
if err != nil {
log.Error("Error deleting file:", file.Path, err)
remainingFiles = remainingFiles[1:]
continue
}
totalSize -= file.Info.Size()
remainingFiles = remainingFiles[1:]
}
// 返回结果,用于记录执行结果
return map[string]any{
"msg": "successed",
"filePath": params.FilePath,
"deleted": deleted,
"errorDel": errorDel,
}, nil
}
func getFiles(dir string) ([]FileInfo, error) {
var files []FileInfo
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
files = append(files, FileInfo{Path: path, Info: info})
}
return nil
})
return files, err
}

View File

@@ -2,21 +2,22 @@
TargetIP="[2001:db8::9166]"
PORT="34957"
OID=".1.3.6.1.4.1.1379.2.3.3.3.1.1.9.0"
case "$1" in
1)
echo -n "Set HLR state link down ... "
snmpset -v3 -l noAuthNoPriv -u manager ${TargetIP}:${PORT} .1.3.6.1.4.1.1379.2.3.3.3.1.1.9.0 i 1 >/dev/null
snmpset -v3 -l noAuthNoPriv -u manager ${TargetIP}:${PORT} ${OID} i 1 >/dev/null
echo "done"
;;
2)
echo -n "Set HLR state link up ... "
snmpset -v3 -l noAuthNoPriv -u manager ${TargetIP}:${PORT} .1.3.6.1.4.1.1379.2.3.3.3.1.1.9.0 i 2 >/dev/null
snmpset -v3 -l noAuthNoPriv -u manager ${TargetIP}:${PORT} ${OID} i 2 >/dev/null
echo "done"
;;
3)
echo -n "Set HLR state authentication failure ... "
snmpset -v3 -l noAuthNoPriv -u manager ${TargetIP}:${PORT} .1.3.6.1.4.1.1379.2.3.3.3.1.1.9.0 i 3 >/dev/null
snmpset -v3 -l noAuthNoPriv -u manager ${TargetIP}:${PORT} ${OID} i 3 >/dev/null
echo "done"
;;
*)