summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-03-11 15:05:07 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2024-03-11 15:05:07 +0100
commit0f7a4e4b0ae2902535249cb7a9d9e1acbf6dd503 (patch)
tree8f584c9642b7a3170b32efa7e44617e3f593a470
parentff0d5bc059ca79c194081082b44f2c6f52f8408f (diff)
Correctly produce index mode per schema too.
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java7
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java27
3 files changed, 36 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java b/config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java
index e303e878550..b35918b3460 100644
--- a/config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java
+++ b/config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java
@@ -28,6 +28,7 @@ import java.io.Writer;
public class DerivedConfiguration {
private final Schema schema;
+ private final boolean isStreaming;
private Summaries summaries;
private Juniperrc juniperrc;
private AttributeFields attributeFields;
@@ -67,6 +68,7 @@ public class DerivedConfiguration {
* schema is later modified.
*/
public DerivedConfiguration(Schema schema, DeployState deployState, boolean isStreaming) {
+ this.isStreaming = isStreaming;
try {
Validator.ensureNotNull("Schema", schema);
this.schema = schema;
@@ -150,6 +152,10 @@ public class DerivedConfiguration {
}
}
+ public boolean isStreaming() {
+ return isStreaming;
+ }
+
public Summaries getSummaries() {
return summaries;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
index c0aec7ba0b4..f19af8b62ca 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
@@ -113,8 +113,11 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
@Override
public void getConfig(DocumentdbInfoConfig.Builder builder) {
for (DocumentDatabase db : documentDbs) {
- DocumentdbInfoConfig.Documentdb.Builder docDb = new DocumentdbInfoConfig.Documentdb.Builder();
- docDb.name(db.getName());
+ var docDb = new DocumentdbInfoConfig.Documentdb.Builder()
+ .name(db.getName())
+ .mode(db.getDerivedConfiguration().isStreaming()
+ ? DocumentdbInfoConfig.Documentdb.Mode.Enum.STREAMING
+ : DocumentdbInfoConfig.Documentdb.Mode.Enum.INDEX);
builder.documentdb(docDb);
}
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java
index 5b501bad876..eb4ec1af157 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentDatabaseTestCase.java
@@ -289,8 +289,12 @@ public class DocumentDatabaseTestCase {
{ // documentdb-info config
DocumentdbInfoConfig dcfg = model.getConfig(DocumentdbInfoConfig.class, searcherId);
assertEquals(2, dcfg.documentdb().size());
- assertEquals("type1", dcfg.documentdb(0).name());
- assertEquals("type2", dcfg.documentdb(1).name());
+ var db = dcfg.documentdb(0);
+ assertEquals("type1", db.name());
+ assertEquals(DocumentdbInfoConfig.Documentdb.Mode.INDEX, db.mode());
+ db = dcfg.documentdb(1);
+ assertEquals("type2", db.name());
+ assertEquals(DocumentdbInfoConfig.Documentdb.Mode.INDEX, db.mode());
}
{ // attributes config
AttributesConfig acfg = model.getConfig(AttributesConfig.class, searcherId);
@@ -312,6 +316,7 @@ public class DocumentDatabaseTestCase {
assertEquals(1, dcfg.documentdb().size());
DocumentdbInfoConfig.Documentdb db = dcfg.documentdb(0);
assertEquals("type", db.name());
+ assertEquals(DocumentdbInfoConfig.Documentdb.Mode.STREAMING, db.mode());
}
@Test
@@ -319,6 +324,24 @@ public class DocumentDatabaseTestCase {
assertDocumentDBConfigAvailableForStreaming("streaming");
}
+ @Test
+ void testMixedModeCluster() {
+ // Will soon change
+ List<DocType> sds = List.of(DocType.create("a", "index"), DocType.create("b", "streaming"));
+ var tester = new SchemaTester();
+ var model = tester.createModel(sds, "");
+ DocumentdbInfoConfig indexed_cfg = model.getConfig(DocumentdbInfoConfig.class, "test/search/cluster.test");
+ assertEquals(1, indexed_cfg.documentdb().size());
+ var db = indexed_cfg.documentdb(0);
+ assertEquals("a", db.name());
+ assertEquals(DocumentdbInfoConfig.Documentdb.Mode.INDEX, db.mode());
+ DocumentdbInfoConfig streaming_cfg = model.getConfig(DocumentdbInfoConfig.class, "test/search/cluster.test.b");
+ assertEquals(1, streaming_cfg.documentdb().size());
+ db = streaming_cfg.documentdb(0);
+ assertEquals("b", db.name());
+ assertEquals(DocumentdbInfoConfig.Documentdb.Mode.STREAMING, db.mode());
+ }
+
private void assertAttributesConfigIndependentOfMode(String mode, List<String> sds,
List<String> documentDBConfigIds,
Map<String, List<String>> expectedAttributesMap)