2 Commits
Author SHA1 Message Date
Liosha84 539175654c Merge remote-tracking branch 'origin/master' 2026-10-28 22:04:52 +01:00
Liosha84 04ee269f23 remake of REST Controllers 2026-10-28 22:04:40 +01:00
2 changed files with 33 additions and 20 deletions
@@ -5,6 +5,10 @@ import com.htopweb.system.linux.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers;
import java.util.List;
@RestController
@RequestMapping("/api/system")
@@ -12,9 +16,7 @@ public class SystemMetricsController {
private final SystemMetricsService _systemMetricsService;
private final LinuxDetailsService _linuxDetailsService;
private final CpuDetailsService _cpuDetailsService;
private final CpuDetailsService _cpuDetailsService;
private final LinuxMemoryService _linuxMemoryService;
private final LinuxDiskService _linuxDiskService;
private final LinuxNetworkService _linuxNetworkService;
@@ -23,8 +25,9 @@ public class SystemMetricsController {
SystemMetricsService systemMetricsService,
LinuxDetailsService linuxDetailsService,
CpuDetailsService cpuDetailsService,
LinuxMemoryService linuxMemoryService, LinuxDiskService linuxDiskService, LinuxNetworkService linuxNetworkService
LinuxMemoryService linuxMemoryService,
LinuxDiskService linuxDiskService,
LinuxNetworkService linuxNetworkService
) {
_systemMetricsService = systemMetricsService;
_linuxDetailsService = linuxDetailsService;
@@ -35,32 +38,38 @@ public class SystemMetricsController {
}
@GetMapping("/metrics")
public SystemMetricsResponse getMetrics() {
return _systemMetricsService.getMetrics();
public Mono<SystemMetricsResponse> getMetrics() {
return Mono.fromCallable(_systemMetricsService::getMetrics)
.subscribeOn(Schedulers.boundedElastic());
}
@GetMapping("/linux")
public LinuxDetailsResponse getLinuxDetails() {
return _linuxDetailsService.getDetails();
public Mono<LinuxDetailsResponse> getLinuxDetails() {
return Mono.fromCallable(_linuxDetailsService::getDetails)
.subscribeOn(Schedulers.boundedElastic());
}
@GetMapping("/cpu")
public CpuDetailsResponse getCpuDetails() {
return _cpuDetailsService.getDetails();
public Mono<CpuDetailsResponse> getCpuDetails() {
return Mono.fromCallable(_cpuDetailsService::getDetails)
.subscribeOn(Schedulers.boundedElastic());
}
@GetMapping("/linux/memory")
public LinuxMemoryResponse getLinuxMemory() {
return _linuxMemoryService.getDetails();
public Mono<LinuxMemoryResponse> getLinuxMemory() {
return Mono.fromCallable(_linuxMemoryService::getDetails)
.subscribeOn(Schedulers.boundedElastic());
}
@GetMapping("/linux/disks")
public java.util.List<LinuxDiskResponse> getLinuxDisks() {
return _linuxDiskService.getDisks();
public Mono<List<LinuxDiskResponse>> getLinuxDisks() {
return Mono.fromCallable(_linuxDiskService::getDisks)
.subscribeOn(Schedulers.boundedElastic());
}
@GetMapping("/linux/network")
public java.util.List<LinuxNetworkResponse> getLinuxNetwork() {
return _linuxNetworkService.getInterfaces();
public Mono<List<LinuxNetworkResponse>> getLinuxNetwork() {
return Mono.fromCallable(_linuxNetworkService::getInterfaces)
.subscribeOn(Schedulers.boundedElastic());
}
}
@@ -1,8 +1,11 @@
package com.htopweb.system;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers;
import java.util.List;
@@ -19,7 +22,8 @@ public class SystemProcessesController {
}
@GetMapping("/processes")
public List<ProcessInfoResponse> getProcesses() {
return _systemProcessesService.getProcesses();
public Mono<List<ProcessInfoResponse>> getProcesses() {
return Mono.fromCallable(_systemProcessesService::getProcesses)
.subscribeOn(Schedulers.boundedElastic());
}
}
}