summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-09-07 18:23:22 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-09-07 18:23:22 +0200
commitbb81952c09c4fbde623c1894acf3d19e6ba5141e (patch)
treee97a6dce7f2755b664cf57f0579dc8df03bdf438 /node-repository
parent2f6ab36ac279bfb6cd231d44d68c742c16a6e235 (diff)
Remove Configuration as that information ended up in Flavor
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java46
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java8
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Configuration.java31
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/filter/NodeHostFilter.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java15
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResource.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java47
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java22
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/README.md4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeList.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java14
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java11
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java9
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java7
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java7
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java8
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java13
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/host1.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent1.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json2
48 files changed, 131 insertions, 214 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java
index acc2848a782..afc6d93dbd9 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java
@@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.provision;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.vespa.hosted.provision.node.Allocation;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.Flavor;
import com.yahoo.vespa.hosted.provision.node.History;
import com.yahoo.vespa.hosted.provision.node.Status;
@@ -27,7 +26,7 @@ public final class Node {
private final String hostname;
private final String openStackId;
private final Optional<String> parentHostname;
- private final Configuration configuration;
+ private final Flavor flavor;
private final Status status;
private final State state;
private final Type type;
@@ -39,24 +38,24 @@ public final class Node {
private Optional<Allocation> allocation;
/** Creates a node in the initial state (provisioned) */
- public static Node create(String openStackId, String hostname, Optional<String> parentHostname, Configuration configuration, Type type) {
- return new Node(openStackId, hostname, parentHostname, configuration, Status.initial(), State.provisioned,
+ public static Node create(String openStackId, String hostname, Optional<String> parentHostname, Flavor flavor, Type type) {
+ return new Node(openStackId, hostname, parentHostname, flavor, Status.initial(), State.provisioned,
Optional.empty(), History.empty(), type);
}
/** Do not use. Construct nodes by calling {@link NodeRepository#createNode} */
public Node(String openStackId, String hostname, Optional<String> parentHostname,
- Configuration configuration, Status status, State state, Allocation allocation, History history, Type type) {
- this(openStackId, hostname, parentHostname, configuration, status, state, Optional.of(allocation), history, type);
+ Flavor flavor, Status status, State state, Allocation allocation, History history, Type type) {
+ this(openStackId, hostname, parentHostname, flavor, status, state, Optional.of(allocation), history, type);
}
public Node(String openStackId, String hostname, Optional<String> parentHostname,
- Configuration configuration, Status status, State state, Optional<Allocation> allocation,
+ Flavor flavor, Status status, State state, Optional<Allocation> allocation,
History history, Type type) {
Objects.requireNonNull(openStackId, "A node must have an openstack id");
Objects.requireNonNull(hostname, "A node must have a hostname");
Objects.requireNonNull(parentHostname, "A null parentHostname is not permitted.");
- Objects.requireNonNull(configuration, "A node must have a configuration");
+ Objects.requireNonNull(flavor, "A node must have a flavor");
Objects.requireNonNull(status, "A node must have a status");
Objects.requireNonNull(state, "A null node state is not permitted");
Objects.requireNonNull(allocation, "A null node allocation is not permitted");
@@ -67,7 +66,7 @@ public final class Node {
this.hostname = hostname;
this.parentHostname = parentHostname;
this.openStackId = openStackId;
- this.configuration = configuration;
+ this.flavor = flavor;
this.status = status;
this.state = state;
this.allocation = allocation;
@@ -91,8 +90,8 @@ public final class Node {
/** Returns the parent hostname for this node if this node is a docker container or a VM (i.e. it has a parent host). Otherwise, empty **/
public Optional<String> parentHostname() { return parentHostname; }
- /** Returns the hardware configuration of this node */
- public Configuration configuration() { return configuration; }
+ /** Returns the flavor of this node */
+ public Flavor flavor() { return flavor; }
/** Returns the known information about the nodes ephemeral status */
public Status status() { return status; }
@@ -142,28 +141,22 @@ public final class Node {
/** Returns a node with the status assigned to the given value */
public Node setStatus(Status status) {
- return new Node(openStackId, hostname, parentHostname, configuration, status, state, allocation, history, type);
+ return new Node(openStackId, hostname, parentHostname, flavor, status, state, allocation, history, type);
}
/** Returns a node with the type assigned to the given value */
public Node setType(Type type) {
- return new Node(openStackId, hostname, parentHostname, configuration, status, state, allocation, history, type);
+ return new Node(openStackId, hostname, parentHostname, flavor, status, state, allocation, history, type);
}
- /** Returns a node with the hardware configuration assigned to the given value */
- public Node setConfiguration(Configuration configuration) {
- return new Node(openStackId, hostname, parentHostname, configuration, status, state, allocation, history, type);
+ /** Returns a node with the flavor assigned to the given value */
+ public Node setFlavor(Flavor flavor) {
+ return new Node(openStackId, hostname, parentHostname, flavor, status, state, allocation, history, type);
}
/** Returns a copy of this with the current generation set to generation */
public Node setReboot(Generation generation) {
- return new Node(openStackId, hostname, parentHostname, configuration, status.setReboot(generation), state,
- allocation, history, type);
- }
-
- /** Returns a copy of this with the flavor set to flavor */
- public Node setFlavor(Flavor flavor) {
- return new Node(openStackId, hostname, parentHostname, new Configuration(flavor), status, state,
+ return new Node(openStackId, hostname, parentHostname, flavor, status.setReboot(generation), state,
allocation, history, type);
}
@@ -188,17 +181,18 @@ public final class Node {
* Do not use this to allocate a node.
*/
public Node setAllocation(Allocation allocation) {
- return new Node(openStackId, hostname, parentHostname, configuration, status, state, allocation, history, type);
+ return new Node(openStackId, hostname, parentHostname, flavor, status, state, allocation, history, type);
}
/** Returns a copy of this node with the parent hostname assigned to the given value. */
public Node setParentHostname(String parentHostname) {
- return new Node(openStackId, hostname, Optional.of(parentHostname), configuration, status, state, allocation, history, type);
+ return new Node(openStackId, hostname, Optional.of(parentHostname), flavor, status, state,
+ allocation, history, type);
}
/** Returns a copy of this node with the given history. */
public Node setHistory(History history) {
- return new Node(openStackId, hostname, parentHostname, configuration, status, state, allocation, history, type);
+ return new Node(openStackId, hostname, parentHostname, flavor, status, state, allocation, history, type);
}
@Override
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
index 1936050d5f2..fabe1680d67 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
@@ -8,7 +8,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.transaction.Mutex;
import com.yahoo.transaction.NestedTransaction;
import com.yahoo.vespa.curator.Curator;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
+import com.yahoo.vespa.hosted.provision.node.Flavor;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.node.filter.NodeFilter;
import com.yahoo.vespa.hosted.provision.node.filter.NodeListFilter;
@@ -113,9 +113,9 @@ public class NodeRepository extends AbstractComponent {
// ----------------- Node lifecycle -----------------------------------------------------------
/** Creates a new node object, without adding it to the node repo */
- public Node createNode(String openStackId, String hostname, Optional<String> parentHostname,
- Configuration configuration, Node.Type type) {
- return Node.create(openStackId, hostname, parentHostname, configuration, type);
+ public Node createNode(String openStackId, String hostname, Optional<String> parentHostname,
+ Flavor flavor, Node.Type type) {
+ return Node.create(openStackId, hostname, parentHostname, flavor, type);
}
/** Adds a list of (newly created) nodes to the node repository as <i>provisioned</i> nodes */
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
index e242396fc06..14305692664 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
@@ -5,7 +5,6 @@ import com.google.common.collect.ImmutableMap;
import com.yahoo.config.provision.*;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.hosted.provision.Node;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.Flavor;
import com.yahoo.vespa.hosted.provision.node.History;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
@@ -91,7 +90,7 @@ public class PopulateClient {
hostname /* id */,
hostname /* Hostname */,
Optional.empty() /* parent hostname */,
- new Configuration(getFlavor(clusterType, clusterId).get()),
+ getFlavor(clusterType, clusterId).get(),
Status.initial(),
Node.State.active,
Optional.empty() /* Allocation */,
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Configuration.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Configuration.java
deleted file mode 100644
index 9647c3f938b..00000000000
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Configuration.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hosted.provision.node;
-
-import java.util.Objects;
-
-/**
- * The hardware configuration of a node
- *
- * @author bratseth
- */
-public class Configuration {
-
- private final Flavor flavor;
-
- public Configuration(Flavor flavor) {
- Objects.requireNonNull(flavor, "A node configuration must have a flavor");
- this.flavor = flavor;
- }
-
- /** Returns the name of this hardware configuration */
- public Flavor flavor() { return flavor; }
-
- /** Returns a configuration with the flavor set to the given value */
- public Configuration setFlavor(Flavor flavor) { return new Configuration(flavor); }
-
- @Override
- public String toString() {
- return flavor.toString();
- }
-
-}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/filter/NodeHostFilter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/filter/NodeHostFilter.java
index 1753461afea..61134fed83c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/filter/NodeHostFilter.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/filter/NodeHostFilter.java
@@ -1,20 +1,12 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.node.filter;
-import com.google.common.collect.ImmutableSet;
-import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.HostFilter;
-import com.yahoo.config.provision.InstanceName;
-import com.yahoo.config.provision.TenantName;
import com.yahoo.vespa.hosted.provision.Node;
-import java.util.Collections;
import java.util.Objects;
import java.util.Optional;
-import java.util.Set;
-import java.util.stream.Collectors;
/**
* A node filter adaption of a host filter
@@ -34,7 +26,7 @@ public class NodeHostFilter extends NodeFilter {
@Override
public boolean matches(Node node) {
- if ( ! filter.matches(node.hostname(), node.configuration().flavor().name(), membership(node))) return false;
+ if ( ! filter.matches(node.hostname(), node.flavor().name(), membership(node))) return false;
return nextMatches(node);
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
index 8a5ee587fe4..2259f84c34d 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
@@ -141,7 +141,7 @@ public class CuratorDatabaseClient {
CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction);
for (Node node : nodes) {
- Node newNode = new Node(node.openStackId(), node.hostname(), node.parentHostname(), node.configuration(),
+ Node newNode = new Node(node.openStackId(), node.hostname(), node.parentHostname(), node.flavor(),
newNodeStatus(node, toState),
toState,
toState.isAllocated() ? node.allocation() : Optional.empty(),
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
index 53379ff7413..0804a6fa46c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
@@ -15,7 +15,7 @@ import com.yahoo.slime.Type;
import com.yahoo.vespa.config.SlimeUtils;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.node.Allocation;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
+import com.yahoo.vespa.hosted.provision.node.Flavor;
import com.yahoo.vespa.hosted.provision.node.Generation;
import com.yahoo.vespa.hosted.provision.node.History;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
@@ -96,7 +96,7 @@ public class NodeSerializer {
object.setString(hostnameKey, node.hostname());
object.setString(openStackIdKey, node.openStackId());
node.parentHostname().ifPresent(hostname -> object.setString(parentHostnameKey, hostname));
- toSlime(node.configuration(), object.setObject(configurationKey));
+ object.setString(flavorKey, node.flavor().name());
object.setLong(rebootGenerationKey, node.status().reboot().wanted());
object.setLong(currentRebootGenerationKey, node.status().reboot().current());
node.status().vespaVersion().ifPresent(version -> object.setString(vespaVersionKey, version.toString()));
@@ -110,10 +110,6 @@ public class NodeSerializer {
object.setString(nodeTypeKey, toString(node.type()));
}
- private void toSlime(Configuration configuration, Cursor object) {
- object.setString(flavorKey, configuration.flavor().name());
- }
-
private void toSlime(Allocation allocation, Cursor object) {
object.setString(tenantIdKey, allocation.owner().tenant().value());
object.setString(applicationIdKey, allocation.owner().application().value());
@@ -148,7 +144,7 @@ public class NodeSerializer {
return new Node(object.field(openStackIdKey).asString(),
object.field(hostnameKey).asString(),
parentHostnameFromSlime(object),
- configurationFromSlime(object.field(configurationKey)),
+ flavorFromSlime(object),
statusFromSlime(object),
state,
allocationFromSlime(object.field(instanceKey)),
@@ -166,8 +162,9 @@ public class NodeSerializer {
hardwareFailureFromSlime(object.field(hardwareFailureKey)));
}
- private Configuration configurationFromSlime(Inspector object) {
- return new Configuration(flavors.getFlavorOrThrow(object.field(flavorKey).asString()));
+ private Flavor flavorFromSlime(Inspector object) {
+ if (object.field(configurationKey).valid()) object = object.field(configurationKey); // TODO: Remove this line when 6.31 is deployed everywhere
+ return flavors.getFlavorOrThrow(object.field(flavorKey).asString());
}
private Optional<Allocation> allocationFromSlime(Inspector object) {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
index e37fff2161b..5d1a4c4515c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
@@ -105,7 +105,7 @@ class GroupPreparer {
/** Sort nodes according to their cost, and if the cost is equal, sort by hostname (to get stable tests) */
private List<Node> sortNodeListByCost(List<Node> nodeList) {
Collections.sort(nodeList, (n1, n2) -> ComparisonChain.start()
- .compare(n1.configuration().flavor().cost(), n2.configuration().flavor().cost())
+ .compare(n1.flavor().cost(), n2.flavor().cost())
.compare(n1.hostname(), n2.hostname())
.result()
);
@@ -268,7 +268,7 @@ class GroupPreparer {
}
private boolean hasCompatibleFlavor(Node node) {
- return node.configuration().flavor().satisfies(requestedFlavor);
+ return node.flavor().satisfies(requestedFlavor);
}
/** Updates the state of some existing nodes in this list by replacing them by id with the given instances. */
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResource.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResource.java
index 884f97e2c2b..da55ef9a15d 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResource.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResource.java
@@ -7,7 +7,6 @@ import com.yahoo.log.LogLevel;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.Node.State;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.restapi.NodeStateSerializer;
import com.yahoo.vespa.hosted.provision.restapi.legacy.ContainersForHost.DockerContainer;
@@ -28,6 +27,7 @@ import java.util.stream.Stream;
@Path("/provision")
@Produces(MediaType.APPLICATION_JSON)
public class ProvisionResource {
+
private static final Logger log = Logger.getLogger(ProvisionResource.class.getName());
private final NodeRepository nodeRepository;
@@ -47,7 +47,7 @@ public class ProvisionResource {
public void addNodes(List<HostInfo> hostInfoList) {
List<Node> nodes = new ArrayList<>();
for (HostInfo hostInfo : hostInfoList)
- nodes.add(nodeRepository.createNode(hostInfo.openStackId, hostInfo.hostname, Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow(hostInfo.flavor)), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode(hostInfo.openStackId, hostInfo.hostname, Optional.empty(), nodeFlavors.getFlavorOrThrow(hostInfo.flavor), Node.Type.tenant));
nodeRepository.addNodes(nodes);
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java
index 0c9ca701a6e..da70453c293 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java
@@ -93,7 +93,7 @@ public class
private void toSlime(Node node, Cursor object) {
object.setString("id", node.openStackId());
object.setString("hostname", node.hostname());
- object.setString("flavor", node.configuration().flavor().name());
+ object.setString("flavor", node.flavor().name());
Optional<Allocation> allocation = node.allocation();
if (! allocation.isPresent()) return;
toSlime(allocation.get().owner(), object.setObject("owner"));
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java
index 12321f45f22..54bce1b39fa 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodePatcher.java
@@ -71,7 +71,7 @@ public class NodePatcher {
case "failCount" :
return node.setStatus(node.status().setFailCount(asLong(value).intValue()));
case "flavor" :
- return node.setConfiguration(node.configuration().setFlavor(nodeFlavors.getFlavorOrThrow(asString(value))));
+ return node.setFlavor(nodeFlavors.getFlavorOrThrow(asString(value)));
case "hardwareFailure" : // TODO (Aug 2016): Remove support for this when mpolden says ok
return node.setStatus(node.status().setHardwareFailure(toHardwareFailureType(asBoolean(value))));
case "hardwareFailureType" :
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
index 52327a578b6..9e240ba6055 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
@@ -13,7 +13,6 @@ import com.yahoo.slime.Slime;
import com.yahoo.vespa.config.SlimeUtils;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.node.filter.ApplicationFilter;
import com.yahoo.vespa.hosted.provision.node.filter.NodeFilter;
@@ -195,7 +194,7 @@ public class NodesApiHandler extends LoggingRequestHandler {
inspector.field("openStackId").asString(),
inspector.field("hostname").asString(),
parentHostname,
- new Configuration(nodeFlavors.getFlavorOrThrow(inspector.field("flavor").asString())),
+ nodeFlavors.getFlavorOrThrow(inspector.field("flavor").asString()),
nodeTypeFromSlime(inspector.field(nodeTypeKey)));
}
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 864b2a357cc..88f28a9e157 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
@@ -142,33 +142,26 @@ class NodesResponse extends HttpResponse {
object.setString("parentHostname", node.parentHostname().get());
}
object.setString("openStackId", node.openStackId());
- object.setString("flavor", node.configuration().flavor().name());
- if (node.configuration().flavor().getMinDiskAvailableGb() > 0) {
- object.setDouble("minDiskAvailableGb", node.configuration().flavor().getMinDiskAvailableGb());
- }
- if (node.configuration().flavor().getMinMainMemoryAvailableGb() > 0) {
- object.setDouble("minMainMemoryAvailableGb", node.configuration().flavor().getMinMainMemoryAvailableGb());
- }
- if (node.configuration().flavor().getDescription() != null && ! node.configuration().flavor().getDescription().isEmpty()) {
- object.setString("description", node.configuration().flavor().getDescription());
- }
- if (node.configuration().flavor().getMinCpuCores() > 0) {
- object.setDouble("minCpuCores", node.configuration().flavor().getMinCpuCores());
- }
- object.setString("canonicalFlavor", node.configuration().flavor().canonicalName());
- if (node.configuration().flavor().cost() > 0) {
- object.setLong("cost", node.configuration().flavor().cost());
- }
- if (node.configuration().flavor().getEnvironment() != null && ! node.configuration().flavor().getEnvironment().isEmpty()) {
- object.setString("environment", node.configuration().flavor().getEnvironment());
- }
- Optional<Allocation> allocation = node.allocation();
- if (allocation.isPresent()) {
- toSlime(allocation.get().owner(), object.setObject("owner"));
- toSlime(allocation.get().membership(), object.setObject("membership"));
- object.setLong("restartGeneration", allocation.get().restartGeneration().wanted());
- object.setLong("currentRestartGeneration", allocation.get().restartGeneration().current());
- allocation.get().membership().cluster().dockerImage().ifPresent(image -> object.setString("wantedDockerImage", image));
+ object.setString("flavor", node.flavor().name());
+ object.setString("canonicalFlavor", node.flavor().canonicalName());
+ if (node.flavor().getMinDiskAvailableGb() > 0)
+ object.setDouble("minDiskAvailableGb", node.flavor().getMinDiskAvailableGb());
+ if (node.flavor().getMinMainMemoryAvailableGb() > 0)
+ object.setDouble("minMainMemoryAvailableGb", node.flavor().getMinMainMemoryAvailableGb());
+ if (node.flavor().getDescription() != null && ! node.flavor().getDescription().isEmpty())
+ object.setString("description", node.flavor().getDescription());
+ if (node.flavor().getMinCpuCores() > 0)
+ object.setDouble("minCpuCores", node.flavor().getMinCpuCores());
+ if (node.flavor().cost() > 0)
+ object.setLong("cost", node.flavor().cost());
+ if (node.flavor().getEnvironment() != null && ! node.flavor().getEnvironment().isEmpty())
+ object.setString("environment", node.flavor().getEnvironment());
+ if (node.allocation().isPresent()) {
+ toSlime(node.allocation().get().owner(), object.setObject("owner"));
+ toSlime(node.allocation().get().membership(), object.setObject("membership"));
+ object.setLong("restartGeneration", node.allocation().get().restartGeneration().wanted());
+ object.setLong("currentRestartGeneration", node.allocation().get().restartGeneration().current());
+ node.allocation().get().membership().cluster().dockerImage().ifPresent(image -> object.setString("wantedDockerImage", image));
}
object.setLong("rebootGeneration", node.status().reboot().wanted());
object.setLong("currentRebootGeneration", node.status().reboot().current());
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
index 6a123d15ea2..9e94480ea6a 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
@@ -14,7 +14,6 @@ import com.yahoo.transaction.NestedTransaction;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.node.Status;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
@@ -48,22 +47,22 @@ public class MockNodeRepository extends NodeRepository {
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(this, flavors, Zone.defaultZone());
List<Node> nodes = new ArrayList<>();
- nodes.add(createNode("node1", "host1.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(createNode("node2", "host2.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(createNode("node3", "host3.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("expensive")), Node.Type.tenant));
+ nodes.add(createNode("node1", "host1.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("node2", "host2.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("node3", "host3.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("expensive"), Node.Type.tenant));
// TODO: Use docker flavor
- Node node4 = createNode("node4", "host4.yahoo.com", Optional.of("dockerhost4"), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant);
+ Node node4 = createNode("node4", "host4.yahoo.com", Optional.of("dockerhost4"), flavors.getFlavorOrThrow("default"), Node.Type.tenant);
node4 = node4.setStatus(node4.status().setDockerImage("image-12"));
nodes.add(node4);
- Node node5 = createNode("node5", "host5.yahoo.com", Optional.of("dockerhost"), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant);
+ Node node5 = createNode("node5", "host5.yahoo.com", Optional.of("dockerhost"), flavors.getFlavorOrThrow("default"), Node.Type.tenant);
nodes.add(node5.setStatus(node5.status().setDockerImage("image-123").setVespaVersion(new Version("1.2.3"))));
- nodes.add(createNode("node6", "host6.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(createNode("node7", "host7.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ nodes.add(createNode("node6", "host6.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("node7", "host7.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
// 8 and 9 are added by web service calls
- Node node10 = createNode("node10", "host10.yahoo.com", Optional.of("parent.yahoo.com"), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant);
+ Node node10 = createNode("node10", "host10.yahoo.com", Optional.of("parent.yahoo.com"), flavors.getFlavorOrThrow("default"), Node.Type.tenant);
Status node10newStatus = node10.status();
node10newStatus = node10newStatus
.setVespaVersion(Version.fromString("5.104.142"))
@@ -72,9 +71,8 @@ public class MockNodeRepository extends NodeRepository {
node10 = node10.setStatus(node10newStatus);
nodes.add(node10);
- nodes.add(createNode("node55", "host55.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
-
- nodes.add(createNode("parent1", "parent1.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.host));
+ nodes.add(createNode("node55", "host55.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("parent1", "parent1.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.host));
nodes = addNodes(nodes);
nodes.remove(6);
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/README.md b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/README.md
index 0ea723fe80e..6065847dfa2 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/README.md
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/README.md
@@ -1,3 +1,5 @@
The test resources are used by both NoadAdmin and NodeRepository
tests to verify APIs. So when modifying this test data
-remember to check tests for both NodeAdmin and NodeRepository. \ No newline at end of file
+remember to check tests for both NodeAdmin and NodeRepository.
+
+TODO: Get rid of this package. Move to Tester objects in the test dir of each of those modules. \ No newline at end of file
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeList.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeList.java
index 2d587b12ddf..b80583c5a28 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeList.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeList.java
@@ -32,12 +32,12 @@ public class NodeList {
/** Returns the subset of nodes of the given flavor */
public NodeList flavor(String flavor) {
- return new NodeList(nodes.stream().filter(node -> node.configuration().flavor().name().equals(flavor)).collect(Collectors.toList()));
+ return new NodeList(nodes.stream().filter(node -> node.flavor().name().equals(flavor)).collect(Collectors.toList()));
}
/** Returns the subset of nodes which does not have the given flavor */
public NodeList notFlavor(String flavor) {
- return new NodeList(nodes.stream().filter(node -> ! node.configuration().flavor().name().equals(flavor)).collect(Collectors.toList()));
+ return new NodeList(nodes.stream().filter(node -> ! node.flavor().name().equals(flavor)).collect(Collectors.toList()));
}
/** Returns the subset of nodes assigned to the given cluster type */
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java
index 805de69e081..c63e51fc796 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java
@@ -1,20 +1,6 @@
package com.yahoo.vespa.hosted.provision;
-import com.yahoo.test.ManualClock;
-import com.yahoo.vespa.config.nodes.NodeRepositoryConfig;
-import com.yahoo.vespa.curator.mock.MockCurator;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
-import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
-import com.yahoo.vespa.hosted.provision.testutils.FlavorConfigBuilder;
-import com.yahoo.vespa.zookeeper.ZooKeeperServer;
import org.junit.Test;
-import java.time.Clock;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Optional;
-import java.util.Set;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
index fa757047134..e8458b8b4dd 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
@@ -3,7 +3,6 @@ package com.yahoo.vespa.hosted.provision;
import com.yahoo.test.ManualClock;
import com.yahoo.vespa.config.nodes.NodeRepositoryConfig;
import com.yahoo.vespa.curator.mock.MockCurator;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.testutils.FlavorConfigBuilder;
@@ -40,7 +39,7 @@ public class NodeRepositoryTester {
public Node addNode(String id, String hostname, String flavor, Node.Type type) {
Node node = nodeRepository.createNode(id, hostname, Optional.empty(),
- new Configuration(nodeFlavors.getFlavorOrThrow(flavor)), type);
+ nodeFlavors.getFlavorOrThrow(flavor), type);
return nodeRepository.addNodes(Collections.singletonList(node)).get(0);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java
index 9cbe17dd718..d19648d8d30 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClientTest.java
@@ -84,7 +84,7 @@ public class PopulateClientTest {
final String clusterId = allocation.membership().cluster().id().value();
assertThat("Cluster id must match", clusterId, is(clusterIds.get(index)));
- assertThat("Flavor must match", node.configuration().flavor().name(), is(flavorSpec.get(clusterType + "." + clusterId)));
+ assertThat("Flavor must match", node.flavor().name(), is(flavorSpec.get(clusterType + "." + clusterId)));
assertThat("Node index must match", node.allocation().get().membership().index(), is(nodeIndices.get(index)));
});
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
index 0b6f7a6a2e7..17cad78a843 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
@@ -18,7 +18,6 @@ import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
import com.yahoo.vespa.curator.transaction.CuratorTransaction;
@@ -97,7 +96,7 @@ public class ApplicationMaintainerTest {
private void createReadyNodes(int count, NodeRepository nodeRepository, NodeFlavors nodeFlavors) {
List<Node> nodes = new ArrayList<>(count);
for (int i = 0; i < count; i++)
- nodes.add(nodeRepository.createNode("node" + i, "host" + i, Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode("node" + i, "host" + i, Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
nodes = nodeRepository.addNodes(nodes);
nodeRepository.setReady(nodes);
}
@@ -105,7 +104,7 @@ public class ApplicationMaintainerTest {
private void createHostNodes(int count, NodeRepository nodeRepository, NodeFlavors nodeFlavors) {
List<Node> nodes = new ArrayList<>(count);
for (int i = 0; i < count; i++)
- nodes.add(nodeRepository.createNode("hostNode" + i, "realHost" + i, Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host));
+ nodes.add(nodeRepository.createNode("hostNode" + i, "realHost" + i, Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host));
nodes = nodeRepository.addNodes(nodes);
nodeRepository.setReady(nodes);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
index 475fcbe9521..64203051305 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
@@ -18,7 +18,6 @@ import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.curator.transaction.CuratorTransaction;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.node.Status;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
@@ -67,14 +66,14 @@ public class FailedExpirerTest {
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, Zone.defaultZone(), clock);
List<Node> nodes = new ArrayList<>(3);
- nodes.add(nodeRepository.createNode("node1", "node1", Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(nodeRepository.createNode("node2", "node2", Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(nodeRepository.createNode("node3", "node3", Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode("node1", "node1", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode("node2", "node2", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode("node3", "node3", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
nodeRepository.addNodes(nodes);
List<Node> hostNodes = new ArrayList<>(1);
- hostNodes.add(nodeRepository.createNode("parent1", "parent1", Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host));
- hostNodes.add(nodeRepository.createNode("parent2", "parent2", Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host));
+ hostNodes.add(nodeRepository.createNode("parent1", "parent1", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host));
+ hostNodes.add(nodeRepository.createNode("parent2", "parent2", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host));
nodeRepository.addNodes(hostNodes);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
index b431c880cce..84d3ece5698 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
@@ -15,7 +15,6 @@ import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.History;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
@@ -50,13 +49,13 @@ public class InactiveAndFailedExpirerTest {
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, nodeFlavors, Zone.defaultZone(), clock);
List<Node> nodes = new ArrayList<>(2);
- nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
nodeRepository.addNodes(nodes);
List<Node> hostNodes = new ArrayList<>(2);
- hostNodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host));
- hostNodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host));
+ hostNodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host));
+ hostNodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host));
nodeRepository.addNodes(hostNodes);
// Allocate then deallocate 2 nodes
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
index d613b21052a..92538ef6038 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
@@ -1,7 +1,6 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.maintenance;
-import com.google.inject.Inject;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
@@ -30,7 +29,6 @@ import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.curator.transaction.CuratorTransaction;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.node.Status;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
@@ -292,7 +290,7 @@ public class NodeFailerTest {
private void createReadyNodes(int count, int startIndex, NodeRepository nodeRepository, NodeFlavors nodeFlavors) {
List<Node> nodes = new ArrayList<>(count);
for (int i = startIndex; i < startIndex + count; i++)
- nodes.add(nodeRepository.createNode("node" + i, "host" + i, Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode("node" + i, "host" + i, Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
nodes = nodeRepository.addNodes(nodes);
nodeRepository.setReady(nodes);
}
@@ -300,7 +298,7 @@ public class NodeFailerTest {
private void createHostNodes(int count, NodeRepository nodeRepository, NodeFlavors nodeFlavors) {
List<Node> nodes = new ArrayList<>(count);
for (int i = 0; i < count; i++)
- nodes.add(nodeRepository.createNode("parent" + i, "parent" + i, Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host));
+ nodes.add(nodeRepository.createNode("parent" + i, "parent" + i, Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host));
nodes = nodeRepository.addNodes(nodes);
nodeRepository.setReady(nodes);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
index 76b1650d155..a9859244569 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
@@ -10,7 +10,6 @@ import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
import java.time.Duration;
@@ -41,9 +40,9 @@ public class ReservationExpirerTest {
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, flavors, Zone.defaultZone(), clock);
List<Node> nodes = new ArrayList<>(2);
- nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.host));
+ nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.host));
nodes = nodeRepository.addNodes(nodes);
// Reserve 2 nodes
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
index d91bdb919e7..834c72aad61 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
@@ -17,7 +17,6 @@ import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.curator.transaction.CuratorTransaction;
@@ -122,7 +121,7 @@ public class RetiredExpirerTest {
private void createReadyNodes(int count, NodeRepository nodeRepository, NodeFlavors nodeFlavors) {
List<Node> nodes = new ArrayList<>(count);
for (int i = 0; i < count; i++)
- nodes.add(nodeRepository.createNode("node" + i, "node" + i, Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ nodes.add(nodeRepository.createNode("node" + i, "node" + i, Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
nodes = nodeRepository.addNodes(nodes);
nodeRepository.setReady(nodes);
}
@@ -130,7 +129,7 @@ public class RetiredExpirerTest {
private void createHostNodes(int count, NodeRepository nodeRepository, NodeFlavors nodeFlavors) {
List<Node> nodes = new ArrayList<>(count);
for (int i = 0; i < count; i++)
- nodes.add(nodeRepository.createNode("parent" + i, "parent" + i, Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host));
+ nodes.add(nodeRepository.createNode("parent" + i, "parent" + i, Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host));
nodes = nodeRepository.addNodes(nodes);
nodeRepository.setReady(nodes);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java
index 0fe507edbe5..a66d127a49c 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/monitoring/ProvisionMetricsTest.java
@@ -6,7 +6,6 @@ import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.testutils.FlavorConfigBuilder;
import org.junit.Test;
@@ -28,9 +27,9 @@ public class ProvisionMetricsTest {
final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
final Curator curator = new MockCurator();
final NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator);
- final Node node = nodeRepository.createNode("openStackId", "hostname", Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant);
+ final Node node = nodeRepository.createNode("openStackId", "hostname", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant);
nodeRepository.addNodes(Collections.singletonList(node));
- final Node hostNode = nodeRepository.createNode("openStackId2", "parent", Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host);
+ final Node hostNode = nodeRepository.createNode("openStackId2", "parent", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host);
nodeRepository.addNodes(Collections.singletonList(hostNode));
final Map<String, Number> expectedMetrics = new HashMap<>();
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java
index beb7abc882e..4ec37adf479 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java
@@ -12,7 +12,6 @@ import com.yahoo.text.Utf8;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.Node.State;
import com.yahoo.vespa.hosted.provision.node.Allocation;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.Generation;
import com.yahoo.vespa.hosted.provision.node.History;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
@@ -76,7 +75,7 @@ public class SerializationTest {
assertEquals(2, copy.allocation().get().restartGeneration().current());
assertEquals(3, copy.status().reboot().wanted());
assertEquals(4, copy.status().reboot().current());
- assertEquals("large", copy.configuration().flavor().name());
+ assertEquals("large", copy.flavor().name());
assertEquals("1.2.3", copy.status().vespaVersion().get().toString());
assertEquals(2, copy.status().failCount());
assertEquals(Status.HardwareFailureType.memory_mcelog, copy.status().hardwareFailure().get());
@@ -277,14 +276,14 @@ public class SerializationTest {
@Test
public void serialize_parentHostname() {
final String parentHostname = "parent.yahoo.com";
- Node node = Node.create("myId", "myHostname", Optional.of(parentHostname), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant);
+ Node node = Node.create("myId", "myHostname", Optional.of(parentHostname), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant);
Node deserializedNode = nodeSerializer.fromJson(State.provisioned, nodeSerializer.toJson(node));
assertEquals(parentHostname, deserializedNode.parentHostname().get());
}
private Node createNode() {
- return Node.create("myId", "myHostname", Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.host);
+ return Node.create("myId", "myHostname", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.host);
}
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
index d0092443239..5e43fa37fb3 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
@@ -39,7 +39,7 @@ public class DockerProvisioningTest {
final NodeList nodes = tester.getNodes(application1, Node.State.active);
assertEquals(7, nodes.size());
- assertEquals(dockerFlavor, nodes.asList().get(0).configuration().flavor().canonicalName());
+ assertEquals(dockerFlavor, nodes.asList().get(0).flavor().canonicalName());
}
// In dev, test and staging you get nodes with default flavor, but we should get specified flavor for docker nodes
@@ -54,7 +54,7 @@ public class DockerProvisioningTest {
final NodeList nodes = tester.getNodes(application1, Node.State.active);
assertEquals(1, nodes.size());
- assertEquals(dockerFlavor, nodes.asList().get(0).configuration().flavor().canonicalName());
+ assertEquals(dockerFlavor, nodes.asList().get(0).flavor().canonicalName());
}
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
index 3d29825f614..b08b2f04d32 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
@@ -20,7 +20,6 @@ import com.yahoo.vespa.hosted.provision.testutils.FlavorConfigBuilder;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.Flavor;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.node.filter.NodeHostFilter;
@@ -206,7 +205,8 @@ public class ProvisioningTester implements AutoCloseable {
nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(),
UUID.randomUUID().toString(),
Optional.empty(),
- new Configuration(nodeFlavors.getFlavorOrThrow(flavor)), Node.Type.tenant));
+ nodeFlavors.getFlavorOrThrow(flavor),
+ Node.Type.tenant));
nodes = nodeRepository.addNodes(nodes);
nodeRepository.setReady(nodes);
return nodes;
@@ -223,7 +223,7 @@ public class ProvisioningTester implements AutoCloseable {
for (int i = 0; i < n; i++) {
final String hostname = UUID.randomUUID().toString();
nodes.add(nodeRepository.createNode("openstack-id", hostname, parentHostId,
- new Configuration(nodeFlavors.getFlavorOrThrow(flavor)), Node.Type.tenant));
+ nodeFlavors.getFlavorOrThrow(flavor), Node.Type.tenant));
}
nodes = nodeRepository.addNodes(nodes);
nodeRepository.setReady(nodes);
@@ -250,7 +250,7 @@ public class ProvisioningTester implements AutoCloseable {
}
private Flavor getNodeFlavor(String hostname) {
- return nodeRepository.getNode(hostname).map(Node::configuration).map(Configuration::flavor).orElseThrow(() -> new RuntimeException("No flavor for host " + hostname));
+ return nodeRepository.getNode(hostname).map(Node::flavor).orElseThrow(() -> new RuntimeException("No flavor for host " + hostname));
}
private static class NullProvisionLogger implements ProvisionLogger {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java
index 9a7af56fd48..7fac31b01e7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java
@@ -14,7 +14,6 @@ import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
import com.yahoo.vespa.curator.transaction.CuratorTransaction;
@@ -56,14 +55,14 @@ public class ProvisionResourceTest {
List<Node> readyNodes = new ArrayList<>();
for (HostInfo hostInfo : createHostInfos(readyCount, 0))
readyNodes.add(nodeRepository.createNode(hostInfo.openStackId, hostInfo.hostname,
- Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
readyNodes = nodeRepository.addNodes(readyNodes);
nodeRepository.setReady(readyNodes);
List<Node> provisionedNodes = new ArrayList<>();
for (HostInfo hostInfo : createHostInfos(provisionedCount, readyCount))
provisionedNodes.add(nodeRepository.createNode(hostInfo.openStackId, hostInfo.hostname,
- Optional.empty(), new Configuration(nodeFlavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), Node.Type.tenant));
nodeRepository.addNodes(provisionedNodes);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
index bb17bc57697..238ca6cfcf5 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
@@ -19,7 +19,6 @@ import com.yahoo.transaction.NestedTransaction;
import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.node.Configuration;
import com.yahoo.vespa.hosted.provision.node.NodeFlavors;
import com.yahoo.vespa.hosted.provision.provisioning.NodeRepositoryProvisioner;
import com.yahoo.vespa.hosted.provision.testutils.FlavorConfigBuilder;
@@ -86,12 +85,12 @@ public class RestApiTest {
NodeFlavors flavors = FlavorConfigBuilder.createDummies("default");
List<Node> nodes = new ArrayList<>();
- nodes.add(createNode("node1", "host1.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(createNode("node2", "host2.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(createNode("node3", "host3.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(createNode("node4", "host4.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(createNode("node5", "host5.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
- nodes.add(createNode("node6", "host6.yahoo.com", Optional.empty(), new Configuration(flavors.getFlavorOrThrow("default")), Node.Type.tenant));
+ nodes.add(createNode("node1", "host1.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("node2", "host2.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("node3", "host3.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("node4", "host4.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("node5", "host5.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
+ nodes.add(createNode("node6", "host6.yahoo.com", Optional.empty(), flavors.getFlavorOrThrow("default"), Node.Type.tenant));
nodes = addNodes(nodes);
nodes.remove(5);
setReady(nodes);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/host1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/host1.json
index 4847cf1fa9e..aa64d34d49f 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/host1.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/host1.json
@@ -6,11 +6,11 @@
"hostname": "parent1.yahoo.com",
"openStackId": "what",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Host node",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"owner": {
"tenant": "tenant3",
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 f73668624b4..7f713328bd4 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
@@ -6,11 +6,11 @@
"hostname": "host1.yahoo.com",
"openStackId": "node1",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"owner": {
"tenant": "tenant2",
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 d9efb50af66..d0c65934530 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
@@ -7,11 +7,11 @@
"parentHostname": "parent.yahoo.com",
"openStackId": "node10",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"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 e74d95daf89..d2e2e992601 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
@@ -7,11 +7,11 @@
"parentHostname":"parent.host.yahoo.com",
"openStackId":"host11.yahoo.com",
"flavor":"docker",
+ "canonicalFlavor":"docker",
"minDiskAvailableGb":100.0,
"minMainMemoryAvailableGb":0.5,
"description":"Flavor-name-is-docker",
"minCpuCores":0.2,
- "canonicalFlavor":"docker",
"environment":"docker",
"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 387d78a231a..28d6a67986d 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
@@ -6,11 +6,11 @@
"hostname": "host2.yahoo.com",
"openStackId": "node2",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"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 b7c30a932ea..f426ce8cb77 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
@@ -6,8 +6,8 @@
"hostname": "host3.yahoo.com",
"openStackId": "node3",
"flavor":"expensive",
- "description":"Flavor-name-is-expensive",
"canonicalFlavor":"default",
+ "description":"Flavor-name-is-expensive",
"cost":200,
"owner": {
"tenant": "tenant3",
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 a08c1aeaafb..76373822e85 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
@@ -7,11 +7,11 @@
"parentHostname": "parent.yahoo.com",
"openStackId": "node4",
"flavor": "medium-disk",
+ "canonicalFlavor": "medium-disk",
"minDiskAvailableGb": 56.0,
"minMainMemoryAvailableGb": 12.0,
"description": "Flavor-name-is-medium-disk",
"minCpuCores": 6.0,
- "canonicalFlavor": "medium-disk",
"environment": "foo",
"owner": {
"tenant": "tenant1",
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 01d4b1b65d8..fdf7dc94f0e 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
@@ -7,11 +7,11 @@
"parentHostname":"dockerhost4",
"openStackId": "node4",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"owner": {
"tenant": "tenant1",
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 017fe269fcc..371154ff4b0 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
@@ -7,11 +7,11 @@
"parentHostname":"dockerhost",
"openStackId": "node5",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"rebootGeneration": 0,
"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 266818b7c3c..fb05a7b2896 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
@@ -7,11 +7,11 @@
"parentHostname":"dockerhost",
"openStackId": "node5",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"rebootGeneration": 0,
"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 b69866f9e09..be92cc8b927 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
@@ -6,11 +6,11 @@
"hostname": "host55.yahoo.com",
"openStackId": "node55",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
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 328e24d430b..d5c93ba43a9 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
@@ -6,11 +6,11 @@
"hostname": "host6.yahoo.com",
"openStackId": "node6",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"owner": {
"tenant": "tenant3",
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 855450b640a..f87113cfc6c 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
@@ -6,11 +6,11 @@
"hostname": "host7.yahoo.com",
"openStackId": "node7",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"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 0060c315171..cdcb178f17c 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
@@ -6,11 +6,11 @@
"hostname": "host8.yahoo.com",
"openStackId": "host8.yahoo.com",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb":400.0,
"minMainMemoryAvailableGb":16.0,
"description":"Flavor-name-is-default",
"minCpuCores":2.0,
- "canonicalFlavor": "default",
"environment":"env",
"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 70fa6423fe4..5e280e992c6 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
@@ -6,11 +6,11 @@
"hostname": "host9.yahoo.com",
"openStackId": "host9.yahoo.com",
"flavor": "large-variant",
+ "canonicalFlavor": "large",
"minDiskAvailableGb":2000.0,
"minMainMemoryAvailableGb":128.0,
"description":"Flavor-name-is-large-variant",
"minCpuCores":64.0,
- "canonicalFlavor": "large",
"environment":"env",
"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 c2d663fcb15..81ce7c9b36d 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
@@ -6,11 +6,11 @@
"hostname": "parent1.yahoo.com",
"openStackId": "parent1",
"flavor": "default",
+ "canonicalFlavor": "default",
"minDiskAvailableGb": 400.0,
"minMainMemoryAvailableGb": 16.0,
"description": "Flavor-name-is-default",
"minCpuCores": 2.0,
- "canonicalFlavor": "default",
"environment": "env",
"rebootGeneration": 0,
"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 9b9f1179c1c..5140d5f0d3e 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
@@ -6,11 +6,11 @@
"hostname": "parent2.yahoo.com",
"openStackId": "parent2.yahoo.com",
"flavor": "large-variant",
+ "canonicalFlavor": "large",
"minDiskAvailableGb": 2000.0,
"minMainMemoryAvailableGb": 128.0,
"description": "Flavor-name-is-large-variant",
"minCpuCores": 64.0,
- "canonicalFlavor": "large",
"environment": "env",
"rebootGeneration": 0,
"currentRebootGeneration": 0,