From 4b192d15908105c63326937d0b1cfd7aa7523c40 Mon Sep 17 00:00:00 2001
From: kongdeqiang <kongdeqiang960204@163.com>
Date: 星期一, 13 四月 2026 20:41:22 +0800
Subject: [PATCH] 提交

---
 src/main/java/com/wgcloud/service/OspfInfoService.java |   87 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/wgcloud/service/OspfInfoService.java b/src/main/java/com/wgcloud/service/OspfInfoService.java
index 26c4432..c60e3d4 100644
--- a/src/main/java/com/wgcloud/service/OspfInfoService.java
+++ b/src/main/java/com/wgcloud/service/OspfInfoService.java
@@ -142,6 +142,11 @@
             map.put("username",ospfInfo.getMonitorUsername());
             map.put("password",ospfInfo.getMonitorPassword());
             map.put("monitorIp",ospfInfo.getMonitorIp());
+            if(ospfInfo.getMonitorRemoteType().equals("TELNET")){
+                map.put("type","0");
+            }else if(ospfInfo.getMonitorRemoteType().equals("SSH")){
+                map.put("type","1");
+            }
             String str = JSON.toJSONString(map);
             System.out.println(str);
             try {
@@ -153,8 +158,90 @@
                         .body();
                 System.out.println(responseBody);
 
+                if(responseBody.equals("1")){
+                    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");
+                        ospfErrorLog.setId(UUIDUtil.getUUID());
+                        ospfErrorLog.setCreateTime(DateUtil.getNowTime());
+                        try {
+                            errorLogMapper.save(ospfErrorLog);
+                        }catch (Exception e){
+                            e.printStackTrace();
+                        }
+                    }
+                }
+                ospfInfo.setState(responseBody);
+                OspfInfoMapper.updateById(ospfInfo);
+
             } catch (Exception e) {
                 e.printStackTrace();
+                ospfInfo.setState("1");
+                OspfInfoMapper.updateById(ospfInfo);
+            }
+        }
+    }
+
+    public void getPyRouterStatus() {
+        List<OspfInfo> ospfInfos = OspfInfoMapper.selectAllByParams(null);
+        for (OspfInfo ospfInfo : ospfInfos) {
+            String command = "display ospf peer "+ospfInfo.getHostname();
+            Map<String,Object> map = new HashMap<>();
+            map.put("command",command);
+            map.put("username",ospfInfo.getMonitorUsername());
+            map.put("password",ospfInfo.getMonitorPassword());
+            map.put("host",ospfInfo.getMonitorIp());
+            if(ospfInfo.getMonitorRemoteType().equals("TELNET")){
+                map.put("protocol","telnet");
+                map.put("port",23);
+            }else if(ospfInfo.getMonitorRemoteType().equals("SSH")){
+                map.put("protocol","ssh");
+                map.put("port",22);
+            }
+            map.put("ospfIp",ospfInfo.getHostname());
+            String str = JSON.toJSONString(map);
+            //System.out.println(str);
+            try {
+                String url = "http://"+remoteHost+":"+remotePort+"/exec-h3c";
+                String responseBody = HttpRequest.post(url)
+                        .timeout(50000)
+                        .body(str)
+                        .execute()
+                        .body();
+                System.out.println(responseBody);
+                String result = responseBody.replaceAll("^\"|\"$", "");
+                if(result.equals("1")){
+                    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");
+                        ospfErrorLog.setId(UUIDUtil.getUUID());
+                        ospfErrorLog.setCreateTime(DateUtil.getNowTime());
+                        try {
+                            errorLogMapper.save(ospfErrorLog);
+                        }catch (Exception e){
+                            e.printStackTrace();
+                        }
+                    }
+                }
+                ospfInfo.setState(result);
+                OspfInfoMapper.updateById(ospfInfo);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+                ospfInfo.setState("1");
+                OspfInfoMapper.updateById(ospfInfo);
             }
         }
     }

--
Gitblit v1.9.1