summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-05-23 07:21:43 +0200
committerGitHub <noreply@github.com>2020-05-23 07:21:43 +0200
commit52e8214e1dfcc987b8227d19c288d05b54e711f9 (patch)
tree5e2355e5c08ba7698cf9c6e930496fb2a5ce9385 /node-repository
parent5c0bfb06784075ac72c7891b7dce6454d85bdff8 (diff)
Revert "Bratseth/real resources in model"
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocationOptimizer.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java5
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java9
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java1
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java8
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java12
10 files changed, 27 insertions, 28 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocationOptimizer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocationOptimizer.java
index 475f2feaebd..f0f53161d9b 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocationOptimizer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocationOptimizer.java
@@ -40,8 +40,8 @@ public class AllocationOptimizer {
AllocatableClusterResources current,
Limits limits) {
if (limits.isEmpty())
- limits = Limits.of(new ClusterResources(minimumNodes, 1, NodeResources.unspecified()),
- new ClusterResources(maximumNodes, maximumNodes, NodeResources.unspecified()));
+ limits = Limits.of(new ClusterResources(minimumNodes, 1, NodeResources.unspecified),
+ new ClusterResources(maximumNodes, maximumNodes, NodeResources.unspecified));
Optional<AllocatableClusterResources> bestAllocation = Optional.empty();
for (int groups = limits.min().groups(); groups <= limits.max().groups(); groups++) {
for (int nodes = limits.min().nodes(); nodes <= limits.max().nodes(); nodes++) {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java
index ebe9327967e..36034b62cfb 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java
@@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.provision.provisioning;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.ParentHostUnavailableException;
import com.yahoo.transaction.Mutex;
@@ -184,8 +183,8 @@ class Activator {
for (Node node : nodes) {
HostSpec hostSpec = getHost(node.hostname(), hosts);
node = hostSpec.membership().get().retired() ? node.retire(nodeRepository.clock().instant()) : node.unretire();
- if (! hostSpec.advertisedResources().equals(node.flavor().resources())) // A resized node
- node = node.with(new Flavor(hostSpec.advertisedResources()));
+ if (hostSpec.flavor().isPresent()) // Docker nodes may change flavor
+ node = node.with(hostSpec.flavor().get());
Allocation allocation = node.allocation().get()
.with(hostSpec.membership().get())
.withRequestedResources(hostSpec.requestedResources()
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java
index 78ccf258675..bd92357ea79 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java
@@ -7,7 +7,6 @@ import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Environment;
-import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostFilter;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeResources;
@@ -197,12 +196,12 @@ public class NodeRepositoryProvisioner implements Provisioner {
log.log(Level.FINE, () -> "Prepared node " + node.hostname() + " - " + node.flavor());
Allocation nodeAllocation = node.allocation().orElseThrow(IllegalStateException::new);
hosts.add(new HostSpec(node.hostname(),
- nodeRepository.resourcesCalculator().realResourcesOf(node, nodeRepository),
- node.flavor().resources(),
- requestedResources,
- nodeAllocation.membership(),
+ List.of(),
+ Optional.of(node.flavor()),
+ Optional.of(nodeAllocation.membership()),
node.status().vespaVersion(),
nodeAllocation.networkPorts(),
+ requestedResources.isUnspecified() ? Optional.empty() : Optional.of(requestedResources),
node.status().dockerImage()));
if (nodeAllocation.networkPorts().isPresent()) {
log.log(Level.FINE, () -> "Prepared node " + node.hostname() + " has port allocations");
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java
index e3edf394da6..9d02d2907cc 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java
@@ -145,7 +145,7 @@ class NodesResponse extends HttpResponse {
object.setString("flavor", node.flavor().name());
node.reservedTo().ifPresent(reservedTo -> object.setString("reservedTo", reservedTo.value()));
if (node.flavor().isConfigured())
- object.setDouble("cpuCores", node.flavor().resources().vcpu());
+ object.setDouble("cpuCores", node.flavor().getMinCpuCores());
NodeResourcesSerializer.toSlime(node.flavor().resources(), object.setObject("resources"));
if (node.flavor().cost() > 0)
object.setLong("cost", node.flavor().cost());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java
index 914008af227..6b03def7e57 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java
@@ -229,6 +229,7 @@ public class OsVersionsTest {
// All hosts are deprovisioning
assertEquals(hostCount, hostNodes.get().deprovisioning().size());
+
// Nodes complete their upgrade by being reprovisioned
completeUpgradeOf(hostNodes.get().deprovisioning().asList(), NodeType.confighost);
assertEquals(hostCount, hostNodes.get().onOsVersion(version1).size());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java
index f3fe1fc4915..134b3bc1cd7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java
@@ -275,12 +275,12 @@ public class NodeSerializerTest {
@Test
public void flavor_overrides_serialization() {
Node node = createNode();
- assertEquals(20, node.flavor().resources().diskGb(), 0);
+ assertEquals(20, node.flavor().getMinDiskAvailableGb(), 0);
node = node.with(node.flavor().with(FlavorOverrides.ofDisk(1234)));
- assertEquals(1234, node.flavor().resources().diskGb(), 0);
+ assertEquals(1234, node.flavor().getMinDiskAvailableGb(), 0);
Node copy = nodeSerializer.fromJson(Node.State.provisioned, nodeSerializer.toJson(node));
- assertEquals(1234, copy.flavor().resources().diskGb(), 0);
+ assertEquals(1234, copy.flavor().getMinDiskAvailableGb(), 0);
assertEquals(node, copy);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java
index ea4386f2fd5..fd2374c55b7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java
@@ -102,13 +102,13 @@ public class AllocationVisualizer extends JPanel {
if (isHost) {
g.setColor(Color.GRAY);
- for (int i = 0; i < node.flavor().resources().memoryGb(); i++) {
+ for (int i = 0; i < node.flavor().getMinMainMemoryAvailableGb(); i++) {
g.fillRect(x, y - nodeHeight, nodeWidth, nodeHeight);
y = y - (nodeHeight + 2);
}
} else {
g.setColor(Color.YELLOW);
- int multi = (int) node.flavor().resources().memoryGb();
+ int multi = (int) node.flavor().getMinMainMemoryAvailableGb();
int height = multi * nodeHeight + ((multi - 1) * 2);
g.fillRect(x, y - height, nodeWidth, height);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java
index 7350df40718..24c1b0b5d2f 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java
@@ -346,8 +346,8 @@ public class DynamicDockerAllocationTest {
List<HostSpec> hosts = tester.prepare(application, cluster, 2, 1, resources);
assertEquals(2, hosts.size());
- assertEquals(NodeResources.DiskSpeed.slow, hosts.get(0).advertisedResources().diskSpeed());
- assertEquals(NodeResources.DiskSpeed.slow, hosts.get(1).advertisedResources().diskSpeed());
+ assertEquals(NodeResources.DiskSpeed.slow, hosts.get(0).flavor().get().resources().diskSpeed());
+ assertEquals(NodeResources.DiskSpeed.slow, hosts.get(1).flavor().get().resources().diskSpeed());
tester.activate(application, hosts);
}
@@ -386,9 +386,9 @@ public class DynamicDockerAllocationTest {
List<HostSpec> hosts = tester.prepare(application, cluster, 4, 1, resources);
assertEquals(1, hosts.size());
tester.activate(application, hosts);
- assertEquals(0.1, hosts.get(0).advertisedResources().vcpu(), 0.000001);
+ assertEquals(0.1, hosts.get(0).flavor().get().resources().vcpu(), 0.000001);
assertEquals("Slow nodes are allowed in dev and preferred because they are cheaper",
- NodeResources.DiskSpeed.slow, hosts.get(0).advertisedResources().diskSpeed());
+ NodeResources.DiskSpeed.slow, hosts.get(0).flavor().get().resources().diskSpeed());
}
@Test
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
index 7ef780b8b7f..e1a66d2ae21 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
@@ -270,8 +270,8 @@ public class DynamicDockerProvisionTest {
app1, cluster1);
// Stop specifying node resources
- tester.activate(app1, cluster1, Capacity.from(new ClusterResources(6, 3, NodeResources.unspecified()),
- new ClusterResources(9, 3, NodeResources.unspecified())));
+ tester.activate(app1, cluster1, Capacity.from(new ClusterResources(6, 3, NodeResources.unspecified),
+ new ClusterResources(9, 3, NodeResources.unspecified)));
tester.assertNodes("Existing allocation is preserved",
9, 3, 2, 20, 15,
app1, cluster1);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
index 9e211fd497c..03c07515cd5 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
@@ -418,8 +418,8 @@ public class ProvisioningTest {
ApplicationId app1 = tester.makeApplicationId("app1");
ClusterSpec cluster1 = ClusterSpec.request(ClusterSpec.Type.content, new ClusterSpec.Id("cluster1")).vespaVersion("7").build();
- tester.activate(app1, cluster1, Capacity.from(new ClusterResources(2, 1, NodeResources.unspecified()),
- new ClusterResources(4, 1, NodeResources.unspecified())));
+ tester.activate(app1, cluster1, Capacity.from(new ClusterResources(2, 1, NodeResources.unspecified),
+ new ClusterResources(4, 1, NodeResources.unspecified)));
tester.assertNodes("Initial allocation at min with default resources",
2, 1, 1.5, 8, 50, 0.3,
app1, cluster1);
@@ -479,8 +479,8 @@ public class ProvisioningTest {
app1, cluster1);
// Stop specifying node resources
- tester.activate(app1, cluster1, Capacity.from(new ClusterResources(6, 3, NodeResources.unspecified()),
- new ClusterResources(9, 3, NodeResources.unspecified())));
+ tester.activate(app1, cluster1, Capacity.from(new ClusterResources(6, 3, NodeResources.unspecified),
+ new ClusterResources(9, 3, NodeResources.unspecified)));
tester.assertNodes("No change",
9, 3, 8, 35, 15,
app1, cluster1);
@@ -622,7 +622,7 @@ public class ProvisioningTest {
tester.makeReadyHosts(4, defaultResources).deployZoneApp();
ApplicationId application = tester.makeApplicationId();
ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("music")).vespaVersion("4.5.6").build();
- tester.prepare(application, cluster, Capacity.from(new ClusterResources(5, 1, NodeResources.unspecified()), false, false));
+ tester.prepare(application, cluster, Capacity.from(new ClusterResources(5, 1, NodeResources.unspecified), false, false));
// No exception; Success
}
@@ -881,7 +881,7 @@ public class ProvisioningTest {
allHosts.addAll(content0);
allHosts.addAll(content1);
- Function<Integer, Capacity> capacity = count -> Capacity.from(new ClusterResources(count, 1, NodeResources.unspecified()), required, true);
+ Function<Integer, Capacity> capacity = count -> Capacity.from(new ClusterResources(count, 1, NodeResources.unspecified), required, true);
int expectedContainer0Size = tester.capacityPolicies().decideSize(container0Size, capacity.apply(container0Size), containerCluster0, application);
int expectedContainer1Size = tester.capacityPolicies().decideSize(container1Size, capacity.apply(container1Size), containerCluster1, application);
int expectedContent0Size = tester.capacityPolicies().decideSize(content0Size, capacity.apply(content0Size), contentCluster0, application);