diff options
Diffstat (limited to 'node-maintainer/src')
8 files changed, 144 insertions, 193 deletions
diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java index 3fcf99dfe85..fc846e3eba6 100644 --- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/IPAddressVerifierTest.java @@ -4,11 +4,6 @@ package com.yahoo.vespa.hosted.node.verification.commons.noderepo; import org.junit.Before; import org.junit.Test; -import java.net.URL; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Arrays; - import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.doReturn; @@ -18,34 +13,27 @@ import static org.mockito.Mockito.spy; * @author sgrostad * @author olaaun */ - public class IPAddressVerifierTest { - private IPAddressVerifier ipAddressVerifier = spy(new IPAddressVerifier()); - private String ipv4Address; - private String ipv6Address; - private NodeSpec nodeSpec; - private static final String ABSOLUTE_PATH = Paths.get(".").toAbsolutePath().normalize().toString(); - private static final String RESOURCE_PATH = "src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources/IPAddressVerifierTest.json"; - private static final String URL_RESOURCE_PATH = "file://" + ABSOLUTE_PATH + "/" + RESOURCE_PATH; + private final String ipv4Address = "10.2.4.8"; + private final String ipv6Address = "fdab:0:0:0:0:0:0:1234"; + private final NodeSpec nodeSpec = new NodeSpec(1920, 256, 48, true, new String[]{ipv4Address, ipv6Address}); + private final String hostname = "test123.region.domain.tld"; + + private IPAddressVerifier ipAddressVerifier = spy(new IPAddressVerifier(hostname)); private String ipv4LookupFormat; private String ipv6LookupFormat; @Before public void setup() throws Exception { - ipv4Address = "172.16.254.1"; - ipv6Address = "2001:db8:0:1234:0:567:8:1"; - ArrayList<URL> nodeRepoUrl = new ArrayList<>(Arrays.asList(new URL(URL_RESOURCE_PATH))); - nodeSpec = NodeRepoInfoRetriever.retrieve(nodeRepoUrl); - ipv4LookupFormat = "1.254.16.172.in-addr.arpa"; - ipv6LookupFormat = "1.0.0.0.8.0.0.0.7.6.5.0.0.0.0.0.4.3.2.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa"; + ipv4LookupFormat = "8.4.2.10.in-addr.arpa"; + ipv6LookupFormat = "4.3.2.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.b.a.d.f.ip6.arpa"; } @Test public void getFaultyIpAddresses_should_return_IP_address_when_different_hostname() throws Exception { - String realHostName = "host.name"; String wrongHostName = "www.yahoo.com"; - doReturn(realHostName).when(ipAddressVerifier).reverseLookUp(ipv4LookupFormat); + doReturn(hostname).when(ipAddressVerifier).reverseLookUp(ipv4LookupFormat); doReturn(wrongHostName).when(ipAddressVerifier).reverseLookUp(ipv6LookupFormat); String[] faultyIpAddresses = ipAddressVerifier.getFaultyIpAddresses(nodeSpec); String[] expectedFaultyIpAddresses = new String[]{ipv6Address}; @@ -54,9 +42,8 @@ public class IPAddressVerifierTest { @Test public void getFaultyIpAddresses_should_return_empty_array_when_all_addresses_point_to_correct_hostname() throws Exception { - String realHostName = "host.name"; - doReturn(realHostName).when(ipAddressVerifier).reverseLookUp(ipv4LookupFormat); - doReturn(realHostName).when(ipAddressVerifier).reverseLookUp(ipv6LookupFormat); + doReturn(hostname).when(ipAddressVerifier).reverseLookUp(ipv4LookupFormat); + doReturn(hostname).when(ipAddressVerifier).reverseLookUp(ipv6LookupFormat); String[] faultyIpAddresses = ipAddressVerifier.getFaultyIpAddresses(nodeSpec); String[] expectedFaultyIpAddresses = new String[]{}; assertArrayEquals(expectedFaultyIpAddresses, faultyIpAddresses); @@ -76,7 +63,8 @@ public class IPAddressVerifierTest { @Test public void getFaultyIpAddresses_should_return_empty_array_when_parameters_are_invalid() { - assertEquals(0, ipAddressVerifier.getFaultyIpAddresses(new NodeSpec()).length); + final NodeSpec nodeWithNoIP = new NodeSpec(1920, 256, 48, true, new String[0]); + assertEquals(0, ipAddressVerifier.getFaultyIpAddresses(nodeWithNoIP).length); } } diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/HardwareBenchmarkerTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/HardwareBenchmarkerTest.java index 6848fc045e2..13e13f1f83f 100644 --- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/HardwareBenchmarkerTest.java +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/HardwareBenchmarkerTest.java @@ -1,52 +1,77 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.node.verification.hardware; +import com.yahoo.vespa.hosted.node.verification.Main; import com.yahoo.vespa.hosted.node.verification.mock.MockCommandExecutor; -import org.junit.Before; import org.junit.Test; -import java.net.URL; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Arrays; - -import static org.junit.Assert.assertTrue; - -/** - * @author sgrostad - * @author olaaun - */ +import static org.junit.Assert.assertEquals; public class HardwareBenchmarkerTest { - private MockCommandExecutor mockCommandExecutor; private static final String RESOURCE_PATH = "src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/resources/"; private static final String VALID_DISK_BENCHMARK_PATH = RESOURCE_PATH + "diskBenchmarkValidOutput"; + private static final String VALID_SLOW_DISK_BENCHMARK_PATH = RESOURCE_PATH + "diskBenchmarkValidSlowOutput"; private static final String VALID_CPU_BENCHMARK_PATH = RESOURCE_PATH + "cpuCyclesWithCommasTimeWithDotTest.txt"; private static final String VALID_MEMORY_WRITE_BENCHMARK_PATH = RESOURCE_PATH + "validMemoryWriteSpeed"; private static final String VALID_MEMORY_READ_BENCHMARK_PATH = RESOURCE_PATH + "validMemoryReadSpeed"; - private static final String ABSOLUTE_PATH = Paths.get(".").toAbsolutePath().normalize().toString(); - private static final String VALID_NODE_REPO_JSON_WITHOUT_HARDWARE_DIVERGENCE = RESOURCE_PATH + "nodeRepoWithoutHardwareDivergence.json"; - private static final String URL_TO_NODE_REPO_JSON = "file://" + ABSOLUTE_PATH + "/" + VALID_NODE_REPO_JSON_WITHOUT_HARDWARE_DIVERGENCE; + private final MockCommandExecutor commandExecutor = new MockCommandExecutor(); + + @Test + public void benchmark_with_no_failures() throws Exception { + commandExecutor.addCommand("cat " + VALID_DISK_BENCHMARK_PATH); + commandExecutor.addCommand("cat " + VALID_CPU_BENCHMARK_PATH); + commandExecutor.addDummyCommand(); + commandExecutor.addDummyCommand(); + commandExecutor.addCommand("cat " + VALID_MEMORY_WRITE_BENCHMARK_PATH); + commandExecutor.addCommand("cat " + VALID_MEMORY_READ_BENCHMARK_PATH); + commandExecutor.addDummyCommand(); + commandExecutor.addDummyCommand(); - @Before - public void setup() { - mockCommandExecutor = new MockCommandExecutor(); + String result = Main.execute(new String[] { + "benchmark", + }, commandExecutor); + assertEquals("null", result); } @Test - public void hardwareBenchmarks_should_return_true() throws Exception { - mockCommandExecutor.addCommand("cat " + VALID_DISK_BENCHMARK_PATH); - mockCommandExecutor.addCommand("cat " + VALID_CPU_BENCHMARK_PATH); - mockCommandExecutor.addDummyCommand(); - mockCommandExecutor.addDummyCommand(); - mockCommandExecutor.addCommand("cat " + VALID_MEMORY_WRITE_BENCHMARK_PATH); - mockCommandExecutor.addCommand("cat " + VALID_MEMORY_READ_BENCHMARK_PATH); - mockCommandExecutor.addDummyCommand(); - mockCommandExecutor.addDummyCommand(); - assertTrue(HardwareBenchmarker.hardwareBenchmarks(mockCommandExecutor, new ArrayList<URL>(Arrays.asList(new URL(URL_TO_NODE_REPO_JSON))))); + public void disk_benchmark_failure() throws Exception { + commandExecutor.addCommand("cat " + VALID_SLOW_DISK_BENCHMARK_PATH); + commandExecutor.addCommand("cat " + VALID_CPU_BENCHMARK_PATH); + commandExecutor.addDummyCommand(); + commandExecutor.addDummyCommand(); + commandExecutor.addCommand("cat " + VALID_MEMORY_WRITE_BENCHMARK_PATH); + commandExecutor.addCommand("cat " + VALID_MEMORY_READ_BENCHMARK_PATH); + commandExecutor.addDummyCommand(); + commandExecutor.addDummyCommand(); + + String result = Main.execute(new String[]{ + "benchmark", + }, commandExecutor); + + assertEquals("{\"benchmarkReport\":{\"diskSpeedMbs\":49.0}}", result); } + @Test + public void preserve_previous_spec_verifier_result() throws Exception { + commandExecutor.addCommand("cat " + VALID_DISK_BENCHMARK_PATH); + commandExecutor.addCommand("cat " + VALID_CPU_BENCHMARK_PATH); + commandExecutor.addDummyCommand(); + commandExecutor.addDummyCommand(); + commandExecutor.addCommand("cat " + VALID_MEMORY_WRITE_BENCHMARK_PATH); + commandExecutor.addCommand("cat " + VALID_MEMORY_READ_BENCHMARK_PATH); + commandExecutor.addDummyCommand(); + commandExecutor.addDummyCommand(); + + final String previousResult = "{\"specVerificationReport\":{\"actualMemoryAvailable\":4.042128}}"; + + String result = Main.execute(new String[] { + "benchmark", + "-h", previousResult + }, commandExecutor); + + assertEquals(previousResult, result); + } } diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/benchmarks/MemoryBenchmarkTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/benchmarks/MemoryBenchmarkTest.java index e2c5cdfa555..8d68c65b1da 100644 --- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/benchmarks/MemoryBenchmarkTest.java +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/benchmarks/MemoryBenchmarkTest.java @@ -9,14 +9,11 @@ import org.junit.Test; import java.util.List; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; /** * @author sgrostad * @author olaaun */ - public class MemoryBenchmarkTest { private MemoryBenchmark memoryBenchmark; @@ -66,51 +63,4 @@ public class MemoryBenchmarkTest { parseResult = memoryBenchmark.parseMemorySpeed(mockCommandOutput); assertEquals(expectedParseResult, parseResult); } - - @Test - public void memoryReadSpeed_valid_input_should_update_hardwareResults() { - Double expectedMemoryReadSpeed = 12.1; - memoryBenchmark.updateMemoryReadSpeed(expectedMemoryReadSpeed.toString()); - assertEquals(expectedMemoryReadSpeed, benchmarkResults.getMemoryReadSpeedGBs(), DELTA); - } - - @Test - public void memoryReadSpeed_invalid_input_should_not_update_hardwareResults() { - memoryBenchmark.updateMemoryReadSpeed("Invalid speed"); - assertEquals(0D, benchmarkResults.getMemoryReadSpeedGBs(), DELTA); - } - - @Test - public void memoryWriteSpeed_valid_input_should_update_hardwareResults() { - Double expectedMemoryWriteSpeed = 3.8; - memoryBenchmark.updateMemoryWriteSpeed(expectedMemoryWriteSpeed.toString()); - assertEquals(expectedMemoryWriteSpeed, benchmarkResults.getMemoryWriteSpeedGBs(), DELTA); - } - - @Test - public void memoryWriteSpeed_invalid_input_should_not_update_hardwareResults() { - memoryBenchmark.updateMemoryWriteSpeed("Invalid speed"); - assertEquals(0D, benchmarkResults.getMemoryWriteSpeedGBs(), DELTA); - } - - @Test - public void isValidMemory_should_return_true_when_parameter_is_number() { - String benchmarkOutput = "6.32"; - boolean validMemory = memoryBenchmark.isValidMemory(benchmarkOutput); - assertTrue(validMemory); - } - - @Test - public void isValidMemory_should_return_false_when_parameter_is_not_number() { - String benchmarkOutput = ""; - boolean validMemory = memoryBenchmark.isValidMemory(benchmarkOutput); - assertFalse(validMemory); - benchmarkOutput = null; - validMemory = memoryBenchmark.isValidMemory(benchmarkOutput); - assertFalse(validMemory); - benchmarkOutput = "Exit status 127"; - validMemory = memoryBenchmark.isValidMemory(benchmarkOutput); - assertFalse(validMemory); - } - } diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/resources/diskBenchmarkValidSlowOutput b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/resources/diskBenchmarkValidSlowOutput new file mode 100644 index 00000000000..773850d8640 --- /dev/null +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/hardware/resources/diskBenchmarkValidSlowOutput @@ -0,0 +1,5 @@ +49 MB/s + +real 0m1.448s +user 0m0.000s +sys 0m0.260s
\ No newline at end of file diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifierTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifierTest.java index f2e3e9ce707..d819a9dd269 100644 --- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifierTest.java +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/SpecVerifierTest.java @@ -1,115 +1,98 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.node.verification.spec; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.yahoo.vespa.hosted.node.verification.commons.noderepo.NodeRepoInfoRetriever; -import com.yahoo.vespa.hosted.node.verification.commons.noderepo.NodeSpec; -import com.yahoo.vespa.hosted.node.verification.commons.report.SpecVerificationReport; +import com.yahoo.vespa.hosted.node.verification.Main; import com.yahoo.vespa.hosted.node.verification.mock.MockCommandExecutor; -import com.yahoo.vespa.hosted.node.verification.spec.retrievers.HardwareInfo; -import org.junit.Before; import org.junit.Test; -import java.io.File; -import java.net.URL; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; - import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; /** - * @author sgrostad - * @author olaaun + * @author freva */ - public class SpecVerifierTest { - private MockCommandExecutor mockCommandExecutor; - private static final String ABSOLUTE_PATH = Paths.get(".").toAbsolutePath().normalize().toString(); private static final String RESOURCE_PATH = "src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources"; - private static final String URL_RESOURCE_PATH = "file://" + ABSOLUTE_PATH + "/" + RESOURCE_PATH; - private static final String NODE_REPO_PATH = "src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources/nodeInfoTest.json"; private static final String CPU_INFO_PATH = RESOURCE_PATH + "/cpuinfoTest"; private static final String MEMORY_INFO_PATH = RESOURCE_PATH + "/meminfoTest"; private static final String FAST_DISK_TYPE_INFO_PATH = RESOURCE_PATH + "/DiskTypeFastDisk"; - private static final String NON_FAST_DISK_TYPE_INFO_PATH = RESOURCE_PATH + "/DiskTypeNonFastDisk"; private static final String DISK_SIZE_INFO_PATH = RESOURCE_PATH + "/filesize"; private static final String NET_INTERFACE_INFO_PATH = RESOURCE_PATH + "/ifconfig"; private static final String NET_INTERFACE_SPEED_INFO_PATH = RESOURCE_PATH + "/eth0"; private static final String PING_RESPONSE = RESOURCE_PATH + "/validpingresponse"; - private static final String INVALID_PING_RESPONSE = RESOURCE_PATH + "/pingresponse-all-packets-lost"; - private static final double DELTA = 0.1; - List<URL> nodeInfoUrls; + private final MockCommandExecutor commandExecutor = new MockCommandExecutor(); - @Before - public void setup() { - mockCommandExecutor = new MockCommandExecutor(); - nodeInfoUrls = new ArrayList<>(); - } + @Test + public void spec_verification_with_failures() throws Exception { + commandExecutor.addCommand("cat " + CPU_INFO_PATH); + commandExecutor.addCommand("cat " + MEMORY_INFO_PATH); + commandExecutor.addCommand("cat " + FAST_DISK_TYPE_INFO_PATH); + commandExecutor.addCommand("cat " + DISK_SIZE_INFO_PATH); + commandExecutor.addCommand("cat " + NET_INTERFACE_INFO_PATH); + commandExecutor.addCommand("cat " + NET_INTERFACE_SPEED_INFO_PATH); + commandExecutor.addCommand("cat " + PING_RESPONSE); + String result = Main.execute(new String[] { + "specification", + "-d", "250", + "-m", "64", + "-c", "1.5", + "-s", "true", + "-i", "10.11.12.13,::1234" + }, commandExecutor); - @Test - public void verifySpec_equal_nodeRepoInfo_and_hardware_should_return_true() throws Exception { - nodeInfoUrls.add(new URL(URL_RESOURCE_PATH + "/nodeRepo.json")); - mockCommandExecutor.addCommand("cat " + CPU_INFO_PATH); - mockCommandExecutor.addCommand("cat " + MEMORY_INFO_PATH); - mockCommandExecutor.addCommand("cat " + FAST_DISK_TYPE_INFO_PATH); - mockCommandExecutor.addCommand("cat " + DISK_SIZE_INFO_PATH); - mockCommandExecutor.addCommand("cat " + NET_INTERFACE_INFO_PATH); - mockCommandExecutor.addCommand("cat " + NET_INTERFACE_SPEED_INFO_PATH); - mockCommandExecutor.addCommand("cat " + PING_RESPONSE); - assertTrue(SpecVerifier.verifySpec(mockCommandExecutor, nodeInfoUrls)); + assertEquals( + "{\"specVerificationReport\":{\"" + + "actualMemoryAvailable\":4.042128,\"" + + "actualDiskSpaceAvailable\":1760.0,\"" + + "actualcpuCores\":4,\"" + + "faultyIpAddresses\":[\"10.11.12.13\",\"0:0:0:0:0:0:0:1234\"]}}", result); } @Test - public void verifySpec_unequal_nodeRepoInfo_and_hardware_should_return_false() throws Exception { - nodeInfoUrls.add(new URL(URL_RESOURCE_PATH + "/nodeRepo.json")); - mockCommandExecutor.addCommand("cat " + CPU_INFO_PATH); - mockCommandExecutor.addCommand("cat " + MEMORY_INFO_PATH); - mockCommandExecutor.addCommand("cat " + NON_FAST_DISK_TYPE_INFO_PATH); - mockCommandExecutor.addCommand("cat " + DISK_SIZE_INFO_PATH); - mockCommandExecutor.addCommand("cat " + NET_INTERFACE_INFO_PATH + "NoIpv6"); - mockCommandExecutor.addCommand("cat " + NET_INTERFACE_SPEED_INFO_PATH); - mockCommandExecutor.addCommand("cat " + INVALID_PING_RESPONSE); - assertFalse(SpecVerifier.verifySpec(mockCommandExecutor, nodeInfoUrls)); - } + public void benchmark_with_no_failures() throws Exception { + commandExecutor.addCommand("cat " + CPU_INFO_PATH); + commandExecutor.addCommand("cat " + MEMORY_INFO_PATH); + commandExecutor.addCommand("cat " + FAST_DISK_TYPE_INFO_PATH); + commandExecutor.addCommand("cat " + DISK_SIZE_INFO_PATH); + commandExecutor.addCommand("cat " + NET_INTERFACE_INFO_PATH); + commandExecutor.addCommand("cat " + NET_INTERFACE_SPEED_INFO_PATH); + commandExecutor.addCommand("cat " + PING_RESPONSE); - @Test - public void makeVerificationSpecReport_should_return_false_interface_speed_and_ipv6_connection() throws Exception { - HardwareInfo actualHardware = new HardwareInfo(); - actualHardware.setMinCpuCores(24); - actualHardware.setMinMainMemoryAvailableGb(24); - actualHardware.setInterfaceSpeedMbs(100); //this is wrong - actualHardware.setMinDiskAvailableGb(500); - actualHardware.setIpv4Interface(true); - actualHardware.setIpv6Interface(true); - actualHardware.setIpv6Connection(true); - actualHardware.setDiskType(HardwareInfo.DiskType.SLOW); - nodeInfoUrls.add(new File(NODE_REPO_PATH).toURI().toURL()); - NodeSpec nodeSpec = NodeRepoInfoRetriever.retrieve(nodeInfoUrls); - SpecVerificationReport verificationSpecVerificationReport = SpecVerifier.makeVerificationReport(actualHardware, nodeSpec); - String expectedJson = "{\"actualInterfaceSpeed\":100.0}"; - ObjectMapper om = new ObjectMapper(); - String actualJson = om.writeValueAsString(verificationSpecVerificationReport); - assertEquals(expectedJson, actualJson); + String result = Main.execute(new String[] { + "specification", + "-d", "1760", + "-m", "4", + "-c", "4", + "-s", "true", + }, commandExecutor); + + assertEquals("null", result); } @Test - public void getNodeRepositoryJSON_should_return_valid_nodeRepoJSONModel() throws Exception { - nodeInfoUrls.add(new URL(URL_RESOURCE_PATH + "/nodeRepo.json")); - NodeSpec actualNodeSpec = SpecVerifier.getNodeRepositoryJSON(nodeInfoUrls); - double expectedMinCpuCores = 4D; - double expectedMinMainMemoryAvailableGb = 4.04D; - double expectedMinDiskAvailableGb = 1759.84; - boolean expectedFastDisk = true; - assertEquals(expectedMinCpuCores, actualNodeSpec.getMinCpuCores(), DELTA); - assertEquals(expectedMinMainMemoryAvailableGb, actualNodeSpec.getMinMainMemoryAvailableGb(), DELTA); - assertEquals(expectedMinDiskAvailableGb, actualNodeSpec.getMinDiskAvailableGb(), DELTA); - assertEquals(expectedFastDisk, actualNodeSpec.isFastDisk()); - } + public void preserve_previous_benchmark_result() throws Exception { + commandExecutor.addCommand("cat " + CPU_INFO_PATH); + commandExecutor.addCommand("cat " + MEMORY_INFO_PATH); + commandExecutor.addCommand("cat " + FAST_DISK_TYPE_INFO_PATH); + commandExecutor.addCommand("cat " + DISK_SIZE_INFO_PATH); + commandExecutor.addCommand("cat " + NET_INTERFACE_INFO_PATH); + commandExecutor.addCommand("cat " + NET_INTERFACE_SPEED_INFO_PATH); + commandExecutor.addCommand("cat " + PING_RESPONSE); + final String previousResult = "{\"specVerificationReport\":{\"actualMemoryAvailable\":4.042128}," + + "\"benchmarkReport\":{\"diskSpeedMbs\":49.0}}"; + + String result = Main.execute(new String[] { + "specification", + "-d", "1760", + "-m", "4", + "-c", "4", + "-s", "true", + "-h", previousResult + }, commandExecutor); + + assertEquals("{\"benchmarkReport\":{\"diskSpeedMbs\":49.0}}", result); + } } diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources/filesize b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources/filesize index d8148474ced..535a509dcc1 100644 --- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources/filesize +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources/filesize @@ -1,2 +1,2 @@ PV Size 799.65 GB / not usable 0.00 GB - PV Size 960.19 GB / not usable 0.01 GB
\ No newline at end of file + PV Size 960.35 GB / not usable 0.01 GB
\ No newline at end of file diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java index de4bf946d59..f6969e4ac6f 100644 --- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java @@ -39,7 +39,7 @@ public class DiskRetrieverTest { commandExecutor.addCommand(CAT_RESOURCE_PATH + "filesize"); diskRetriever.updateInfo(); assertEquals(DiskType.FAST, hardwareInfo.getDiskType()); - double expectedSize = 1759.84; + double expectedSize = 1760.0; assertEquals(expectedSize, hardwareInfo.getMinDiskAvailableGb(), DELTA); } @@ -54,7 +54,7 @@ public class DiskRetrieverTest { public void updateDiskSize__should_store_diskSize_in_hardwareInfo() throws IOException { commandExecutor.addCommand(CAT_RESOURCE_PATH + "filesize"); diskRetriever.updateDiskSize(); - double expectedSize = 1759.84; + double expectedSize = 1760.0; assertEquals(expectedSize, hardwareInfo.getMinDiskAvailableGb(), DELTA); } @@ -95,7 +95,7 @@ public class DiskRetrieverTest { List<ParseResult> parseResults = diskRetriever.parseDiskSize(mockOutput); ParseResult expectedParseResult1 = new ParseResult("Size", "799.65"); assertEquals(expectedParseResult1, parseResults.get(0)); - ParseResult expectedParseResult2 = new ParseResult("Size", "960.19"); + ParseResult expectedParseResult2 = new ParseResult("Size", "960.35"); assertEquals(expectedParseResult2, parseResults.get(1)); } diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/HardwareInfoRetrieverTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/HardwareInfoRetrieverTest.java index 552d57d2b59..0ebf1a2b26a 100644 --- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/HardwareInfoRetrieverTest.java +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/HardwareInfoRetrieverTest.java @@ -46,7 +46,7 @@ public class HardwareInfoRetrieverTest { expectedHardwareInfo.setMinCpuCores(4); expectedHardwareInfo.setMinMainMemoryAvailableGb(4.042128); expectedHardwareInfo.setInterfaceSpeedMbs(1000); - expectedHardwareInfo.setMinDiskAvailableGb(1759.84); + expectedHardwareInfo.setMinDiskAvailableGb(1760.0); expectedHardwareInfo.setIpv4Interface(true); expectedHardwareInfo.setIpv6Interface(false); expectedHardwareInfo.setIpv6Connection(false); |