diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-03-02 12:29:46 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-03-02 13:09:05 +0100 |
commit | 8dc031111d0ec7ff77273a3a21e0f23c7d4aceca (patch) | |
tree | 38855a8dfc04fd1203efaf5f979973f1c3c733ea /config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java | |
parent | 9ac4f3d18e1dbb11678b8d61fa50c9ad1cdf61d2 (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.java | 14 |
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() : ""); } |