diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2020-12-04 23:26:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-04 23:26:35 +0100 |
commit | 638b4f6cc2b5c5926c4802ef407c596649e169c8 (patch) | |
tree | f794039500efc7990246e96c81668d9baea3d885 /clustercontroller-reindexer/src/test | |
parent | a90709008ec0d108ee9a2e26bda20e39a10424b5 (diff) |
Revert "Jonmv/reindexing over multiple clusters"
Diffstat (limited to 'clustercontroller-reindexer/src/test')
4 files changed, 37 insertions, 47 deletions
diff --git a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java index 7086c36af3f..3ba4083121c 100644 --- a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java +++ b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java @@ -53,7 +53,7 @@ class ReindexerTest { @BeforeEach void setUp() { - database = new ReindexingCurator(new MockCurator(), manager, Duration.ofMillis(1)); + database = new ReindexingCurator(new MockCurator(), "cluster", manager, Duration.ofMillis(1)); } @Test @@ -70,7 +70,7 @@ class ReindexerTest { @Test void throwsWhenLockHeldElsewhere() throws InterruptedException, ExecutionException { Reindexer reindexer = new Reindexer(cluster, Map.of(music, Instant.EPOCH), database, failIfCalled, metric, clock); - Executors.newSingleThreadExecutor().submit(() -> database.lockReindexing("cluster")).get(); + Executors.newSingleThreadExecutor().submit(database::lockReindexing).get(); assertThrows(ReindexingLockException.class, reindexer::reindex); } @@ -102,7 +102,7 @@ class ReindexerTest { // Since "music" is a new document type, it is stored as just reindexed, and nothing else happens. new Reindexer(cluster, Map.of(music, Instant.EPOCH), database, failIfCalled, metric, clock).reindex(); Reindexing reindexing = Reindexing.empty().with(music, Status.ready(Instant.EPOCH).running().successful(Instant.EPOCH)); - assertEquals(reindexing, database.readReindexing("cluster")); + assertEquals(reindexing, database.readReindexing()); assertEquals(Map.of("reindexing.progress", Map.of(Map.of("documenttype", "music", "clusterid", "cluster", "state", "successful"), @@ -125,19 +125,19 @@ class ReindexerTest { // Nothing happens, since it's not yet time. This isn't supposed to happen unless high clock skew. clock.advance(Duration.ofMillis(5)); new Reindexer(cluster, Map.of(music, Instant.ofEpochMilli(10)), database, failIfCalled, metric, clock).reindex(); - assertEquals(reindexing, database.readReindexing("cluster")); + assertEquals(reindexing, database.readReindexing()); // It's time to reindex the "music" documents — let this complete successfully. clock.advance(Duration.ofMillis(10)); AtomicBoolean shutDown = new AtomicBoolean(); Executor executor = Executors.newSingleThreadExecutor(); new Reindexer(cluster, Map.of(music, Instant.ofEpochMilli(10)), database, parameters -> { - database.writeReindexing(Reindexing.empty(), "cluster"); // Wipe database to verify we write data from reindexer. + database.writeReindexing(Reindexing.empty()); // Wipe database to verify we write data from reindexer. executor.execute(() -> parameters.getControlHandler().onDone(VisitorControlHandler.CompletionCode.SUCCESS, "OK")); return () -> shutDown.set(true); }, metric, clock).reindex(); reindexing = reindexing.with(music, Status.ready(clock.instant()).running().successful(clock.instant())); - assertEquals(reindexing, database.readReindexing("cluster")); + assertEquals(reindexing, database.readReindexing()); assertTrue(shutDown.get(), "Session was shut down"); // One more reindexing, this time shut down before visit completes, but after progress is reported. @@ -146,7 +146,7 @@ class ReindexerTest { shutDown.set(false); AtomicReference<Reindexer> aborted = new AtomicReference<>(); aborted.set(new Reindexer(cluster, Map.of(music, Instant.ofEpochMilli(20)), database, parameters -> { - database.writeReindexing(Reindexing.empty(), "cluster"); // Wipe database to verify we write data from reindexer. + database.writeReindexing(Reindexing.empty()); // Wipe database to verify we write data from reindexer. parameters.getControlHandler().onProgress(new ProgressToken()); aborted.get().shutdown(); return () -> { @@ -156,7 +156,7 @@ class ReindexerTest { }, metric, clock)); aborted.get().reindex(); reindexing = reindexing.with(music, Status.ready(clock.instant()).running().progressed(new ProgressToken()).halted()); - assertEquals(reindexing, database.readReindexing("cluster")); + assertEquals(reindexing, database.readReindexing()); assertTrue(shutDown.get(), "Session was shut down"); assertEquals(1.0, // new ProgressToken() is 100% done. metric.metrics().get("reindexing.progress") @@ -168,17 +168,17 @@ class ReindexerTest { clock.advance(Duration.ofMillis(10)); shutDown.set(false); new Reindexer(cluster, Map.of(music, Instant.ofEpochMilli(30)), database, parameters -> { - database.writeReindexing(Reindexing.empty(), "cluster"); // Wipe database to verify we write data from reindexer. + database.writeReindexing(Reindexing.empty()); // Wipe database to verify we write data from reindexer. executor.execute(() -> parameters.getControlHandler().onDone(VisitorControlHandler.CompletionCode.FAILURE, "Error")); return () -> shutDown.set(true); }, metric, clock).reindex(); reindexing = reindexing.with(music, Status.ready(clock.instant()).running().failed(clock.instant(), "Error")); - assertEquals(reindexing, database.readReindexing("cluster")); + assertEquals(reindexing, database.readReindexing()); assertTrue(shutDown.get(), "Session was shut down"); // Document type is ignored in next run, as it has failed fatally. new Reindexer(cluster, Map.of(music, Instant.ofEpochMilli(30)), database, failIfCalled, metric, clock).reindex(); - assertEquals(reindexing, database.readReindexing("cluster")); + assertEquals(reindexing, database.readReindexing()); } } diff --git a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java index 7d4cb2af47e..c5a58dcae68 100644 --- a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java +++ b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingCuratorTest.java @@ -25,24 +25,24 @@ class ReindexingCuratorTest { DocumentTypeManager manager = new DocumentTypeManager(musicConfig); DocumentType music = manager.getDocumentType("music"); MockCurator mockCurator = new MockCurator(); - ReindexingCurator curator = new ReindexingCurator(mockCurator, manager); + ReindexingCurator curator = new ReindexingCurator(mockCurator, "cluster", manager); - assertEquals(Reindexing.empty(), curator.readReindexing("cluster")); + assertEquals(Reindexing.empty(), curator.readReindexing()); Reindexing.Status status = Reindexing.Status.ready(Instant.ofEpochMilli(123)) .running() .progressed(new ProgressToken()); Reindexing reindexing = Reindexing.empty().with(music, status); - curator.writeReindexing(reindexing, "cluster"); - assertEquals(reindexing, curator.readReindexing("cluster")); + curator.writeReindexing(reindexing); + assertEquals(reindexing, curator.readReindexing()); status = status.halted().running().failed(Instant.ofEpochMilli(321), "error"); reindexing = reindexing.with(music, status); - curator.writeReindexing(reindexing, "cluster"); - assertEquals(reindexing, curator.readReindexing("cluster")); + curator.writeReindexing(reindexing); + assertEquals(reindexing, curator.readReindexing()); // Unknown document types are forgotten. - assertEquals(Reindexing.empty(), new ReindexingCurator(mockCurator, new DocumentTypeManager(emptyConfig)).readReindexing("cluster")); + assertEquals(Reindexing.empty(), new ReindexingCurator(mockCurator, "cluster", new DocumentTypeManager(emptyConfig)).readReindexing()); } } diff --git a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingMaintainerTest.java b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingMaintainerTest.java index afa68debadb..713fb836d62 100644 --- a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingMaintainerTest.java +++ b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexingMaintainerTest.java @@ -31,15 +31,17 @@ class ReindexingMaintainerTest { DocumentTypeManager manager = new DocumentTypeManager(musicConfig); assertEquals(Map.of(manager.getDocumentType("music"), Instant.ofEpochMilli(123)), - parseReady(new ReindexingConfig.Clusters.Builder() - .documentTypes("music", new ReindexingConfig.Clusters.DocumentTypes.Builder().readyAtMillis(123)) + parseReady(new ReindexingConfig.Builder() + .enabled(true) + .clusterName("cluster") + .status("music", new ReindexingConfig.Status.Builder().readyAtMillis(123)) .build(), manager)); // Unknown document type fails - assertThrows(NullPointerException.class, - () -> parseReady(new ReindexingConfig.Clusters.Builder() - .documentTypes("poetry", new ReindexingConfig.Clusters.DocumentTypes.Builder().readyAtMillis(123)) + assertThrows(IllegalArgumentException.class, + () -> parseReady(new ReindexingConfig.Builder() + .status("poetry", new ReindexingConfig.Status.Builder().readyAtMillis(123)) .build(), manager)); diff --git a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java index b8f62050347..1b6379d21e5 100644 --- a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java +++ b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java @@ -15,7 +15,6 @@ import com.yahoo.vespa.curator.mock.MockCurator; import org.junit.jupiter.api.Test; import java.time.Instant; -import java.util.List; import java.util.concurrent.Executors; import static com.yahoo.jdisc.http.HttpRequest.Method.POST; @@ -29,9 +28,8 @@ class ReindexingV1ApiTest { DocumentmanagerConfig musicConfig = Deriver.getDocumentManagerConfig("src/test/resources/schemas/music.sd").build(); DocumentTypeManager manager = new DocumentTypeManager(musicConfig); DocumentType musicType = manager.getDocumentType("music"); - ReindexingCurator database = new ReindexingCurator(new MockCurator(), manager); - ReindexingV1ApiHandler handler = new ReindexingV1ApiHandler(Executors.newSingleThreadExecutor(), new MockMetric(), - List.of("cluster", "oyster"), database); + ReindexingCurator database = new ReindexingCurator(new MockCurator(), "cluster", manager); + ReindexingV1ApiHandler handler = new ReindexingV1ApiHandler(Executors.newSingleThreadExecutor(), new MockMetric(), database); @Test void testResponses() { @@ -45,33 +43,23 @@ class ReindexingV1ApiTest { // GET at status with empty database response = driver.sendRequest("http://localhost/reindexing/v1/status"); - assertEquals("{\"clusters\":{\"cluster\":{\"documentTypes\":{}},\"oyster\":{\"documentTypes\":{}}}}", response.readAll()); + assertEquals("{\"status\":[]}", response.readAll()); assertEquals(200, response.getStatus()); // GET at status with a failed status database.writeReindexing(Reindexing.empty().with(musicType, Status.ready(Instant.EPOCH) .running() .progressed(new ProgressToken()) - .failed(Instant.ofEpochMilli(123), "ヽ(。_°)ノ")), - "cluster"); + .failed(Instant.ofEpochMilli(123), "ヽ(。_°)ノ"))); response = driver.sendRequest("http://localhost/reindexing/v1/status"); - assertEquals("{" + - "\"clusters\":{" + - "\"cluster\":{" + - "\"documentTypes\":{" + - "\"music\":{" + - "\"startedMillis\":0," + - "\"endedMillis\":123," + - "\"progress\":\"" + new ProgressToken().serializeToString() + "\"," + - "\"state\":\"failed\"," + - "\"message\":\"ヽ(。_°)ノ\"}" + - "}" + - "}," + - "\"oyster\":{" + - "\"documentTypes\":{}" + - "}" + - "}" + - "}", + assertEquals("{\"status\":[{" + + "\"type\":\"music\"," + + "\"startedMillis\":0," + + "\"endedMillis\":123," + + "\"progress\":\"" + new ProgressToken().serializeToString() + "\"," + + "\"state\":\"failed\"," + + "\"message\":\"ヽ(。_°)ノ\"}" + + "]}", response.readAll()); assertEquals(200, response.getStatus()); |