@@ -280,6 +280,129 @@ public void testAll() {
280
280
assertThat (IndexNameExpressionResolver .resolveExpressions (noExpandContext , "_all" ).size (), equalTo (0 ));
281
281
}
282
282
283
+ public void testAllAliases () {
284
+ {
285
+ // hidden index with hidden alias should not be returned
286
+ Metadata .Builder mdBuilder = Metadata .builder ()
287
+ .put (
288
+ indexBuilder ("index-hidden-alias" , true ) // index hidden
289
+ .state (State .OPEN )
290
+ .putAlias (AliasMetadata .builder ("alias-hidden" ).isHidden (true )) // alias hidden
291
+ );
292
+
293
+ ClusterState state = ClusterState .builder (new ClusterName ("_name" )).metadata (mdBuilder ).build ();
294
+
295
+ IndexNameExpressionResolver .Context context = new IndexNameExpressionResolver .Context (
296
+ state ,
297
+ IndicesOptions .lenientExpandOpen (), // don't include hidden
298
+ SystemIndexAccessLevel .NONE
299
+ );
300
+ assertThat (newHashSet (IndexNameExpressionResolver .WildcardExpressionResolver .resolveAll (context )), equalTo (newHashSet ()));
301
+ }
302
+
303
+ {
304
+ // hidden index with visible alias should be returned
305
+ Metadata .Builder mdBuilder = Metadata .builder ()
306
+ .put (
307
+ indexBuilder ("index-visible-alias" , true ) // index hidden
308
+ .state (State .OPEN )
309
+ .putAlias (AliasMetadata .builder ("alias-visible" ).isHidden (false )) // alias visible
310
+ );
311
+
312
+ ClusterState state = ClusterState .builder (new ClusterName ("_name" )).metadata (mdBuilder ).build ();
313
+
314
+ IndexNameExpressionResolver .Context context = new IndexNameExpressionResolver .Context (
315
+ state ,
316
+ IndicesOptions .lenientExpandOpen (), // don't include hidden
317
+ SystemIndexAccessLevel .NONE
318
+ );
319
+ assertThat (
320
+ newHashSet (IndexNameExpressionResolver .WildcardExpressionResolver .resolveAll (context )),
321
+ equalTo (newHashSet ("index-visible-alias" ))
322
+ );
323
+ }
324
+ }
325
+
326
+ public void testAllDataStreams () {
327
+
328
+ String dataStreamName = "foo_logs" ;
329
+ long epochMillis = randomLongBetween (1580536800000L , 1583042400000L );
330
+ IndexMetadata firstBackingIndexMetadata = createBackingIndex (dataStreamName , 1 , epochMillis ).build ();
331
+
332
+ IndicesOptions indicesAndAliasesOptions = IndicesOptions .fromOptions (
333
+ randomBoolean (),
334
+ randomBoolean (),
335
+ true ,
336
+ false ,
337
+ true ,
338
+ false ,
339
+ false ,
340
+ false
341
+ );
342
+
343
+ {
344
+ // visible data streams should be returned by _all even show backing indices are hidden
345
+ Metadata .Builder mdBuilder = Metadata .builder ()
346
+ .put (firstBackingIndexMetadata , true )
347
+ .put (DataStreamTestHelper .newInstance (dataStreamName , List .of (firstBackingIndexMetadata .getIndex ())));
348
+
349
+ ClusterState state = ClusterState .builder (new ClusterName ("_name" )).metadata (mdBuilder ).build ();
350
+
351
+ IndexNameExpressionResolver .Context context = new IndexNameExpressionResolver .Context (
352
+ state ,
353
+ indicesAndAliasesOptions ,
354
+ false ,
355
+ false ,
356
+ true ,
357
+ SystemIndexAccessLevel .NONE ,
358
+ NONE ,
359
+ NONE
360
+ );
361
+
362
+ assertThat (
363
+ newHashSet (IndexNameExpressionResolver .WildcardExpressionResolver .resolveAll (context )),
364
+ equalTo (newHashSet (DataStream .getDefaultBackingIndexName ("foo_logs" , 1 , epochMillis )))
365
+ );
366
+ }
367
+
368
+ {
369
+ // if data stream itself is hidden, backing indices should not be returned
370
+ boolean hidden = true ;
371
+ var dataStream = new DataStream (
372
+ dataStreamName ,
373
+ List .of (firstBackingIndexMetadata .getIndex ()),
374
+ 1 ,
375
+ null ,
376
+ hidden ,
377
+ false ,
378
+ false ,
379
+ false ,
380
+ null ,
381
+ null ,
382
+ false ,
383
+ List .of (),
384
+ false
385
+ );
386
+
387
+ Metadata .Builder mdBuilder = Metadata .builder ().put (firstBackingIndexMetadata , true ).put (dataStream );
388
+
389
+ ClusterState state = ClusterState .builder (new ClusterName ("_name" )).metadata (mdBuilder ).build ();
390
+
391
+ IndexNameExpressionResolver .Context context = new IndexNameExpressionResolver .Context (
392
+ state ,
393
+ indicesAndAliasesOptions ,
394
+ false ,
395
+ false ,
396
+ true ,
397
+ SystemIndexAccessLevel .NONE ,
398
+ NONE ,
399
+ NONE
400
+ );
401
+
402
+ assertThat (newHashSet (IndexNameExpressionResolver .WildcardExpressionResolver .resolveAll (context )), equalTo (newHashSet ()));
403
+ }
404
+ }
405
+
283
406
public void testResolveEmpty () {
284
407
Metadata .Builder mdBuilder = Metadata .builder ()
285
408
.put (
0 commit comments