diff options
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) |