summaryrefslogtreecommitdiffstats
path: root/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeRepoJsonModel.java
diff options
context:
space:
mode:
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.java90
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;
+ }
+}