diff --git a/src/main/java/com/cisd/tms/modules/device/controller/NetworkConfigController.java b/src/main/java/com/cisd/tms/modules/device/controller/NetworkConfigController.java index 7e6b903..e0d2964 100644 --- a/src/main/java/com/cisd/tms/modules/device/controller/NetworkConfigController.java +++ b/src/main/java/com/cisd/tms/modules/device/controller/NetworkConfigController.java @@ -76,6 +76,12 @@ public class NetworkConfigController { } + @Operation(summary = "获取所有Bond名称", description = "获取系统中所有Bond连接名称") + @GetMapping("/bond/names") + public ApiResponse> getBondNames() { + return ApiResponse.success(networkConfigService.getBondNames()); + } + @Operation(summary = "创建Bond", description = "创建一个新的Bond聚合接口,需指定名称、模式和从属接口") @PostMapping("/bond/create") @AuditedOperation(module = ModuleCode.NETWORK, action = ActionType.CREATE, summary = "创建Bond") diff --git a/src/main/java/com/cisd/tms/modules/device/dto/network/BondConfigRequest.java b/src/main/java/com/cisd/tms/modules/device/dto/network/BondConfigRequest.java index 399d552..d1037e7 100644 --- a/src/main/java/com/cisd/tms/modules/device/dto/network/BondConfigRequest.java +++ b/src/main/java/com/cisd/tms/modules/device/dto/network/BondConfigRequest.java @@ -27,7 +27,7 @@ public class BondConfigRequest { * 4: 802.3ad */ @Schema( - description = "Bond 模式:0=balance-rr平衡轮询,1=active-backup主备,2=balance-xor平衡异或,4=802.3ad动态链路聚合", + description = "Bond 模式:0=balance-rr,1=active-backup,2=balance-xor,4=802.3ad", example = "1", requiredMode = Schema.RequiredMode.REQUIRED ) diff --git a/src/main/java/com/cisd/tms/modules/device/dto/network/BondCreateRequest.java b/src/main/java/com/cisd/tms/modules/device/dto/network/BondCreateRequest.java index 68aff31..d2a6bbf 100644 --- a/src/main/java/com/cisd/tms/modules/device/dto/network/BondCreateRequest.java +++ b/src/main/java/com/cisd/tms/modules/device/dto/network/BondCreateRequest.java @@ -31,7 +31,7 @@ public class BondCreateRequest { * 4: 802.3ad */ @Schema( - description = "Bond模式:0=balance-rr平衡轮询,1=active-backup主备,2=balance-xor平衡异或,4=802.3ad动态链路聚合", + description = "Bond模式:0=balance-rr,1=active-backup,2=balance-xor,4=802.3ad", example = "1", allowableValues = {"0", "1", "2", "4"}, requiredMode = Schema.RequiredMode.REQUIRED diff --git a/src/main/java/com/cisd/tms/modules/device/dto/network/BondTableResponse.java b/src/main/java/com/cisd/tms/modules/device/dto/network/BondTableResponse.java index 51261ec..b9c9a6d 100644 --- a/src/main/java/com/cisd/tms/modules/device/dto/network/BondTableResponse.java +++ b/src/main/java/com/cisd/tms/modules/device/dto/network/BondTableResponse.java @@ -18,7 +18,7 @@ public class BondTableResponse { */ @Schema( description = "Bond模式", - example = "bond1-主备" + example = "balance-rr" ) private String bondMode; @@ -28,7 +28,7 @@ public class BondTableResponse { @Schema( description = "地址类型:IPV4 或 IPV6", example = "IPV4", - allowableValues = {"IPV4", "IPV6", "-"} + allowableValues = {"IPV4", "IPV6"} ) private String addressType; @@ -36,7 +36,7 @@ public class BondTableResponse { * 地址 */ @Schema(description = "IP地址", example = "192.168.10.100") - private String address; + private String ipAddress; /** * 前缀长度 diff --git a/src/main/java/com/cisd/tms/modules/device/dto/network/NetworkTableResponse.java b/src/main/java/com/cisd/tms/modules/device/dto/network/NetworkTableResponse.java index f0eea3b..f2e4d69 100644 --- a/src/main/java/com/cisd/tms/modules/device/dto/network/NetworkTableResponse.java +++ b/src/main/java/com/cisd/tms/modules/device/dto/network/NetworkTableResponse.java @@ -17,9 +17,9 @@ public class NetworkTableResponse { * 地址类型,如 IPV4、IPV6、- */ @Schema( - description = "地址类型:IPV4、IPV6 或 -", + description = "地址类型:IPV4、IPV6", example = "IPV4", - allowableValues = {"IPV4", "IPV6", "-"} + allowableValues = {"IPV4", "IPV6"} ) private String addressType; @@ -27,7 +27,7 @@ public class NetworkTableResponse { * 地址,如 172.16.18.1 */ @Schema(description = "IP地址", example = "172.16.18.1") - private String address; + private String ipAddress; /** * 前缀长度,如 24、64 @@ -46,8 +46,7 @@ public class NetworkTableResponse { */ @Schema( description = "网卡状态:Active=激活,Inactive=未激活", - example = "Active", - allowableValues = {"Active", "Inactive"} + example = "Active" ) private String status; } \ No newline at end of file diff --git a/src/main/java/com/cisd/tms/modules/device/dto/network/RouteTableResponse.java b/src/main/java/com/cisd/tms/modules/device/dto/network/RouteTableResponse.java index 6e38915..c03e714 100644 --- a/src/main/java/com/cisd/tms/modules/device/dto/network/RouteTableResponse.java +++ b/src/main/java/com/cisd/tms/modules/device/dto/network/RouteTableResponse.java @@ -45,16 +45,14 @@ public class RouteTableResponse { * 状态:Active / Inactive */ @Schema( - description = "网口状态:Active=激活,Inactive=未激活", - example = "Active", - allowableValues = {"Active", "Inactive"} + description = "网卡状态:Active=激活,Inactive=未激活", + example = "Active" ) private String status; @Schema( - description = "网口状态:Active=激活,Inactive=未激活", - example = "Active", - allowableValues = {"Active", "Inactive"} + description = "地址类型:IPv4 或 IPv6", + example = "IPv4" ) private String addressType; diff --git a/src/main/java/com/cisd/tms/modules/device/service/NetworkConfigService.java b/src/main/java/com/cisd/tms/modules/device/service/NetworkConfigService.java index 0c6114f..25f0dc5 100644 --- a/src/main/java/com/cisd/tms/modules/device/service/NetworkConfigService.java +++ b/src/main/java/com/cisd/tms/modules/device/service/NetworkConfigService.java @@ -160,6 +160,63 @@ public class NetworkConfigService { } + public List getBondNames() { + List result = new ArrayList<>(); + + List lines = executeCommand( + "nmcli", + "-t", + "-f", + "NAME,TYPE", + "con", + "show" + ); + + for (String line : lines) { + if (line == null || line.trim().isEmpty()) { + continue; + } + + String[] parts = line.split("(? getNetworkTablePage(NetworkTableQueryRequest req) { List resultList = new ArrayList<>(); String targetDeviceName = trim(req.getDeviceName()); @@ -317,7 +374,7 @@ public class NetworkConfigService { NetworkTableResponse emptyItem = new NetworkTableResponse(); emptyItem.setDeviceName(device); // emptyItem.setAddressType("-"); -// emptyItem.setAddress("-"); +// emptyItem.setIpAddress("-"); // emptyItem.setPrefixLength("-"); // emptyItem.setGateway("-"); emptyItem.setStatus(mappedStatus); @@ -554,10 +611,10 @@ public class NetworkConfigService { if (ipWithPrefix.contains("/")) { String[] parts = ipWithPrefix.split("/"); - item.setAddress(parts[0]); + item.setIpAddress(parts[0]); item.setPrefixLength(parts[1]); } else { - item.setAddress(ipWithPrefix); + item.setIpAddress(ipWithPrefix); item.setPrefixLength(""); } return item; @@ -1786,10 +1843,10 @@ public class NetworkConfigService { if (normalizedIp.contains("/")) { String[] parts = normalizedIp.split("/", 2); - item.setAddress(parts[0]); + item.setIpAddress(parts[0]); item.setPrefixLength(parts[1]); } else { - item.setAddress(normalizedIp); + item.setIpAddress(normalizedIp); item.setPrefixLength(""); }