summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java7
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java81
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java31
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java4
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java9
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java29
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java52
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java14
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java4
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java12
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java2
15 files changed, 138 insertions, 126 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
index 7c3d8e4763f..a6f8d510c0d 100644
--- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
+++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
@@ -54,7 +54,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea
private int maxActivationInhibitedOutOfSyncGroups = 0;
private List<TenantSecretStore> tenantSecretStores = Collections.emptyList();
private String jvmOmitStackTraceInFastThrowOption;
- private int numDistributorStripes = 0;
private int maxConcurrentMergesPerNode = 16;
private int maxMergeQueueSize = 1024;
private boolean ignoreMergeQueueLimit = false;
@@ -99,7 +98,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea
@Override public int maxActivationInhibitedOutOfSyncGroups() { return maxActivationInhibitedOutOfSyncGroups; }
@Override public List<TenantSecretStore> tenantSecretStores() { return tenantSecretStores; }
@Override public String jvmOmitStackTraceInFastThrowOption(ClusterSpec.Type type) { return jvmOmitStackTraceInFastThrowOption; }
- @Override public int numDistributorStripes() { return numDistributorStripes; }
@Override public boolean allowDisableMtls() { return allowDisableMtls; }
@Override public List<X509Certificate> operatorCertificates() { return operatorCertificates; }
@Override public int largeRankExpressionLimit() { return largeRankExpressionLimit; }
@@ -247,11 +245,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea
return this;
}
- public TestProperties setNumDistributorStripes(int value) {
- this.numDistributorStripes = value;
- return this;
- }
-
public TestProperties allowDisableMtls(boolean value) {
this.allowDisableMtls = value;
return this;
diff --git a/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java b/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java
index decc6e98bc4..b8e1247d2b9 100644
--- a/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java
+++ b/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java
@@ -385,7 +385,7 @@ public abstract class AbstractConfigProducer<CHILD extends AbstractConfigProduce
public void validate() throws Exception {
assert (childrenBySubId.isFrozen());
- for (AbstractConfigProducer child : childrenBySubId.values()) {
+ for (AbstractConfigProducer<?> child : childrenBySubId.values()) {
child.validate();
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java
index e72f74829d3..6e2818673c7 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerCluster.java
@@ -16,6 +16,7 @@ import com.yahoo.vespa.model.container.Container;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@@ -78,17 +79,19 @@ public class ClusterControllerCluster extends AbstractConfigProducer<ClusterCont
@Override
public void validate() {
- assert(containerCluster != null);
+ Objects.requireNonNull(containerCluster);
for (Container c1 : containerCluster.getContainers()) {
assert(c1 instanceof ClusterControllerContainer);
for (Service service : c1.getHostResource().getServices()) {
if (service instanceof Configserver) {
- throw new IllegalArgumentException("Error validating cluster controller cluster: cluster controller '" + c1.getConfigId() + "' is set to run on the same host as a configserver");
+ throw new IllegalArgumentException("Error validating cluster controller cluster: cluster controller '" +
+ c1.getConfigId() + "' is set to run on the same host as a configserver");
}
}
for (Container c2 : containerCluster.getContainers()) {
if (c1 != c2 && c1.getHostName().equals(c2.getHostName())) {
- throw new IllegalArgumentException("Error validating cluster controller cluster: cluster controllers '" + c1.getConfigId() + "' and '" + c2.getConfigId() + "' share the same host");
+ throw new IllegalArgumentException("Error validating cluster controller cluster: cluster controllers '" +
+ c1.getConfigId() + "' and '" + c2.getConfigId() + "' share the same host");
}
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
index 8e3451540f9..c3cffa018fa 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
@@ -15,6 +15,7 @@ import com.yahoo.vespa.model.admin.clustercontroller.ClusterControllerCluster;
import com.yahoo.vespa.model.admin.clustercontroller.ClusterControllerContainer;
import com.yahoo.vespa.model.admin.clustercontroller.ClusterControllerContainerCluster;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder.DomConfigProducerBuilder;
+import com.yahoo.vespa.model.container.Container;
import org.w3c.dom.Element;
import java.util.ArrayList;
@@ -44,8 +45,7 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
admin.addConfigservers(configservers);
admin.addSlobroks(getSlobroks(deployState, admin, XML.getChild(adminE, "slobroks")));
if ( ! admin.multitenant())
- admin.setClusterControllers(addConfiguredClusterControllers(deployState, admin, adminE),
- deployState);
+ admin.setClusterControllers(addConfiguredClusterControllers(deployState, admin, adminE), deployState);
ModelElement adminElement = new ModelElement(adminE);
addLogForwarders(adminElement.child("logforwarding"), admin);
@@ -57,16 +57,17 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
private List<Configserver> parseConfigservers(DeployState deployState, Admin admin, Element adminE) {
List<Configserver> configservers;
- if (multitenant) {
+ if (multitenant)
configservers = getConfigServersFromSpec(deployState.getDeployLogger(), admin);
- } else {
+ else
configservers = getConfigServers(deployState, admin, adminE);
- }
- int count = configservers.size();
- if (count % 2 == 0) {
- deployState.getDeployLogger().logApplicationPackage(Level.WARNING, "An even number (" + count + ") of config servers have been configured. " +
- "This is discouraged, see doc for configuration server ");
- }
+ if (configservers.isEmpty() && ! multitenant)
+ configservers = createSingleConfigServer(deployState, admin);
+ if (configservers.size() % 2 == 0)
+ deployState.getDeployLogger().logApplicationPackage(Level.WARNING,
+ "An even number (" + configservers.size() +
+ ") of config servers have been configured. " +
+ "This is discouraged, see doc for configuration server ");
return configservers;
}
@@ -78,7 +79,9 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
return new LogserverBuilder().build(deployState, admin, logserverE);
}
- private ClusterControllerContainerCluster addConfiguredClusterControllers(DeployState deployState, AbstractConfigProducer parent, Element admin) {
+ private ClusterControllerContainerCluster addConfiguredClusterControllers(DeployState deployState,
+ AbstractConfigProducer<?> parent,
+ Element admin) {
Element controllersElements = XML.getChild(admin, "cluster-controllers");
if (controllersElements == null) return null;
@@ -105,40 +108,41 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
return cluster;
}
- // Extra stupid because configservers tag is optional
- private List<Configserver> getConfigServers(DeployState deployState, AbstractConfigProducer parent, Element adminE) {
- SimpleConfigProducer configServers = new SimpleConfigProducer(parent, "configservers");
- List<Configserver> cfgs = new ArrayList<>();
+ private List<Configserver> getConfigServers(DeployState deployState, AbstractConfigProducer<?> parent, Element adminE) {
+ SimpleConfigProducer<?> configServers = new SimpleConfigProducer<>(parent, "configservers");
Element configserversE = XML.getChild(adminE, "configservers");
if (configserversE == null) {
Element configserverE = XML.getChild(adminE, "configserver");
- if (configserverE == null) {
+ if (configserverE == null)
configserverE = XML.getChild(adminE, "adminserver");
- } else {
- deployState.getDeployLogger().logApplicationPackage(Level.INFO, "Specifying configserver without parent element configservers in services.xml is deprecated");
- }
- Configserver cfgs0 = new ConfigserverBuilder(0, configServerSpecs).build(deployState, configServers, configserverE);
- cfgs0.setProp("index", 0);
- cfgs.add(cfgs0);
- return cfgs;
+ else
+ deployState.getDeployLogger().logApplicationPackage(Level.INFO,
+ "Specifying configserver without parent element configservers in services.xml is deprecated");
+ return List.of(new ConfigserverBuilder(0, configServerSpecs).build(deployState, configServers, configserverE));
}
- // configservers tag in use
- int i = 0;
- for (Element configserverE : XML.getChildren(configserversE, "configserver")) {
- Configserver cfgsrv = new ConfigserverBuilder(i, configServerSpecs).build(deployState, configServers, configserverE);
- cfgsrv.setProp("index", i);
- cfgs.add(cfgsrv);
- i++;
+ else {
+ List<Configserver> configservers = new ArrayList<>();
+ int i = 0;
+ for (Element configserverE : XML.getChildren(configserversE, "configserver"))
+ configservers.add(new ConfigserverBuilder(i++, configServerSpecs).build(deployState, configServers, configserverE));
+ return configservers;
}
- return cfgs;
+ }
+
+ /** Fallback when no config server is specified */
+ private List<Configserver> createSingleConfigServer(DeployState deployState, AbstractConfigProducer<?> parent) {
+ SimpleConfigProducer<?> configServers = new SimpleConfigProducer<>(parent, "configservers");
+ Configserver configServer = new Configserver(configServers, "configserver", Configserver.defaultRpcPort);
+ configServer.setHostResource(parent.hostSystem().getHost(Container.SINGLENODE_CONTAINER_SERVICESPEC));
+ configServer.initService(deployState.getDeployLogger());
+ return List.of(configServer);
}
private List<Slobrok> getSlobroks(DeployState deployState, AbstractConfigProducer<?> parent, Element slobroksE) {
- List<Slobrok> slobs = new ArrayList<>();
- if (slobroksE != null) {
- slobs = getExplicitSlobrokSetup(deployState, parent, slobroksE);
- }
- return slobs;
+ List<Slobrok> slobroks = new ArrayList<>();
+ if (slobroksE != null)
+ slobroks = getExplicitSlobrokSetup(deployState, parent, slobroksE);
+ return slobroks;
}
private List<Slobrok> getExplicitSlobrokSetup(DeployState deployState, AbstractConfigProducer<?> parent, Element slobroksE) {
@@ -174,7 +178,9 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
@Override
protected Configserver doBuild(DeployState deployState, AbstractConfigProducer parent, Element spec) {
- return new Configserver(parent, "configserver." + i, rpcPort);
+ var configServer = new Configserver(parent, "configserver." + i, rpcPort);
+ configServer.setProp("index", i);
+ return configServer;
}
}
@@ -207,4 +213,5 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
return new ClusterControllerContainer(parent, i, runStandaloneZooKeeper, deployState, false);
}
}
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
index 0997f29729f..fea36eaeb15 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
@@ -216,9 +216,10 @@ public class StorageGroup {
deployState.getDeployLogger().logApplicationPackage(Level.INFO, "'distribution-key' attribute on a content cluster's root group is ignored");
GroupBuilder groupBuilder = collectGroup(owner.isHosted(), group, nodes, null, null);
- StorageGroup storageGroup = (owner.isHosted())
- ? groupBuilder.buildHosted(deployState, owner, Optional.empty())
- : groupBuilder.buildNonHosted(deployState, owner, Optional.empty());
+ StorageGroup storageGroup = owner.isHosted()
+ ? groupBuilder.buildHosted(deployState, owner, Optional.empty())
+ : groupBuilder.buildNonHosted(deployState, owner, Optional.empty());
+
Redundancy redundancy = redundancyBuilder.build(owner.getName(), owner.isHosted(), storageGroup.subgroups.size(),
storageGroup.getNumberOfLeafGroups(), storageGroup.countNodes(false),
maxRedundancy);
@@ -305,19 +306,25 @@ public class StorageGroup {
storageGroup.nodes.add(nodeBuilder.build(deployState, owner, storageGroup));
}
- if (parent.isEmpty() && subGroups.isEmpty() && nodeBuilders.isEmpty()) // no nodes or groups: create single node
+ if (parent.isEmpty() && subGroups.isEmpty() && nodeBuilders.isEmpty()) { // no nodes or groups: create single node
storageGroup.nodes.add(buildSingleNode(deployState, owner));
+ }
return storageGroup;
}
private StorageNode buildSingleNode(DeployState deployState, ContentCluster parent) {
int distributionKey = 0;
- StorageNode sNode = new StorageNode(deployState.getProperties(), parent.getStorageNodes(), 1.0, distributionKey , false);
- sNode.setHostResource(parent.hostSystem().getHost(Container.SINGLENODE_CONTAINER_SERVICESPEC));
- PersistenceEngine provider = parent.getPersistence().create(deployState, sNode, storageGroup, null);
- new Distributor(deployState.getProperties(), parent.getDistributorNodes(), distributionKey, null, provider);
- return sNode;
+
+ StorageNode searchNode = new StorageNode(deployState.getProperties(), parent.getStorageCluster(), 1.0, distributionKey , false);
+ searchNode.setHostResource(parent.hostSystem().getHost(Container.SINGLENODE_CONTAINER_SERVICESPEC));
+ PersistenceEngine provider = parent.getPersistence().create(deployState, searchNode, storageGroup, null);
+ searchNode.initService(deployLogger);
+
+ Distributor distributor = new Distributor(deployState.getProperties(), parent.getDistributorNodes(), distributionKey, null, provider);
+ distributor.setHostResource(searchNode.getHostResource());
+ distributor.initService(deployLogger);
+ return searchNode;
}
/**
@@ -332,7 +339,7 @@ public class StorageGroup {
throw new IllegalArgumentException("Specifying individual groups is not supported on hosted applications");
Map<HostResource, ClusterMembership> hostMapping =
nodeRequirement.isPresent() ?
- provisionHosts(nodeRequirement.get(), owner.getStorageNodes().getClusterName(), owner.getRoot().hostSystem(), deployLogger) :
+ provisionHosts(nodeRequirement.get(), owner.getStorageCluster().getClusterName(), owner.getRoot().hostSystem(), deployLogger) :
Collections.emptyMap();
Map<Optional<ClusterSpec.Group>, Map<HostResource, ClusterMembership>> hostGroups = collectAllocatedSubgroups(hostMapping);
@@ -389,7 +396,7 @@ public class StorageGroup {
}
public StorageNode build(DeployState deployState, ContentCluster parent, StorageGroup storageGroup) {
- StorageNode sNode = new StorageNode.Builder().build(deployState, parent.getStorageNodes(), element.getXml());
+ StorageNode sNode = new StorageNode.Builder().build(deployState, parent.getStorageCluster(), element.getXml());
PersistenceEngine provider = parent.getPersistence().create(deployState, sNode, storageGroup, element);
new Distributor.Builder(clusterElement, provider).build(deployState, parent.getDistributorNodes(), element.getXml());
return sNode;
@@ -494,7 +501,7 @@ public class StorageGroup {
}
private static StorageNode createStorageNode(DeployState deployState, ContentCluster parent, HostResource hostResource, StorageGroup parentGroup, ClusterMembership clusterMembership) {
- StorageNode sNode = new StorageNode(deployState.getProperties(), parent.getStorageNodes(), null, clusterMembership.index(), clusterMembership.retired());
+ StorageNode sNode = new StorageNode(deployState.getProperties(), parent.getStorageCluster(), null, clusterMembership.index(), clusterMembership.retired());
sNode.setHostResource(hostResource);
sNode.initService(deployState.getDeployLogger());
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
index a746dc36540..12a7b72f5fd 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
@@ -287,7 +287,7 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce
}
else if (admin.multitenant()) { // system tests: Put on logserver
if (admin.getClusterControllers() == null) {
- // TODO: logserver== null only obtains in unit tests, disallow it
+ // TODO: logserver == null only obtains in unit tests, disallow it
List<HostResource> host = admin.getLogserver() == null ? List.of() : List.of(admin.getLogserver().getHostResource());
admin.setClusterControllers(createClusterControllers(new ClusterControllerCluster(admin, "standalone", deployState),
host,
@@ -428,7 +428,7 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce
public DistributorCluster getDistributorNodes() { return distributorNodes; }
- public StorageCluster getStorageNodes() { return storageNodes; }
+ public StorageCluster getStorageCluster() { return storageNodes; }
public ClusterControllerConfig getClusterControllerConfig() { return clusterControllerConfig; }
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
index 9b9789e141c..e2fd322a4c4 100644
--- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
@@ -14,6 +14,7 @@ import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.core.ApplicationMetadataConfig;
import com.yahoo.search.config.QrStartConfig;
+import com.yahoo.vespa.config.content.core.StorCommunicationmanagerConfig;
import com.yahoo.vespa.config.content.core.StorStatusConfig;
import com.yahoo.vespa.config.search.core.ProtonConfig;
import com.yahoo.vespa.model.HostResource;
@@ -30,9 +31,9 @@ import com.yahoo.vespa.model.container.ContainerCluster;
import com.yahoo.vespa.model.content.ContentSearchCluster;
import com.yahoo.vespa.model.content.StorageNode;
import com.yahoo.vespa.model.content.cluster.ContentCluster;
+import com.yahoo.vespa.model.content.storagecluster.StorageCluster;
import com.yahoo.vespa.model.search.SearchNode;
import com.yahoo.vespa.model.test.VespaModelTester;
-import com.yahoo.vespa.model.test.utils.ApplicationPackageUtils;
import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithMockPkg;
import com.yahoo.yolean.Exceptions;
import org.junit.Test;
@@ -1115,7 +1116,7 @@ public class ModelProvisioningTest {
assertEquals(numberOfHosts, model.getRoot().hostSystem().getHosts().size());
ContentCluster cluster = model.getContentClusters().get("bar");
- assertEquals(2, cluster.getStorageNodes().getChildren().size());
+ assertEquals(2, cluster.getStorageCluster().getChildren().size());
assertEquals(1, cluster.redundancy().effectiveInitialRedundancy());
assertEquals(1, cluster.redundancy().effectiveFinalRedundancy());
assertEquals(1, cluster.redundancy().effectiveReadyCopies());
@@ -1618,7 +1619,11 @@ public class ModelProvisioningTest {
assertEquals("Nodes in container cluster", 1, model.getContainerClusters().get("container1").getContainers().size());
assertEquals("Nodes in content cluster (downscaled)", 1, model.getContentClusters().get("content").getRootGroup().getNodes().size());
+
model.getConfig(new StorStatusConfig.Builder(), "default");
+ StorageCluster storage = model.getContentClusters().get("content").getStorageCluster();
+ StorCommunicationmanagerConfig.Builder builder = new StorCommunicationmanagerConfig.Builder();
+ storage.getChildren().get("0").getConfig(builder);
}
@Test
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java
index 3f211a595b9..1cf79fc5977 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java
@@ -37,7 +37,7 @@ public class MetricsProxyContainerTest {
var tester = new VespaModelTester();
tester.addHosts(numberOfHosts);
- VespaModel model = tester.createModel(servicesWithManyNodes(), true);
+ VespaModel model = tester.createModel(hostedServicesWithManyNodes(), true);
assertThat(model.getRoot().hostSystem().getHosts().size(), is(numberOfHosts));
for (var host : model.hostSystem().getHosts()) {
@@ -56,7 +56,7 @@ public class MetricsProxyContainerTest {
var tester = new VespaModelTester();
tester.addHosts(numberOfHosts);
- VespaModel model = tester.createModel(servicesWithManyNodes(), true);
+ VespaModel model = tester.createModel(hostedServicesWithManyNodes(), true);
assertThat(model.getRoot().hostSystem().getHosts().size(), is(numberOfHosts));
for (var host : model.hostSystem().getHosts()) {
@@ -71,7 +71,7 @@ public class MetricsProxyContainerTest {
@Test
public void http_server_is_running_on_expected_port() {
- VespaModel model = getModel(servicesWithContent(), self_hosted);
+ VespaModel model = getModel(hostedServicesWithContent(), self_hosted);
MetricsProxyContainer container = (MetricsProxyContainer)model.id2producer().get(CONTAINER_CONFIG_ID);
assertEquals(19092, container.getSearchPort());
assertEquals(19092, container.getHealthPort());
@@ -82,7 +82,7 @@ public class MetricsProxyContainerTest {
@Test
public void metrics_rpc_server_is_running_on_expected_port() {
- VespaModel model = getModel(servicesWithContent(), self_hosted);
+ VespaModel model = getModel(hostedServicesWithContent(), self_hosted);
MetricsProxyContainer container = (MetricsProxyContainer)model.id2producer().get(CONTAINER_CONFIG_ID);
int offset = 3;
@@ -96,7 +96,7 @@ public class MetricsProxyContainerTest {
@Test
public void admin_rpc_server_is_running() {
- VespaModel model = getModel(servicesWithContent(), self_hosted);
+ VespaModel model = getModel(hostedServicesWithContent(), self_hosted);
MetricsProxyContainer container = (MetricsProxyContainer)model.id2producer().get(CONTAINER_CONFIG_ID);
int offset = 2;
@@ -107,7 +107,7 @@ public class MetricsProxyContainerTest {
@Test
public void preload_is_empty() {
- VespaModel model = getModel(servicesWithContent(), self_hosted);
+ VespaModel model = getModel(hostedServicesWithContent(), self_hosted);
MetricsProxyContainer container = (MetricsProxyContainer)model.id2producer().get(CONTAINER_CONFIG_ID);
assertEquals("", container.getPreLoad());
@@ -115,7 +115,7 @@ public class MetricsProxyContainerTest {
@Test
public void hosted_application_propagates_node_dimensions() {
- String services = servicesWithContent();
+ String services = hostedServicesWithContent();
VespaModel hostedModel = getModel(services, hosted);
assertEquals(4, hostedModel.getHosts().size());
String configId = containerConfigId(hostedModel, hosted);
@@ -127,7 +127,7 @@ public class MetricsProxyContainerTest {
@Test
public void metrics_v2_handler_is_set_up_with_node_info_config() {
- String services = servicesWithContent();
+ String services = hostedServicesWithContent();
VespaModel hostedModel = getModel(services, hosted);
var container = (MetricsProxyContainer)hostedModel.id2producer().get(containerConfigId(hostedModel, hosted));
@@ -143,8 +143,8 @@ public class MetricsProxyContainerTest {
@Test
public void vespa_services_config_has_all_services() {
- VespaServicesConfig vespaServicesConfig = getVespaServicesConfig(servicesWithContent());
- assertEquals(7, vespaServicesConfig.service().size());
+ VespaServicesConfig vespaServicesConfig = getVespaServicesConfig(hostedServicesWithContent());
+ assertEquals(9, vespaServicesConfig.service().size());
for (var service : vespaServicesConfig.service()) {
if (service.configId().equals("admin/cluster-controllers/0")) {
@@ -158,7 +158,7 @@ public class MetricsProxyContainerTest {
@Test
public void vespa_services_config_has_service_dimensions() {
- VespaServicesConfig vespaServicesConfig = getVespaServicesConfig(servicesWithContent());
+ VespaServicesConfig vespaServicesConfig = getVespaServicesConfig(hostedServicesWithContent());
for (var service : vespaServicesConfig.service()) {
if (service.configId().equals("admin/cluster-controllers/0")) {
assertEquals(1, service.dimension().size());
@@ -169,7 +169,7 @@ public class MetricsProxyContainerTest {
}
- private static String servicesWithManyNodes() {
+ private static String hostedServicesWithManyNodes() {
return String.join("\n",
"<services>",
" <container version='1.0' id='foo'>",
@@ -182,12 +182,9 @@ public class MetricsProxyContainerTest {
"</services>");
}
- private static String servicesWithContent() {
+ private static String hostedServicesWithContent() {
return String.join("\n",
"<services>",
- " <admin version='2.0'>",
- " <adminserver hostalias='node1'/>",
- " </admin>",
" <content version='1.0' id='my-content'>",
" <documents />",
" <nodes count='1' />",
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java
index 7bff4890b7e..583d0c43a9a 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java
@@ -94,7 +94,7 @@ public class ContentBuilderTest extends DomBuilderTest {
assertTrue(a.getPersistence() instanceof ProtonEngine.Factory);
- assertEquals(1, a.getStorageNodes().getChildren().size());
+ assertEquals(1, a.getStorageCluster().getChildren().size());
}
@Test
@@ -119,7 +119,7 @@ public class ContentBuilderTest extends DomBuilderTest {
assertTrue(a.getPersistence() instanceof ProtonEngine.Factory);
- assertEquals(1, a.getStorageNodes().getChildren().size());
+ assertEquals(1, a.getStorageCluster().getChildren().size());
}
@Test
@@ -147,7 +147,7 @@ public class ContentBuilderTest extends DomBuilderTest {
assertEquals("node0", a.getRootGroup().getNodes().get(0).getHostName());
assertTrue(a.getPersistence() instanceof ProtonEngine.Factory);
- assertEquals(1, a.getStorageNodes().getChildren().size());
+ assertEquals(1, a.getStorageCluster().getChildren().size());
assertEquals("a", a.getConfigId());
}
@@ -164,7 +164,7 @@ public class ContentBuilderTest extends DomBuilderTest {
assertEquals(7.3, s.getIndexed().getQueryTimeout(), 0.0);
assertTrue(c.getPersistence() instanceof ProtonEngine.Factory);
- assertEquals(1, c.getStorageNodes().getChildren().size());
+ assertEquals(1, c.getStorageCluster().getChildren().size());
assertEquals("clu", c.getConfigId());
//assertEquals("content/a/0", a.getRootGroup().getNodes().get(0).getConfigId()); // This is how it should look like in an ideal world.
assertEquals("clu/storage/0", c.getRootGroup().getNodes().get(0).getConfigId()); // Due to reuse.
@@ -211,7 +211,7 @@ public class ContentBuilderTest extends DomBuilderTest {
assertEquals(musicClusterId, ((StreamingSearchCluster)sc).getStorageRouteSpec());
assertTrue(cluster.getPersistence() instanceof ProtonEngine.Factory);
- assertEquals(1, cluster.getStorageNodes().getChildren().size());
+ assertEquals(1, cluster.getStorageCluster().getChildren().size());
assertEquals(musicClusterId, cluster.getConfigId());
//assertEquals("content/a/0", a.getRootGroup().getNodes().get(0).getConfigId());
@@ -269,7 +269,7 @@ public class ContentBuilderTest extends DomBuilderTest {
}
assertTrue(cluster.getPersistence() instanceof ProtonEngine.Factory);
- assertEquals(1, cluster.getStorageNodes().getChildren().size());
+ assertEquals(1, cluster.getStorageCluster().getChildren().size());
assertEquals(musicClusterId, cluster.getConfigId());
}
@@ -295,7 +295,7 @@ public class ContentBuilderTest extends DomBuilderTest {
assertEquals("b", s.getIndexed().getClusterName());
assertTrue(b.getPersistence() instanceof ProtonEngine.Factory);
- assertEquals(1, b.getStorageNodes().getChildren().size());
+ assertEquals(1, b.getStorageCluster().getChildren().size());
assertEquals("b", b.getConfigId());
//assertEquals("content/a/0", a.getRootGroup().getNodes().get(0).getConfigId());
@@ -323,7 +323,7 @@ public class ContentBuilderTest extends DomBuilderTest {
s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(2, b.getStorageNodes().getChildren().size());
+ assertEquals(2, b.getStorageCluster().getChildren().size());
assertTrue(b.getRootGroup().getMmapNoCoreLimit().isPresent());
assertEquals(200000, b.getRootGroup().getMmapNoCoreLimit().get().longValue());
@@ -352,7 +352,7 @@ public class ContentBuilderTest extends DomBuilderTest {
s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(2, b.getStorageNodes().getChildren().size());
+ assertEquals(2, b.getStorageCluster().getChildren().size());
assertTrue(b.getRootGroup().getCoreOnOOM().isPresent());
assertTrue(b.getRootGroup().getCoreOnOOM().get());
@@ -379,7 +379,7 @@ public class ContentBuilderTest extends DomBuilderTest {
ContentSearchCluster s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(2, b.getStorageNodes().getChildren().size());
+ assertEquals(2, b.getStorageCluster().getChildren().size());
assertFalse(b.getRootGroup().getCoreOnOOM().isPresent());
assertThat(s.getSearchNodes().size(), is(2));
@@ -405,7 +405,7 @@ public class ContentBuilderTest extends DomBuilderTest {
ContentSearchCluster s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(2, b.getStorageNodes().getChildren().size());
+ assertEquals(2, b.getStorageCluster().getChildren().size());
assertFalse(b.getRootGroup().getMmapNoCoreLimit().isPresent());
assertThat(s.getSearchNodes().size(), is(2));
@@ -431,7 +431,7 @@ public class ContentBuilderTest extends DomBuilderTest {
ContentSearchCluster s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(2, b.getStorageNodes().getChildren().size());
+ assertEquals(2, b.getStorageCluster().getChildren().size());
assertFalse(b.getRootGroup().getCoreOnOOM().isPresent());
assertThat(s.getSearchNodes().size(), is(2));
@@ -459,7 +459,7 @@ public class ContentBuilderTest extends DomBuilderTest {
ContentSearchCluster s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(4, b.getStorageNodes().getChildren().size());
+ assertEquals(4, b.getStorageCluster().getChildren().size());
assertTrue(b.getRootGroup().getNoVespaMalloc().isPresent());
assertEquals("proton", b.getRootGroup().getNoVespaMalloc().get());
assertTrue(b.getRootGroup().getVespaMalloc().isPresent());
@@ -501,7 +501,7 @@ public class ContentBuilderTest extends DomBuilderTest {
ContentSearchCluster s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(4, b.getStorageNodes().getChildren().size());
+ assertEquals(4, b.getStorageCluster().getChildren().size());
assertFalse(b.getRootGroup().getNoVespaMalloc().isPresent());
assertFalse(b.getRootGroup().getVespaMalloc().isPresent());
assertFalse(b.getRootGroup().getVespaMallocDebug().isPresent());
@@ -532,11 +532,11 @@ public class ContentBuilderTest extends DomBuilderTest {
s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(2, b.getStorageNodes().getChildren().size());
- assertTrue(b.getStorageNodes().getChildren().get("0").getAffinity().isPresent());
- assertThat(b.getStorageNodes().getChildren().get("0").getAffinity().get().cpuSocket(), is(0));
- assertTrue(b.getStorageNodes().getChildren().get("1").getAffinity().isPresent());
- assertThat(b.getStorageNodes().getChildren().get("1").getAffinity().get().cpuSocket(), is(1));
+ assertEquals(2, b.getStorageCluster().getChildren().size());
+ assertTrue(b.getStorageCluster().getChildren().get("0").getAffinity().isPresent());
+ assertThat(b.getStorageCluster().getChildren().get("0").getAffinity().get().cpuSocket(), is(0));
+ assertTrue(b.getStorageCluster().getChildren().get("1").getAffinity().isPresent());
+ assertThat(b.getStorageCluster().getChildren().get("1").getAffinity().get().cpuSocket(), is(1));
assertThat(s.getSearchNodes().size(), is(2));
assertTrue(s.getSearchNodes().get(0).getAffinity().isPresent());
@@ -567,7 +567,7 @@ public class ContentBuilderTest extends DomBuilderTest {
s = b.getSearch();
assertTrue(s.hasIndexedCluster());
assertNotNull(s.getIndexed());
- assertEquals(6, b.getStorageNodes().getChildren().size());
+ assertEquals(6, b.getStorageCluster().getChildren().size());
assertTrue(b.getRootGroup().useCpuSocketAffinity());
assertThat(s.getSearchNodes().size(), is(6));
@@ -585,12 +585,12 @@ public class ContentBuilderTest extends DomBuilderTest {
assertThat(s.getSearchNodes().get(5).getAffinity().get().cpuSocket(),is (0));
// TODO: Only needed for the search nodes anyway?
- assertFalse(b.getStorageNodes().getChildren().get("0").getAffinity().isPresent());
- assertFalse(b.getStorageNodes().getChildren().get("1").getAffinity().isPresent());
- assertFalse(b.getStorageNodes().getChildren().get("2").getAffinity().isPresent());
- assertFalse(b.getStorageNodes().getChildren().get("3").getAffinity().isPresent());
- assertFalse(b.getStorageNodes().getChildren().get("4").getAffinity().isPresent());
- assertFalse(b.getStorageNodes().getChildren().get("5").getAffinity().isPresent());
+ assertFalse(b.getStorageCluster().getChildren().get("0").getAffinity().isPresent());
+ assertFalse(b.getStorageCluster().getChildren().get("1").getAffinity().isPresent());
+ assertFalse(b.getStorageCluster().getChildren().get("2").getAffinity().isPresent());
+ assertFalse(b.getStorageCluster().getChildren().get("3").getAffinity().isPresent());
+ assertFalse(b.getStorageCluster().getChildren().get("4").getAffinity().isPresent());
+ assertFalse(b.getStorageCluster().getChildren().get("5").getAffinity().isPresent());
//assertThat(b.getStorageNodes().getChildren().get("0").getAffinity().get().cpuSocket(), is(0));
//assertThat(b.getStorageNodes().getChildren().get("1").getAffinity().get().cpuSocket(), is(1));
//assertThat(b.getStorageNodes().getChildren().get("2").getAffinity().get().cpuSocket(), is(2));
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
index 7f006cdccd9..fccff508b4e 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
@@ -553,15 +553,15 @@ public class ContentClusterTest extends ContentBaseTest {
{
StorServerConfig.Builder builder = new StorServerConfig.Builder();
- cluster.getStorageNodes().getConfig(builder);
- cluster.getStorageNodes().getChildren().get("0").getConfig(builder);
+ cluster.getStorageCluster().getConfig(builder);
+ cluster.getStorageCluster().getChildren().get("0").getConfig(builder);
StorServerConfig config = new StorServerConfig(builder);
}
{
StorServerConfig.Builder builder = new StorServerConfig.Builder();
- cluster.getStorageNodes().getConfig(builder);
- cluster.getStorageNodes().getChildren().get("1").getConfig(builder);
+ cluster.getStorageCluster().getConfig(builder);
+ cluster.getStorageCluster().getChildren().get("1").getConfig(builder);
StorServerConfig config = new StorServerConfig(builder);
}
}
@@ -635,8 +635,8 @@ public class ContentClusterTest extends ContentBaseTest {
{
StorServerConfig.Builder builder = new StorServerConfig.Builder();
- cluster.getStorageNodes().getConfig(builder);
- cluster.getStorageNodes().getChildren().get("0").getConfig(builder);
+ cluster.getStorageCluster().getConfig(builder);
+ cluster.getStorageCluster().getChildren().get("0").getConfig(builder);
StorServerConfig config = new StorServerConfig(builder);
@@ -696,7 +696,7 @@ public class ContentClusterTest extends ContentBaseTest {
assertEquals("partofsum", config.consumer(5).removedtags(1));
assertEquals(0, config.consumer(5).tags().size());
- cluster.getStorageNodes().getConfig(builder);
+ cluster.getStorageCluster().getConfig(builder);
config = new MetricsmanagerConfig(builder);
assertEquals(6, config.consumer().size());
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java
index 51d0afc1f93..2d54791cc2c 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/GenericConfigTest.java
@@ -55,7 +55,7 @@ public class GenericConfigTest {
@Test
public void config_override_on_root_is_visible_on_storage_cluster() {
- StorageCluster cluster = model.getContentClusters().get("storage").getStorageNodes();
+ StorageCluster cluster = model.getContentClusters().get("storage").getStorageCluster();
StorFilestorConfig config = model.getConfig(StorFilestorConfig.class, cluster.getConfigId());
assertThat(config.num_threads(), is(7));
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java
index 5d4756c430d..49518bb749c 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java
@@ -179,8 +179,8 @@ public class IndexedTest extends ContentBaseTest {
assertFalse(s.getSearch().hasIndexedCluster());
StorServerConfig.Builder builder = new StorServerConfig.Builder();
- s.getStorageNodes().getConfig(builder);
- s.getStorageNodes().getChildren().get("3").getConfig(builder);
+ s.getStorageCluster().getConfig(builder);
+ s.getStorageCluster().getChildren().get("3").getConfig(builder);
}
@Test
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java
index fd85ea3d024..3e59a17d1a5 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java
@@ -66,7 +66,7 @@ public class StorageClusterTest {
ContentCluster cluster = ContentClusterUtils.createCluster(xml, root);
root.freezeModelTopology();
- return cluster.getStorageNodes();
+ return cluster.getStorageCluster();
}
private static String group() {
@@ -328,9 +328,9 @@ public class StorageClusterTest {
ContentCluster cluster = ContentClusterUtils.createCluster(xml, new MockRoot());
for (int i = 0; i < 3; ++i) {
- StorageNode node = cluster.getStorageNodes().getChildren().get("" + i);
+ StorageNode node = cluster.getStorageCluster().getChildren().get("" + i);
StorServerConfig.Builder builder = new StorServerConfig.Builder();
- cluster.getStorageNodes().getConfig(builder);
+ cluster.getStorageCluster().getConfig(builder);
node.getConfig(builder);
StorServerConfig config = new StorServerConfig(builder);
assertEquals(1.0 + (double)i * 0.5, config.node_capacity(), 0.001);
@@ -341,11 +341,11 @@ public class StorageClusterTest {
public void testRootFolder() {
ContentCluster cluster = ContentClusterUtils.createCluster(cluster("storage", ""), new MockRoot());
- StorageNode node = cluster.getStorageNodes().getChildren().get("0");
+ StorageNode node = cluster.getStorageCluster().getChildren().get("0");
{
StorServerConfig.Builder builder = new StorServerConfig.Builder();
- cluster.getStorageNodes().getConfig(builder);
+ cluster.getStorageCluster().getConfig(builder);
node.getConfig(builder);
StorServerConfig config = new StorServerConfig(builder);
assertEquals(getDefaults().underVespaHome("var/db/vespa/search/storage/storage/0"), config.root_folder());
@@ -378,7 +378,7 @@ public class StorageClusterTest {
ContentCluster cluster = ContentClusterUtils.createCluster(xml, new MockRoot());
PersistenceConfig.Builder builder = new PersistenceConfig.Builder();
- cluster.getStorageNodes().getConfig(builder);
+ cluster.getStorageCluster().getConfig(builder);
PersistenceConfig config = new PersistenceConfig(builder);
assertTrue(config.fail_partition_on_error());
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java
index b9495d45e08..4ab7b44f246 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java
@@ -32,9 +32,9 @@ public class StorageGroupTest {
"</content>"
);
- assertEquals("content", cluster.getStorageNodes().getChildren().get("0").getServicePropertyString("clustertype"));
- assertEquals("storage", cluster.getStorageNodes().getChildren().get("0").getServicePropertyString("clustername"));
- assertEquals("0", cluster.getStorageNodes().getChildren().get("0").getServicePropertyString("index"));
+ assertEquals("content", cluster.getStorageCluster().getChildren().get("0").getServicePropertyString("clustertype"));
+ assertEquals("storage", cluster.getStorageCluster().getChildren().get("0").getServicePropertyString("clustername"));
+ assertEquals("0", cluster.getStorageCluster().getChildren().get("0").getServicePropertyString("index"));
assertEquals("content", cluster.getDistributorNodes().getChildren().get("0").getServicePropertyString("clustertype"));
assertEquals("storage", cluster.getDistributorNodes().getChildren().get("0").getServicePropertyString("clustername"));
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java
index 7e34e9efbbf..4645decea50 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java
@@ -182,7 +182,7 @@ public class VespaModelTester {
new SingleNodeProvisioner();
TestProperties properties = new TestProperties()
- .setMultitenant(true)
+ .setMultitenant(hosted) // Note: system tests are multitenant but not hosted
.setHostedVespa(hosted)
.setApplicationId(applicationId)
.setUseDedicatedNodeForLogserver(useDedicatedNodeForLogserver);