Skip to content

Commit 9a3272c

Browse files
committed
SNAPSHOT - Tests
1 parent 65f25c5 commit 9a3272c

File tree

2 files changed

+104
-0
lines changed

2 files changed

+104
-0
lines changed

x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/DataStreamDeprecationChecksTests.java

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.elasticsearch.cluster.metadata.DataStreamOptions;
1414
import org.elasticsearch.cluster.metadata.IndexMetadata;
1515
import org.elasticsearch.cluster.metadata.Metadata;
16+
import org.elasticsearch.cluster.metadata.MetadataIndexStateService;
1617
import org.elasticsearch.common.settings.Settings;
1718
import org.elasticsearch.index.Index;
1819
import org.elasticsearch.index.IndexMode;
@@ -224,4 +225,81 @@ private Index createIndex(
224225
nameToIndexMetadata.put(indexMetadata.getIndex().getName(), indexMetadata);
225226
return indexMetadata.getIndex();
226227
}
228+
229+
public void testOldIndicesIgnoredWarningCheck() {
230+
int oldIndexCount = randomIntBetween(1, 100);
231+
int newIndexCount = randomIntBetween(1, 100);
232+
233+
List<Index> allIndices = new ArrayList<>();
234+
Map<String, IndexMetadata> nameToIndexMetadata = new HashMap<>();
235+
Set<String> expectedIndices = new HashSet<>();
236+
237+
for (int i = 0; i < oldIndexCount; i++) {
238+
Settings.Builder settings = settings(IndexVersion.fromId(7170099));
239+
240+
String indexName = "old-data-stream-index-" + i;
241+
settings.put(MetadataIndexStateService.VERIFIED_READ_ONLY_SETTING.getKey(), true);
242+
expectedIndices.add(indexName);
243+
244+
Settings.Builder settingsBuilder = settings;
245+
IndexMetadata oldIndexMetadata = IndexMetadata.builder(indexName)
246+
.settings(settingsBuilder)
247+
.numberOfShards(1)
248+
.numberOfReplicas(0)
249+
.build();
250+
allIndices.add(oldIndexMetadata.getIndex());
251+
nameToIndexMetadata.put(oldIndexMetadata.getIndex().getName(), oldIndexMetadata);
252+
}
253+
254+
for (int i = 0; i < newIndexCount; i++) {
255+
Settings.Builder settingsBuilder = settings(IndexVersion.current());
256+
IndexMetadata newIndexMetadata = IndexMetadata.builder("new-data-stream-index-" + i)
257+
.settings(settingsBuilder)
258+
.numberOfShards(1)
259+
.numberOfReplicas(0)
260+
.build();
261+
allIndices.add(newIndexMetadata.getIndex());
262+
nameToIndexMetadata.put(newIndexMetadata.getIndex().getName(), newIndexMetadata);
263+
}
264+
265+
DataStream dataStream = new DataStream(
266+
randomAlphaOfLength(10),
267+
allIndices,
268+
randomNegativeLong(),
269+
Map.of(),
270+
randomBoolean(),
271+
false,
272+
false,
273+
randomBoolean(),
274+
randomFrom(IndexMode.values()),
275+
null,
276+
randomFrom(DataStreamOptions.EMPTY, DataStreamOptions.FAILURE_STORE_DISABLED, DataStreamOptions.FAILURE_STORE_ENABLED, null),
277+
List.of(),
278+
randomBoolean(),
279+
null
280+
);
281+
282+
Metadata metadata = Metadata.builder().indices(nameToIndexMetadata).build();
283+
ClusterState clusterState = ClusterState.builder(ClusterName.DEFAULT).metadata(metadata).build();
284+
285+
DeprecationIssue expected = new DeprecationIssue(
286+
DeprecationIssue.Level.WARNING,
287+
"Old data stream with a compatibility version < 9.0 Have Been Ignored",
288+
"https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-9.0.html",
289+
"This data stream has backing indices that were created before Elasticsearch 9.0.0 and have been marked as OK to"
290+
+ "become read-only after upgrade",
291+
false,
292+
ofEntries(
293+
entry("reindex_required", true),
294+
entry("total_backing_indices", oldIndexCount + newIndexCount),
295+
entry("ignored_indices_requiring_upgrade_count", expectedIndices.size()),
296+
entry("ignored_indices_requiring_upgrade", expectedIndices)
297+
)
298+
);
299+
300+
List<DeprecationIssue> issues = DeprecationChecks.filterChecks(DATA_STREAM_CHECKS, c -> c.apply(dataStream, clusterState));
301+
302+
assertThat(issues, equalTo(singletonList(expected)));
303+
}
304+
227305
}

x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/IndexDeprecationChecksTests.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.elasticsearch.cluster.metadata.DataStreamOptions;
1414
import org.elasticsearch.cluster.metadata.IndexMetadata;
1515
import org.elasticsearch.cluster.metadata.Metadata;
16+
import org.elasticsearch.cluster.metadata.MetadataIndexStateService;
1617
import org.elasticsearch.common.collect.ImmutableOpenMap;
1718
import org.elasticsearch.common.settings.Settings;
1819
import org.elasticsearch.index.IndexMode;
@@ -132,6 +133,31 @@ public void testOldIndicesCheckClosedIgnored() {
132133
assertThat(issues, empty());
133134
}
134135

136+
public void testOldIndicesIgnoredWarningCheck() {
137+
IndexVersion createdWith = IndexVersion.fromId(7170099);
138+
Settings.Builder settings = settings(createdWith).put(MetadataIndexStateService.VERIFIED_READ_ONLY_SETTING.getKey(), true);
139+
IndexMetadata indexMetadata = IndexMetadata.builder("test")
140+
.settings(settings)
141+
.numberOfShards(1)
142+
.numberOfReplicas(0)
143+
.build();
144+
ClusterState clusterState = ClusterState.builder(ClusterState.EMPTY_STATE)
145+
.metadata(Metadata.builder().put(indexMetadata, true))
146+
.build();
147+
DeprecationIssue expected = new DeprecationIssue(
148+
DeprecationIssue.Level.WARNING,
149+
"Old index with a compatibility version < 9.0 Has Been Ignored",
150+
"https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-9.0.html",
151+
"This index has version: "
152+
+ createdWith.toReleaseVersion()
153+
+ " and has been marked as OK to become read-only after upgrade",
154+
false,
155+
singletonMap("reindex_required", true)
156+
);
157+
List<DeprecationIssue> issues = DeprecationChecks.filterChecks(INDEX_SETTINGS_CHECKS, c -> c.apply(indexMetadata, clusterState));
158+
assertEquals(singletonList(expected), issues);
159+
}
160+
135161
public void testTranslogRetentionSettings() {
136162
Settings.Builder settings = settings(IndexVersion.current());
137163
settings.put(IndexSettings.INDEX_TRANSLOG_RETENTION_AGE_SETTING.getKey(), randomPositiveTimeValue());

0 commit comments

Comments
 (0)