diff options
Diffstat (limited to 'node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeRepoJsonModel.java')
-rw-r--r-- | node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeRepoJsonModel.java | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeRepoJsonModel.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeRepoJsonModel.java new file mode 100644 index 00000000000..9a314b061c4 --- /dev/null +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeRepoJsonModel.java @@ -0,0 +1,90 @@ +package com.yahoo.vespa.hosted.node.verification.commons.noderepo; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.net.InetAddresses; +import com.yahoo.vespa.hosted.node.verification.spec.retrievers.HardwareInfo; +import com.yahoo.vespa.hosted.node.verification.spec.retrievers.HardwareInfo.DiskType; + +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.util.stream.Stream; + +/** + * Created by olaa on 05/07/2017. + * Object with the information node repositories has about the node. + */ + +@JsonIgnoreProperties(ignoreUnknown = true) +public class NodeRepoJsonModel { + @JsonProperty("minDiskAvailableGb") + private double minDiskAvailableGb; + @JsonProperty("minMainMemoryAvailableGb") + private double minMainMemoryAvailableGb; + @JsonProperty("minCpuCores") + private double minCpuCores; + @JsonProperty("fastDisk") + private boolean fastDisk; + @JsonProperty("ipAddresses") + private String[] ipAddresses; + @JsonProperty + private String hostname; + @JsonProperty + private String environment; + @JsonProperty + private String hardwareDivergence; + private String nodeRepoUrl; + + public HardwareInfo copyToHardwareInfo() { + HardwareInfo hardwareInfo = new HardwareInfo(); + hardwareInfo.setMinMainMemoryAvailableGb(this.minMainMemoryAvailableGb); + hardwareInfo.setMinDiskAvailableGb(this.minDiskAvailableGb); + hardwareInfo.setMinCpuCores((int) Math.round(this.minCpuCores)); + hardwareInfo.setDiskType(this.fastDisk ? DiskType.FAST : DiskType.SLOW); + hardwareInfo.setIpv6Connection(getIpv6Address() != null); + return hardwareInfo; + } + + public String getIpv6Address() { + return Stream.of(ipAddresses) + .map(InetAddresses::forString) + .filter(ip -> ip instanceof Inet6Address) + .findFirst().map(InetAddress::getHostAddress).orElse(null); + } + + public String getIpv4Address() { + return Stream.of(ipAddresses) + .map(InetAddresses::forString) + .filter(ip -> ip instanceof Inet4Address) + .findFirst().map(InetAddress::getHostAddress).orElse(null); + } + + public double getMinDiskAvailableGb() { + return minDiskAvailableGb; + } + + public double getMinMainMemoryAvailableGb() { + return minMainMemoryAvailableGb; + } + + public double getMinCpuCores() { + return minCpuCores; + } + + public boolean isFastDisk() { + return fastDisk; + } + + public String getHostname() { + return hostname; + } + + public String getEnvironment() { + return environment; + } + + public String getHardwareDivergence() { + return hardwareDivergence; + } +} |