aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/config/model
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahoo-inc.com>2017-04-26 11:42:44 +0200
committerGeir Storli <geirst@yahoo-inc.com>2017-04-26 11:42:44 +0200
commit60f6a774dfe8bb78d254f38b8173649ff2f4e1f8 (patch)
tree70aa3475637e88eeaf2a75afbac72462d347a4c6 /config-model/src/main/java/com/yahoo/config/model
parent1902441cbbb1391c9e4c75c5ddf252ed45b9d3a9 (diff)
Tune proton config based on flavor if this is present for the search node.
Diffstat (limited to 'config-model/src/main/java/com/yahoo/config/model')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/provision/Host.java16
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java4
2 files changed, 15 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/Host.java b/config-model/src/main/java/com/yahoo/config/model/provision/Host.java
index 360853d0f79..a030a8dde7a 100644
--- a/config-model/src/main/java/com/yahoo/config/model/provision/Host.java
+++ b/config-model/src/main/java/com/yahoo/config/model/provision/Host.java
@@ -2,9 +2,11 @@
package com.yahoo.config.model.provision;
import com.google.common.collect.ImmutableList;
+import com.yahoo.config.provision.Flavor;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
/**
* A hostname with zero or more aliases. This is immutable.
@@ -15,15 +17,20 @@ public class Host {
private final String hostname;
private final ImmutableList<String> aliases;
+ private final Optional<Flavor> flavor;
public Host(String hostname) {
- this.hostname = hostname;
- this.aliases = ImmutableList.of();
+ this(hostname, ImmutableList.of(), Optional.empty());
}
public Host(String hostname, List<String> hostAliases) {
+ this(hostname, hostAliases, Optional.empty());
+ }
+
+ public Host(String hostname, List<String> hostAliases, Optional<Flavor> flavor) {
this.hostname = hostname;
this.aliases = ImmutableList.copyOf(hostAliases);
+ this.flavor = flavor;
}
public String hostname() { return hostname; }
@@ -31,9 +38,12 @@ public class Host {
/** Returns an immutable list of the aliases of this node, which may be empty but never null */
public List<String> aliases() { return aliases; }
+ public Optional<Flavor> flavor() { return flavor; }
+
@Override
public String toString() {
- return hostname + (aliases.size() > 0 ? " (aliases: " + aliases + ")" : "" );
+ return hostname + (aliases.size() > 0 ? " (aliases: " + aliases + ")" : "" ) +
+ (flavor.isPresent() ? " (flavor: " + flavor.get() + ")" : "");
}
}
diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
index c4ac4d91001..38bc3f39c62 100644
--- a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
+++ b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
@@ -88,7 +88,7 @@ public class InMemoryProvisioner implements HostProvisioner {
List<Host> defaultHosts = freeNodes.get("default");
if (defaultHosts.isEmpty()) throw new IllegalArgumentException("No more hosts of default flavor available");
Host newHost = freeNodes.removeValue("default", 0);
- HostSpec hostSpec = new HostSpec(newHost.hostname(), newHost.aliases());
+ HostSpec hostSpec = new HostSpec(newHost.hostname(), newHost.aliases(), newHost.flavor(), Optional.empty());
legacyMapping.put(alias, hostSpec);
return hostSpec;
}
@@ -142,7 +142,7 @@ public class InMemoryProvisioner implements HostProvisioner {
if (freeNodes.get(flavor).isEmpty()) throw new IllegalArgumentException("Insufficient capacity of flavor '" + flavor + "'");
Host newHost = freeNodes.removeValue(flavor, 0);
ClusterMembership membership = ClusterMembership.from(clusterGroup, nextIndex++);
- allocation.add(new HostSpec(newHost.hostname(), newHost.aliases(), membership));
+ allocation.add(new HostSpec(newHost.hostname(), newHost.aliases(), newHost.flavor(), Optional.of(membership)));
}
nextIndexInCluster.put(new Pair<>(clusterGroup.type(), clusterGroup.id()), nextIndex);