From 66adf1b42b3c177eedc2633ce30db8a701839388 Mon Sep 17 00:00:00 2001 From: litoral05 Date: Thu, 7 May 2026 15:38:47 +0100 Subject: [PATCH] Add VPS health endpoint --- .../vpnprovisioner/vps/VpsController.java | 20 +++++++++++++++++++ .../vps/WireGuardVpsService.java | 16 ++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/litoralregas/vpnprovisioner/vps/VpsController.java diff --git a/src/main/java/com/litoralregas/vpnprovisioner/vps/VpsController.java b/src/main/java/com/litoralregas/vpnprovisioner/vps/VpsController.java new file mode 100644 index 0000000..c177188 --- /dev/null +++ b/src/main/java/com/litoralregas/vpnprovisioner/vps/VpsController.java @@ -0,0 +1,20 @@ +package com.litoralregas.vpnprovisioner.vps; + +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/vps") +public class VpsController { + + private final WireGuardVpsService wireGuardVpsService; + + public VpsController(WireGuardVpsService wireGuardVpsService) { + this.wireGuardVpsService = wireGuardVpsService; + } + + @GetMapping(value = "/health", produces = MediaType.APPLICATION_JSON_VALUE) + public String health() { + return wireGuardVpsService.getVpsHealthJson(); + } +} \ No newline at end of file diff --git a/src/main/java/com/litoralregas/vpnprovisioner/vps/WireGuardVpsService.java b/src/main/java/com/litoralregas/vpnprovisioner/vps/WireGuardVpsService.java index 0d04bd0..531aac2 100644 --- a/src/main/java/com/litoralregas/vpnprovisioner/vps/WireGuardVpsService.java +++ b/src/main/java/com/litoralregas/vpnprovisioner/vps/WireGuardVpsService.java @@ -21,7 +21,7 @@ public class WireGuardVpsService { public Set findUsedVpnIps() { SshCommandResult result = sshService.executeOnConfiguredVps( - "sudo wg show wg0 allowed-ips" + "sudo /usr/local/sbin/lr-wg-used-ips" ); if (result.exitCode() != 0) { @@ -65,4 +65,18 @@ public class WireGuardVpsService { true ); } + + public String getVpsHealthJson() { + SshCommandResult result = sshService.executeOnConfiguredVps( + "sudo /usr/local/sbin/lr-vps-health" + ); + + if (result.exitCode() != 0) { + throw new SshCommandException( + "Failed to query VPS health: " + result.stderr() + ); + } + + return result.stdout(); + } } \ No newline at end of file