aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-02-28 10:02:02 +0100
committerMartin Polden <mpolden@mpolden.no>2019-04-23 14:51:07 +0200
commit6ea90e965c39f61e3df6953d99107312a5a89955 (patch)
treebae6705408f49194ec39c9ed36d39b05700bc728
parent979a2980aeaf89cc111f9dec74fa46cf191a8d8f (diff)
Remove feature flag guard for exclusive load balancers
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java13
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java27
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java11
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java14
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json24
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json24
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/active-nodes.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json37
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json67
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json67
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json2
14 files changed, 240 insertions, 59 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
index 629bbf56884..f5f8ed53d2a 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.provision.provisioning;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.HostName;
+import com.yahoo.config.provision.NodeType;
import com.yahoo.transaction.Mutex;
import com.yahoo.transaction.NestedTransaction;
import com.yahoo.vespa.hosted.provision.Node;
@@ -93,7 +94,7 @@ public class LoadBalancerProvisioner {
/** Returns a list of active containers for given application, grouped by cluster spec */
private Map<ClusterSpec, List<Node>> activeContainers(ApplicationId application) {
- return new NodeList(nodeRepository.getNodes(Node.State.active))
+ return new NodeList(nodeRepository.getNodes(NodeType.tenant, Node.State.active))
.owner(application)
.filter(node -> node.state().isAllocated())
.type(ClusterSpec.Type.container)
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 246c56ee28b..c91d28e17ce 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
@@ -21,7 +21,6 @@ import com.yahoo.vespa.flags.FlagSource;
import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.flag.FlagId;
import com.yahoo.vespa.hosted.provision.node.Allocation;
import com.yahoo.vespa.hosted.provision.node.filter.ApplicationFilter;
import com.yahoo.vespa.hosted.provision.node.filter.NodeHostFilter;
@@ -116,13 +115,11 @@ public class NodeRepositoryProvisioner implements Provisioner {
validate(hosts);
activator.activate(application, hosts, transaction);
transaction.onCommitted(() -> {
- if (nodeRepository.flags().get(FlagId.exclusiveLoadBalancer).isEnabled(application)) {
- try {
- loadBalancerProvisioner.ifPresent(lbProvisioner -> lbProvisioner.provision(application));
- } catch (Exception e) {
- log.log(LogLevel.ERROR, "Failed to provision load balancer for application " +
- application.toShortString(), e);
- }
+ try {
+ loadBalancerProvisioner.ifPresent(lbProvisioner -> lbProvisioner.provision(application));
+ } catch (Exception e) {
+ log.log(LogLevel.ERROR, "Failed to provision load balancer for application " +
+ application.toShortString(), e);
}
});
}
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 83f5d6bf783..ca02c0c215b 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
@@ -85,8 +85,10 @@ public class MockNodeRepository extends NodeRepository {
nodes.add(createNode("node6", "host6.yahoo.com", ipAddresses, Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.tenant));
- nodes.add(createNode("node7", "host7.yahoo.com", ipAddresses, Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.tenant));
- // 8 and 9 are added by web service calls
+ Node node7 = createNode("node7", "host7.yahoo.com", ipAddresses, Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.tenant);
+ nodes.add(node7);
+
+ // 8, 9, 11 and 12 are added by web service calls
Node node10 = createNode("node10", "host10.yahoo.com", ipAddresses, Optional.of("parent1.yahoo.com"), flavors.getFlavorOrThrow("default"), NodeType.tenant);
Status node10newStatus = node10.status();
node10newStatus = node10newStatus
@@ -95,6 +97,11 @@ public class MockNodeRepository extends NodeRepository {
node10 = node10.with(node10newStatus);
nodes.add(node10);
+ Node node13 = createNode("node13", "host13.yahoo.com", ipAddresses, Optional.empty(), flavors.getFlavorOrThrow("large"), NodeType.tenant);
+ Node node14 = createNode("node14", "host14.yahoo.com", ipAddresses, Optional.empty(), flavors.getFlavorOrThrow("large"), NodeType.tenant);
+ nodes.add(node13);
+ nodes.add(node14);
+
Node node55 = createNode("node55", "host55.yahoo.com", ipAddresses, Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.tenant);
nodes.add(node55.with(node55.status().withWantToRetire(true).withWantToDeprovision(true)));
@@ -109,14 +116,15 @@ public class MockNodeRepository extends NodeRepository {
nodes.add(createNode("cfg1", "cfg1.yahoo.com", Collections.singleton("127.0.1.1"), Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.config));
nodes.add(createNode("cfg2", "cfg2.yahoo.com", Collections.singleton("127.0.1.2"), Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.config));
+ // Ready all nodes, except 7 and 55
nodes = addNodes(nodes);
- nodes.remove(6);
- nodes.remove(7);
+ nodes.remove(node7);
+ nodes.remove(node55);
nodes = setDirty(nodes, Agent.system, getClass().getSimpleName());
setReady(nodes, Agent.system, getClass().getSimpleName());
- fail("host5.yahoo.com", Agent.system, getClass().getSimpleName());
- dirtyRecursively("host55.yahoo.com", Agent.system, getClass().getSimpleName());
+ fail(node5.hostname(), Agent.system, getClass().getSimpleName());
+ dirtyRecursively(node55.hostname(), Agent.system, getClass().getSimpleName());
ApplicationId zoneApp = ApplicationId.from(TenantName.from("zoneapp"), ApplicationName.from("zoneapp"), InstanceName.from("zoneapp"));
// TODO: Remove this once feature flag is removed
@@ -148,6 +156,13 @@ public class MockNodeRepository extends NodeRepository {
Version.fromString("6.42"),
false, Collections.emptySet());
activate(provisioner.prepare(app3, cluster3, Capacity.fromNodeCount(2, Optional.of("docker"), false, true), 1, null), app3, provisioner);
+
+ ApplicationId app4 = ApplicationId.from(TenantName.from("tenant4"), ApplicationName.from("application4"), InstanceName.from("instance4"));
+ ClusterSpec cluster4 = ClusterSpec.request(ClusterSpec.Type.container,
+ ClusterSpec.Id.from("id4"),
+ Version.fromString("6.42"),
+ false, Collections.emptySet());
+ activate(provisioner.prepare(app4, cluster4, Capacity.fromNodeCount(2, Optional.of("large"), false, true), 1, null), app4, provisioner);
}
private void activate(List<HostSpec> hosts, ApplicationId application, NodeRepositoryProvisioner provisioner) {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
index 46fd2183faa..a55211a112a 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
@@ -9,7 +9,6 @@ import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeType;
import com.yahoo.vespa.hosted.provision.Node;
-import com.yahoo.vespa.hosted.provision.flag.FlagId;
import com.yahoo.vespa.hosted.provision.node.NodeAcl;
import org.junit.Test;
@@ -57,15 +56,9 @@ public class AclProvisioningTest {
Supplier<List<NodeAcl>> nodeAcls = () -> tester.nodeRepository().getNodeAcls(node, false);
// Trusted nodes is active nodes in same application, proxy nodes and config servers
- assertAcls(Arrays.asList(activeNodes, proxyNodes, configServers, dockerHost), nodeAcls.get());
-
- // Allocate load balancer
- tester.nodeRepository().flags().setEnabled(FlagId.exclusiveLoadBalancer, application, true);
- deploy(application, 2);
-
- // Load balancer networks are added to ACLs
assertAcls(Arrays.asList(activeNodes, proxyNodes, configServers, dockerHost),
- ImmutableSet.of("10.2.3.0/24", "10.4.5.0/24"), nodeAcls.get());
+ ImmutableSet.of("10.2.3.0/24", "10.4.5.0/24"),
+ nodeAcls.get());
}
@Test
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
index 04664bd1d16..6dca643da7c 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
@@ -49,7 +49,7 @@ public class RestApiTest {
@After
public void stopContainer() {
- container.close();
+ if (container != null) container.close();
}
/** This test gives examples of all the requests that can be made to nodes/v2 */
@@ -76,17 +76,17 @@ public class RestApiTest {
new byte[0], Request.Method.POST));
assertRestart(2, new Request("http://localhost:8080/nodes/v2/command/restart?application=tenant2.application2.instance2",
new byte[0], Request.Method.POST));
- assertRestart(9, new Request("http://localhost:8080/nodes/v2/command/restart",
+ assertRestart(11, new Request("http://localhost:8080/nodes/v2/command/restart",
new byte[0], Request.Method.POST));
assertResponseContains(new Request("http://localhost:8080/nodes/v2/node/host2.yahoo.com"),
"\"restartGeneration\":3");
// POST reboot command
- assertReboot(10, new Request("http://localhost:8080/nodes/v2/command/reboot?state=failed%20active",
+ assertReboot(12, new Request("http://localhost:8080/nodes/v2/command/reboot?state=failed%20active",
new byte[0], Request.Method.POST));
assertReboot(2, new Request("http://localhost:8080/nodes/v2/command/reboot?application=tenant2.application2.instance2",
new byte[0], Request.Method.POST));
- assertReboot(17, new Request("http://localhost:8080/nodes/v2/command/reboot",
+ assertReboot(19, new Request("http://localhost:8080/nodes/v2/command/reboot",
new byte[0], Request.Method.POST));
assertResponseContains(new Request("http://localhost:8080/nodes/v2/node/host2.yahoo.com"),
"\"rebootGeneration\":4");
@@ -819,8 +819,8 @@ public class RestApiTest {
/** Tests the rendering of each node separately to make it easier to find errors */
@Test
public void test_single_node_rendering() throws Exception {
- for (int i = 1; i <= 10; i++) {
- if (i == 8 || i == 9) continue; // these nodes are added later
+ for (int i = 1; i <= 14; i++) {
+ if (i == 8 || i == 9 || i == 11 || i == 12) continue; // these nodes are added later
assertFile(new Request("http://localhost:8080/nodes/v2/node/host" + i + ".yahoo.com"), "node" + i + ".json");
}
}
@@ -828,7 +828,7 @@ public class RestApiTest {
@Test
public void test_load_balancers() throws Exception {
assertFile(new Request("http://localhost:8080/loadbalancers/v1/"), "load-balancers.json");
- assertFile(new Request("http://localhost:8080/loadbalancers/v1/?application=zoneapp.zoneapp.zoneapp"), "load-balancers.json");
+ assertFile(new Request("http://localhost:8080/loadbalancers/v1/?application=tenant4.application4.instance4"), "load-balancers.json");
assertResponse(new Request("http://localhost:8080/loadbalancers/v1/?application=tenant.nonexistent.default"), "{\"loadBalancers\":[]}");
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json
index 92b5885cde4..05fa3e8ad72 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json
@@ -97,6 +97,30 @@
"trustedBy": "cfg1.yahoo.com"
},
{
+ "hostname": "host13.yahoo.com",
+ "type": "tenant",
+ "ipAddress": "127.0.0.1",
+ "trustedBy": "cfg1.yahoo.com"
+ },
+ {
+ "hostname": "host13.yahoo.com",
+ "type": "tenant",
+ "ipAddress": "::1",
+ "trustedBy": "cfg1.yahoo.com"
+ },
+ {
+ "hostname": "host14.yahoo.com",
+ "type": "tenant",
+ "ipAddress": "127.0.0.1",
+ "trustedBy": "cfg1.yahoo.com"
+ },
+ {
+ "hostname": "host14.yahoo.com",
+ "type": "tenant",
+ "ipAddress": "::1",
+ "trustedBy": "cfg1.yahoo.com"
+ },
+ {
"hostname": "host2.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json
index 66d92ecc9fe..75c9aaa2b5c 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json
@@ -43,6 +43,30 @@
"trustedBy": "foo.yahoo.com"
},
{
+ "hostname": "host13.yahoo.com",
+ "type": "tenant",
+ "ipAddress": "127.0.0.1",
+ "trustedBy": "foo.yahoo.com"
+ },
+ {
+ "hostname": "host13.yahoo.com",
+ "type": "tenant",
+ "ipAddress": "::1",
+ "trustedBy": "foo.yahoo.com"
+ },
+ {
+ "hostname": "host14.yahoo.com",
+ "type": "tenant",
+ "ipAddress": "127.0.0.1",
+ "trustedBy": "foo.yahoo.com"
+ },
+ {
+ "hostname": "host14.yahoo.com",
+ "type": "tenant",
+ "ipAddress": "::1",
+ "trustedBy": "foo.yahoo.com"
+ },
+ {
"hostname": "host2.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/active-nodes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/active-nodes.json
index 9c462bb5520..a5d8148c1e4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/active-nodes.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/active-nodes.json
@@ -1,7 +1,9 @@
{
"nodes": [
@include(node6.json),
+ @include(node13.json),
@include(node2.json),
+ @include(node14.json),
@include(docker-container1.json),
@include(node4.json),
@include(docker-node4.json),
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json
index e3baa069907..c8738ab838c 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/load-balancers.json
@@ -1,12 +1,12 @@
{
"loadBalancers": [
{
- "id": "zoneapp:zoneapp:zoneapp:node-admin",
- "application": "zoneapp",
- "tenant": "zoneapp",
- "instance": "zoneapp",
- "cluster": "node-admin",
- "hostname": "lb-zoneapp.zoneapp.zoneapp-node-admin",
+ "id": "tenant4:application4:instance4:id4",
+ "application": "application4",
+ "tenant": "tenant4",
+ "instance": "instance4",
+ "cluster": "id4",
+ "hostname": "lb-tenant4.application4.instance4-id4",
"dnsZone": "zone-id-1",
"networks": [
"10.2.3.0/24",
@@ -17,36 +17,17 @@
],
"reals": [
{
- "hostname": "dockerhost1.yahoo.com",
+ "hostname": "host13.yahoo.com",
"ipAddress": "127.0.0.1",
"port": 4080
},
{
- "hostname": "dockerhost2.yahoo.com",
+ "hostname": "host14.yahoo.com",
"ipAddress": "127.0.0.1",
"port": 4080
- },
- {
- "hostname": "dockerhost3.yahoo.com",
- "ipAddress": "127.0.0.1",
- "port": 4080
- },
- {
- "hostname": "dockerhost4.yahoo.com",
- "ipAddress": "127.0.0.1",
- "port": 4080
- },
- {
- "hostname": "dockerhost5.yahoo.com",
- "ipAddress": "127.0.0.1",
- "port": 4080
- }
- ],
- "rotations": [
- {
- "name": "us-cluster"
}
],
+ "rotations": [],
"inactive": false
}
]
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json
new file mode 100644
index 00000000000..1584231f208
--- /dev/null
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json
@@ -0,0 +1,67 @@
+{
+ "url": "http://localhost:8080/nodes/v2/node/host13.yahoo.com",
+ "id": "host13.yahoo.com",
+ "state": "active",
+ "type": "tenant",
+ "hostname": "host13.yahoo.com",
+ "openStackId": "node13",
+ "flavor": "large",
+ "canonicalFlavor": "large",
+ "minDiskAvailableGb": 1600.0,
+ "minMainMemoryAvailableGb": 32.0,
+ "description": "Flavor-name-is-large",
+ "minCpuCores": 4.0,
+ "fastDisk": true,
+ "bandwidth": 0.0,
+ "environment": "BARE_METAL",
+ "owner": {
+ "tenant": "tenant4",
+ "application": "application4",
+ "instance": "instance4"
+ },
+ "membership": {
+ "clustertype": "container",
+ "clusterid": "id4",
+ "group": "0",
+ "index": 0,
+ "retired": false
+ },
+ "restartGeneration": 0,
+ "currentRestartGeneration": 0,
+ "wantedDockerImage": "docker-registry.domain.tld:8080/dist/vespa:6.42.0",
+ "wantedVespaVersion": "6.42.0",
+ "allowedToBeDown": false,
+ "rebootGeneration": 1,
+ "currentRebootGeneration": 0,
+ "failCount": 0,
+ "hardwareFailure": false,
+ "wantToRetire": false,
+ "wantToDeprovision": false,
+ "history": [
+ {
+ "event": "provisioned",
+ "at": 123,
+ "agent": "system"
+ },
+ {
+ "event": "readied",
+ "at": 123,
+ "agent": "system"
+ },
+ {
+ "event": "reserved",
+ "at": 123,
+ "agent": "application"
+ },
+ {
+ "event": "activated",
+ "at": 123,
+ "agent": "application"
+ }
+ ],
+ "ipAddresses": [
+ "127.0.0.1",
+ "::1"
+ ],
+ "additionalIpAddresses": []
+}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json
new file mode 100644
index 00000000000..462f6e2433f
--- /dev/null
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json
@@ -0,0 +1,67 @@
+{
+ "url": "http://localhost:8080/nodes/v2/node/host14.yahoo.com",
+ "id": "host14.yahoo.com",
+ "state": "active",
+ "type": "tenant",
+ "hostname": "host14.yahoo.com",
+ "openStackId": "node14",
+ "flavor": "large",
+ "canonicalFlavor": "large",
+ "minDiskAvailableGb": 1600.0,
+ "minMainMemoryAvailableGb": 32.0,
+ "description": "Flavor-name-is-large",
+ "minCpuCores": 4.0,
+ "fastDisk": true,
+ "bandwidth": 0.0,
+ "environment": "BARE_METAL",
+ "owner": {
+ "tenant": "tenant4",
+ "application": "application4",
+ "instance": "instance4"
+ },
+ "membership": {
+ "clustertype": "container",
+ "clusterid": "id4",
+ "group": "0",
+ "index": 1,
+ "retired": false
+ },
+ "restartGeneration": 0,
+ "currentRestartGeneration": 0,
+ "wantedDockerImage": "docker-registry.domain.tld:8080/dist/vespa:6.42.0",
+ "wantedVespaVersion": "6.42.0",
+ "allowedToBeDown": false,
+ "rebootGeneration": 1,
+ "currentRebootGeneration": 0,
+ "failCount": 0,
+ "hardwareFailure": false,
+ "wantToRetire": false,
+ "wantToDeprovision": false,
+ "history": [
+ {
+ "event": "provisioned",
+ "at": 123,
+ "agent": "system"
+ },
+ {
+ "event": "readied",
+ "at": 123,
+ "agent": "system"
+ },
+ {
+ "event": "reserved",
+ "at": 123,
+ "agent": "application"
+ },
+ {
+ "event": "activated",
+ "at": 123,
+ "agent": "application"
+ }
+ ],
+ "ipAddresses": [
+ "127.0.0.1",
+ "::1"
+ ],
+ "additionalIpAddresses": []
+}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json
index 57aee72e9f8..5f51f53fb2b 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json
@@ -10,9 +10,11 @@
@include(node6.json),
@include(docker-node5.json),
@include(docker-node2.json),
+ @include(node13.json),
@include(node2.json),
@include(docker-node1.json),
@include(docker-node3.json),
+ @include(node14.json),
@include(docker-container1.json),
@include(node4.json),
@include(node55.json),
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json
index 1c069951750..8f29a774fb4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json
@@ -31,6 +31,9 @@
"url": "http://localhost:8080/nodes/v2/node/dockerhost2.yahoo.com"
},
{
+ "url": "http://localhost:8080/nodes/v2/node/host13.yahoo.com"
+ },
+ {
"url": "http://localhost:8080/nodes/v2/node/host2.yahoo.com"
},
{
@@ -40,6 +43,9 @@
"url": "http://localhost:8080/nodes/v2/node/dockerhost3.yahoo.com"
},
{
+ "url": "http://localhost:8080/nodes/v2/node/host14.yahoo.com"
+ },
+ {
"url": "http://localhost:8080/nodes/v2/node/test-container-1"
},
{
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json
index e60ebe37246..5d90346eec7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json
@@ -25,7 +25,9 @@
"url": "http://localhost:8080/nodes/v2/state/active",
"nodes": [
@include(node6.json),
+ @include(node13.json),
@include(node2.json),
+ @include(node14.json),
@include(docker-container1.json),
@include(node4.json),
@include(docker-node4.json),