aboutsummaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-03-02 12:29:46 +0100
committerMartin Polden <mpolden@mpolden.no>2020-03-02 13:09:05 +0100
commit8dc031111d0ec7ff77273a3a21e0f23c7d4aceca (patch)
tree38855a8dfc04fd1203efaf5f979973f1c3c733ea /config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java
parent9ac4f3d18e1dbb11678b8d61fa50c9ad1cdf61d2 (diff)
Add combined ID to ClusterSpec
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java
index f041823bf04..0fb78b59aaf 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java
@@ -3,9 +3,11 @@ package com.yahoo.config.provision;
import com.yahoo.component.Version;
+import java.util.Optional;
+
/**
* A node's membership in a cluster. This is a value object.
- * The format is "clusterType/clusterId/groupId/index[/exclusive][/retired]"
+ * The format is "clusterType/clusterId/groupId/index[/exclusive][/retired][/combinedId]"
*
* @author bratseth
*/
@@ -22,21 +24,24 @@ public class ClusterMembership {
String[] components = stringValue.split("/");
if (components.length < 4)
throw new RuntimeException("Could not parse '" + stringValue + "' to a cluster membership. " +
- "Expected 'clusterType/clusterId/groupId/index[/retired][/exclusive]'");
+ "Expected 'clusterType/clusterId/groupId/index[/retired][/exclusive][/combinedId]'");
boolean exclusive = false;
+ var combinedId = Optional.<String>empty();
if (components.length > 4) {
for (int i = 4; i < components.length; i++) {
String component = components[i];
switch (component) {
case "exclusive": exclusive = true; break;
case "retired": retired = true; break;
+ default: combinedId = Optional.of(component); break;
}
}
}
this.cluster = ClusterSpec.from(ClusterSpec.Type.valueOf(components[0]), ClusterSpec.Id.from(components[1]),
- ClusterSpec.Group.from(Integer.valueOf(components[2])), vespaVersion, exclusive);
+ ClusterSpec.Group.from(Integer.parseInt(components[2])), vespaVersion,
+ exclusive, combinedId.map(ClusterSpec.Id::from));
this.index = Integer.parseInt(components[3]);
this.stringValue = toStringValue();
}
@@ -54,7 +59,8 @@ public class ClusterMembership {
(cluster.group().isPresent() ? "/" + cluster.group().get().index() : "") +
"/" + index +
( cluster.isExclusive() ? "/exclusive" : "") +
- ( retired ? "/retired" : "");
+ ( retired ? "/retired" : "") +
+ ( cluster.combinedId().isPresent() ? "/" + cluster.combinedId().get().value() : "");
}