|
@@ -33,6 +33,7 @@ import org.elasticsearch.indices.SystemIndexDescriptor;
|
|
|
import org.elasticsearch.indices.SystemIndexDescriptor.Type;
|
|
|
import org.elasticsearch.indices.SystemIndices;
|
|
|
import org.elasticsearch.indices.SystemIndices.Feature;
|
|
|
+import org.elasticsearch.indices.SystemIndices.SystemIndexAccessLevel;
|
|
|
import org.elasticsearch.indices.TestIndexNameExpressionResolver;
|
|
|
import org.elasticsearch.test.ESTestCase;
|
|
|
|
|
@@ -48,7 +49,6 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
import java.util.function.Function;
|
|
|
-import java.util.function.Predicate;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static org.elasticsearch.cluster.metadata.DataStreamTestHelper.backingIndexEqualTo;
|
|
@@ -73,8 +73,6 @@ import static org.hamcrest.Matchers.notNullValue;
|
|
|
|
|
|
public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
- private static final Predicate<String> NONE = name -> false;
|
|
|
-
|
|
|
private IndexNameExpressionResolver indexNameExpressionResolver;
|
|
|
private ThreadContext threadContext;
|
|
|
private long epochMillis;
|
|
@@ -106,7 +104,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
IndicesOptions[] indicesOptions = new IndicesOptions[]{ IndicesOptions.strictExpandOpen(), IndicesOptions.strictExpand()};
|
|
|
for (IndicesOptions options : indicesOptions) {
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, "foo");
|
|
|
assertEquals(1, results.length);
|
|
|
assertEquals("foo", results[0]);
|
|
@@ -156,26 +155,26 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(3, results.length);
|
|
|
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, (String[])null);
|
|
|
assertEquals(3, results.length);
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpand(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpand(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(4, results.length);
|
|
|
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, (String[])null);
|
|
|
assertEquals(4, results.length);
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo*");
|
|
|
assertEquals(3, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("foo", "foobar", "foofoo"));
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpand(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpand(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo*");
|
|
|
assertEquals(4, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("foo", "foobar", "foofoo", "foofoo-closed"));
|
|
@@ -191,7 +190,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
IndicesOptions[] indicesOptions = new IndicesOptions[]{IndicesOptions.lenientExpandOpen(), IndicesOptions.lenientExpand()};
|
|
|
for (IndicesOptions options : indicesOptions) {
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, "foo");
|
|
|
assertEquals(1, results.length);
|
|
|
assertEquals("foo", results[0]);
|
|
@@ -229,20 +229,20 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(3, results.length);
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpand(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpand(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(Arrays.toString(results), 4, results.length);
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo*");
|
|
|
assertEquals(3, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("foo", "foobar", "foofoo"));
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpand(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpand(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo*");
|
|
|
assertEquals(4, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("foo", "foobar", "foofoo", "foofoo-closed"));
|
|
@@ -261,7 +261,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
IndicesOptions[] indicesOptions = new IndicesOptions[]{expandOpen, expand};
|
|
|
|
|
|
for (IndicesOptions options : indicesOptions) {
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, "foo");
|
|
|
assertEquals(1, results.length);
|
|
|
assertEquals("foo", results[0]);
|
|
@@ -283,11 +284,12 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, expandOpen, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, expandOpen, SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(3, results.length);
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, expand, NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, expand, SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(4, results.length);
|
|
|
}
|
|
@@ -305,7 +307,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
// Only closed
|
|
|
IndicesOptions options = IndicesOptions.fromOptions(false, true, false, true, false);
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(1, results.length);
|
|
|
assertEquals("foo", results[0]);
|
|
@@ -330,7 +332,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
// Only open
|
|
|
options = IndicesOptions.fromOptions(false, true, true, false, false);
|
|
|
- context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(2, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("bar", "foobar"));
|
|
@@ -354,7 +356,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
// Open and closed
|
|
|
options = IndicesOptions.fromOptions(false, true, true, true, false);
|
|
|
- context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(3, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("bar", "foobar", "foo"));
|
|
@@ -393,7 +395,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
// open closed and hidden
|
|
|
options = IndicesOptions.fromOptions(false, true, true, true, true);
|
|
|
- context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(7, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("bar", "foobar", "foo", "hidden", "hidden-closed", ".hidden", ".hidden-closed"));
|
|
@@ -435,7 +437,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
// open and hidden
|
|
|
options = IndicesOptions.fromOptions(false, true, true, false, true);
|
|
|
- context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(4, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("bar", "foobar", "hidden", ".hidden"));
|
|
@@ -454,7 +456,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
// closed and hidden
|
|
|
options = IndicesOptions.fromOptions(false, true, false, true, true);
|
|
|
- context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertEquals(3, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("foo", "hidden-closed", ".hidden-closed"));
|
|
@@ -473,7 +475,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
// only hidden
|
|
|
options = IndicesOptions.fromOptions(false, true, false, false, true);
|
|
|
- context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertThat(results, emptyArray());
|
|
|
|
|
@@ -487,7 +489,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
assertThat(results, arrayContainingInAnyOrder("hidden-closed"));
|
|
|
|
|
|
options = IndicesOptions.fromOptions(false, false, true, true, true);
|
|
|
- IndexNameExpressionResolver.Context context2 = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context2 = new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context2, "-*"));
|
|
|
assertThat(infe.getResourceId().toString(), equalTo("[-*]"));
|
|
@@ -504,7 +506,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
//ignore unavailable and allow no indices
|
|
|
{
|
|
|
IndicesOptions noExpandLenient = IndicesOptions.fromOptions(true, true, false, false, randomBoolean());
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, noExpandLenient, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, noExpandLenient, SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, "baz*");
|
|
|
assertThat(results, emptyArray());
|
|
|
|
|
@@ -526,7 +529,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
//ignore unavailable but don't allow no indices
|
|
|
{
|
|
|
IndicesOptions noExpandDisallowEmpty = IndicesOptions.fromOptions(true, false, false, false, randomBoolean());
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, noExpandDisallowEmpty, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, noExpandDisallowEmpty, SystemIndexAccessLevel.NONE);
|
|
|
|
|
|
{
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
@@ -551,7 +555,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
//error on unavailable but allow no indices
|
|
|
{
|
|
|
IndicesOptions noExpandErrorUnavailable = IndicesOptions.fromOptions(false, true, false, false, randomBoolean());
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, noExpandErrorUnavailable, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, noExpandErrorUnavailable, SystemIndexAccessLevel.NONE);
|
|
|
{
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, "baz*");
|
|
|
assertThat(results, emptyArray());
|
|
@@ -577,7 +582,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
//error on both unavailable and no indices
|
|
|
{
|
|
|
IndicesOptions noExpandStrict = IndicesOptions.fromOptions(false, false, false, false, randomBoolean());
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, noExpandStrict, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, noExpandStrict, SystemIndexAccessLevel.NONE);
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "baz*"));
|
|
|
assertThat(infe.getIndex().getName(), equalTo("baz*"));
|
|
@@ -603,48 +609,48 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
//error on both unavailable and no indices + every alias needs to expand to a single index
|
|
|
|
|
|
{
|
|
|
- IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictSingleIndexNoExpandForbidClosed(), NONE);
|
|
|
+ IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
+ IndicesOptions.strictSingleIndexNoExpandForbidClosed(), SystemIndexAccessLevel.NONE);
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "baz*"));
|
|
|
assertThat(infe.getIndex().getName(), equalTo("baz*"));
|
|
|
}
|
|
|
|
|
|
{
|
|
|
- IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictSingleIndexNoExpandForbidClosed(), NONE);
|
|
|
+ IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
+ IndicesOptions.strictSingleIndexNoExpandForbidClosed(), SystemIndexAccessLevel.NONE);
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "foo", "baz*"));
|
|
|
assertThat(infe.getIndex().getName(), equalTo("baz*"));
|
|
|
}
|
|
|
|
|
|
{
|
|
|
- IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictSingleIndexNoExpandForbidClosed(), NONE);
|
|
|
+ IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
+ IndicesOptions.strictSingleIndexNoExpandForbidClosed(), SystemIndexAccessLevel.NONE);
|
|
|
IllegalArgumentException e = expectThrows(IllegalArgumentException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "foofoobar"));
|
|
|
assertThat(e.getMessage(), containsString("alias [foofoobar] has more than one index associated with it"));
|
|
|
}
|
|
|
|
|
|
{
|
|
|
- IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictSingleIndexNoExpandForbidClosed(), NONE);
|
|
|
+ IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
+ IndicesOptions.strictSingleIndexNoExpandForbidClosed(), SystemIndexAccessLevel.NONE);
|
|
|
IllegalArgumentException e = expectThrows(IllegalArgumentException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "foo", "foofoobar"));
|
|
|
assertThat(e.getMessage(), containsString("alias [foofoobar] has more than one index associated with it"));
|
|
|
}
|
|
|
|
|
|
{
|
|
|
- IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictSingleIndexNoExpandForbidClosed(), NONE);
|
|
|
+ IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
+ IndicesOptions.strictSingleIndexNoExpandForbidClosed(), SystemIndexAccessLevel.NONE);
|
|
|
IndexClosedException ince = expectThrows(IndexClosedException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "foofoo-closed", "foofoobar"));
|
|
|
assertThat(ince.getMessage(), equalTo("closed"));
|
|
|
assertEquals(ince.getIndex().getName(), "foofoo-closed");
|
|
|
}
|
|
|
|
|
|
- IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictSingleIndexNoExpandForbidClosed(), NONE);
|
|
|
+ IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
+ IndicesOptions.strictSingleIndexNoExpandForbidClosed(), SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, "foo", "barbaz");
|
|
|
assertEquals(2, results.length);
|
|
|
assertThat(results, arrayContainingInAnyOrder("foo", "foofoo"));
|
|
@@ -654,7 +660,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(Metadata.builder().build()).build();
|
|
|
|
|
|
IndicesOptions options = IndicesOptions.strictExpandOpen();
|
|
|
- final IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ final IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, options, SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
|
|
|
assertThat(results, emptyArray());
|
|
|
|
|
@@ -675,7 +682,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
|
|
|
final IndexNameExpressionResolver.Context context2 =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context2, Strings.EMPTY_ARRAY);
|
|
|
assertThat(results, emptyArray());
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context2, "foo");
|
|
@@ -686,7 +693,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
assertThat(results, emptyArray());
|
|
|
|
|
|
final IndexNameExpressionResolver.Context context3 =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, false, true, false), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, false, true, false),
|
|
|
+ SystemIndexAccessLevel.NONE);
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context3, Strings.EMPTY_ARRAY));
|
|
|
assertThat(infe.getResourceId().toString(), equalTo("[_all]"));
|
|
@@ -712,7 +720,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
.put(indexBuilder("kuku"));
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "testZZZ"));
|
|
@@ -725,7 +733,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
.put(indexBuilder("kuku"));
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
|
|
|
assertThat(newHashSet(indexNameExpressionResolver.concreteIndexNames(context, "testXXX", "testZZZ")),
|
|
|
equalTo(newHashSet("testXXX")));
|
|
@@ -737,7 +745,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
.put(indexBuilder("kuku"));
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "testMo", "testMahdy"));
|
|
@@ -750,7 +758,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
.put(indexBuilder("kuku"));
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
assertThat(newHashSet(indexNameExpressionResolver.concreteIndexNames(context, new String[]{})),
|
|
|
equalTo(newHashSet("kuku", "testXXX")));
|
|
|
}
|
|
@@ -758,7 +766,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
Metadata.Builder mdBuilder = Metadata.builder();
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
- IndicesOptions.fromOptions(false, false, true, true), NONE);
|
|
|
+ IndicesOptions.fromOptions(false, false, true, true), SystemIndexAccessLevel.NONE);
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndices(context, new String[]{}));
|
|
|
assertThat(infe.getMessage(), is("no such index [null] and no indices exist"));
|
|
@@ -768,7 +776,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
Metadata.Builder mdBuilder = Metadata.builder();
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
- IndicesOptions.fromOptions(false, false, false, false), NONE);
|
|
|
+ IndicesOptions.fromOptions(false, false, false, false), SystemIndexAccessLevel.NONE);
|
|
|
IndexNotFoundException infe = expectThrows(IndexNotFoundException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndices(context, new String[]{}));
|
|
|
assertThat(infe.getMessage(), is("no such index [_all] and no indices exist"));
|
|
@@ -784,16 +792,20 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, true, false, false), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, true, false, false),
|
|
|
+ SystemIndexAccessLevel.NONE);
|
|
|
assertThat(newHashSet(indexNameExpressionResolver.concreteIndexNames(context, "testX*")),
|
|
|
equalTo(new HashSet<String>()));
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, true, true, false), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, true, true, false),
|
|
|
+ SystemIndexAccessLevel.NONE);
|
|
|
assertThat(newHashSet(indexNameExpressionResolver.concreteIndexNames(context, "testX*")),
|
|
|
equalTo(newHashSet("testXXX", "testXXY")));
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, true, false, true), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, true, false, true),
|
|
|
+ SystemIndexAccessLevel.NONE);
|
|
|
assertThat(newHashSet(indexNameExpressionResolver.concreteIndexNames(context, "testX*")),
|
|
|
equalTo(newHashSet("testXYY")));
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, true, true, true), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true, true, true, true),
|
|
|
+ SystemIndexAccessLevel.NONE);
|
|
|
assertThat(newHashSet(indexNameExpressionResolver.concreteIndexNames(context, "testX*")),
|
|
|
equalTo(newHashSet("testXXX", "testXXY", "testXYY")));
|
|
|
}
|
|
@@ -811,7 +823,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
|
|
|
IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state,
|
|
|
- IndicesOptions.fromOptions(true, true, true, true), NONE);
|
|
|
+ IndicesOptions.fromOptions(true, true, true, true), SystemIndexAccessLevel.NONE);
|
|
|
assertThat(newHashSet(indexNameExpressionResolver.concreteIndexNames(context, "testX*")),
|
|
|
equalTo(newHashSet("testXXX", "testXXY", "testXYY")));
|
|
|
|
|
@@ -1099,7 +1111,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
{
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(Metadata.builder().build()).build();
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, indicesOptions, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, indicesOptions, SystemIndexAccessLevel.NONE);
|
|
|
|
|
|
// with no indices, asking for all indices should return empty list or exception, depending on indices options
|
|
|
if (indicesOptions.allowNoIndices()) {
|
|
@@ -1118,7 +1131,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
.put(indexBuilder("bbb").state(State.OPEN).putAlias(AliasMetadata.builder("bbb_alias1")))
|
|
|
.put(indexBuilder("ccc").state(State.CLOSE).putAlias(AliasMetadata.builder("ccc_alias1")));
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, indicesOptions, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, indicesOptions, SystemIndexAccessLevel.NONE);
|
|
|
if (indicesOptions.expandWildcardsOpen() || indicesOptions.expandWildcardsClosed() || indicesOptions.allowNoIndices()) {
|
|
|
String[] concreteIndices = indexNameExpressionResolver.concreteIndexNames(context, allIndices);
|
|
|
assertThat(concreteIndices, notNullValue());
|
|
@@ -1148,7 +1162,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
.put(indexBuilder("bbb").state(State.OPEN).putAlias(AliasMetadata.builder("bbb_alias1")))
|
|
|
.put(indexBuilder("ccc").state(State.CLOSE).putAlias(AliasMetadata.builder("ccc_alias1")));
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, indicesOptions, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context =
|
|
|
+ new IndexNameExpressionResolver.Context(state, indicesOptions, SystemIndexAccessLevel.NONE);
|
|
|
|
|
|
// asking for non existing wildcard pattern should return empty list or exception
|
|
|
if (indicesOptions.allowNoIndices()) {
|
|
@@ -1277,20 +1292,20 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
|
|
|
IndexNameExpressionResolver.Context contextICE =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpenAndForbidClosed(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpenAndForbidClosed(), SystemIndexAccessLevel.NONE);
|
|
|
expectThrows(IndexClosedException.class, () -> indexNameExpressionResolver.concreteIndexNames(contextICE, "foo1-closed"));
|
|
|
expectThrows(IndexClosedException.class, () -> indexNameExpressionResolver.concreteIndexNames(contextICE, "foobar1-closed"));
|
|
|
|
|
|
IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true,
|
|
|
contextICE.getOptions().allowNoIndices(), contextICE.getOptions().expandWildcardsOpen(),
|
|
|
- contextICE.getOptions().expandWildcardsClosed(), contextICE.getOptions()), NONE);
|
|
|
+ contextICE.getOptions().expandWildcardsClosed(), contextICE.getOptions()), SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, "foo1-closed");
|
|
|
assertThat(results, emptyArray());
|
|
|
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, "foobar1-closed");
|
|
|
assertThat(results, emptyArray());
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, "foo1-closed");
|
|
|
assertThat(results, arrayWithSize(1));
|
|
|
assertThat(results, arrayContaining("foo1-closed"));
|
|
@@ -1300,7 +1315,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
assertThat(results, arrayContaining("foo1-closed"));
|
|
|
|
|
|
// testing an alias pointing to three indices:
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpenAndForbidClosed(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpenAndForbidClosed(),
|
|
|
+ SystemIndexAccessLevel.NONE);
|
|
|
try {
|
|
|
indexNameExpressionResolver.concreteIndexNames(context, "foobar2-closed");
|
|
|
fail("foo2-closed should be closed, but it is open");
|
|
@@ -1310,12 +1326,12 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
|
|
|
context = new IndexNameExpressionResolver.Context(state, IndicesOptions.fromOptions(true,
|
|
|
context.getOptions().allowNoIndices(), context.getOptions().expandWildcardsOpen(),
|
|
|
- context.getOptions().expandWildcardsClosed(), context.getOptions()), NONE);
|
|
|
+ context.getOptions().expandWildcardsClosed(), context.getOptions()), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, "foobar2-closed");
|
|
|
assertThat(results, arrayWithSize(1));
|
|
|
assertThat(results, arrayContaining("foo3"));
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
results = indexNameExpressionResolver.concreteIndexNames(context, "foobar2-closed");
|
|
|
assertThat(results, arrayWithSize(3));
|
|
|
assertThat(results, arrayContainingInAnyOrder("foo1-closed", "foo2-closed", "foo3"));
|
|
@@ -1328,7 +1344,8 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
IndicesOptions[] indicesOptions = new IndicesOptions[]{ IndicesOptions.strictExpandOpen(), IndicesOptions.strictExpand(),
|
|
|
IndicesOptions.lenientExpandOpen(), IndicesOptions.strictExpandOpenAndForbidClosed()};
|
|
|
for (IndicesOptions options : indicesOptions) {
|
|
|
- IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options, NONE);
|
|
|
+ IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options,
|
|
|
+ SystemIndexAccessLevel.NONE);
|
|
|
String[] results = indexNameExpressionResolver.concreteIndexNames(context, "index1", "index1", "alias1");
|
|
|
assertThat(results, equalTo(new String[]{"index1"}));
|
|
|
}
|
|
@@ -1349,11 +1366,11 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
String[] strings = indexNameExpressionResolver.concreteIndexNames(context, "alias-*");
|
|
|
assertArrayEquals(new String[] {"test-0"}, strings);
|
|
|
|
|
|
- context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), NONE);
|
|
|
+ context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
strings = indexNameExpressionResolver.concreteIndexNames(context, "alias-*");
|
|
|
|
|
|
assertArrayEquals(new String[] {"test-0"}, strings);
|
|
@@ -1764,7 +1781,7 @@ public class IndexNameExpressionResolverTests extends ESTestCase {
|
|
|
Metadata.Builder mdBuilder = Metadata.builder().put(indexBuilder("test"));
|
|
|
ClusterState state = ClusterState.builder(new ClusterName("_name")).metadata(mdBuilder).build();
|
|
|
IndexNameExpressionResolver.Context context =
|
|
|
- new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), NONE);
|
|
|
+ new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen(), SystemIndexAccessLevel.NONE);
|
|
|
|
|
|
InvalidIndexNameException iine = expectThrows(InvalidIndexNameException.class,
|
|
|
() -> indexNameExpressionResolver.concreteIndexNames(context, "_foo"));
|