diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-11 15:05:07 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-11 15:05:07 +0100 |
commit | 0f7a4e4b0ae2902535249cb7a9d9e1acbf6dd503 (patch) | |
tree | 8f584c9642b7a3170b32efa7e44617e3f593a470 /config-model | |
parent | ff0d5bc059ca79c194081082b44f2c6f52f8408f (diff) |
Correctly produce index mode per schema too.
Diffstat (limited to 'config-model')
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) |