77
88package org .elasticsearch .xpack .deprecation ;
99
10+ import com .carrotsearch .randomizedtesting .annotations .Name ;
11+ import com .carrotsearch .randomizedtesting .annotations .ParametersFactory ;
12+
1013import org .elasticsearch .cluster .ClusterState ;
14+ import org .elasticsearch .cluster .block .ClusterBlocks ;
1115import org .elasticsearch .cluster .metadata .DataStream ;
1216import org .elasticsearch .cluster .metadata .DataStreamMetadata ;
1317import org .elasticsearch .cluster .metadata .DataStreamOptions ;
3943
4044public class IndexDeprecationCheckerTests extends ESTestCase {
4145
46+ private final IndexMetadata .State indexMetdataState ;
47+
48+ public IndexDeprecationCheckerTests (@ Name ("indexMetadataState" ) IndexMetadata .State indexMetdataState ) {
49+ this .indexMetdataState = indexMetdataState ;
50+ }
51+
52+ @ ParametersFactory
53+ public static List <Object []> createParameters () {
54+ return List .of (new Object [] { IndexMetadata .State .OPEN }, new Object [] { IndexMetadata .State .CLOSE });
55+ }
56+
4257 private static final IndexVersion OLD_VERSION = IndexVersion .fromId (7170099 );
4358
4459 private final IndexNameExpressionResolver indexNameExpressionResolver = TestIndexNameExpressionResolver .newInstance ();
@@ -49,10 +64,11 @@ public void testOldIndicesCheck() {
4964 .settings (settings (OLD_VERSION ))
5065 .numberOfShards (1 )
5166 .numberOfReplicas (0 )
52- .state (randomBoolean () ? IndexMetadata . State . OPEN : IndexMetadata . State . CLOSE ) // does not matter if its open or closed
67+ .state (indexMetdataState )
5368 .build ();
5469 ClusterState clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
5570 .metadata (Metadata .builder ().put (indexMetadata , true ))
71+ .blocks (clusterBlocksForIndices (indexMetadata ))
5672 .build ();
5773 DeprecationIssue expected = new DeprecationIssue (
5874 DeprecationIssue .Level .CRITICAL ,
@@ -73,7 +89,10 @@ public void testOldIndicesCheck() {
7389 public void testOldTransformIndicesCheck () {
7490 var checker = new IndexDeprecationChecker (indexNameExpressionResolver , Map .of ("test" , List .of ("test-transform" )));
7591 var indexMetadata = indexMetadata ("test" , OLD_VERSION );
76- var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
92+ var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
93+ .metadata (Metadata .builder ().put (indexMetadata , true ))
94+ .blocks (clusterBlocksForIndices (indexMetadata ))
95+ .build ();
7796 var expected = new DeprecationIssue (
7897 DeprecationIssue .Level .CRITICAL ,
7998 "Old index with a compatibility version < 8.0" ,
@@ -92,7 +111,10 @@ public void testOldIndicesCheckWithMultipleTransforms() {
92111 Map .of ("test" , List .of ("test-transform1" , "test-transform2" ))
93112 );
94113 var indexMetadata = indexMetadata ("test" , OLD_VERSION );
95- var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
114+ var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
115+ .metadata (Metadata .builder ().put (indexMetadata , true ))
116+ .blocks (clusterBlocksForIndices (indexMetadata ))
117+ .build ();
96118 var expected = new DeprecationIssue (
97119 DeprecationIssue .Level .CRITICAL ,
98120 "Old index with a compatibility version < 8.0" ,
@@ -114,6 +136,7 @@ public void testMultipleOldIndicesCheckWithTransforms() {
114136 var indexMetadata2 = indexMetadata ("test2" , OLD_VERSION );
115137 var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
116138 .metadata (Metadata .builder ().put (indexMetadata1 , true ).put (indexMetadata2 , true ))
139+ .blocks (clusterBlocksForIndices (indexMetadata1 , indexMetadata2 ))
117140 .build ();
118141 var expected = Map .of (
119142 "test1" ,
@@ -144,14 +167,20 @@ public void testMultipleOldIndicesCheckWithTransforms() {
144167 }
145168
146169 private IndexMetadata indexMetadata (String indexName , IndexVersion indexVersion ) {
147- return IndexMetadata .builder (indexName ).settings (settings (indexVersion )).numberOfShards (1 ).numberOfReplicas (0 ).build ();
170+ return IndexMetadata .builder (indexName )
171+ .settings (settings (indexVersion ))
172+ .numberOfShards (1 )
173+ .numberOfReplicas (0 )
174+ .state (indexMetdataState )
175+ .build ();
148176 }
149177
150178 public void testOldIndicesCheckDataStreamIndex () {
151179 IndexMetadata indexMetadata = IndexMetadata .builder (".ds-test" )
152180 .settings (settings (OLD_VERSION ).put ("index.hidden" , true ))
153181 .numberOfShards (1 )
154182 .numberOfReplicas (0 )
183+ .state (indexMetdataState )
155184 .build ();
156185 DataStream dataStream = new DataStream (
157186 randomAlphaOfLength (10 ),
@@ -183,6 +212,7 @@ public void testOldIndicesCheckDataStreamIndex() {
183212 )
184213 )
185214 )
215+ .blocks (clusterBlocksForIndices (indexMetadata ))
186216 .build ();
187217 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
188218 clusterState ,
@@ -194,9 +224,15 @@ public void testOldIndicesCheckDataStreamIndex() {
194224 public void testOldIndicesCheckSnapshotIgnored () {
195225 Settings .Builder settings = settings (OLD_VERSION );
196226 settings .put (INDEX_STORE_TYPE_SETTING .getKey (), SearchableSnapshotsSettings .SEARCHABLE_SNAPSHOT_STORE_TYPE );
197- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
227+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
228+ .settings (settings )
229+ .numberOfShards (1 )
230+ .numberOfReplicas (0 )
231+ .state (indexMetdataState )
232+ .build ();
198233 ClusterState clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
199234 .metadata (Metadata .builder ().put (indexMetadata , true ))
235+ .blocks (clusterBlocksForIndices (indexMetadata ))
200236 .build ();
201237
202238 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
@@ -208,9 +244,15 @@ public void testOldIndicesCheckSnapshotIgnored() {
208244
209245 public void testOldIndicesIgnoredWarningCheck () {
210246 Settings .Builder settings = settings (OLD_VERSION ).put (MetadataIndexStateService .VERIFIED_READ_ONLY_SETTING .getKey (), true );
211- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
247+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
248+ .settings (settings )
249+ .numberOfShards (1 )
250+ .numberOfReplicas (0 )
251+ .state (indexMetdataState )
252+ .build ();
212253 ClusterState clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
213254 .metadata (Metadata .builder ().put (indexMetadata , true ))
255+ .blocks (clusterBlocksForIndices (indexMetadata ))
214256 .build ();
215257 DeprecationIssue expected = new DeprecationIssue (
216258 DeprecationIssue .Level .WARNING ,
@@ -232,8 +274,16 @@ public void testTranslogRetentionSettings() {
232274 Settings .Builder settings = settings (IndexVersion .current ());
233275 settings .put (IndexSettings .INDEX_TRANSLOG_RETENTION_AGE_SETTING .getKey (), randomPositiveTimeValue ());
234276 settings .put (IndexSettings .INDEX_TRANSLOG_RETENTION_SIZE_SETTING .getKey (), between (1 , 1024 ) + "b" );
235- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
236- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
277+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
278+ .settings (settings )
279+ .numberOfShards (1 )
280+ .numberOfReplicas (0 )
281+ .state (indexMetdataState )
282+ .build ();
283+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
284+ .metadata (Metadata .builder ().put (indexMetadata , true ))
285+ .blocks (clusterBlocksForIndices (indexMetadata ))
286+ .build ();
237287 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
238288 state ,
239289 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -267,8 +317,16 @@ public void testDefaultTranslogRetentionSettings() {
267317 settings .put (IndexSettings .INDEX_TRANSLOG_RETENTION_SIZE_SETTING .getKey (), between (1 , 1024 ) + "b" );
268318 settings .put (IndexSettings .INDEX_SOFT_DELETES_SETTING .getKey (), false );
269319 }
270- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
271- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
320+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
321+ .settings (settings )
322+ .numberOfShards (1 )
323+ .numberOfReplicas (0 )
324+ .state (indexMetdataState )
325+ .build ();
326+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
327+ .metadata (Metadata .builder ().put (indexMetadata , true ))
328+ .blocks (clusterBlocksForIndices (indexMetadata ))
329+ .build ();
272330 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
273331 state ,
274332 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -279,8 +337,16 @@ public void testDefaultTranslogRetentionSettings() {
279337 public void testIndexDataPathSetting () {
280338 Settings .Builder settings = settings (IndexVersion .current ());
281339 settings .put (IndexMetadata .INDEX_DATA_PATH_SETTING .getKey (), createTempDir ());
282- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
283- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
340+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
341+ .settings (settings )
342+ .numberOfShards (1 )
343+ .numberOfReplicas (0 )
344+ .state (indexMetdataState )
345+ .build ();
346+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
347+ .metadata (Metadata .builder ().put (indexMetadata , true ))
348+ .blocks (clusterBlocksForIndices (indexMetadata ))
349+ .build ();
284350 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
285351 state ,
286352 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -305,8 +371,16 @@ public void testIndexDataPathSetting() {
305371 public void testSimpleFSSetting () {
306372 Settings .Builder settings = settings (IndexVersion .current ());
307373 settings .put (INDEX_STORE_TYPE_SETTING .getKey (), "simplefs" );
308- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
309- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
374+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
375+ .settings (settings )
376+ .numberOfShards (1 )
377+ .numberOfReplicas (0 )
378+ .state (indexMetdataState )
379+ .build ();
380+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
381+ .metadata (Metadata .builder ().put (indexMetadata , true ))
382+ .blocks (clusterBlocksForIndices (indexMetadata ))
383+ .build ();
310384 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
311385 state ,
312386 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -370,8 +444,12 @@ public void testCamelCaseDeprecation() {
370444 .numberOfShards (1 )
371445 .numberOfReplicas (1 )
372446 .putMapping (simpleMapping )
447+ .state (indexMetdataState )
448+ .build ();
449+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
450+ .metadata (Metadata .builder ().put (simpleIndex , true ))
451+ .blocks (clusterBlocksForIndices (simpleIndex ))
373452 .build ();
374- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (simpleIndex , true )).build ();
375453 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
376454 state ,
377455 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -393,8 +471,16 @@ public void testLegacyTierIndex() {
393471 String filter = randomFrom ("include" , "exclude" , "require" );
394472 String tier = randomFrom ("hot" , "warm" , "cold" , "frozen" );
395473 settings .put ("index.routing.allocation." + filter + ".data" , tier );
396- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
397- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
474+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
475+ .settings (settings )
476+ .numberOfShards (1 )
477+ .numberOfReplicas (0 )
478+ .state (indexMetdataState )
479+ .build ();
480+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
481+ .metadata (Metadata .builder ().put (indexMetadata , true ))
482+ .blocks (clusterBlocksForIndices (indexMetadata ))
483+ .build ();
398484 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
399485 state ,
400486 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -415,4 +501,14 @@ public void testLegacyTierIndex() {
415501 )
416502 );
417503 }
504+
505+ private ClusterBlocks clusterBlocksForIndices (IndexMetadata ... indicesMetadatas ) {
506+ ClusterBlocks .Builder builder = ClusterBlocks .builder ();
507+ for (IndexMetadata indexMetadata : indicesMetadatas ) {
508+ if (indexMetadata .getState () == IndexMetadata .State .CLOSE ) {
509+ builder .addIndexBlock (indexMetadata .getIndex ().getName (), MetadataIndexStateService .INDEX_CLOSED_BLOCK );
510+ }
511+ }
512+ return builder .build ();
513+ }
418514}
0 commit comments