summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-04-16 14:15:36 +0200
committerHarald Musum <musum@verizonmedia.com>2020-04-16 14:15:36 +0200
commit61ebc08aebd31a4258bf050ebfabf260913491dc (patch)
treedf7cffd884f2ef2b1f190f3c6585e88b23bd370d /config-provisioning
parent7480a3556230774dc7bee04b08af97afe347a8c0 (diff)
Use DockerImage instead of String in HostSpec
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java10
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java9
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java4
3 files changed, 15 insertions, 8 deletions
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 c49448a2e43..2a5d27a0fe7 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
@@ -29,7 +29,7 @@ public class HostSpec implements Comparable<HostSpec> {
private final Optional<Version> version;
- private final Optional<String> dockerImageRepo;
+ private final Optional<DockerImage> dockerImageRepo;
private final Optional<NetworkPorts> networkPorts;
@@ -79,14 +79,14 @@ public class HostSpec implements Comparable<HostSpec> {
public HostSpec(String hostname, List<String> aliases, Optional<Flavor> flavor,
Optional<ClusterMembership> membership, Optional<Version> version,
Optional<NetworkPorts> networkPorts, Optional<NodeResources> requestedResources,
- Optional<String> dockerImageRepo) {
+ Optional<DockerImage> dockerImageRepo) {
if (hostname == null || hostname.isEmpty()) throw new IllegalArgumentException("Hostname must be specified");
this.hostname = hostname;
this.aliases = List.copyOf(aliases);
this.flavor = flavor;
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.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");
}
@@ -111,7 +111,7 @@ public class HostSpec implements Comparable<HostSpec> {
/** Returns the requested resources leading to this host being provisioned, or empty if not known */
public Optional<NodeResources> requestedResources() { return requestedResources; }
- public Optional<String> dockerImageRepo() { return dockerImageRepo; }
+ public Optional<DockerImage> dockerImageRepo() { return dockerImageRepo; }
public HostSpec withPorts(Optional<NetworkPorts> ports) {
return new HostSpec(hostname, aliases, flavor, membership, version, ports, requestedResources, dockerImageRepo);
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 cee15cd6571..56c5544f6d7 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
@@ -3,6 +3,7 @@ package com.yahoo.config.provision.serialization;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ClusterMembership;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeFlavors;
@@ -139,7 +140,7 @@ public class AllocatedHostsSerializer {
optionalString(object.field(hostSpecCurrentVespaVersionKey)).map(com.yahoo.component.Version::new),
NetworkPortsSerializer.fromSlime(object.field(hostSpecNetworkPortsKey)),
nodeResourcesFromSlime(object.field(requestedResourcesKey)),
- optionalString(object.field(hostSpecDockerImageRepoKey)));
+ optionalDockerImage(object.field(hostSpecDockerImageRepoKey)));
}
private static List<String> aliasesFromSlime(Inspector object) {
@@ -215,4 +216,10 @@ public class AllocatedHostsSerializer {
if ( ! inspector.valid()) return Optional.empty();
return Optional.of(inspector.asString());
}
+
+ private static Optional<DockerImage> optionalDockerImage(Inspector inspector) {
+ if ( ! inspector.valid()) return Optional.empty();
+ return Optional.of(DockerImage.fromString(inspector.asString()));
+ }
+
}
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 f41b36b34ca..f2163608050 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
@@ -4,13 +4,13 @@ package com.yahoo.config.provision.serialization;
import com.yahoo.component.Version;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ClusterMembership;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NetworkPorts;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provisioning.FlavorsConfig;
-import com.yahoo.text.Utf8;
import org.junit.Test;
import java.io.IOException;
@@ -43,7 +43,7 @@ public class AllocatedHostsSerializerTest {
Optional.of(ClusterMembership.from("container/test/0/0", Version.fromString("6.73.1"),
Optional.of("docker.foo.com:4443/vespa/bar"))),
Optional.empty(), Optional.empty(), Optional.empty(),
- Optional.of("docker.foo.com:4443/vespa/bar")));
+ Optional.of(DockerImage.fromString("docker.foo.com:4443/vespa/bar"))));
hosts.add(new HostSpec("flavor-from-resources-1",
Collections.emptyList(), new Flavor(new NodeResources(0.5, 3.1, 4, 1))));
hosts.add(new HostSpec("flavor-from-resources-2",