diff options
author | Ola Aunrønning <olaa@yahoo-inc.com> | 2017-08-07 16:40:58 +0200 |
---|---|---|
committer | Ola Aunrønning <olaa@yahoo-inc.com> | 2017-08-15 12:29:27 +0200 |
commit | 055800a4ea5501d6adb4e9d842b720c5547f6240 (patch) | |
tree | 73fd415f0484a9b2c3f7e3d913bb783f86e48408 /node-maintainer/src/main/java | |
parent | 6b512283fd1e7a315ad652fab2964a2300a0f53b (diff) |
Changed how SpecVerification reports. Now creates JSON containing only actual hardware values that are different from node repo
Diffstat (limited to 'node-maintainer/src/main/java')
5 files changed, 18 insertions, 57 deletions
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/HardwareNodeComparator.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/HardwareNodeComparator.java index 2fba6cd1f2a..99942611e60 100644 --- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/HardwareNodeComparator.java +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/HardwareNodeComparator.java @@ -32,7 +32,7 @@ public class HardwareNodeComparator { private static void setMemoryMetrics(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, VerificationReport verificationReport) { double expectedMemory = nodeRepoHardwareInfo.getMinMainMemoryAvailableGb(); double actualMemory = actualHardware.getMinMainMemoryAvailableGb(); - if (outsideThreshold(expectedMemory, actualMemory, PERCENTAGE_THRESHOLD)) { + if (!insideThreshold(expectedMemory, actualMemory, PERCENTAGE_THRESHOLD)) { verificationReport.setActualMemoryAvailable(actualMemory); } } @@ -56,7 +56,7 @@ public class HardwareNodeComparator { private static void setDiskSpaceMetrics(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, VerificationReport verificationReport) { double expectedDiskSpace = nodeRepoHardwareInfo.getMinDiskAvailableGb(); double actualDiskSpace = actualHardware.getMinDiskAvailableGb(); - if (outsideThreshold(expectedDiskSpace, actualDiskSpace, PERCENTAGE_THRESHOLD)) { + if (!insideThreshold(expectedDiskSpace, actualDiskSpace, PERCENTAGE_THRESHOLD)) { verificationReport.setActualDiskSpaceAvailable(actualDiskSpace); } } @@ -64,48 +64,15 @@ public class HardwareNodeComparator { private static void setNetMetrics(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, VerificationReport verificationReport) { double expectedInterfaceSpeed = nodeRepoHardwareInfo.getInterfaceSpeedMbs(); double actualInterfaceSpeed = actualHardware.getInterfaceSpeedMbs(); - if (nodeRepoHardwareInfo.getInterfaceSpeedMbs() > actualHardware.getInterfaceSpeedMbs()) { - specReportMetrics.setExpectedInterfaceSpeed(expectedInterfaceSpeed); - specReportMetrics.setActualInterfaceSpeed(actualInterfaceSpeed); + if (expectedInterfaceSpeed > actualInterfaceSpeed) { + verificationReport.setActualInterfaceSpeed(actualInterfaceSpeed); } - if (nodeRepoHardwareInfo.isIpv6Connection() != actualHardware.isIpv6Connection()) { - specReportMetrics.setActualIpv6Connection(actualHardware.isIpv6Connection()); - specReportMetrics.setExpectedIpv6Connection(nodeRepoHardwareInfo.isIpv6Connection()); + if (nodeRepoHardwareInfo.isIpv6Connection() && !actualHardware.isIpv6Connection()) { + verificationReport.setActualIpv6Connection(actualHardware.isIpv6Connection()); } - private static boolean compareCPU(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, SpecReportDimensions specReportDimensions) { - boolean equalCPU = nodeRepoHardwareInfo.getMinCpuCores() == actualHardware.getMinCpuCores(); - specReportDimensions.setCpuCoresMatch(equalCPU); - return equalCPU; - } - - private static boolean compareMemory(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, SpecReportDimensions specReportDimensions) { - boolean equalMemory = insideThreshold(nodeRepoHardwareInfo.getMinMainMemoryAvailableGb(), actualHardware.getMinMainMemoryAvailableGb(), PERCENTAGE_THRESHOLD); - specReportDimensions.setMemoryMatch(equalMemory); - return equalMemory; - } - - private static boolean compareNetInterface(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, SpecReportDimensions specReportDimensions) { - boolean equalNetInterfaceSpeed = nodeRepoHardwareInfo.getInterfaceSpeedMbs() <= actualHardware.getInterfaceSpeedMbs(); - boolean equalIpv6Interface = !nodeRepoHardwareInfo.getIpv6Interface() || actualHardware.getIpv6Interface(); - boolean equalIpv4Interface = !nodeRepoHardwareInfo.getIpv4Interface() || actualHardware.getIpv4Interface(); - boolean equalIpv6Connection = !nodeRepoHardwareInfo.isIpv6Connection() || actualHardware.isIpv6Connection(); - specReportDimensions.setNetInterfaceSpeedMatch(equalNetInterfaceSpeed); - specReportDimensions.setIpv6Match(equalIpv6Interface); - specReportDimensions.setIpv4Match(equalIpv4Interface); - return equalIpv4Interface && equalIpv6Connection && equalNetInterfaceSpeed && equalIpv6Interface; - } - - private static boolean compareDisk(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, SpecReportDimensions specReportDimensions) { - boolean equalDiskType = nodeRepoHardwareInfo.getDiskType() == actualHardware.getDiskType(); - boolean equalDiskSize = insideThreshold(nodeRepoHardwareInfo.getMinDiskAvailableGb(), actualHardware.getMinDiskAvailableGb(), PERCENTAGE_THRESHOLD); - specReportDimensions.setDiskTypeMatch(equalDiskType); - specReportDimensions.setDiskAvailableMatch(equalDiskSize); - return equalDiskType && equalDiskSize; - } - - private static boolean outsideThreshold(double value1, double value2 , double thresholdPercentage) { + private static boolean insideThreshold(double value1, double value2 , double thresholdPercentage) { double lowerThresholdPercentage = 1 - thresholdPercentage; double upperThresholdPercentage = 1 + thresholdPercentage; return value1 < lowerThresholdPercentage * value2 || value1 > upperThresholdPercentage * value2; diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java index 8789fa53d4f..bf5469f3a7c 100644 --- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifier.java @@ -36,9 +36,9 @@ public class SpecVerifier { } VerifierSettings verifierSettings = new VerifierSettings(nodeRepoJsonModel); HardwareInfo actualHardware = HardwareInfoRetriever.retrieve(commandExecutor, verifierSettings); - YamasSpecReport yamasSpecReport = makeYamasSpecReport(actualHardware, nodeRepoJsonModel); - printResults(yamasSpecReport); - return yamasSpecReport.getMetrics().isMatch(); + VerificationReport verificationReport = makeVerificationReport(actualHardware, nodeRepoJsonModel); + printResults(verificationReport); + return isValidSpec(verificationReport); } private static boolean isValidSpec(VerificationReport verificationReport) throws JsonProcessingException { @@ -59,7 +59,7 @@ public class SpecVerifier { } private static void printResults(VerificationReport verificationReport) { - //TODO: Instead of println, report JSON to node repo + //TODO: Instead of println, report JSON to YAMAS ObjectMapper om = new ObjectMapper(); try { System.out.println(om.writeValueAsString(verificationReport)); diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/VerifierSettings.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/VerifierSettings.java index f219546cd31..2ff2e41d9bc 100644 --- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/VerifierSettings.java +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/VerifierSettings.java @@ -9,23 +9,23 @@ import com.yahoo.vespa.hosted.node.verification.spec.noderepo.NodeRepoJsonModel; public class VerifierSettings { - private final boolean ipv6; + private final boolean checkIPv6; public VerifierSettings(){ - this.ipv6 = true; + this.checkIPv6 = true; } public VerifierSettings(NodeRepoJsonModel nodeRepoJsonModel){ if (nodeRepoJsonModel.getIpv6Address() != null){ - ipv6 = true; + checkIPv6 = true; } else { - ipv6 = false; + checkIPv6 = false; } } - public boolean isIpv6() { - return ipv6; + public boolean isCheckIPv6() { + return checkIPv6; } } diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/report/VerificationReport.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/report/VerificationReport.java index ede4b0fc73a..66ac99dd065 100644 --- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/report/VerificationReport.java +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/report/VerificationReport.java @@ -4,12 +4,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.yahoo.vespa.hosted.node.verification.spec.retrievers.HardwareInfo; - -/** - * Stores results of caomparing node repo spec and actual hardware info. - * In case of divergent values, set the corresponding attribute to the actual hardware info value. - * Attributes of equal value remain null. - */ @JsonInclude(JsonInclude.Include.NON_NULL) public class VerificationReport { diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/NetRetriever.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/NetRetriever.java index 33b9ba722e7..85bd585d595 100644 --- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/NetRetriever.java +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/NetRetriever.java @@ -50,7 +50,7 @@ public class NetRetriever implements HardwareRetriever { public void updateInfo() { ArrayList<ParseResult> parseResults = findInterface(); findInterfaceSpeed(parseResults); - if (verifierSettings.isIpv6()) { + if (verifierSettings.isCheckIPv6()) { testPingResponse(parseResults); } updateHardwareInfoWithNet(parseResults); |