Files
ProjectOctopus/server/src/main/java/io/wdd/rpc/status/AgentSystemInfo.java
2023-06-14 11:21:31 +08:00

49 lines
1.2 KiB
Java

package io.wdd.rpc.status;
import io.wdd.common.utils.TimeUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import oshi.software.os.OperatingSystem;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public class AgentSystemInfo {
String osInfo;
String family;
String manufacturer;
String bootTime;
String upTime;
public static AgentSystemInfo mapFromOHSISystem(OperatingSystem os) {
return AgentSystemInfo.builder()
.osInfo(String.valueOf(os.getVersionInfo()))
.family(os.getFamily())
.manufacturer(os.getManufacturer())
.bootTime(TimeUtils.localDateTimeString(
LocalDateTime.ofInstant(
Instant.ofEpochSecond(os.getSystemBootTime()),
ZoneId.of("UTC+8")
)
))
.upTime(TimeUtils.toRelative(os.getSystemUptime()*1000, 3))
.build();
}
}