From 7450dd228ec177306a6702f583b616481e33435b Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Fri, 22 May 2020 14:40:33 +0200 Subject: Clean up HostSpec constructors --- .../model/provision/HostsXmlProvisioner.java | 5 +- .../model/provision/InMemoryProvisioner.java | 2 +- .../model/provision/SingleNodeProvisioner.java | 16 ++- .../java/com/yahoo/vespa/model/HostResource.java | 2 +- .../yahoo/config/model/provision/HostSpecTest.java | 10 +- .../java/com/yahoo/config/provision/HostSpec.java | 123 ++++++++++++--------- .../serialization/AllocatedHostsSerializer.java | 48 ++++---- .../AllocatedHostsSerializerTest.java | 9 +- .../config/server/ApplicationRepositoryTest.java | 4 +- .../config/server/deploy/ZooKeeperClientTest.java | 4 +- .../server/http/v2/SessionActiveHandlerTest.java | 5 +- 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 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 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 { * @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.emptyList()); - HostSpec h2 = new HostSpec("foo", Collections.emptyList()); - HostSpec h3 = new HostSpec("foo", Arrays.asList("my", "alias")); - HostSpec h4 = new HostSpec("bar", Collections.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 { private final List 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 membership; @@ -35,47 +35,93 @@ public class HostSpec implements Comparable { private final Optional networkPorts; - private final Optional requestedResources; + /** Create a host in a non-cloud system, where hosts are specified in config */ + public HostSpec(String hostname, List aliases, Optional 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, + Optional networkPorts, + Optional dockerImageRepo) { + this(hostname, List.of(), + realResources, + advertisedResurces, + requestedResources, + Optional.of(membership), + version, + networkPorts, + dockerImageRepo); + } + + private HostSpec(String hostname, + List aliases, + NodeResources realResources, + NodeResources advertisedResurces, + NodeResources requestedResources, + Optional membership, + Optional version, + Optional networkPorts, + Optional 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 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) { 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 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 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 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 { 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 { 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 { 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 { 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 { 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, - Optional networkPorts, - Optional 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 aliases, - NodeResources realResources, NodeResources advertisedResurces, - Optional membership, Optional version, - Optional networkPorts, Optional requestedResources, - Optional 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 { public Optional networkPorts() { return networkPorts; } /** Returns the requested resources leading to this host being provisioned, or empty if unspecified */ - public Optional requestedResources() { return requestedResources; } + public Optional requestedResources() { return requestedResources.asOptional(); } public Optional dockerImageRepo() { return dockerImageRepo; } public HostSpec withPorts(Optional 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) { - 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 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 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) { - 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) { + 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 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 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 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()); -- cgit v1.2.3