diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-03-16 12:05:46 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-03-16 12:05:46 +0100 |
commit | 2b9e3a131b79342f2887d1581333569c09c518ff (patch) | |
tree | 53a73128e48db97c68d0430bcde518f86bf5beba /config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java | |
parent | 5ecaa83f6ee186d13a1c0ae854ea17b067a289fd (diff) |
Use docker image repo in ClusterSpec
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java index afdae0023bc..af776a04a55 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java @@ -22,8 +22,10 @@ public final class ClusterSpec { private final Version vespaVersion; private boolean exclusive; private final Optional<Id> combinedId; + private final Optional<String> dockerImageRepo; - private ClusterSpec(Type type, Id id, Optional<Group> groupId, Version vespaVersion, boolean exclusive, Optional<Id> combinedId) { + private ClusterSpec(Type type, Id id, Optional<Group> groupId, Version vespaVersion, boolean exclusive, + Optional<Id> combinedId, Optional<String> dockerImageRepo) { this.type = type; this.id = id; this.groupId = groupId; @@ -34,6 +36,7 @@ public final class ClusterSpec { throw new IllegalArgumentException("combinedId must be empty for cluster of type " + type); } this.combinedId = combinedId; + this.dockerImageRepo = dockerImageRepo; } /** Returns the cluster type */ @@ -42,6 +45,9 @@ public final class ClusterSpec { /** Returns the cluster id */ public Id id() { return id; } + /** Returns the docker image repository part of a docker image we want this cluster to run */ + public Optional<String> dockerImageRepo() { return dockerImageRepo; } + /** Returns the version of Vespa that we want this cluster to run */ public Version vespaVersion() { return vespaVersion; } @@ -61,24 +67,42 @@ public final class ClusterSpec { public boolean isExclusive() { return exclusive; } public ClusterSpec with(Optional<Group> newGroup) { - return new ClusterSpec(type, id, newGroup, vespaVersion, exclusive, combinedId); + return new ClusterSpec(type, id, newGroup, vespaVersion, exclusive, combinedId, dockerImageRepo); } public ClusterSpec exclusive(boolean exclusive) { - return new ClusterSpec(type, id, groupId, vespaVersion, exclusive, combinedId); + return new ClusterSpec(type, id, groupId, vespaVersion, exclusive, combinedId, dockerImageRepo); + } + + // TODO: Remove when when 7.195 is oldest model version in use + // TODO: Add @Deprecated when internal repo has been updated to not use this method + // @Deprecated + public static ClusterSpec request(Type type, Id id, Version vespaVersion, boolean exclusive, + Optional<Id> combinedId) { + return request(type, id, vespaVersion, exclusive, combinedId, Optional.empty()); + } + + public static ClusterSpec request(Type type, Id id, Version vespaVersion, boolean exclusive, + Optional<Id> combinedId, Optional<String> dockerImageRepo) { + return new ClusterSpec(type, id, Optional.empty(), vespaVersion, exclusive, combinedId, dockerImageRepo); } - public static ClusterSpec request(Type type, Id id, Version vespaVersion, boolean exclusive, Optional<Id> combinedId) { - return new ClusterSpec(type, id, Optional.empty(), vespaVersion, exclusive, combinedId); + // TODO: Remove when when 7.195 is oldest model version in use + // TODO: Add @Deprecated when internal repo has been updated to not use this method + // @Deprecated + public static ClusterSpec from(Type type, Id id, Group groupId, Version vespaVersion, boolean exclusive, + Optional<Id> combinedId) { + return from(type, id, groupId, vespaVersion, exclusive, combinedId, Optional.empty()); } - public static ClusterSpec from(Type type, Id id, Group groupId, Version vespaVersion, boolean exclusive, Optional<Id> combinedId) { - return new ClusterSpec(type, id, Optional.of(groupId), vespaVersion, exclusive, combinedId); + public static ClusterSpec from(Type type, Id id, Group groupId, Version vespaVersion, boolean exclusive, + Optional<Id> combinedId, Optional<String> dockerImageRepo) { + return new ClusterSpec(type, id, Optional.of(groupId), vespaVersion, exclusive, combinedId, dockerImageRepo); } @Override public String toString() { - return type + " " + id + " " + groupId.map(group -> group + " ").orElse("") + vespaVersion; + return type + " " + id + " " + groupId.map(group -> group + " ").orElse("") + vespaVersion + " " + dockerImageRepo.orElse(""); } @Override @@ -93,6 +117,7 @@ public final class ClusterSpec { if ( ! other.id.equals(this.id)) return false; if ( ! other.groupId.equals(this.groupId)) return false; if ( ! other.vespaVersion.equals(this.vespaVersion)) return false; + if ( ! other.dockerImageRepo.orElse("").equals(this.dockerImageRepo.orElse(""))) return false; return true; } |