From 4910c350e379c180bdb7c3194e8ea0770928129f Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期二, 02 十二月 2025 10:53:22 +0800
Subject: [PATCH] 大屏接口修改
---
src/main/java/com/wgcloud/service/OspfInfoService.java | 101 ++++++++++++++++++++++++++++++++++++--------------
1 files changed, 73 insertions(+), 28 deletions(-)
diff --git a/src/main/java/com/wgcloud/service/OspfInfoService.java b/src/main/java/com/wgcloud/service/OspfInfoService.java
index 2f2257b..1f2f36f 100644
--- a/src/main/java/com/wgcloud/service/OspfInfoService.java
+++ b/src/main/java/com/wgcloud/service/OspfInfoService.java
@@ -2,10 +2,14 @@
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
+import com.wgcloud.entity.OspfErrorLog;
import com.wgcloud.entity.OspfInfo;
import com.wgcloud.entity.SnmpInfo;
+import com.wgcloud.entity.vo.OspfNeighbor;
+import com.wgcloud.mapper.OspfErrorLogMapper;
import com.wgcloud.mapper.OspfInfoMapper;
import com.wgcloud.util.DateUtil;
+import com.wgcloud.util.OspfNeighborUtil;
import com.wgcloud.util.UUIDUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -30,6 +34,10 @@
@Autowired
private RouterConnectionService routerConnectionService;
+ @Autowired
+ private OspfNeighborUtil ospfNeighborUtil;
+ @Autowired
+ private OspfErrorLogMapper errorLogMapper;
private static final Logger logger = LoggerFactory.getLogger(OspfInfoService.class);
@@ -70,44 +78,81 @@
OspfInfoMapper.updateById(ospfInfo);
}
- public boolean checkOspfStatus() {
- String command = "display ospf brief";
- String output = routerConnectionService.executeCommand(command);
-
- if (output == null) {
- return false;
- }
-
- // 妫�鏌ヨ緭鍑轰腑鏄惁鍖呭惈OSPF鐩稿叧淇℃伅
- boolean containsRouterId = StringUtils.containsIgnoreCase(output, "Router ID");
- boolean containsArea = StringUtils.containsIgnoreCase(output, "Area");
- boolean containsProcessId = StringUtils.containsIgnoreCase(output, "Process ID");
-
- // 妫�鏌ユ槸鍚︽湁閿欒淇℃伅
- boolean containsError = StringUtils.containsIgnoreCase(output, "Error") ||
- StringUtils.containsIgnoreCase(output, "Fail") ||
- StringUtils.containsIgnoreCase(output, "Invalid");
-
- return (containsRouterId && containsArea && containsProcessId) && !containsError;
- }
+// public boolean checkOspfStatus() {
+// String command = "display ospf brief";
+// String output = routerConnectionService.executeCommand(command);
+//
+// if (output == null) {
+// return false;
+// }
+//
+// // 妫�鏌ヨ緭鍑轰腑鏄惁鍖呭惈OSPF鐩稿叧淇℃伅
+// boolean containsRouterId = StringUtils.containsIgnoreCase(output, "Router ID");
+// boolean containsArea = StringUtils.containsIgnoreCase(output, "Area");
+// boolean containsProcessId = StringUtils.containsIgnoreCase(output, "Process ID");
+//
+// // 妫�鏌ユ槸鍚︽湁閿欒淇℃伅
+// boolean containsError = StringUtils.containsIgnoreCase(output, "Error") ||
+// StringUtils.containsIgnoreCase(output, "Fail") ||
+// StringUtils.containsIgnoreCase(output, "Invalid");
+//
+// return (containsRouterId && containsArea && containsProcessId) && !containsError;
+// }
/**
* 鑾峰彇璇︾粏鐨凮SPF閭诲眳淇℃伅
*/
- public String getDetailedOspfNeighborInfo() {
- String command = "display ospf peer";
- return routerConnectionService.executeCommand(command);
+ public void getDetailedOspfNeighborInfo() {
+ List<OspfInfo> ospfInfos = OspfInfoMapper.selectAllByParams(null);
+ for (OspfInfo ospfInfo : ospfInfos) {
+ String command = "display ospf peer "+ospfInfo.getHostname();
+ String result = routerConnectionService.executeCommand(command,ospfInfo.getMonitorUsername(),ospfInfo.getMonitorPassword(),ospfInfo.getMonitorIp());
+ if(StringUtils.isNotBlank(result)){
+ List<OspfNeighbor> neighbors = ospfNeighborUtil.analysisStr(result);
+ if(neighbors != null || neighbors.size()>0){
+ OspfNeighbor ospfNeighbor = neighbors.get(0);
+ String state = ospfNeighbor.getState();
+ if (state.contains("Down") || state.contains("Init")) {
+ ospfInfo.setState("1");
+ OspfInfoMapper.updateById(ospfInfo);
+
+ HashMap<String, Object> hashMap = new HashMap<>();
+ hashMap.put("state","1");
+ hashMap.put("hostname",ospfInfo.getHostname());
+ List<OspfErrorLog> ospfErrorLogs = errorLogMapper.selectAllByParams(hashMap);
+ if(ospfErrorLogs==null||ospfErrorLogs.size()==0){
+ OspfErrorLog ospfErrorLog = new OspfErrorLog();
+ ospfErrorLog.setInfoContent(ospfInfo.getInfoContent());
+ ospfErrorLog.setHostname(ospfInfo.getHostname());
+ ospfErrorLog.setState("1");
+ try {
+ errorLogMapper.save(ospfErrorLog);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }else {
+ ospfInfo.setState("0");
+ OspfInfoMapper.updateById(ospfInfo);
+ }
+ }
+ }else {
+ ospfInfo.setState("1");
+ OspfInfoMapper.updateById(ospfInfo);
+ }
+
+ }
}
/**
* 鑾峰彇OSPF鎺ュ彛鐘舵��
*/
- public String getOspfInterfaceStatus() {
- String command = "display ospf interface";
- return routerConnectionService.executeCommand(command);
- }
+// public String getOspfInterfaceStatus() {
+// String command = "display ospf interface";
+// return routerConnectionService.executeCommand(command);
+// }
-
+
public int countByParams(Map<String, Object> params) throws Exception {
--
Gitblit v1.9.1