summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/Content.java25
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java15
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java20
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/routing/DocumentProtocol.java25
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocproc.java4
-rw-r--r--config-model/src/test/derived/advanced/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/annotationsimplicitstruct/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/annotationsinheritance/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/annotationsinheritance2/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/annotationsreference/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/annotationssimple/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/arrays/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/attributeprefetch/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/attributes/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/complex/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/emptydefault/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/exactmatch/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/hnsw_index/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/id/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/indexswitches/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/inheritance/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/language/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/lowercase/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/multiplesummaries/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/music/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/newrank/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/orderilscripts/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/position_array/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/position_attribute/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/position_extra/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/prefixexactattribute/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/ranktypes/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/schemainheritance/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/structanyorder/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/tokenization/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/types/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/uri_array/ilscripts.cfg2
-rw-r--r--config-model/src/test/derived/uri_wset/ilscripts.cfg2
-rw-r--r--config-model/src/test/java/com/yahoo/schema/SchemaTestCase.java6
-rw-r--r--config-model/src/test/java/com/yahoo/schema/derived/VsmFieldsTestCase.java3
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java31
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java13
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/ContainerInCloudValidatorTest.java6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java17
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java10
52 files changed, 104 insertions, 162 deletions
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 c8f088509c5..befe57a97e4 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
@@ -13,7 +13,6 @@ import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeResources;
-import com.yahoo.config.provision.NodeResources.DiskSpeed;
import com.yahoo.config.provision.ProvisionLogger;
import java.util.ArrayList;
@@ -310,9 +309,7 @@ public class InMemoryProvisioner implements HostProvisioner {
if (a.memoryGb() < b.memoryGb()) return -1;
if (a.diskGb() > b.diskGb()) return 1;
if (a.diskGb() < b.diskGb()) return -1;
- if (a.vcpu() > b.vcpu()) return 1;
- if (a.vcpu() < b.vcpu()) return -1;
- return 0;
+ return Double.compare(a.vcpu(), b.vcpu());
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java
index 482c4477cdc..9cf5fe84c21 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java
@@ -18,7 +18,6 @@ public class JvmHeapSizeValidator implements Validator {
@Override
public void validate(Context context) {
- if (!context.deployState().featureFlags().dynamicHeapSize()) return;
if (!context.deployState().isHostedTenantApplication(context.model().getAdmin().getApplicationType())) return;
context.model().getContainerClusters().forEach((clusterId, appCluster) -> {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
index 9896ca95e97..ed7646b3066 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
@@ -101,7 +101,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
private int zookeeperSessionTimeoutSeconds = 30;
private final int transport_events_before_wakeup;
private final int transport_connections_per_target;
- private final boolean dynamicHeapSize;
/** The heap size % of total memory available to the JVM process. */
private final int heapSizePercentageOfAvailableMemory;
@@ -115,7 +114,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
public ApplicationContainerCluster(TreeConfigProducer<?> parent, String configSubId, String clusterId, DeployState deployState) {
super(parent, configSubId, clusterId, deployState, true, 10);
this.tlsClientAuthority = deployState.tlsClientAuthority();
- dynamicHeapSize = deployState.featureFlags().dynamicHeapSize();
previousHosts = Collections.unmodifiableSet(deployState.getPreviousModel().stream()
.map(Model::allocatedHosts)
.map(AllocatedHosts::getHosts)
@@ -215,10 +213,8 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
if (getContainers().isEmpty()) return Optional.of(JvmMemoryPercentage.of(availableMemoryPercentage)); // Node memory is not known
// Node memory is known so convert available memory percentage to node memory percentage
- double totalMemory = dynamicHeapSize
- ? getContainers().stream().mapToDouble(c -> c.getHostResource().realResources().memoryGb()).min().orElseThrow()
- : getContainers().get(0).getHostResource().realResources().memoryGb();
- double jvmHeapDeductionGb = dynamicHeapSize ? onnxModelCostCalculator.aggregatedModelCostInBytes() / (1024D * 1024 * 1024) : 0;
+ double totalMemory = getContainers().stream().mapToDouble(c -> c.getHostResource().realResources().memoryGb()).min().orElseThrow();
+ double jvmHeapDeductionGb = onnxModelCostCalculator.aggregatedModelCostInBytes() / (1024D * 1024 * 1024);
double availableMemory = Math.max(0, totalMemory - Host.memoryOverheadGb - jvmHeapDeductionGb);
int memoryPercentage = (int) (availableMemory / totalMemory * availableMemoryPercentage);
logger.log(FINE, () -> "cluster id '%s': memoryPercentage=%d, availableMemory=%f, totalMemory=%f, availableMemoryPercentage=%d, jvmHeapDeductionGb=%f"
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java
index 4e56d1d1d5a..1254f8e110a 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java
@@ -27,7 +27,6 @@ import com.yahoo.vespa.model.container.docproc.ContainerDocproc;
import com.yahoo.vespa.model.container.docproc.DocprocChain;
import com.yahoo.vespa.model.container.docproc.DocprocChains;
import com.yahoo.vespa.model.content.cluster.ContentCluster;
-import com.yahoo.vespa.model.search.IndexedSearchCluster;
import com.yahoo.vespa.model.search.IndexingDocproc;
import com.yahoo.vespa.model.search.IndexingDocprocChain;
import com.yahoo.vespa.model.search.SearchCluster;
@@ -215,25 +214,21 @@ public class Content extends ConfigModel {
private void buildIndexingClusters(Content content, ConfigModelContext modelContext,
ApplicationConfigProducerRoot root) {
var search = content.getCluster().getSearch();
- if (!search.getIndexingDocproc().isPresent()) {
- return;
- }
- var indexingDocproc = search.getIndexingDocproc().get();
+ var indexingDocproc = search.getIndexingDocproc();
if (indexingDocproc.hasExplicitCluster()) {
setExistingIndexingCluster(content, indexingDocproc, content.containers);
} else {
- if (search.hasIndexedCluster()) {
- setContainerAsIndexingCluster(search.getIndexed(), content, modelContext, root);
- }
+ setContainerAsIndexingCluster(search.getSearchNodes(), indexingDocproc, content, modelContext, root);
}
}
- private void setContainerAsIndexingCluster(IndexedSearchCluster indexedSearchCluster,
+ private void setContainerAsIndexingCluster(List<SearchNode> cluster,
+ IndexingDocproc indexingDocproc,
Content content,
ConfigModelContext modelContext,
ApplicationConfigProducerRoot root) {
if (content.containers.isEmpty()) {
- createImplicitIndexingCluster(indexedSearchCluster, content, modelContext, root);
+ createImplicitIndexingCluster(cluster, indexingDocproc, content, modelContext, root);
} else {
ContainerCluster<?> targetCluster = getContainerWithDocproc(content.containers);
if (targetCluster == null)
@@ -242,7 +237,6 @@ public class Content extends ConfigModel {
targetCluster = content.containers.iterator().next().getCluster();
addDocproc(targetCluster);
- var indexingDocproc = indexedSearchCluster.getIndexingDocproc();
indexingDocproc.setClusterName(targetCluster.getName());
addIndexingChainsTo(targetCluster, content, indexingDocproc);
}
@@ -303,11 +297,12 @@ public class Content extends ConfigModel {
}
/** Create a new container cluster for indexing and add it to the Vespa model */
- private void createImplicitIndexingCluster(IndexedSearchCluster cluster,
+ private void createImplicitIndexingCluster(List<SearchNode> cluster,
+ IndexingDocproc indexingDocproc,
Content content,
ConfigModelContext modelContext,
ApplicationConfigProducerRoot root) {
- String indexerName = cluster.getIndexingDocproc().getClusterName(content.getCluster().getName());
+ String indexerName = indexingDocproc.getClusterName(content.getCluster().getName());
TreeConfigProducer<AnyConfigProducer> parent = getDocProc(root);
ApplicationContainerCluster indexingCluster = new ApplicationContainerCluster(parent, "cluster." + indexerName, indexerName, modelContext.getDeployState());
ContainerModel indexingClusterModel = new ContainerModel(modelContext.withParent(parent).withId(indexingCluster.getSubId()));
@@ -323,7 +318,7 @@ public class Content extends ConfigModel {
List<ApplicationContainer> nodes = new ArrayList<>();
int index = 0;
Set<HostResource> processedHosts = new LinkedHashSet<>();
- for (SearchNode searchNode : cluster.getSearchNodes()) {
+ for (SearchNode searchNode : cluster) {
HostResource host = searchNode.getHostResource();
if (!processedHosts.contains(host)) {
String containerName = String.valueOf(searchNode.getDistributionKey());
@@ -340,7 +335,7 @@ public class Content extends ConfigModel {
indexingCluster.addContainers(nodes);
addIndexingChain(indexingCluster);
- cluster.getIndexingDocproc().setChain(indexingCluster.getDocprocChains().allChains().getComponent(IndexingDocprocChain.NAME));
+ indexingDocproc.setChain(indexingCluster.getDocprocChains().allChains().getComponent(IndexingDocprocChain.NAME));
}
private ContainerCluster<?> getContainerWithDocproc(Collection<ContainerModel> containers) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
index 1420cd82247..0027a9ca45c 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
@@ -58,7 +58,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
/** The single, indexed search cluster this sets up (supporting multiple document types), or null if none */
private IndexedSearchCluster indexedCluster;
- private Optional<IndexingDocproc> indexingDocproc;
+ private final IndexingDocproc indexingDocproc;
private Redundancy redundancy;
private final String clusterName;
@@ -208,7 +208,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
double fractionOfMemoryReserved)
{
super(parent, "search");
- this.indexingDocproc = Optional.empty();
+ this.indexingDocproc = new IndexingDocproc();
this.clusterName = clusterName;
this.documentDefinitions = documentDefinitions;
this.globallyDistributedDocuments = globallyDistributedDocuments;
@@ -262,10 +262,6 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
throw new IllegalArgumentException("Duplicate indexed cluster '" + indexedCluster.getClusterName() + "'");
}
indexedCluster = (IndexedSearchCluster)sc;
- if (indexingDocproc.isPresent()) {
- throw new IllegalArgumentException("Indexing docproc has previously been setup for streaming search");
- }
- indexingDocproc = Optional.of(indexedCluster.getIndexingDocproc());
}
clusters.put(sc.getClusterName(), sc);
}
@@ -483,12 +479,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
public Map<String, SearchCluster> getClusters() { return clusters; }
public IndexedSearchCluster getIndexed() { return indexedCluster; }
public boolean hasIndexedCluster() { return indexedCluster != null; }
- public Optional<IndexingDocproc> getIndexingDocproc() { return indexingDocproc; }
- public void setupStreamingSearchIndexingDocProc() {
- if (indexingDocproc.isEmpty()) {
- indexingDocproc = Optional.of(new IndexingDocproc());
- }
- }
+ public IndexingDocproc getIndexingDocproc() { return indexingDocproc; }
public String getClusterName() { return clusterName; }
@Override
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 7c48ec11729..791faa401ed 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
@@ -209,20 +209,10 @@ public class ContentCluster extends TreeConfigProducer<AnyConfigProducer> implem
docprocChain = docprocChain.trim();
}
if (docprocCluster != null && !docprocCluster.isEmpty()) {
- if (!c.getSearch().hasIndexedCluster() && c.getSearch().getIndexingDocproc().isEmpty() &&
- docprocChain != null && !docprocChain.isEmpty()) {
- c.getSearch().setupStreamingSearchIndexingDocProc();
- }
- var indexingDocproc = c.getSearch().getIndexingDocproc();
- if (indexingDocproc.isPresent()) {
- indexingDocproc.get().setClusterName(docprocCluster);
- }
+ c.getSearch().getIndexingDocproc().setClusterName(docprocCluster);
}
if (docprocChain != null && !docprocChain.isEmpty()) {
- var indexingDocproc = c.getSearch().getIndexingDocproc();
- if (indexingDocproc.isPresent()) {
- indexingDocproc.get().setChainName(docprocChain);
- }
+ c.getSearch().getIndexingDocproc().setChainName(docprocChain);
}
}
@@ -301,10 +291,7 @@ public class ContentCluster extends TreeConfigProducer<AnyConfigProducer> implem
Objects.requireNonNull(admin.getLogserver(), "logserver cannot be null");
List<HostResource> host = List.of(admin.getLogserver().getHostResource());
admin.setClusterControllers(createClusterControllers(new ClusterControllerCluster(admin, "standalone", deployState),
- host,
- clusterName,
- true,
- deployState),
+ host, clusterName, true, deployState),
deployState);
}
clusterControllers = admin.getClusterControllers();
@@ -457,7 +444,6 @@ public class ContentCluster extends TreeConfigProducer<AnyConfigProducer> implem
@Override
public void getConfig(MessagetyperouteselectorpolicyConfig.Builder builder) {
- if (getSearch().getIndexingDocproc().isEmpty()) return;
DocumentProtocol.getConfig(builder, getConfigId());
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/routing/DocumentProtocol.java b/config-model/src/main/java/com/yahoo/vespa/model/routing/DocumentProtocol.java
index d555d13c09c..1c8567b4079 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/routing/DocumentProtocol.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/routing/DocumentProtocol.java
@@ -110,11 +110,7 @@ public final class DocumentProtocol implements Protocol,
for (ContentCluster cluster : Content.getContentClusters(repo)) {
DocumentProtocolPoliciesConfig.Cluster.Builder clusterBuilder = new DocumentProtocolPoliciesConfig.Cluster.Builder();
addSelector(cluster.getConfigId(), cluster.getRoutingSelector(), clusterBuilder);
- if (cluster.getSearch().getIndexingDocproc().isPresent())
- addRoutes(getDirectRouteName(cluster.getConfigId()), getIndexedRouteName(cluster.getConfigId()), clusterBuilder);
- else
- clusterBuilder.defaultRoute(cluster.getConfigId());
-
+ addRoutes(getDirectRouteName(cluster.getConfigId()), getIndexedRouteName(cluster.getConfigId()), clusterBuilder);
builder.cluster(cluster.getConfigId(), clusterBuilder);
}
}
@@ -226,18 +222,13 @@ public final class DocumentProtocol implements Protocol,
private static void addContentRouting(List<ContentCluster> content, RoutingTableSpec table) {
for (ContentCluster cluster : content) {
RouteSpec spec = new RouteSpec(cluster.getConfigId());
-
- if (cluster.getSearch().getIndexingDocproc().isPresent()) {
- var indexingDocproc = cluster.getSearch().getIndexingDocproc().get();
- table.addRoute(spec.addHop("[MessageType:" + cluster.getConfigId() + "]"));
- table.addRoute(new RouteSpec(getIndexedRouteName(cluster.getConfigId()))
- .addHop(indexingDocproc.getServiceName())
- .addHop("[Content:cluster=" + cluster.getName() + "]"));
- table.addRoute(new RouteSpec(getDirectRouteName(cluster.getConfigId()))
- .addHop("[Content:cluster=" + cluster.getName() + "]"));
- } else {
- table.addRoute(spec.addHop("[Content:cluster=" + cluster.getName() + "]"));
- }
+ var indexingDocproc = cluster.getSearch().getIndexingDocproc();
+ table.addRoute(spec.addHop("[MessageType:" + cluster.getConfigId() + "]"));
+ table.addRoute(new RouteSpec(getIndexedRouteName(cluster.getConfigId()))
+ .addHop(indexingDocproc.getServiceName())
+ .addHop("[Content:cluster=" + cluster.getName() + "]"));
+ table.addRoute(new RouteSpec(getDirectRouteName(cluster.getConfigId()))
+ .addHop("[Content:cluster=" + cluster.getName() + "]"));
table.addRoute(new RouteSpec("storage/cluster." + cluster.getName())
.addHop("route:" + cluster.getConfigId()));
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
index a79bc14db52..77c6f8f99c4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
@@ -41,7 +41,6 @@ public class IndexedSearchCluster extends SearchCluster
DispatchNodesConfig.Producer,
ConfigInstance.Producer {
- private final IndexingDocproc indexingDocproc;
private Tuning tuning;
private SearchCoverage searchCoverage;
@@ -68,7 +67,6 @@ public class IndexedSearchCluster extends SearchCluster
public IndexedSearchCluster(TreeConfigProducer<AnyConfigProducer> parent, String clusterName, int index, ModelContext.FeatureFlags featureFlags) {
super(parent, clusterName, index);
- indexingDocproc = new IndexingDocproc();
documentDbsConfigProducer = new MultipleDocumentDatabasesConfigProducer(this, documentDbs);
defaultDispatchPolicy = DispatchTuning.Builder.toDispatchPolicy(featureFlags.queryDispatchPolicy());
dispatchWarmup = featureFlags.queryDispatchWarmup();
@@ -78,9 +76,6 @@ public class IndexedSearchCluster extends SearchCluster
@Override
protected IndexingMode getIndexingMode() { return IndexingMode.REALTIME; }
- public IndexingDocproc getIndexingDocproc() { return indexingDocproc; }
-
-
public void addSearcher(SearchNode searcher) {
searchNodes.add(searcher);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocproc.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocproc.java
index 4f301f6df9a..2032720db96 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocproc.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexingDocproc.java
@@ -3,6 +3,8 @@ package com.yahoo.vespa.model.search;
import com.yahoo.vespa.model.container.docproc.DocprocChain;
+import java.util.Objects;
+
/**
* Utility class to track configuration for which indexing docproc to use by a search cluster.
*/
@@ -51,7 +53,7 @@ public class IndexingDocproc {
}
public String getServiceName() {
- return chain.getServiceName();
+ return Objects.requireNonNull(chain).getServiceName();
}
/**
diff --git a/config-model/src/test/derived/advanced/ilscripts.cfg b/config-model/src/test/derived/advanced/ilscripts.cfg
index b78cb892501..c3cfb3774cd 100644
--- a/config-model/src/test/derived/advanced/ilscripts.cfg
+++ b/config-model/src/test/derived/advanced/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "advanced"
ilscript[].docfield[] "debug_src"
diff --git a/config-model/src/test/derived/annotationsimplicitstruct/ilscripts.cfg b/config-model/src/test/derived/annotationsimplicitstruct/ilscripts.cfg
index e7fefe0035a..bd8a0278d55 100644
--- a/config-model/src/test/derived/annotationsimplicitstruct/ilscripts.cfg
+++ b/config-model/src/test/derived/annotationsimplicitstruct/ilscripts.cfg
@@ -1,3 +1,3 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "annotationsimplicitstruct"
diff --git a/config-model/src/test/derived/annotationsinheritance/ilscripts.cfg b/config-model/src/test/derived/annotationsinheritance/ilscripts.cfg
index 22c4259ddac..7622f455903 100644
--- a/config-model/src/test/derived/annotationsinheritance/ilscripts.cfg
+++ b/config-model/src/test/derived/annotationsinheritance/ilscripts.cfg
@@ -1,3 +1,3 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "annotationsinheritance"
diff --git a/config-model/src/test/derived/annotationsinheritance2/ilscripts.cfg b/config-model/src/test/derived/annotationsinheritance2/ilscripts.cfg
index bca5a004d1a..e9aa34ad573 100644
--- a/config-model/src/test/derived/annotationsinheritance2/ilscripts.cfg
+++ b/config-model/src/test/derived/annotationsinheritance2/ilscripts.cfg
@@ -1,3 +1,3 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "annotationsinheritance2"
diff --git a/config-model/src/test/derived/annotationsreference/ilscripts.cfg b/config-model/src/test/derived/annotationsreference/ilscripts.cfg
index db575631ba3..8c338f00ae1 100644
--- a/config-model/src/test/derived/annotationsreference/ilscripts.cfg
+++ b/config-model/src/test/derived/annotationsreference/ilscripts.cfg
@@ -1,3 +1,3 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "annotationsreference"
diff --git a/config-model/src/test/derived/annotationssimple/ilscripts.cfg b/config-model/src/test/derived/annotationssimple/ilscripts.cfg
index 744ba043c63..36842dd955f 100644
--- a/config-model/src/test/derived/annotationssimple/ilscripts.cfg
+++ b/config-model/src/test/derived/annotationssimple/ilscripts.cfg
@@ -1,3 +1,3 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "annotationssimple"
diff --git a/config-model/src/test/derived/arrays/ilscripts.cfg b/config-model/src/test/derived/arrays/ilscripts.cfg
index 0490835db33..cef6de758d0 100644
--- a/config-model/src/test/derived/arrays/ilscripts.cfg
+++ b/config-model/src/test/derived/arrays/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "arrays"
ilscript[].docfield[] "tags"
diff --git a/config-model/src/test/derived/attributeprefetch/ilscripts.cfg b/config-model/src/test/derived/attributeprefetch/ilscripts.cfg
index 771a54359b9..23f2fa610f1 100644
--- a/config-model/src/test/derived/attributeprefetch/ilscripts.cfg
+++ b/config-model/src/test/derived/attributeprefetch/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "prefetch"
ilscript[].docfield[] "singlebyte"
diff --git a/config-model/src/test/derived/attributes/ilscripts.cfg b/config-model/src/test/derived/attributes/ilscripts.cfg
index 42fda653618..3cd40dd94e2 100644
--- a/config-model/src/test/derived/attributes/ilscripts.cfg
+++ b/config-model/src/test/derived/attributes/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "attributes"
ilscript[].docfield[] "a1"
diff --git a/config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg b/config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg
index 04251c1a270..36f5b3d1505 100644
--- a/config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg
+++ b/config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "test"
ilscript[].docfield[] "str_1"
diff --git a/config-model/src/test/derived/complex/ilscripts.cfg b/config-model/src/test/derived/complex/ilscripts.cfg
index 6074333bd24..f5f884bb7f4 100644
--- a/config-model/src/test/derived/complex/ilscripts.cfg
+++ b/config-model/src/test/derived/complex/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "complex"
ilscript[].docfield[] "title"
diff --git a/config-model/src/test/derived/emptydefault/ilscripts.cfg b/config-model/src/test/derived/emptydefault/ilscripts.cfg
index b17920fcaab..fba6d2a3c25 100644
--- a/config-model/src/test/derived/emptydefault/ilscripts.cfg
+++ b/config-model/src/test/derived/emptydefault/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "emptydefault"
ilscript[].docfield[] "one"
diff --git a/config-model/src/test/derived/exactmatch/ilscripts.cfg b/config-model/src/test/derived/exactmatch/ilscripts.cfg
index c24b656c4e7..8cec774181a 100644
--- a/config-model/src/test/derived/exactmatch/ilscripts.cfg
+++ b/config-model/src/test/derived/exactmatch/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "exactmatch"
ilscript[].docfield[] "tag"
diff --git a/config-model/src/test/derived/hnsw_index/ilscripts.cfg b/config-model/src/test/derived/hnsw_index/ilscripts.cfg
index 0c8266336b1..ad4f856dfc9 100644
--- a/config-model/src/test/derived/hnsw_index/ilscripts.cfg
+++ b/config-model/src/test/derived/hnsw_index/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "test"
ilscript[].docfield[] "t1"
diff --git a/config-model/src/test/derived/id/ilscripts.cfg b/config-model/src/test/derived/id/ilscripts.cfg
index 7543c76a12a..9c952fe4acc 100644
--- a/config-model/src/test/derived/id/ilscripts.cfg
+++ b/config-model/src/test/derived/id/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "id"
ilscript[].docfield[] "uri"
diff --git a/config-model/src/test/derived/indexswitches/ilscripts.cfg b/config-model/src/test/derived/indexswitches/ilscripts.cfg
index 5cda0a9fdc7..6c95fa24767 100644
--- a/config-model/src/test/derived/indexswitches/ilscripts.cfg
+++ b/config-model/src/test/derived/indexswitches/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "indexswitches"
ilscript[].docfield[] "title"
diff --git a/config-model/src/test/derived/inheritance/ilscripts.cfg b/config-model/src/test/derived/inheritance/ilscripts.cfg
index 91410489de8..f9ada266814 100644
--- a/config-model/src/test/derived/inheritance/ilscripts.cfg
+++ b/config-model/src/test/derived/inheritance/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "child"
ilscript[].docfield[] "onlygrandparent"
diff --git a/config-model/src/test/derived/language/ilscripts.cfg b/config-model/src/test/derived/language/ilscripts.cfg
index 4858788095c..acc715a0a01 100644
--- a/config-model/src/test/derived/language/ilscripts.cfg
+++ b/config-model/src/test/derived/language/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "language"
ilscript[].docfield[] "language"
diff --git a/config-model/src/test/derived/lowercase/ilscripts.cfg b/config-model/src/test/derived/lowercase/ilscripts.cfg
index fe36dc5daef..b0463f86755 100644
--- a/config-model/src/test/derived/lowercase/ilscripts.cfg
+++ b/config-model/src/test/derived/lowercase/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "lowercase"
ilscript[].docfield[] "single_field_source"
diff --git a/config-model/src/test/derived/multiplesummaries/ilscripts.cfg b/config-model/src/test/derived/multiplesummaries/ilscripts.cfg
index 2f4ecdb1712..87b5880c0db 100644
--- a/config-model/src/test/derived/multiplesummaries/ilscripts.cfg
+++ b/config-model/src/test/derived/multiplesummaries/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "multiplesummaries"
ilscript[].docfield[] "a"
diff --git a/config-model/src/test/derived/music/ilscripts.cfg b/config-model/src/test/derived/music/ilscripts.cfg
index ba292c4013a..7ce7ea18396 100644
--- a/config-model/src/test/derived/music/ilscripts.cfg
+++ b/config-model/src/test/derived/music/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "music"
ilscript[].docfield[] "bgndata"
diff --git a/config-model/src/test/derived/newrank/ilscripts.cfg b/config-model/src/test/derived/newrank/ilscripts.cfg
index ec46d9acc68..e16de1ec47e 100644
--- a/config-model/src/test/derived/newrank/ilscripts.cfg
+++ b/config-model/src/test/derived/newrank/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "newrank"
ilscript[].docfield[] "bgndata"
diff --git a/config-model/src/test/derived/orderilscripts/ilscripts.cfg b/config-model/src/test/derived/orderilscripts/ilscripts.cfg
index c41939b34d1..32b9f4d7b05 100644
--- a/config-model/src/test/derived/orderilscripts/ilscripts.cfg
+++ b/config-model/src/test/derived/orderilscripts/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "orderilscripts"
ilscript[].docfield[] "foo"
diff --git a/config-model/src/test/derived/position_array/ilscripts.cfg b/config-model/src/test/derived/position_array/ilscripts.cfg
index f96542147b4..662b8f9380b 100644
--- a/config-model/src/test/derived/position_array/ilscripts.cfg
+++ b/config-model/src/test/derived/position_array/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "position_array"
ilscript[].docfield[] "pos"
diff --git a/config-model/src/test/derived/position_attribute/ilscripts.cfg b/config-model/src/test/derived/position_attribute/ilscripts.cfg
index c2c66db4f77..1060e9b842d 100644
--- a/config-model/src/test/derived/position_attribute/ilscripts.cfg
+++ b/config-model/src/test/derived/position_attribute/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "position_attribute"
ilscript[].docfield[] "pos"
diff --git a/config-model/src/test/derived/position_extra/ilscripts.cfg b/config-model/src/test/derived/position_extra/ilscripts.cfg
index 110b5e40644..95681924fac 100644
--- a/config-model/src/test/derived/position_extra/ilscripts.cfg
+++ b/config-model/src/test/derived/position_extra/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "position_extra"
ilscript[].docfield[] "pos_str"
diff --git a/config-model/src/test/derived/prefixexactattribute/ilscripts.cfg b/config-model/src/test/derived/prefixexactattribute/ilscripts.cfg
index a2ada9792a0..5af86ee0152 100644
--- a/config-model/src/test/derived/prefixexactattribute/ilscripts.cfg
+++ b/config-model/src/test/derived/prefixexactattribute/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "prefixexactattribute"
ilscript[].docfield[] "indexfield0"
diff --git a/config-model/src/test/derived/ranktypes/ilscripts.cfg b/config-model/src/test/derived/ranktypes/ilscripts.cfg
index 9f82e75986c..f8015a84f29 100644
--- a/config-model/src/test/derived/ranktypes/ilscripts.cfg
+++ b/config-model/src/test/derived/ranktypes/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "ranktypes"
ilscript[].docfield[] "title"
diff --git a/config-model/src/test/derived/schemainheritance/ilscripts.cfg b/config-model/src/test/derived/schemainheritance/ilscripts.cfg
index 0a8e10859a0..e20fac6a5c0 100644
--- a/config-model/src/test/derived/schemainheritance/ilscripts.cfg
+++ b/config-model/src/test/derived/schemainheritance/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "child"
ilscript[].docfield[] "pf1"
diff --git a/config-model/src/test/derived/structanyorder/ilscripts.cfg b/config-model/src/test/derived/structanyorder/ilscripts.cfg
index d89bb92df53..9db111fc20e 100644
--- a/config-model/src/test/derived/structanyorder/ilscripts.cfg
+++ b/config-model/src/test/derived/structanyorder/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "annotationsimplicitstruct"
ilscript[].docfield[] "structfield"
diff --git a/config-model/src/test/derived/tokenization/ilscripts.cfg b/config-model/src/test/derived/tokenization/ilscripts.cfg
index 4414ad0f7cb..6d62a8a941d 100644
--- a/config-model/src/test/derived/tokenization/ilscripts.cfg
+++ b/config-model/src/test/derived/tokenization/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "tokenization"
ilscript[].docfield[] "text"
diff --git a/config-model/src/test/derived/types/ilscripts.cfg b/config-model/src/test/derived/types/ilscripts.cfg
index b3da5f8e727..31628ac5573 100644
--- a/config-model/src/test/derived/types/ilscripts.cfg
+++ b/config-model/src/test/derived/types/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "types"
ilscript[].docfield[] "abyte"
diff --git a/config-model/src/test/derived/uri_array/ilscripts.cfg b/config-model/src/test/derived/uri_array/ilscripts.cfg
index 90664bba50d..a2985d48743 100644
--- a/config-model/src/test/derived/uri_array/ilscripts.cfg
+++ b/config-model/src/test/derived/uri_array/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "uri_array"
ilscript[].docfield[] "my_uri"
diff --git a/config-model/src/test/derived/uri_wset/ilscripts.cfg b/config-model/src/test/derived/uri_wset/ilscripts.cfg
index 1ada759a711..be1332d44b8 100644
--- a/config-model/src/test/derived/uri_wset/ilscripts.cfg
+++ b/config-model/src/test/derived/uri_wset/ilscripts.cfg
@@ -1,4 +1,4 @@
-maxtermoccurrences 100
+maxtermoccurrences 1000
fieldmatchmaxlength 1000000
ilscript[].doctype "uri_wset"
ilscript[].docfield[] "my_uri"
diff --git a/config-model/src/test/java/com/yahoo/schema/SchemaTestCase.java b/config-model/src/test/java/com/yahoo/schema/SchemaTestCase.java
index e920672646f..c959634019d 100644
--- a/config-model/src/test/java/com/yahoo/schema/SchemaTestCase.java
+++ b/config-model/src/test/java/com/yahoo/schema/SchemaTestCase.java
@@ -1,17 +1,11 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.schema;
-import com.yahoo.document.Document;
import com.yahoo.schema.document.Stemming;
import com.yahoo.schema.parser.ParseException;
import com.yahoo.schema.processing.ImportedFieldsResolver;
import com.yahoo.schema.processing.OnnxModelTypeResolver;
import com.yahoo.vespa.documentmodel.DocumentSummary;
-import com.yahoo.vespa.indexinglanguage.expressions.AttributeExpression;
-import com.yahoo.vespa.indexinglanguage.expressions.Expression;
-import com.yahoo.vespa.indexinglanguage.expressions.InputExpression;
-import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression;
-import com.yahoo.vespa.indexinglanguage.expressions.StatementExpression;
import com.yahoo.vespa.model.test.utils.DeployLoggerStub;
import org.junit.jupiter.api.Test;
diff --git a/config-model/src/test/java/com/yahoo/schema/derived/VsmFieldsTestCase.java b/config-model/src/test/java/com/yahoo/schema/derived/VsmFieldsTestCase.java
index 423bc0b1798..61d636d911f 100644
--- a/config-model/src/test/java/com/yahoo/schema/derived/VsmFieldsTestCase.java
+++ b/config-model/src/test/java/com/yahoo/schema/derived/VsmFieldsTestCase.java
@@ -32,7 +32,8 @@ public class VsmFieldsTestCase {
private static VsmfieldsConfig vsmfieldsConfig(Schema schema) {
VsmFields vsmFields = new VsmFields(schema);
VsmfieldsConfig.Builder cfgBuilder = new VsmfieldsConfig.Builder();
- vsmFields.getConfig(cfgBuilder);return cfgBuilder.build();
+ vsmFields.getConfig(cfgBuilder);
+ return cfgBuilder.build();
}
@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 af825ca544a..ac431f081ed 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
@@ -6,15 +6,18 @@ import ai.vespa.metricsproxy.metric.dimensions.NodeDimensionsConfig;
import ai.vespa.metricsproxy.metric.dimensions.PublicDimensions;
import ai.vespa.metricsproxy.rpc.RpcConnectorConfig;
import ai.vespa.metricsproxy.service.VespaServicesConfig;
+import com.yahoo.config.model.api.HostInfo;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.vespa.model.VespaModel;
import org.junit.jupiter.api.Test;
+import java.util.Iterator;
+
import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER;
+import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.CLUSTER_CONFIG_ID;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.CONTAINER_CONFIG_ID;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.TestMode.hosted;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.TestMode.self_hosted;
-import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.containerConfigId;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getModel;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getNodeDimensionsConfig;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getRpcConnectorConfig;
@@ -104,12 +107,22 @@ public class MetricsProxyContainerTest {
assertEquals("", container.getPreLoad());
}
+ String hostedConfigIdForHost(VespaModel model, int index) {
+ HostInfo hostInfo = null;
+ for (Iterator<HostInfo> iter = model.getHosts().iterator(); iter.hasNext(); index--) {
+ hostInfo = iter.next();
+ if (index == 0) break;
+ }
+ return CLUSTER_CONFIG_ID + "/" + hostInfo.getHostname();
+ }
+
@Test
void hosted_application_propagates_node_dimensions() {
String services = hostedServicesWithContent();
- VespaModel hostedModel = getModel(services, hosted);
- assertEquals(4, hostedModel.getHosts().size());
- String configId = containerConfigId(hostedModel, hosted);
+ VespaModel hostedModel = getModel(services, hosted, new DeployState.Builder(), 5);
+ assertEquals(5, hostedModel.getHosts().size());
+ String configId = hostedConfigIdForHost(hostedModel, 1);
+
NodeDimensionsConfig config = getNodeDimensionsConfig(hostedModel, configId);
assertEquals("content", config.dimensions(PublicDimensions.INTERNAL_CLUSTER_TYPE));
@@ -120,9 +133,10 @@ public class MetricsProxyContainerTest {
@Test
void metrics_v2_handler_is_set_up_with_node_info_config() {
String services = hostedServicesWithContent();
- VespaModel hostedModel = getModel(services, hosted);
+ VespaModel hostedModel = getModel(services, hosted, new DeployState.Builder(), 5);
- var container = (MetricsProxyContainer) hostedModel.id2producer().get(containerConfigId(hostedModel, hosted));
+ String configId = hostedConfigIdForHost(hostedModel, 1);
+ var container = (MetricsProxyContainer) hostedModel.id2producer().get(configId);
var handlers = container.getHandlers().getComponents();
assertEquals(1, handlers.size());
@@ -136,7 +150,7 @@ public class MetricsProxyContainerTest {
@Test
void vespa_services_config_has_all_services() {
VespaServicesConfig vespaServicesConfig = getVespaServicesConfig(hostedServicesWithContent());
- assertEquals(9, vespaServicesConfig.service().size());
+ assertEquals(10, vespaServicesConfig.service().size());
for (var service : vespaServicesConfig.service()) {
if (service.configId().equals("admin/cluster-controllers/0")) {
@@ -178,6 +192,9 @@ public class MetricsProxyContainerTest {
private static String hostedServicesWithContent() {
return String.join("\n",
"<services>",
+ " <container version='1.0' id='foo'>",
+ " <nodes count='1'/>",
+ " </container>",
" <content version='1.0' id='my-content'>",
" <redundancy>1</redundancy>" +
" <documents />",
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java
index 332426ff9a8..c356db31d15 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java
@@ -12,7 +12,6 @@ import ai.vespa.metricsproxy.service.VespaServicesConfig;
import com.yahoo.config.model.api.ApplicationClusterEndpoint;
import com.yahoo.config.model.api.ContainerEndpoint;
import com.yahoo.config.model.deploy.DeployState;
-import com.yahoo.search.config.QrStartConfig;
import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer;
import com.yahoo.vespa.model.test.VespaModelTester;
@@ -47,7 +46,7 @@ class MetricsProxyModelTester {
}
static VespaModel getModel(String servicesXml, TestMode testMode, DeployState.Builder builder) {
- return getModel(servicesXml, testMode, new DeployState.Builder(), 4);
+ return getModel(servicesXml, testMode, builder, 4);
}
static VespaModel getModel(String servicesXml, TestMode testMode, DeployState.Builder builder, int hostCount) {
@@ -62,12 +61,6 @@ class MetricsProxyModelTester {
return tester.createModel(servicesXml, true, builder);
}
- static String containerConfigId(VespaModel model, MetricsProxyModelTester.TestMode mode) {
- return (mode == hosted)
- ? CLUSTER_CONFIG_ID + "/" + model.getHosts().iterator().next().getHostname()
- : CONTAINER_CONFIG_ID;
- }
-
static String servicesWithAdminOnly() {
return String.join("\n",
"<services>",
@@ -112,10 +105,6 @@ class MetricsProxyModelTester {
return model.getConfig(ApplicationDimensionsConfig.class, CLUSTER_CONFIG_ID);
}
- static QrStartConfig getQrStartConfig(VespaModel model, String hostname) {
- return model.getConfig(QrStartConfig.class, CLUSTER_CONFIG_ID + "/" + hostname);
- }
-
static NodeDimensionsConfig getNodeDimensionsConfig(VespaModel model, String configId) {
return model.getConfig(NodeDimensionsConfig.class, configId);
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ContainerInCloudValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ContainerInCloudValidatorTest.java
index b6484049eaf..61cde1e1c13 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ContainerInCloudValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ContainerInCloudValidatorTest.java
@@ -42,12 +42,6 @@ public class ContainerInCloudValidatorTest {
String servicesXml = """
<services version='1.0'>
%s
- <content id='foo' version='1.0'>
- <redundancy>2</redundancy>
- <documents>
- </documents>
- <nodes count='2' />
- </content>
</services>
""".formatted(container);
ApplicationPackage app = new MockApplicationPackage.Builder()
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java
index 29279635918..42ca2a8001b 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java
@@ -24,7 +24,6 @@ import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
@@ -33,7 +32,6 @@ import java.util.stream.Stream;
import static com.yahoo.config.model.test.MockApplicationPackage.BOOK_SCHEMA;
import static com.yahoo.config.model.test.MockApplicationPackage.MUSIC_SCHEMA;
-import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
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 43ea0191ca5..f8adb18a2c3 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
@@ -213,7 +213,7 @@ public class ContentBuilderTest extends DomBuilderTest {
assertEquals(1, cluster.getRoot().hostSystem().getHosts().size());
HostResource h = cluster.getRoot().hostSystem().getHost("mockhost");
String [] expectedServices = {
- "logd", "configproxy", "config-sentinel", "configserver", "logserver",
+ "logd", "configproxy", "config-sentinel", "configserver", "container", "logserver",
"slobrok", "storagenode", "distributor", "searchnode", "transactionlogserver",
CLUSTERCONTROLLER_CONTAINER.serviceName, METRICS_PROXY_CONTAINER.serviceName
};
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 d4087c0acf9..a2f68ec8f18 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
@@ -1440,41 +1440,34 @@ public class ContentClusterTest extends ContentBaseTest {
assertGroupsAllowedDown(2, 1, 2);
}
- private void assertIndexingDocprocEnabled(boolean indexed, boolean force, boolean expEnabled) {
+ private void assertIndexingDocprocEnabled(boolean indexed) {
String services = "<?xml version='1.0' encoding='UTF-8' ?>" +
"<services version='1.0'>" +
" <container id='default' version='1.0'>" +
- " <document-processing/>" +
+ " <search/>" +
" </container>" +
" <content id='search' version='1.0'>" +
" <redundancy>1</redundancy>" +
" <documents>" +
- " <document-processing cluster='default'" + (force ? " chain='indexing'" : "") + "/>" +
" <document type='type1' mode='" + (indexed ? "index" : "streaming") + "'/>" +
" </documents>" +
" </content>" +
"</services>";
VespaModel model = createEnd2EndOneNode(new TestProperties(), services);
var searchCluster = model.getContentClusters().get("search").getSearch();
- assertEquals(expEnabled, searchCluster.getIndexingDocproc().isPresent());
+ assertEquals("default", searchCluster.getIndexingDocproc().getClusterName("search"));
}
@Test
void testIndexingDocprocEnabledWhenIndexMode()
{
- assertIndexingDocprocEnabled(true, false, true);
+ assertIndexingDocprocEnabled(true);
}
@Test
void testIndexingDocprocNotEnabledWhenStreamingMode()
{
- assertIndexingDocprocEnabled(false, false, false);
- }
-
- @Test
- void testIndexingDocprocEnabledWhenStreamingModeAndForced()
- {
- assertIndexingDocprocEnabled(false, true, true);
+ assertIndexingDocprocEnabled(false);
}
private void assertGroupsAllowedDown(int groupCount, double groupsAllowedDown, int expectedGroupsAllowedDown) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java
index e37999ded12..3defaad549c 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageContentTest.java
@@ -65,9 +65,13 @@ public class StorageContentTest extends ContentBaseTest {
DocumentProtocol protocol = (DocumentProtocol) routing.getProtocols().get(0);
RoutingTableSpec spec = protocol.getRoutingTableSpec();
- assertEquals(1, spec.getNumHops());
- assertEquals("indexing", spec.getHop(0).getName());
- assertEquals("[DocumentRouteSelector]", spec.getHop(0).getSelector());
+ assertEquals(3, spec.getNumHops());
+ assertEquals("docproc/cluster.bar.indexing/chain.indexing", spec.getHop(0).getName());
+ assertEquals("[LoadBalancer:cluster=docproc/cluster.bar.indexing;session=chain.indexing]", spec.getHop(0).getSelector());
+ assertEquals("docproc/cluster.zoo.indexing/chain.indexing", spec.getHop(1).getName());
+ assertEquals("[LoadBalancer:cluster=docproc/cluster.zoo.indexing;session=chain.indexing]", spec.getHop(1).getSelector());
+ assertEquals("indexing", spec.getHop(2).getName());
+ assertEquals("[DocumentRouteSelector]", spec.getHop(2).getSelector());
Map<String, RouteSpec> routes = new TreeMap<>();