aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-05-22 14:40:33 +0200
committerJon Bratseth <bratseth@gmail.com>2020-05-22 14:40:33 +0200
commit7450dd228ec177306a6702f583b616481e33435b (patch)
tree7ce030a29a989edf18bf1c70e952fc6ae77fe39f
parent2a7af074f571fb557f3bdc756be131a15288bff6 (diff)
Clean up HostSpec constructors
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java5
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java2
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java16
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/HostResource.java2
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/HostSpecTest.java10
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java123
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java48
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java9
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java5
11 files changed, 127 insertions, 101 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java
index e55686accca..ab2e0f632e4 100644
--- a/config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java
+++ b/config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java
@@ -7,6 +7,7 @@ import com.yahoo.vespa.model.container.Container;
import java.io.Reader;
import java.util.List;
+import java.util.Optional;
/**
* A host provisioner based on a hosts.xml file.
@@ -38,7 +39,7 @@ public class HostsXmlProvisioner implements HostProvisioner {
}
for (Host host : hosts.asCollection()) {
if (host.aliases().contains(alias)) {
- return new HostSpec(host.hostname(), host.aliases());
+ return new HostSpec(host.hostname(), host.aliases(), Optional.empty());
}
}
throw new IllegalArgumentException("Unable to find host for alias '" + alias + "'");
@@ -50,7 +51,7 @@ public class HostsXmlProvisioner implements HostProvisioner {
}
private HostSpec host2HostSpec(Host host) {
- return new HostSpec(host.hostname(), host.aliases());
+ return new HostSpec(host.hostname(), host.aliases(), Optional.empty());
}
private Host getFirstHost() {
diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
index 6e21d0688ad..b38001d1267 100644
--- a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
+++ b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
@@ -118,7 +118,7 @@ public class InMemoryProvisioner implements HostProvisioner {
List<Host> defaultHosts = freeNodes.get(defaultResources);
if (defaultHosts.isEmpty()) throw new IllegalArgumentException("No more hosts with default resources available");
Host newHost = freeNodes.removeValue(defaultResources, 0);
- return new HostSpec(newHost.hostname(), List.of(alias));
+ return new HostSpec(newHost.hostname(), List.of(alias), Optional.empty());
}
@Override
diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java
index 212ad9e5a96..507010cf767 100644
--- a/config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java
+++ b/config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model.provision;
+import com.yahoo.component.Version;
import com.yahoo.config.model.api.HostProvisioner;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterMembership;
@@ -31,15 +32,21 @@ public class SingleNodeProvisioner implements HostProvisioner {
public SingleNodeProvisioner() {
host = new Host(HostName.getLocalhost());
- this.hostSpec = new HostSpec(host.hostname(), host.aliases());
+ this.hostSpec = new HostSpec(host.hostname(), host.aliases(), Optional.empty());
}
public SingleNodeProvisioner(Flavor flavor) {
host = new Host(HostName.getLocalhost());
+ /*
this.hostSpec = new HostSpec(host.hostname(),
List.of(),
flavor.resources(), flavor.resources(),
Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
+ */
+ this.hostSpec = new HostSpec(host.hostname(),
+ flavor.resources(), flavor.resources(), flavor.resources(),
+ ClusterMembership.from(ClusterSpec.specification(ClusterSpec.Type.content, ClusterSpec.Id.from("test")).group(ClusterSpec.Group.from(0)).vespaVersion("1").build(), 0),
+ Optional.empty(), Optional.empty(), Optional.empty());
}
@Override
@@ -52,10 +59,9 @@ public class SingleNodeProvisioner implements HostProvisioner {
// TODO: This should fail if capacity requested is more than 1
List<HostSpec> hosts = new ArrayList<>();
hosts.add(new HostSpec(host.hostname(),
- List.of(),
- NodeResources.unspecified(), NodeResources.unspecified(),
- Optional.of(ClusterMembership.from(cluster, counter++)),
- Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()));
+ NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(),
+ ClusterMembership.from(cluster, counter++),
+ Optional.empty(), Optional.empty(), Optional.empty()));
return hosts;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java
index 2390ad68aa2..0cc3f390db4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java
@@ -37,7 +37,7 @@ public class HostResource implements Comparable<HostResource> {
* @param host {@link com.yahoo.vespa.model.Host} object to bind to.
*/
public HostResource(Host host) {
- this(host, new HostSpec(host.getHostname(), List.of()));
+ this(host, new HostSpec(host.getHostname(), List.of(), Optional.empty()));
}
public HostResource(Host host, HostSpec spec) {
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/HostSpecTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/HostSpecTest.java
index 51b039a7532..91f5fdc5f11 100644
--- a/config-model/src/test/java/com/yahoo/config/model/provision/HostSpecTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/provision/HostSpecTest.java
@@ -6,6 +6,8 @@ import org.junit.Test;
import java.util.Arrays;
import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -17,10 +19,10 @@ public class HostSpecTest {
@Test
public void testEquals() {
- HostSpec h1 = new HostSpec("foo", Collections.<String>emptyList());
- HostSpec h2 = new HostSpec("foo", Collections.<String>emptyList());
- HostSpec h3 = new HostSpec("foo", Arrays.asList("my", "alias"));
- HostSpec h4 = new HostSpec("bar", Collections.<String>emptyList());
+ HostSpec h1 = new HostSpec("foo", List.of(), Optional.empty());
+ HostSpec h2 = new HostSpec("foo", List.of(), Optional.empty());
+ HostSpec h3 = new HostSpec("foo", List.of("my", "alias"), Optional.empty());
+ HostSpec h4 = new HostSpec("bar", List.of(), Optional.empty());
assertTrue(h1.equals(h1));
assertTrue(h1.equals(h2));
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java
index c8c8a349fee..52a2008b658 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java
@@ -23,8 +23,8 @@ public class HostSpec implements Comparable<HostSpec> {
private final List<String> aliases;
private final NodeResources realResources;
-
private final NodeResources advertisedResources;
+ private final NodeResources requestedResources;
/** The current membership role of this host in the cluster it belongs to */
private final Optional<ClusterMembership> membership;
@@ -35,47 +35,93 @@ public class HostSpec implements Comparable<HostSpec> {
private final Optional<NetworkPorts> networkPorts;
- private final Optional<NodeResources> requestedResources;
+ /** Create a host in a non-cloud system, where hosts are specified in config */
+ public HostSpec(String hostname, List<String> aliases, Optional<NetworkPorts> networkPorts) {
+ this(hostname, aliases,
+ NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(),
+ Optional.empty(), Optional.empty(), networkPorts, Optional.empty());
+ }
+
+ /** Create a host in a hosted system */
+ public HostSpec(String hostname,
+ NodeResources realResources,
+ NodeResources advertisedResurces,
+ NodeResources requestedResources,
+ ClusterMembership membership,
+ Optional<Version> version,
+ Optional<NetworkPorts> networkPorts,
+ Optional<DockerImage> dockerImageRepo) {
+ this(hostname, List.of(),
+ realResources,
+ advertisedResurces,
+ requestedResources,
+ Optional.of(membership),
+ version,
+ networkPorts,
+ dockerImageRepo);
+ }
+
+ private HostSpec(String hostname,
+ List<String> aliases,
+ NodeResources realResources,
+ NodeResources advertisedResurces,
+ NodeResources requestedResources,
+ Optional<ClusterMembership> membership,
+ Optional<Version> version,
+ Optional<NetworkPorts> networkPorts,
+ Optional<DockerImage> dockerImageRepo) {
+ if (hostname == null || hostname.isEmpty()) throw new IllegalArgumentException("Hostname must be specified");
+ this.hostname = hostname;
+ this.aliases = List.copyOf(aliases);
+ this.realResources = Objects.requireNonNull(realResources);
+ this.advertisedResources = Objects.requireNonNull(advertisedResurces);
+ this.requestedResources = Objects.requireNonNull(requestedResources, "RequestedResources cannot be null");
+ this.membership = Objects.requireNonNull(membership);
+ this.version = Objects.requireNonNull(version, "Version cannot be null but can be empty");
+ this.networkPorts = Objects.requireNonNull(networkPorts, "Network ports cannot be null but can be empty");
+ this.dockerImageRepo = Objects.requireNonNull(dockerImageRepo, "Docker image repo cannot be null but can be empty");
+ }
// TODO: Remove after June 2020
@Deprecated
public HostSpec(String hostname, Optional<ClusterMembership> membership) {
this(hostname, new ArrayList<>(),
- NodeResources.unspecified(), NodeResources.unspecified(),
+ NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(),
membership,
- Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
+ Optional.empty(), Optional.empty(), Optional.empty());
}
// TODO: Remove after June 2020
@Deprecated
public HostSpec(String hostname, ClusterMembership membership, Flavor flavor, Optional<Version> version) {
this(hostname, new ArrayList<>(),
- flavor.resources(), flavor.resources(),
- Optional.of(membership), version, Optional.empty(), Optional.empty(), Optional.empty());
+ flavor.resources(), flavor.resources(), NodeResources.unspecified(),
+ Optional.of(membership), version, Optional.empty(), Optional.empty());
}
- /** Create a host in a non-cloud system, where hosts are specified in config */
+ // TODO: Remove after June 2020
+ @Deprecated
public HostSpec(String hostname, List<String> aliases) {
this(hostname, aliases,
- NodeResources.unspecified(), NodeResources.unspecified(),
- Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
+ NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(),
+ Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
}
// TODO: Remove after June 2020
@Deprecated
public HostSpec(String hostname, List<String> aliases, Flavor flavor) {
this(hostname, aliases,
- flavor.resources(), flavor.resources(),
- Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
+ flavor.resources(), flavor.resources(), NodeResources.unspecified(),
+ Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
}
// TODO: Remove after June 2020
@Deprecated
public HostSpec(String hostname, List<String> aliases, ClusterMembership membership) {
this(hostname, aliases,
- NodeResources.unspecified(), NodeResources.unspecified(),
+ NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(),
Optional.of(membership),
- Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
+ Optional.empty(), Optional.empty(), Optional.empty());
}
// TODO: Remove after June 2020
@@ -84,7 +130,8 @@ public class HostSpec implements Comparable<HostSpec> {
this(hostname, aliases,
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
- membership, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
+ NodeResources.unspecified(),
+ membership, Optional.empty(), Optional.empty(), Optional.empty());
}
// TODO: Remove after June 2020
@@ -94,8 +141,9 @@ public class HostSpec implements Comparable<HostSpec> {
this(hostname, aliases,
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
+ NodeResources.unspecified(),
membership, version,
- Optional.empty(), Optional.empty(), Optional.empty());
+ Optional.empty(), Optional.empty());
}
// TODO: Remove after June 2020
@@ -106,8 +154,8 @@ public class HostSpec implements Comparable<HostSpec> {
this(hostname, aliases,
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
+ NodeResources.unspecified(),
membership, version, networkPorts,
- Optional.empty(),
Optional.empty());
}
@@ -120,7 +168,8 @@ public class HostSpec implements Comparable<HostSpec> {
this(hostname, aliases,
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
- membership, version, networkPorts, requestedResources, Optional.empty());
+ requestedResources.orElse(NodeResources.unspecified()),
+ membership, version, networkPorts, Optional.empty());
}
// TODO: Remove after June 2020
@@ -132,40 +181,8 @@ public class HostSpec implements Comparable<HostSpec> {
this(hostname, aliases,
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
- membership, version, networkPorts, requestedResources, dockerImageRepo);
- }
-
- /** Create a host in a hosted system */
- public HostSpec(String hostname,
- NodeResources realResources,
- NodeResources advertisedResurces,
- NodeResources requestedResources,
- ClusterMembership membership,
- Optional<Version> version,
- Optional<NetworkPorts> networkPorts,
- Optional<DockerImage> dockerImageRepo) {
- this(hostname, List.of(),
- realResources, advertisedResurces,
- Optional.of(membership),
- version, networkPorts, requestedResources.asOptional(), dockerImageRepo);
- }
-
- /** Create a fully specified host for any system */
- public HostSpec(String hostname, List<String> aliases,
- NodeResources realResources, NodeResources advertisedResurces,
- Optional<ClusterMembership> membership, Optional<Version> version,
- Optional<NetworkPorts> networkPorts, Optional<NodeResources> requestedResources,
- Optional<DockerImage> dockerImageRepo) {
- if (hostname == null || hostname.isEmpty()) throw new IllegalArgumentException("Hostname must be specified");
- this.hostname = hostname;
- this.aliases = List.copyOf(aliases);
- this.realResources = realResources;
- this.advertisedResources = advertisedResurces;
- this.membership = membership;
- this.version = Objects.requireNonNull(version, "Version cannot be null but can be empty");
- this.networkPorts = Objects.requireNonNull(networkPorts, "Network ports cannot be null but can be empty");
- this.requestedResources = Objects.requireNonNull(requestedResources, "RequestedResources cannot be null");
- this.dockerImageRepo = Objects.requireNonNull(dockerImageRepo, "Docker image repo cannot be null but can be empty");
+ requestedResources.orElse(NodeResources.unspecified()),
+ membership, version, networkPorts, dockerImageRepo);
}
/** Returns the name identifying this host */
@@ -196,12 +213,12 @@ public class HostSpec implements Comparable<HostSpec> {
public Optional<NetworkPorts> networkPorts() { return networkPorts; }
/** Returns the requested resources leading to this host being provisioned, or empty if unspecified */
- public Optional<NodeResources> requestedResources() { return requestedResources; }
+ public Optional<NodeResources> requestedResources() { return requestedResources.asOptional(); }
public Optional<DockerImage> dockerImageRepo() { return dockerImageRepo; }
public HostSpec withPorts(Optional<NetworkPorts> ports) {
- return new HostSpec(hostname, aliases, realResources, advertisedResources, membership, version, ports, requestedResources, dockerImageRepo);
+ return new HostSpec(hostname, aliases, realResources, advertisedResources, requestedResources, membership, version, ports, dockerImageRepo);
}
@Override
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java b/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java
index 4ce9aa2d599..447fc596740 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java
@@ -138,15 +138,21 @@ public class AllocatedHostsSerializer {
}
private static HostSpec hostFromSlime(Inspector object, Optional<NodeFlavors> nodeFlavors) {
- return new HostSpec(object.field(hostSpecHostNameKey).asString(),
- aliasesFromSlime(object),
- nodeResourcesFromSlime(object.field(realResourcesKey), object, nodeFlavors),
- nodeResourcesFromSlime(object.field(advertisedResourcesKey), object, nodeFlavors),
- object.field(hostSpecMembershipKey).valid() ? Optional.of(membershipFromSlime(object)) : Optional.empty(),
- optionalString(object.field(hostSpecCurrentVespaVersionKey)).map(com.yahoo.component.Version::new),
- NetworkPortsSerializer.fromSlime(object.field(hostSpecNetworkPortsKey)),
- nodeResourcesFromSlime(object.field(requestedResourcesKey)),
- optionalDockerImage(object.field(hostSpecDockerImageRepoKey)));
+ if (object.field(hostSpecMembershipKey).valid()) { // Hosted
+ return new HostSpec(object.field(hostSpecHostNameKey).asString(),
+ nodeResourcesFromSlime(object.field(realResourcesKey), object, nodeFlavors),
+ nodeResourcesFromSlime(object.field(advertisedResourcesKey), object, nodeFlavors),
+ nodeResourcesFromSlime(object.field(requestedResourcesKey)),
+ membershipFromSlime(object),
+ optionalString(object.field(hostSpecCurrentVespaVersionKey)).map(com.yahoo.component.Version::new),
+ NetworkPortsSerializer.fromSlime(object.field(hostSpecNetworkPortsKey)),
+ optionalDockerImage(object.field(hostSpecDockerImageRepoKey)));
+ }
+ else {
+ return new HostSpec(object.field(hostSpecHostNameKey).asString(),
+ aliasesFromSlime(object),
+ NetworkPortsSerializer.fromSlime(object.field(hostSpecNetworkPortsKey)));
+ }
}
private static List<String> aliasesFromSlime(Inspector object) {
@@ -160,23 +166,10 @@ public class AllocatedHostsSerializer {
if (object.field(flavorKey).valid() && nodeFlavors.isPresent() && nodeFlavors.get().exists(object.field(flavorKey).asString()))
return nodeFlavors.get().getFlavor(object.field(flavorKey).asString());
else
- return nodeResourcesFromSlime(object.field(resourcesKey)).map(resources -> new Flavor(resources));
- }
-
- private static Optional<NodeResources> nodeResourcesFromSlime(Inspector resources) {
- if ( ! resources.valid()) return Optional.empty();
- return Optional.of(new NodeResources(resources.field(vcpuKey).asDouble(),
- resources.field(memoryKey).asDouble(),
- resources.field(diskKey).asDouble(),
- resources.field(bandwidthKey).asDouble(),
- diskSpeedFromSlime(resources.field(diskSpeedKey)),
- storageTypeFromSlime(resources.field(storageTypeKey))));
+ return Optional.empty();
}
- private static NodeResources nodeResourcesFromSlime(Inspector resources, Inspector parent,
- Optional<NodeFlavors> nodeFlavors) {
- if ( ! resources.valid()) // TODO: Remove the fallback using nodeFlavors after June 2020
- return flavorFromSlime(parent, nodeFlavors).map(f -> f.resources()).orElse(NodeResources.unspecified);
+ private static NodeResources nodeResourcesFromSlime(Inspector resources) {
return new NodeResources(resources.field(vcpuKey).asDouble(),
resources.field(memoryKey).asDouble(),
resources.field(diskKey).asDouble(),
@@ -185,6 +178,13 @@ public class AllocatedHostsSerializer {
storageTypeFromSlime(resources.field(storageTypeKey)));
}
+ private static NodeResources nodeResourcesFromSlime(Inspector resources, Inspector parent,
+ Optional<NodeFlavors> nodeFlavors) {
+ if ( ! resources.valid()) // TODO: Remove the fallback using nodeFlavors after June 2020
+ return flavorFromSlime(parent, nodeFlavors).map(f -> f.resources()).orElse(NodeResources.unspecified);
+ return nodeResourcesFromSlime(resources);
+ }
+
private static NodeResources.DiskSpeed diskSpeedFromSlime(Inspector diskSpeed) {
switch (diskSpeed.asString()) {
case "fast" : return NodeResources.DiskSpeed.fast;
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java
index a7e62f762e7..8e9c2e4407e 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java
@@ -32,17 +32,16 @@ public class AllocatedHostsSerializerTest {
public void testAllocatedHostsSerialization() throws IOException {
NodeFlavors configuredFlavors = configuredFlavorsFrom("C/12/45/100", 12, 45, 100, 50, Flavor.Type.BARE_METAL);
Set<HostSpec> hosts = new LinkedHashSet<>();
- hosts.add(new HostSpec("empty",
- List.of()));
- hosts.add(new HostSpec("with-aliases",
- List.of("alias1", "alias2")));
+ hosts.add(new HostSpec("empty", List.of(), Optional.empty()));
+ hosts.add(new HostSpec("with-aliases", List.of("alias1", "alias2"), Optional.empty()));
hosts.add(new HostSpec("allocated",
NodeResources.unspecified(),
NodeResources.unspecified(),
NodeResources.unspecified(),
ClusterMembership.from("container/test/0/0", Version.fromString("6.73.1"),
Optional.of(DockerImage.fromString("docker.foo.com:4443/vespa/bar"))),
- Optional.empty(), Optional.empty(),
+ Optional.empty(),
+ Optional.empty(),
Optional.of(DockerImage.fromString("docker.foo.com:4443/vespa/bar"))));
hosts.add(new HostSpec("flavor-from-resources-2",
new NodeResources(0.5, 3.1, 4, 1, NodeResources.DiskSpeed.slow),
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java
index 80b199cb2dd..44663188223 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java
@@ -421,7 +421,9 @@ public class ApplicationRepositoryTest {
assertNotNull(info);
assertThat(info.getHosts().size(), is(1));
System.out.println(info.getHosts());
- assertTrue(info.getHosts().contains(new HostSpec("mytesthost", Collections.emptyList())));
+ assertTrue(info.getHosts().contains(new HostSpec("mytesthost",
+ Collections.emptyList(),
+ Optional.empty())));
Optional<NetworkPorts> portsCopy = info.getHosts().iterator().next().networkPorts();
assertTrue(portsCopy.isPresent());
assertThat(portsCopy.get().allocations(), is(list));
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java
index 14fa0cb2dbe..8394611737e 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java
@@ -193,8 +193,8 @@ public class ZooKeeperClientTest {
Path app = Path.fromString("/1");
ZooKeeperClient zooKeeperClient = new ZooKeeperClient(zk, logger, true, app);
zooKeeperClient.setupZooKeeper();
- HostSpec host1 = new HostSpec("host1.yahoo.com", Collections.emptyList());
- HostSpec host2 = new HostSpec("host2.yahoo.com", Collections.emptyList());
+ HostSpec host1 = new HostSpec("host1.yahoo.com", Collections.emptyList(), Optional.empty());
+ HostSpec host2 = new HostSpec("host2.yahoo.com", Collections.emptyList(), Optional.empty());
ImmutableSet<HostSpec> hosts = ImmutableSet.of(host1, host2);
zooKeeperClient.write(AllocatedHosts.withHosts(hosts));
Path hostsPath = app.append(ZKApplicationPackage.allocatedHostsNode);
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
index 6ba3c33d37b..7a76b70dc27 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
@@ -9,9 +9,7 @@ import com.yahoo.config.model.application.provider.DeployData;
import com.yahoo.config.model.application.provider.FilesApplicationPackage;
import com.yahoo.config.model.application.provider.MockFileRegistry;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.HostSpec;
-import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.Zone;
@@ -58,6 +56,7 @@ import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.Optional;
+import java.util.Set;
import static com.yahoo.jdisc.Response.Status.BAD_REQUEST;
import static com.yahoo.jdisc.Response.Status.CONFLICT;
@@ -309,7 +308,7 @@ public class SessionActiveHandlerTest extends SessionHandlerTest {
ActivateRequest invoke() throws Exception {
SessionZooKeeperClient zkClient =
new MockSessionZKClient(curator, tenantName, sessionId,
- Optional.of(AllocatedHosts.withHosts(Collections.singleton(new HostSpec("bar", Collections.emptyList())))));
+ Optional.of(AllocatedHosts.withHosts(Set.of(new HostSpec("bar", Collections.emptyList(), Optional.empty())))));
session = createRemoteSession(sessionId, initialStatus, zkClient);
addLocalSession(sessionId, deployData, zkClient);
tenantRepository.getTenant(tenantName).getApplicationRepo().createApplication(deployData.getApplicationId());