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 ;
3842
3943public class IndexDeprecationCheckerTests extends ESTestCase {
4044
45+ private final IndexMetadata .State indexMetdataState ;
46+
47+ public IndexDeprecationCheckerTests (@ Name ("indexMetadataState" ) IndexMetadata .State indexMetdataState ) {
48+ this .indexMetdataState = indexMetdataState ;
49+ }
50+
51+ @ ParametersFactory
52+ public static List <Object []> createParameters () {
53+ return List .of (new Object [] { IndexMetadata .State .OPEN }, new Object [] { IndexMetadata .State .CLOSE });
54+ }
55+
4156 private static final IndexVersion OLD_VERSION = IndexVersion .fromId (7170099 );
4257
4358 private final IndexNameExpressionResolver indexNameExpressionResolver = TestIndexNameExpressionResolver .newInstance ();
@@ -48,10 +63,11 @@ public void testOldIndicesCheck() {
4863 .settings (settings (OLD_VERSION ))
4964 .numberOfShards (1 )
5065 .numberOfReplicas (0 )
51- .state (randomBoolean () ? IndexMetadata . State . OPEN : IndexMetadata . State . CLOSE ) // does not matter if its open or closed
66+ .state (indexMetdataState )
5267 .build ();
5368 ClusterState clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
5469 .metadata (Metadata .builder ().put (indexMetadata , true ))
70+ .blocks (clusterBlocksForIndices (indexMetadata ))
5571 .build ();
5672 DeprecationIssue expected = new DeprecationIssue (
5773 DeprecationIssue .Level .CRITICAL ,
@@ -72,7 +88,10 @@ public void testOldIndicesCheck() {
7288 public void testOldTransformIndicesCheck () {
7389 var checker = new IndexDeprecationChecker (indexNameExpressionResolver , Map .of ("test" , List .of ("test-transform" )));
7490 var indexMetadata = indexMetadata ("test" , OLD_VERSION );
75- var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
91+ var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
92+ .metadata (Metadata .builder ().put (indexMetadata , true ))
93+ .blocks (clusterBlocksForIndices (indexMetadata ))
94+ .build ();
7695 var expected = new DeprecationIssue (
7796 DeprecationIssue .Level .CRITICAL ,
7897 "Old index with a compatibility version < 9.0" ,
@@ -91,7 +110,10 @@ public void testOldIndicesCheckWithMultipleTransforms() {
91110 Map .of ("test" , List .of ("test-transform1" , "test-transform2" ))
92111 );
93112 var indexMetadata = indexMetadata ("test" , OLD_VERSION );
94- var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
113+ var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
114+ .metadata (Metadata .builder ().put (indexMetadata , true ))
115+ .blocks (clusterBlocksForIndices (indexMetadata ))
116+ .build ();
95117 var expected = new DeprecationIssue (
96118 DeprecationIssue .Level .CRITICAL ,
97119 "Old index with a compatibility version < 9.0" ,
@@ -113,6 +135,7 @@ public void testMultipleOldIndicesCheckWithTransforms() {
113135 var indexMetadata2 = indexMetadata ("test2" , OLD_VERSION );
114136 var clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
115137 .metadata (Metadata .builder ().put (indexMetadata1 , true ).put (indexMetadata2 , true ))
138+ .blocks (clusterBlocksForIndices (indexMetadata1 , indexMetadata2 ))
116139 .build ();
117140 var expected = Map .of (
118141 "test1" ,
@@ -143,14 +166,20 @@ public void testMultipleOldIndicesCheckWithTransforms() {
143166 }
144167
145168 private IndexMetadata indexMetadata (String indexName , IndexVersion indexVersion ) {
146- return IndexMetadata .builder (indexName ).settings (settings (indexVersion )).numberOfShards (1 ).numberOfReplicas (0 ).build ();
169+ return IndexMetadata .builder (indexName )
170+ .settings (settings (indexVersion ))
171+ .numberOfShards (1 )
172+ .numberOfReplicas (0 )
173+ .state (indexMetdataState )
174+ .build ();
147175 }
148176
149177 public void testOldIndicesCheckDataStreamIndex () {
150178 IndexMetadata indexMetadata = IndexMetadata .builder (".ds-test" )
151179 .settings (settings (OLD_VERSION ).put ("index.hidden" , true ))
152180 .numberOfShards (1 )
153181 .numberOfReplicas (0 )
182+ .state (indexMetdataState )
154183 .build ();
155184 DataStream dataStream = new DataStream (
156185 randomAlphaOfLength (10 ),
@@ -182,6 +211,7 @@ public void testOldIndicesCheckDataStreamIndex() {
182211 )
183212 )
184213 )
214+ .blocks (clusterBlocksForIndices (indexMetadata ))
185215 .build ();
186216 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
187217 clusterState ,
@@ -193,9 +223,15 @@ public void testOldIndicesCheckDataStreamIndex() {
193223 public void testOldIndicesCheckSnapshotIgnored () {
194224 Settings .Builder settings = settings (OLD_VERSION );
195225 settings .put (INDEX_STORE_TYPE_SETTING .getKey (), SearchableSnapshotsSettings .SEARCHABLE_SNAPSHOT_STORE_TYPE );
196- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
226+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
227+ .settings (settings )
228+ .numberOfShards (1 )
229+ .numberOfReplicas (0 )
230+ .state (indexMetdataState )
231+ .build ();
197232 ClusterState clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
198233 .metadata (Metadata .builder ().put (indexMetadata , true ))
234+ .blocks (clusterBlocksForIndices (indexMetadata ))
199235 .build ();
200236
201237 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
@@ -207,9 +243,15 @@ public void testOldIndicesCheckSnapshotIgnored() {
207243
208244 public void testOldIndicesIgnoredWarningCheck () {
209245 Settings .Builder settings = settings (OLD_VERSION ).put (MetadataIndexStateService .VERIFIED_READ_ONLY_SETTING .getKey (), true );
210- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
246+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
247+ .settings (settings )
248+ .numberOfShards (1 )
249+ .numberOfReplicas (0 )
250+ .state (indexMetdataState )
251+ .build ();
211252 ClusterState clusterState = ClusterState .builder (ClusterState .EMPTY_STATE )
212253 .metadata (Metadata .builder ().put (indexMetadata , true ))
254+ .blocks (clusterBlocksForIndices (indexMetadata ))
213255 .build ();
214256 DeprecationIssue expected = new DeprecationIssue (
215257 DeprecationIssue .Level .WARNING ,
@@ -231,8 +273,16 @@ public void testTranslogRetentionSettings() {
231273 Settings .Builder settings = settings (IndexVersion .current ());
232274 settings .put (IndexSettings .INDEX_TRANSLOG_RETENTION_AGE_SETTING .getKey (), randomPositiveTimeValue ());
233275 settings .put (IndexSettings .INDEX_TRANSLOG_RETENTION_SIZE_SETTING .getKey (), between (1 , 1024 ) + "b" );
234- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
235- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
276+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
277+ .settings (settings )
278+ .numberOfShards (1 )
279+ .numberOfReplicas (0 )
280+ .state (indexMetdataState )
281+ .build ();
282+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
283+ .metadata (Metadata .builder ().put (indexMetadata , true ))
284+ .blocks (clusterBlocksForIndices (indexMetadata ))
285+ .build ();
236286 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
237287 state ,
238288 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -266,8 +316,16 @@ public void testDefaultTranslogRetentionSettings() {
266316 settings .put (IndexSettings .INDEX_TRANSLOG_RETENTION_SIZE_SETTING .getKey (), between (1 , 1024 ) + "b" );
267317 settings .put (IndexSettings .INDEX_SOFT_DELETES_SETTING .getKey (), false );
268318 }
269- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
270- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
319+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
320+ .settings (settings )
321+ .numberOfShards (1 )
322+ .numberOfReplicas (0 )
323+ .state (indexMetdataState )
324+ .build ();
325+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
326+ .metadata (Metadata .builder ().put (indexMetadata , true ))
327+ .blocks (clusterBlocksForIndices (indexMetadata ))
328+ .build ();
271329 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
272330 state ,
273331 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -278,8 +336,16 @@ public void testDefaultTranslogRetentionSettings() {
278336 public void testIndexDataPathSetting () {
279337 Settings .Builder settings = settings (IndexVersion .current ());
280338 settings .put (IndexMetadata .INDEX_DATA_PATH_SETTING .getKey (), createTempDir ());
281- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
282- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
339+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
340+ .settings (settings )
341+ .numberOfShards (1 )
342+ .numberOfReplicas (0 )
343+ .state (indexMetdataState )
344+ .build ();
345+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
346+ .metadata (Metadata .builder ().put (indexMetadata , true ))
347+ .blocks (clusterBlocksForIndices (indexMetadata ))
348+ .build ();
283349 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
284350 state ,
285351 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -304,8 +370,16 @@ public void testIndexDataPathSetting() {
304370 public void testSimpleFSSetting () {
305371 Settings .Builder settings = settings (IndexVersion .current ());
306372 settings .put (INDEX_STORE_TYPE_SETTING .getKey (), "simplefs" );
307- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
308- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
373+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
374+ .settings (settings )
375+ .numberOfShards (1 )
376+ .numberOfReplicas (0 )
377+ .state (indexMetdataState )
378+ .build ();
379+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
380+ .metadata (Metadata .builder ().put (indexMetadata , true ))
381+ .blocks (clusterBlocksForIndices (indexMetadata ))
382+ .build ();
309383 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
310384 state ,
311385 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -343,8 +417,12 @@ public void testCamelCaseDeprecation() {
343417 .numberOfShards (1 )
344418 .numberOfReplicas (1 )
345419 .putMapping (simpleMapping )
420+ .state (indexMetdataState )
421+ .build ();
422+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
423+ .metadata (Metadata .builder ().put (simpleIndex , true ))
424+ .blocks (clusterBlocksForIndices (simpleIndex ))
346425 .build ();
347- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (simpleIndex , true )).build ();
348426 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
349427 state ,
350428 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -366,8 +444,16 @@ public void testLegacyTierIndex() {
366444 String filter = randomFrom ("include" , "exclude" , "require" );
367445 String tier = randomFrom ("hot" , "warm" , "cold" , "frozen" );
368446 settings .put ("index.routing.allocation." + filter + ".data" , tier );
369- IndexMetadata indexMetadata = IndexMetadata .builder ("test" ).settings (settings ).numberOfShards (1 ).numberOfReplicas (0 ).build ();
370- ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE ).metadata (Metadata .builder ().put (indexMetadata , true )).build ();
447+ IndexMetadata indexMetadata = IndexMetadata .builder ("test" )
448+ .settings (settings )
449+ .numberOfShards (1 )
450+ .numberOfReplicas (0 )
451+ .state (indexMetdataState )
452+ .build ();
453+ ClusterState state = ClusterState .builder (ClusterState .EMPTY_STATE )
454+ .metadata (Metadata .builder ().put (indexMetadata , true ))
455+ .blocks (clusterBlocksForIndices (indexMetadata ))
456+ .build ();
371457 Map <String , List <DeprecationIssue >> issuesByIndex = checker .check (
372458 state ,
373459 new DeprecationInfoAction .Request (TimeValue .THIRTY_SECONDS )
@@ -388,4 +474,14 @@ public void testLegacyTierIndex() {
388474 )
389475 );
390476 }
477+
478+ private ClusterBlocks clusterBlocksForIndices (IndexMetadata ... indicesMetadatas ) {
479+ ClusterBlocks .Builder builder = ClusterBlocks .builder ();
480+ for (IndexMetadata indexMetadata : indicesMetadatas ) {
481+ if (indexMetadata .getState () == IndexMetadata .State .CLOSE ) {
482+ builder .addIndexBlock (indexMetadata .getIndex ().getName (), MetadataIndexStateService .INDEX_CLOSED_BLOCK );
483+ }
484+ }
485+ return builder .build ();
486+ }
391487}
0 commit comments