summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2019-07-31 10:20:53 +0000
committerArne Juul <arnej@yahoo-inc.com>2019-08-01 09:14:46 +0000
commit710abe85cec5bab9c48536a48d0aec768c7eae06 (patch)
treeb3397727912f5fd2be004a88bae86e1ba7ba246f /config-model
parentc27b7f877b7727bbab1a314fe798df8a66732f0a (diff)
switch to direct allocation of network ports
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java31
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/Container.java10
2 files changed, 3 insertions, 38 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java b/config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java
index 69b692e3ad9..5f55c78c1e4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java
@@ -137,34 +137,9 @@ public class HostPorts {
/** Allocate all ports for a service */
List<Integer> allocatePorts(NetworkPortRequestor service, int wantedPort) {
- List<Integer> ports = new ArrayList<>();
- final int count = service.getPortCount();
- if (count < 1)
- return ports;
-
- String[] suffixes = service.getPortSuffixes();
- if (suffixes.length != count) {
- throw new IllegalArgumentException("service "+service+" had "+suffixes.length+" port suffixes, but port count "+count+", mismatch");
- }
-
- if (wantedPort > 0) {
- boolean force = service.requiresWantedPort();
- if (service.requiresConsecutivePorts()) {
- for (int i = 0; i < count; i++) {
- ports.add(wantNetworkPort(wantedPort+i, service, suffixes[i], force));
- }
- } else {
- ports.add(wantNetworkPort(wantedPort, service, suffixes[0], force));
- for (int i = 1; i < count; i++) {
- ports.add(allocateNetworkPort(service, suffixes[i]));
- }
- }
- } else {
- for (int i = 0; i < count; i++) {
- ports.add(allocateNetworkPort(service, suffixes[i]));
- }
- }
- return ports;
+ PortAllocBridge allocator = new PortAllocBridge(this, service);
+ service.allocatePorts(wantedPort, allocator);
+ return allocator.result();
}
public void flushPortReservations() {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
index 12c72cecd14..09bc8028fd9 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
@@ -158,8 +158,6 @@ public abstract class Container extends AbstractService implements
if (getHttp() == null) {
initDefaultJettyConnector();
- } else {
- reserveHttpPortsPrepended();
}
tagServers();
@@ -182,14 +180,6 @@ public abstract class Container extends AbstractService implements
}
}
- private void reserveHttpPortsPrepended() {
- if (getHttp() != null && getHttp().getHttpServer() != null) {
- for (ConnectorFactory connectorFactory : getHttp().getHttpServer().getConnectorFactories()) {
- reservePortPrepended(getPort(connectorFactory), "http/" + connectorFactory.getName());
- }
- }
- }
-
private int getPort(ConnectorFactory connectorFactory) {
return connectorFactory.getListenPort();
}