diff options
author | Andreas Eriksen <andreer@pvv.ntnu.no> | 2018-09-28 16:13:35 +0200 |
---|---|---|
committer | olaaun <ola.aunroe@gmail.com> | 2018-09-28 16:13:35 +0200 |
commit | 3d74ee9620abd934e84c9482dd4ff10090d1e4dd (patch) | |
tree | 88258c1d957c00c349593cb596aac8fa831a9d26 | |
parent | e6f46440bd697d78921379dba4f7e55ca2d85c7a (diff) |
andreer/flavor bandwidth (#7141)
* add bandwidth to flavor
* accept having more disk / memory than expected
* add bandwidth to node-admin bindings
* add bandwidth to test
* fix test
* disable ping check (and assume ipv6 connectivity)
check has been deemed too unreliable to rely on for failing out nodes
* add bandwidth field to expected responses
44 files changed, 97 insertions, 16 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java index 78507779585..79a17c23dd7 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java @@ -23,6 +23,7 @@ public class Flavor { private final double minMainMemoryAvailableGb; private final double minDiskAvailableGb; private final boolean fastDisk; + private final double bandwidth; private final String description; private final boolean retired; private List<Flavor> replacesFlavors; @@ -42,6 +43,7 @@ public class Flavor { this.minMainMemoryAvailableGb = flavorConfig.minMainMemoryAvailableGb(); this.minDiskAvailableGb = flavorConfig.minDiskAvailableGb(); this.fastDisk = flavorConfig.fastDisk(); + this.bandwidth = flavorConfig.bandwidth(); this.description = flavorConfig.description(); this.retired = flavorConfig.retired(); this.idealHeadroom = flavorConfig.idealHeadroom(); @@ -66,6 +68,8 @@ public class Flavor { public boolean hasFastDisk() { return fastDisk; } + public double getBandwidth() { return bandwidth; } + public double getMinCpuCores() { return minCpuCores; } public String getDescription() { return description; } diff --git a/config-provisioning/src/main/resources/configdefinitions/flavors.def b/config-provisioning/src/main/resources/configdefinitions/flavors.def index 63b22958487..1e40f6f8f36 100644 --- a/config-provisioning/src/main/resources/configdefinitions/flavors.def +++ b/config-provisioning/src/main/resources/configdefinitions/flavors.def @@ -14,7 +14,7 @@ flavor[].name string # c may be satisfied by assigning nodes of flavor a. flavor[].replaces[].name string -# The monthly Total Cost of Ownership (TCO) in USD. Typically calculated as TCO divered by +# The monthly Total Cost of Ownership (TCO) in USD. Typically calculated as TCO divided by # the expected lifetime of the node (usually three years). flavor[].cost int default=0 @@ -40,6 +40,9 @@ flavor[].minDiskAvailableGb double default=0.0 # Whether the disk is fast (typically SSD) or slow (typically spinning HDD). flavor[].fastDisk bool default=true +# Expected network interface bandwidth available for this flavor, in Mbit/s. +flavor[].bandwidth double default=0.0 + # Human readable free text for description of node. flavor[].description string default="" diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java index 7036f6852fe..071d4b549de 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java @@ -45,6 +45,7 @@ public class NodeSpec { private final double minDiskAvailableGb; private final boolean fastDisk; + private final double bandwidth; private final Set<String> ipAddresses; private final Optional<String> hardwareDivergence; @@ -75,6 +76,7 @@ public class NodeSpec { final double minMainMemoryAvailableGb, final double minDiskAvailableGb, final boolean fastDisk, + final double bandwidth, final Set<String> ipAddresses, final Optional<String> hardwareDivergence, final Optional<String> hardwareFailureDescription, @@ -102,6 +104,7 @@ public class NodeSpec { this.minMainMemoryAvailableGb = minMainMemoryAvailableGb; this.minDiskAvailableGb = minDiskAvailableGb; this.fastDisk = fastDisk; + this.bandwidth = bandwidth; this.ipAddresses = Objects.requireNonNull(ipAddresses); this.hardwareDivergence = Objects.requireNonNull(hardwareDivergence); this.hardwareFailureDescription = Objects.requireNonNull(hardwareFailureDescription); @@ -200,6 +203,10 @@ public class NodeSpec { return fastDisk; } + public double getBandwidth() { + return bandwidth; + } + public Set<String> getIpAddresses() { return ipAddresses; } @@ -246,6 +253,7 @@ public class NodeSpec { Objects.equals(minMainMemoryAvailableGb, that.minMainMemoryAvailableGb) && Objects.equals(minDiskAvailableGb, that.minDiskAvailableGb) && Objects.equals(fastDisk, that.fastDisk) && + Objects.equals(bandwidth, that.bandwidth) && Objects.equals(ipAddresses, that.ipAddresses) && Objects.equals(hardwareDivergence, that.hardwareDivergence) && Objects.equals(hardwareFailureDescription, that.hardwareFailureDescription) && @@ -278,6 +286,7 @@ public class NodeSpec { minMainMemoryAvailableGb, minDiskAvailableGb, fastDisk, + bandwidth, ipAddresses, hardwareDivergence, hardwareFailureDescription, @@ -310,6 +319,7 @@ public class NodeSpec { + " minMainMemoryAvailableGb=" + minMainMemoryAvailableGb + " minDiskAvailableGb=" + minDiskAvailableGb + " fastDisk=" + fastDisk + + " bandwidth=" + bandwidth + " ipAddresses=" + ipAddresses + " hardwareDivergence=" + hardwareDivergence + " hardwareFailureDescription=" + hardwareFailureDescription @@ -466,6 +476,7 @@ public class NodeSpec { private double minMainMemoryAvailableGb; private double minDiskAvailableGb; private boolean fastDisk = false; + private double bandwidth; private Set<String> ipAddresses = Collections.emptySet(); private Optional<String> hardwareDivergence = Optional.empty(); private Optional<String> hardwareFailureDescription = Optional.empty(); @@ -483,6 +494,7 @@ public class NodeSpec { minMainMemoryAvailableGb(node.minMainMemoryAvailableGb); minDiskAvailableGb(node.minDiskAvailableGb); fastDisk(node.fastDisk); + bandwidth(node.bandwidth); ipAddresses(node.ipAddresses); wantedRebootGeneration(node.wantedRebootGeneration); currentRebootGeneration(node.currentRebootGeneration); @@ -619,6 +631,11 @@ public class NodeSpec { return this; } + public Builder bandwidth(double bandwidth) { + this.bandwidth = bandwidth; + return this; + } + public Builder ipAddresses(Set<String> ipAddresses) { this.ipAddresses = ipAddresses; return this; @@ -742,6 +759,10 @@ public class NodeSpec { return fastDisk; } + public double getBandwidth() { + return bandwidth; + } + public Set<String> getIpAddresses() { return ipAddresses; } @@ -766,7 +787,7 @@ public class NodeSpec { wantedRestartGeneration, currentRestartGeneration, wantedRebootGeneration, currentRebootGeneration, minCpuCores, minMainMemoryAvailableGb, minDiskAvailableGb, - fastDisk, ipAddresses, hardwareDivergence, hardwareFailureDescription, + fastDisk, bandwidth, ipAddresses, hardwareDivergence, hardwareFailureDescription, parentHostname); } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java index dc3cc6a45de..e8efe10e505 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java @@ -194,6 +194,7 @@ public class RealNodeRepository implements NodeRepository { node.minMainMemoryAvailableGb, node.minDiskAvailableGb, node.fastDisk, + node.bandwidth, node.ipAddresses, Optional.ofNullable(node.hardwareDivergence), Optional.ofNullable(node.hardwareFailureDescription), diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java index 8e41252144d..fcfd552875a 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java @@ -52,6 +52,8 @@ public class NodeRepositoryNode { public Integer failCount; @JsonProperty("fastDisk") public Boolean fastDisk; + @JsonProperty("bandwidth") + public Double bandwidth; @JsonProperty("hardwareFailure") public Boolean hardwareFailure; @JsonProperty("hardwareFailureDescription") @@ -102,6 +104,8 @@ public class NodeRepositoryNode { ", currentOsVersion='" + currentOsVersion + '\'' + ", wantedOsVersion='" + wantedOsVersion + '\'' + ", failCount=" + failCount + + ", fastDisk=" + fastDisk + + ", bandwidth=" + bandwidth + ", hardwareFailure=" + hardwareFailure + ", hardwareFailureDescription='" + hardwareFailureDescription + '\'' + ", hardwareDivergence='" + hardwareDivergence + '\'' + diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java index 914836114ad..cbb05ace0d1 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java @@ -421,6 +421,7 @@ public class StorageMaintainer { "--memory", Double.toString(node.getMinMainMemoryAvailableGb()), "--cpu_cores", Double.toString(node.getMinCpuCores()), "--is_ssd", Boolean.toString(node.isFastDisk()), + "--bandwidth", Double.toString(node.getBandwidth()), "--ips", String.join(",", node.getIpAddresses()))); node.getHardwareDivergence().ifPresent(hardwareDivergence -> { diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeJsonConverter.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeJsonConverter.java index bdc4ea0789c..622d46ca587 100644 --- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeJsonConverter.java +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeJsonConverter.java @@ -11,8 +11,8 @@ import com.yahoo.vespa.hosted.node.verification.spec.retrievers.HardwareInfo; */ public class NodeJsonConverter { - private static void addStandardSpecifications(HardwareInfo nodeRepoHardwareInfo) { - nodeRepoHardwareInfo.setInterfaceSpeedMbs(1000); + private static void setInterfaceSpeed(NodeSpec nodeSpec, HardwareInfo nodeRepoHardwareInfo) { + nodeRepoHardwareInfo.setInterfaceSpeedMbs(nodeSpec.getBandwidth()); } private static void setIpv6Interface(NodeSpec nodeSpec, HardwareInfo nodeRepoHardwareInfo) { @@ -29,7 +29,7 @@ public class NodeJsonConverter { public static HardwareInfo convertJsonModelToHardwareInfo(NodeSpec nodeSpec) { HardwareInfo nodeRepoHardwareInfo = nodeSpec.copyToHardwareInfo(); - addStandardSpecifications(nodeRepoHardwareInfo); + setInterfaceSpeed(nodeSpec, nodeRepoHardwareInfo); setIpv4Interface(nodeSpec, nodeRepoHardwareInfo); setIpv6Interface(nodeSpec, nodeRepoHardwareInfo); return nodeRepoHardwareInfo; diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeSpec.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeSpec.java index 68a8060a6ad..16be1c39a74 100644 --- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeSpec.java +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/verification/commons/noderepo/NodeSpec.java @@ -20,14 +20,16 @@ public class NodeSpec { private final double minMainMemoryAvailableGb; private final double minCpuCores; private final boolean fastDisk; + private final double bandwidth; private final String[] ipAddresses; public NodeSpec(double minDiskAvailableGb, double minMainMemoryAvailableGb, double minCpuCores, boolean fastDisk, - String[] ipAddresses) { + double bandwidth, String[] ipAddresses) { this.minDiskAvailableGb = minDiskAvailableGb; this.minMainMemoryAvailableGb = minMainMemoryAvailableGb; this.minCpuCores = minCpuCores; this.fastDisk = fastDisk; + this.bandwidth = bandwidth; this.ipAddresses = ipAddresses; } @@ -37,6 +39,7 @@ public class NodeSpec { hardwareInfo.setMinDiskAvailableGb(this.minDiskAvailableGb); hardwareInfo.setMinCpuCores((int) Math.round(this.minCpuCores)); hardwareInfo.setDiskType(this.fastDisk ? DiskType.FAST : DiskType.SLOW); + hardwareInfo.setInterfaceSpeedMbs(bandwidth); hardwareInfo.setIpv6Connection(getIpv6Address() != null); return hardwareInfo; } @@ -54,4 +57,6 @@ public class NodeSpec { .filter(ip -> ip instanceof Inet4Address) .findFirst().map(InetAddress::getHostAddress).orElse(null); } + + public double getBandwidth() { return bandwidth ; } } 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 88bd0539ccd..57d83694709 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 @@ -35,7 +35,7 @@ public class HardwareNodeComparator { private static void setMemoryMetrics(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, SpecVerificationReport specVerificationReport) { double expectedMemory = nodeRepoHardwareInfo.getMinMainMemoryAvailableGb(); double actualMemory = actualHardware.getMinMainMemoryAvailableGb(); - if (outsideThreshold(expectedMemory, actualMemory, PERCENTAGE_THRESHOLD)) { + if (belowThreshold(expectedMemory, actualMemory, PERCENTAGE_THRESHOLD)) { specVerificationReport.setActualMemoryAvailable(actualMemory); } } @@ -59,7 +59,7 @@ public class HardwareNodeComparator { private static void setDiskSpaceMetrics(HardwareInfo nodeRepoHardwareInfo, HardwareInfo actualHardware, SpecVerificationReport specVerificationReport) { double expectedDiskSpace = nodeRepoHardwareInfo.getMinDiskAvailableGb(); double actualDiskSpace = actualHardware.getMinDiskAvailableGb(); - if (outsideThreshold(expectedDiskSpace, actualDiskSpace, PERCENTAGE_THRESHOLD)) { + if (belowThreshold(expectedDiskSpace, actualDiskSpace, PERCENTAGE_THRESHOLD)) { specVerificationReport.setActualDiskSpaceAvailable(actualDiskSpace); } } @@ -76,10 +76,9 @@ public class HardwareNodeComparator { } } - private static boolean outsideThreshold(double value1, double value2, double thresholdPercentage) { + private static boolean belowThreshold(double expected, double actual, double thresholdPercentage) { double lowerThresholdPercentage = 1 - thresholdPercentage; - double upperThresholdPercentage = 1 + thresholdPercentage; - return value1 < lowerThresholdPercentage * value2 || value1 > upperThresholdPercentage * value2; + return actual < expected * lowerThresholdPercentage; } } 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 627477def0f..3a4a1697a75 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 @@ -39,6 +39,9 @@ public class SpecVerifier extends Main.VerifierCommand { @Option(name = {"-s", "--is_ssd"}, required = true, description = "Set to true if disk is SSD", allowedValues = {"true", "false"}) private String fastDisk; + @Option(name = {"-b", "--bandwidth"}, required = true, description = "Expected network interface speed in Mbit/s") + private double bandwidth; + @Option(name = {"-i", "--ips"}, description = "Comma separated list of IP addresses assigned to this node") private String ipAddresses; @@ -49,14 +52,14 @@ public class SpecVerifier extends Main.VerifierCommand { .map(s -> s.split(",")) .orElse(new String[0]); - NodeSpec nodeSpec = new NodeSpec(diskAvailableGb, mainMemoryAvailableGb, cpuCores, Boolean.valueOf(fastDisk), ips); + NodeSpec nodeSpec = new NodeSpec(diskAvailableGb, mainMemoryAvailableGb, cpuCores, Boolean.valueOf(fastDisk), bandwidth, ips); SpecVerificationReport specVerificationReport = verifySpec(nodeSpec, commandExecutor); hardwareDivergenceReport.setSpecVerificationReport(specVerificationReport); } private SpecVerificationReport verifySpec(NodeSpec nodeSpec, CommandExecutor commandExecutor) { - VerifierSettings verifierSettings = new VerifierSettings(nodeSpec); + VerifierSettings verifierSettings = new VerifierSettings(false); HardwareInfo actualHardware = HardwareInfoRetriever.retrieve(commandExecutor, verifierSettings); return makeVerificationReport(actualHardware, nodeSpec); } 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 f2e78d672cb..3bc1a447ea8 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 @@ -17,6 +17,10 @@ public class VerifierSettings { this.checkIPv6 = true; } + public VerifierSettings(boolean checkIPv6) { + this.checkIPv6 = checkIPv6; + } + public VerifierSettings(NodeSpec nodeSpec) { checkIPv6 = nodeSpec.getIpv6Address() != null; } 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 5afdbbb1c78..9f147f79934 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 @@ -60,6 +60,8 @@ public class NetRetriever implements HardwareRetriever { findInterfaceSpeed(parseResults); if (verifierSettings.isCheckIPv6()) { testPingResponse(parseResults); + } else { + hardwareInfo.setIpv6Connection(true); } updateHardwareInfoWithNet(parseResults); } 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 5762975ec9b..5216a8563d7 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 @@ -17,7 +17,7 @@ public class IPAddressVerifierTest { 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 NodeSpec nodeSpec = new NodeSpec(1920, 256, 48, true, 10_000, new String[]{ipv4Address, ipv6Address}); private final String hostname = "test123.region.domain.tld"; private IPAddressVerifier ipAddressVerifier = spy(new IPAddressVerifier(hostname)); @@ -63,7 +63,7 @@ public class IPAddressVerifierTest { @Test public void getFaultyIpAddresses_should_return_empty_array_when_parameters_are_invalid() { - final NodeSpec nodeWithNoIP = new NodeSpec(1920, 256, 48, true, new String[0]); + final NodeSpec nodeWithNoIP = new NodeSpec(1920, 256, 48, true, 10_000, new String[0]); assertEquals(0, ipAddressVerifier.getFaultyIpAddresses(nodeWithNoIP).length); } 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 d819a9dd269..96af900095f 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 @@ -35,10 +35,11 @@ public class SpecVerifierTest { String result = Main.execute(new String[] { "specification", - "-d", "250", + "-d", "2500", "-m", "64", "-c", "1.5", "-s", "true", + "-b", "10000.0", "-i", "10.11.12.13,::1234" }, commandExecutor); @@ -46,6 +47,7 @@ public class SpecVerifierTest { "{\"specVerificationReport\":{\"" + "actualMemoryAvailable\":4.042128,\"" + "actualDiskSpaceAvailable\":1760.0,\"" + + "actualInterfaceSpeed\":1000.0,\"" + "actualcpuCores\":4,\"" + "faultyIpAddresses\":[\"10.11.12.13\",\"0:0:0:0:0:0:0:1234\"]}}", result); } @@ -66,6 +68,7 @@ public class SpecVerifierTest { "-m", "4", "-c", "4", "-s", "true", + "-b", "1000" }, commandExecutor); assertEquals("null", result); @@ -90,6 +93,7 @@ public class SpecVerifierTest { "-m", "4", "-c", "4", "-s", "true", + "-b", "1000", "-h", previousResult }, commandExecutor); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java index 3b7cf857a86..9364c5f5f80 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java @@ -153,6 +153,7 @@ class NodesResponse extends HttpResponse { if (node.flavor().cost() > 0) object.setLong("cost", node.flavor().cost()); object.setBool("fastDisk", node.flavor().hasFastDisk()); + object.setDouble("bandwidth", node.flavor().getBandwidth()); object.setString("environment", node.flavor().getType().name()); if (node.allocation().isPresent()) { toSlime(node.allocation().get().owner(), object.setObject("owner")); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json index 796b03e7e68..f57f40ea171 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 1, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json index 361459390f9..54cf3269b09 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 1, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json index 144882aa88e..a5d2a7a37dd 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 0, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json index 7823ed0431d..c98fbb46ff8 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json @@ -13,6 +13,7 @@ "description": "Flavor-name-is-docker", "minCpuCores": 0.2, "fastDisk": true, + "bandwidth":0.0, "environment": "DOCKER_CONTAINER", "owner": { "tenant": "tenant3", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json index 2e8092012fb..203220d1b84 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large", "minCpuCores": 4.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "zoneapp", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json index 88bda7544d9..eed164689f1 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large", "minCpuCores": 4.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "zoneapp", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json index a13dfae927f..e92cf895a8a 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large", "minCpuCores": 4.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "zoneapp", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json index f7a1d6ab9a9..b832fddf119 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large", "minCpuCores": 4.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "zoneapp", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json index f877d33672f..17729207c1e 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large", "minCpuCores": 4.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "zoneapp", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json index 913cf9852aa..2c3d112c69a 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large", "minCpuCores": 4.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "zoneapp", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json index 685b0a52b15..73c7f89ff0f 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large", "minCpuCores": 4.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "zoneapp", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json index 08e4904e35c..794082db0c1 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "tenant1", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json index fe65f34bae5..9b18c8ea52c 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json @@ -13,6 +13,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "tenant1", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json index e0e899afbef..ae0354b4d27 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json @@ -13,6 +13,7 @@ "description": "Flavor-name-is-docker", "minCpuCores": 0.2, "fastDisk": true, + "bandwidth":0.0, "environment": "DOCKER_CONTAINER", "rebootGeneration": 0, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json index aa60cfae815..5835d718f50 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "tenant2", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json index eb13d077d7f..7a36c26f385 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json @@ -13,6 +13,7 @@ "minCpuCores": 6.0, "cost": 200, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 1, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json index 86f31c5aa62..247099fcae7 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json @@ -13,6 +13,7 @@ "description": "Flavor-name-is-medium-disk", "minCpuCores": 6.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "tenant3", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json index a2f72766d7f..87a4a355b57 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json @@ -13,6 +13,7 @@ "description": "Flavor-name-is-docker", "minCpuCores": 0.2, "fastDisk": true, + "bandwidth":0.0, "environment": "DOCKER_CONTAINER", "owner": { "tenant": "tenant3", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json index 1e1ea1a2445..4c22b4397e0 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json @@ -13,6 +13,7 @@ "description": "Flavor-name-is-docker", "minCpuCores": 0.2, "fastDisk": true, + "bandwidth":0.0, "environment": "DOCKER_CONTAINER", "rebootGeneration": 1, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json index ceb393f4bf6..4e1032442b3 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json @@ -13,6 +13,7 @@ "description": "Flavor-name-is-docker", "minCpuCores": 0.2, "fastDisk": true, + "bandwidth":0.0, "environment": "DOCKER_CONTAINER", "rebootGeneration": 1, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55-after-changes.json index f3f1306af1e..18d019c4b6e 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55-after-changes.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55-after-changes.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 1, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json index 4f8b988ccbf..9d2c67ffcb7 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 1, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json index a5043746749..3e33cfb7a8d 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json @@ -12,6 +12,7 @@ "description":"Flavor-name-is-default", "minCpuCores":2.0, "fastDisk":true, + "bandwidth":0.0, "environment":"BARE_METAL", "owner": { "tenant": "tenant2", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json index c5382dfd1a7..f0c63048dcc 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "owner": { "tenant": "tenant2", diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json index b1c654b4e00..53a6e5c8d77 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 0, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json index 0fa0bf6631d..a768cf73dda 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 0, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json index 43405f0aafc..8fb4372fb80 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large-variant", "minCpuCores": 64.0, "fastDisk": true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 0, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json index 190dbc41f34..10eaeba153a 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-default", "minCpuCores": 2.0, "fastDisk":true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 1, "currentRebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json index c7f6344d974..74c65d30f34 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json @@ -12,6 +12,7 @@ "description": "Flavor-name-is-large-variant", "minCpuCores": 64.0, "fastDisk":true, + "bandwidth":0.0, "environment": "BARE_METAL", "rebootGeneration": 0, "currentRebootGeneration": 0, |