|
8 | 8 |
|
9 | 9 | package org.elasticsearch.snapshots; |
10 | 10 |
|
| 11 | +import org.apache.logging.log4j.Level; |
| 12 | +import org.apache.logging.log4j.LogManager; |
| 13 | +import org.apache.logging.log4j.Logger; |
11 | 14 | import org.elasticsearch.Version; |
12 | 15 | import org.elasticsearch.action.ActionFuture; |
13 | 16 | import org.elasticsearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse; |
|
18 | 21 | import org.elasticsearch.cluster.block.ClusterBlocks; |
19 | 22 | import org.elasticsearch.cluster.metadata.IndexMetadata; |
20 | 23 | import org.elasticsearch.cluster.metadata.MappingMetadata; |
| 24 | +import org.elasticsearch.common.logging.Loggers; |
21 | 25 | import org.elasticsearch.common.settings.Settings; |
22 | 26 | import org.elasticsearch.common.unit.ByteSizeUnit; |
23 | 27 | import org.elasticsearch.common.xcontent.XContentFactory; |
24 | 28 | import org.elasticsearch.core.TimeValue; |
25 | 29 | import org.elasticsearch.indices.InvalidIndexNameException; |
26 | 30 | import org.elasticsearch.repositories.RepositoriesService; |
| 31 | +import org.elasticsearch.repositories.blobstore.FileRestoreContext; |
27 | 32 | import org.elasticsearch.repositories.fs.FsRepository; |
28 | 33 | import org.elasticsearch.rest.RestStatus; |
| 34 | +import org.elasticsearch.test.MockLogAppender; |
29 | 35 |
|
30 | 36 | import java.nio.file.Path; |
31 | 37 | import java.util.Arrays; |
@@ -878,4 +884,34 @@ public void testFailOnAncientVersion() throws Exception { |
878 | 884 | ) |
879 | 885 | ); |
880 | 886 | } |
| 887 | + |
| 888 | + public void testNoWarningsOnRestoreOverClosedIndex() throws IllegalAccessException { |
| 889 | + final String repoName = "test-repo"; |
| 890 | + createRepository(repoName, FsRepository.TYPE); |
| 891 | + final String indexName = "test-idx"; |
| 892 | + createIndexWithContent(indexName); |
| 893 | + final String snapshotName = "test-snapshot"; |
| 894 | + createSnapshot(repoName, snapshotName, org.elasticsearch.core.List.of(indexName)); |
| 895 | + index(indexName, "_doc", "some_id", org.elasticsearch.core.Map.of("foo", "bar")); |
| 896 | + assertAcked(admin().indices().prepareClose(indexName).get()); |
| 897 | + final MockLogAppender mockAppender = new MockLogAppender(); |
| 898 | + mockAppender.addExpectation( |
| 899 | + new MockLogAppender.UnseenEventExpectation("no warnings", FileRestoreContext.class.getCanonicalName(), Level.WARN, "*") |
| 900 | + ); |
| 901 | + mockAppender.start(); |
| 902 | + final Logger logger = LogManager.getLogger(FileRestoreContext.class); |
| 903 | + Loggers.addAppender(logger, mockAppender); |
| 904 | + try { |
| 905 | + final RestoreSnapshotResponse restoreSnapshotResponse = clusterAdmin().prepareRestoreSnapshot(repoName, snapshotName) |
| 906 | + .setIndices(indexName) |
| 907 | + .setRestoreGlobalState(false) |
| 908 | + .setWaitForCompletion(true) |
| 909 | + .get(); |
| 910 | + assertEquals(0, restoreSnapshotResponse.getRestoreInfo().failedShards()); |
| 911 | + mockAppender.assertAllExpectationsMatched(); |
| 912 | + } finally { |
| 913 | + Loggers.removeAppender(logger, mockAppender); |
| 914 | + mockAppender.stop(); |
| 915 | + } |
| 916 | + } |
881 | 917 | } |
0 commit comments