summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-04-25 11:28:44 +0200
committerHarald Musum <musum@oath.com>2018-04-25 11:28:44 +0200
commitf76d6a73729ac8fe6af545495308cc6241c4d29e (patch)
treeb13d55e8fb796e0d241978a0b1f86f342c5d012e /config-model/src
parent2537ef4fed056fefd144b2e56883a7f8fff25e27 (diff)
Move flags for rpc, messagebus and http enabled to container cluster
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/Container.java44
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java15
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java19
4 files changed, 46 insertions, 33 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java b/config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java
index 711a3d1e72b..bb0d24f9b26 100644
--- a/config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/config/model/builder/xml/ConfigModelBuilder.java
@@ -14,7 +14,6 @@ import org.w3c.dom.Element;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
-import java.util.Optional;
/**
* Builds a config model using DOM parsers
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 063c295e33c..447c14e2561 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
@@ -3,7 +3,6 @@ package com.yahoo.vespa.model.container;
import com.yahoo.component.ComponentId;
import com.yahoo.component.ComponentSpecification;
-import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.container.ComponentsConfig;
import com.yahoo.container.QrConfig;
@@ -39,8 +38,8 @@ import static com.yahoo.container.QrConfig.Rpc;
/**
* @author gjoranv
- * @author einarmr
- * @author tonytv
+ * @author Einar M R Rosenvinge
+ * @author Tony Vaagenes
*/
//qr is restart because it is handled by ConfiguredApplication.start
@RestartConfigs({QrStartConfig.class, QrConfig.class})
@@ -59,14 +58,8 @@ public class Container extends AbstractService implements
private final boolean isHostedVespa;
private String clusterName = null;
- private boolean rpcServerEnabled = true;
-
private Optional<String> hostResponseHeaderKey = Optional.empty();
- // TODO: move these up to cluster
- private boolean httpServerEnabled = true;
- private boolean messageBusEnabled = true;
-
/** Whether this node has been marked as retired (e.g, will be removed) */
private final boolean retired;
/** The unique index of this node */
@@ -84,10 +77,10 @@ public class Container extends AbstractService implements
private static final String defaultHostedJVMArgs = "-XX:+UseOSErrorReporting -XX:+SuppressFatalErrorMessage";
public Container(AbstractConfigProducer parent, String name, int index) {
- this(parent, name, Collections.<PortOverride>emptyList(), index);
+ this(parent, name, Collections.emptyList(), index);
}
public Container(AbstractConfigProducer parent, String name, boolean retired, int index) {
- this(parent, name, retired, Collections.<PortOverride>emptyList(), index);
+ this(parent, name, retired, Collections.emptyList(), index);
}
public Container(AbstractConfigProducer parent, String name, List<PortOverride> portOverrides, int index) {
this(parent, name, false, portOverrides, index);
@@ -159,6 +152,8 @@ public class Container extends AbstractService implements
@Override
public void initService() {
+ if (isInitialized()) return;
+
// XXX: Must be called first, to set the baseport
super.initService();
@@ -179,7 +174,7 @@ public class Container extends AbstractService implements
for (int i = 1; i < numHttpServerPorts; i++)
portsMeta.on(i).tag("http").tag("external");
- if (rpcServerEnabled) {
+ if (rpcServerEnabled()) {
portsMeta.on(numHttpServerPorts + 0).tag("rpc").tag("messaging");
portsMeta.on(numHttpServerPorts + 1).tag("rpc").tag("admin");
}
@@ -286,7 +281,7 @@ public class Container extends AbstractService implements
return getRelativePort(0);
}
} else {
- return httpServerEnabled ? getSearchPort() : -1;
+ return httpServerEnabled() ? getSearchPort() : -1;
}
}
@@ -294,8 +289,8 @@ public class Container extends AbstractService implements
return "PRELOAD=" + getPreLoad() + " exec vespa-start-container-daemon " + getJvmArgs() + " ";
}
- public boolean isRpcServerEnabled() {
- return rpcServerEnabled;
+ private boolean isRpcServerEnabled() {
+ return ((ContainerCluster) parent).rpcServerEnabled();
}
@Override
@@ -352,7 +347,7 @@ public class Container extends AbstractService implements
private void addAllEnabledComponents(Collection<Component<?, ?>> allComponents, AbstractConfigProducer<?> current) {
for (AbstractConfigProducer<?> child: current.getChildren().values()) {
- if ( ! httpServerEnabled && isHttpServer(child)) continue;
+ if ( ! httpServerEnabled() && isHttpServer(child)) continue;
if (child instanceof Component)
allComponents.add((Component<?, ?>) child);
@@ -378,7 +373,7 @@ public class Container extends AbstractService implements
@Override
public void getConfig(ContainerMbusConfig.Builder builder) {
- builder.enabled(messageBusEnabled).port(getMessagingPort());
+ builder.enabled(messageBusEnabled()).port(getMessagingPort());
}
@Override
@@ -389,14 +384,17 @@ public class Container extends AbstractService implements
return dimensions;
}
- public void setRpcServerEnabled(boolean rpcServerEnabled) {
- this.rpcServerEnabled = rpcServerEnabled;
+ private boolean messageBusEnabled() {
+ return containerCluster().isPresent() && containerCluster().get().messageBusEnabled();
}
- public void setHttpServerEnabled(boolean httpServerEnabled) {
- this.httpServerEnabled = httpServerEnabled;
+ private boolean httpServerEnabled() {
+ return containerCluster().isPresent() && containerCluster().get().httpServerEnabled();
}
+ private boolean rpcServerEnabled() {
+ return containerCluster().isPresent() && containerCluster().get().rpcServerEnabled();
+ }
public static final class PortOverride {
public final ComponentSpecification serverId;
@@ -408,4 +406,8 @@ public class Container extends AbstractService implements
}
}
+ private Optional<ContainerCluster> containerCluster() {
+ return (parent instanceof ContainerCluster) ? Optional.of((ContainerCluster) parent) : Optional.empty();
+ }
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
index 6ee525c1246..a627525ab77 100755
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
@@ -14,7 +14,6 @@ import com.yahoo.config.docproc.SchemamappingConfig;
import com.yahoo.config.model.ApplicationConfigProducerRoot;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
-import com.yahoo.config.model.producer.AbstractConfigProducerRoot;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.BundlesConfig;
import com.yahoo.container.ComponentsConfig;
@@ -152,6 +151,8 @@ public final class ContainerCluster
public static final String ROOT_HANDLER_BINDING = "*://*/";
+ private static final boolean messageBusEnabled = true;
+
private final String name;
private List<Container> containers = new ArrayList<>();
@@ -164,6 +165,8 @@ public final class ContainerCluster
private SecretStore secretStore;
private MbusParams mbusParams;
+ private boolean rpcServerEnabled = true;
+ private boolean httpServerEnabled = true;
private final Set<FileReference> applicationBundles = new LinkedHashSet<>();
private final Set<Path> platformBundles = new LinkedHashSet<>();
@@ -805,6 +808,16 @@ public final class ContainerCluster
*/
public Optional<Integer> getMemoryPercentage() { return memoryPercentage; }
+ boolean messageBusEnabled() { return messageBusEnabled; }
+
+ public void setRpcServerEnabled(boolean rpcServerEnabled) { this.rpcServerEnabled = rpcServerEnabled; }
+
+ boolean rpcServerEnabled() { return rpcServerEnabled; }
+
+ boolean httpServerEnabled() { return httpServerEnabled; }
+
+ public void setHttpServerEnabled(boolean httpServerEnabled) { this.httpServerEnabled = httpServerEnabled; }
+
@Override
public String toString() {
return "container cluster '" + getName() + "'";
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 39aba9cfdf9..8cae7808c5b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -71,7 +71,6 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
-import java.util.logging.Logger;
import java.util.stream.Collectors;
/**
@@ -87,13 +86,15 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
/**
* Path to vip status file for container in Hosted Vespa. Only used if set, else use HOSTED_VESPA_STATUS_FILE
*/
- static final String HOSTED_VESPA_STATUS_FILE_INSTALL_SETTING = "cloudconfig_server__tenant_vip_status_file";
+ private static final String HOSTED_VESPA_STATUS_FILE_INSTALL_SETTING = "cloudconfig_server__tenant_vip_status_file";
public enum Networking { disable, enable }
private ApplicationPackage app;
private final boolean standaloneBuilder;
private final Networking networking;
+ private final boolean rpcServerEnabled;
+ private final boolean httpServerEnabled;
protected DeployLogger log;
public static final List<ConfigModelId> configModelIds =
@@ -102,12 +103,13 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
private static final String xmlRendererId = RendererRegistry.xmlRendererId.getName();
private static final String jsonRendererId = RendererRegistry.jsonRendererId.getName();
- private static final Logger logger = Logger.getLogger(ContainerModelBuilder.class.getName());
-
public ContainerModelBuilder(boolean standaloneBuilder, Networking networking) {
super(ContainerModel.class);
this.standaloneBuilder = standaloneBuilder;
this.networking = networking;
+ // Always disable rpc server for standalone container
+ this.rpcServerEnabled = !standaloneBuilder;
+ this.httpServerEnabled = networking == Networking.enable;
}
@Override
@@ -159,7 +161,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
addDefaultHandlers(cluster);
addStatusHandlers(cluster, context);
- addDefaultComponents(cluster);
setDefaultMetricConsumerFactory(cluster);
addHttp(spec, cluster);
@@ -173,6 +174,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
addLegacyFilters(spec, cluster); // TODO: Remove for Vespa 7
addAthensCopperArgos(cluster, context); // Must be added after nodes.
+ cluster.setRpcServerEnabled(rpcServerEnabled);
+ cluster.setHttpServerEnabled(httpServerEnabled);
}
private void addSecretStore(ContainerCluster cluster, Element spec) {
@@ -241,9 +244,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
addConfiguredComponents(cluster, spec, "component");
}
- protected void addDefaultComponents(ContainerCluster cluster) {
- }
-
protected void setDefaultMetricConsumerFactory(ContainerCluster cluster) {
cluster.setDefaultMetricConsumerFactory(MetricDefaultsConfig.Factory.Enum.STATE_MONITOR);
}
@@ -442,8 +442,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
Container node = new Container(cluster, "container.0", 0);
HostResource host = allocateSingleNodeHost(cluster, log, containerElement, context);
node.setHostResource(host);
- if ( ! node.isInitialized() ) // TODO: Fold this into initService
- node.initService();
+ node.initService();
cluster.addContainers(Collections.singleton(node));
}
else {