aboutsummaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-03-01 15:14:58 +0100
committerMartin Polden <mpolden@mpolden.no>2021-03-02 20:12:27 +0100
commit71fa6921afabcb113fe53446d2e56050e735e9c2 (patch)
treea7033f5f9f3db1dafcce6acc2d0468bc83025e3e /config-provisioning
parente49336237655b4adb7e4da5f29d6267a6d660ed2 (diff)
Provision config servers dynamically
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java
index e356ee06ac6..63ad6ae1237 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java
@@ -75,4 +75,16 @@ public enum NodeType {
public boolean canRun(NodeType type) {
return childNodeTypes.contains(type);
}
+
+ /** Returns the host type of this */
+ public NodeType hostType() {
+ if (isHost()) return this;
+ for (NodeType nodeType : values()) {
+ if (nodeType.childNodeTypes.size() == 1 && nodeType.canRun(this)) {
+ return nodeType;
+ }
+ }
+ throw new IllegalArgumentException("No host of " + this + " exists");
+ }
+
}