Search in sources :

Example 81 with ClusterName

use of org.elasticsearch.cluster.ClusterName in project elasticsearch by elastic.

the class IndexNameExpressionResolverTests method testIndexOptionsStrict.

public void testIndexOptionsStrict() {
    MetaData.Builder mdBuilder = MetaData.builder().put(indexBuilder("foo").putAlias(AliasMetaData.builder("foofoobar"))).put(indexBuilder("foobar").putAlias(AliasMetaData.builder("foofoobar"))).put(indexBuilder("foofoo-closed").state(IndexMetaData.State.CLOSE)).put(indexBuilder("foofoo").putAlias(AliasMetaData.builder("barbaz")));
    ClusterState state = ClusterState.builder(new ClusterName("_name")).metaData(mdBuilder).build();
    IndicesOptions[] indicesOptions = new IndicesOptions[] { IndicesOptions.strictExpandOpen(), IndicesOptions.strictExpand() };
    for (IndicesOptions options : indicesOptions) {
        IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options);
        String[] results = indexNameExpressionResolver.concreteIndexNames(context, "foo");
        assertEquals(1, results.length);
        assertEquals("foo", results[0]);
        try {
            indexNameExpressionResolver.concreteIndexNames(context, "bar");
            fail();
        } catch (IndexNotFoundException e) {
            assertThat(e.getIndex().getName(), equalTo("bar"));
        }
        results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo", "foobar");
        assertEquals(2, results.length);
        assertThat(results, arrayContainingInAnyOrder("foofoo", "foobar"));
        results = indexNameExpressionResolver.concreteIndexNames(context, "foofoobar");
        assertEquals(new HashSet<>(Arrays.asList("foo", "foobar")), new HashSet<>(Arrays.asList(results)));
        try {
            indexNameExpressionResolver.concreteIndexNames(context, "bar");
            fail();
        } catch (IndexNotFoundException e) {
            assertThat(e.getIndex().getName(), equalTo("bar"));
        }
        try {
            indexNameExpressionResolver.concreteIndexNames(context, "foo", "bar");
            fail();
        } catch (IndexNotFoundException e) {
            assertThat(e.getIndex().getName(), equalTo("bar"));
        }
        results = indexNameExpressionResolver.concreteIndexNames(context, "barbaz", "foobar");
        assertEquals(2, results.length);
        assertThat(results, arrayContainingInAnyOrder("foofoo", "foobar"));
        try {
            indexNameExpressionResolver.concreteIndexNames(context, "barbaz", "bar");
            fail();
        } catch (IndexNotFoundException e) {
            assertThat(e.getIndex().getName(), equalTo("bar"));
        }
        results = indexNameExpressionResolver.concreteIndexNames(context, "baz*");
        assertThat(results, emptyArray());
        results = indexNameExpressionResolver.concreteIndexNames(context, "foo", "baz*");
        assertEquals(1, results.length);
        assertEquals("foo", results[0]);
    }
    IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen());
    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());
    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());
    results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo*");
    assertEquals(3, results.length);
    assertThat(results, arrayContainingInAnyOrder("foo", "foobar", "foofoo"));
    context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpand());
    results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo*");
    assertEquals(4, results.length);
    assertThat(results, arrayContainingInAnyOrder("foo", "foobar", "foofoo", "foofoo-closed"));
}
Also used : ClusterState(org.elasticsearch.cluster.ClusterState) Matchers.containsString(org.hamcrest.Matchers.containsString) ClusterName(org.elasticsearch.cluster.ClusterName) IndexNotFoundException(org.elasticsearch.index.IndexNotFoundException) IndicesOptions(org.elasticsearch.action.support.IndicesOptions)

Example 82 with ClusterName

use of org.elasticsearch.cluster.ClusterName in project elasticsearch by elastic.

the class IndexNameExpressionResolverTests method testIndexOptionsAllowUnavailableDisallowEmpty.

public void testIndexOptionsAllowUnavailableDisallowEmpty() {
    MetaData.Builder mdBuilder = MetaData.builder().put(indexBuilder("foo")).put(indexBuilder("foobar")).put(indexBuilder("foofoo-closed").state(IndexMetaData.State.CLOSE)).put(indexBuilder("foofoo").putAlias(AliasMetaData.builder("barbaz")));
    ClusterState state = ClusterState.builder(new ClusterName("_name")).metaData(mdBuilder).build();
    IndicesOptions expandOpen = IndicesOptions.fromOptions(true, false, true, false);
    IndicesOptions expand = IndicesOptions.fromOptions(true, false, true, true);
    IndicesOptions[] indicesOptions = new IndicesOptions[] { expandOpen, expand };
    for (IndicesOptions options : indicesOptions) {
        IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options);
        String[] results = indexNameExpressionResolver.concreteIndexNames(context, "foo");
        assertEquals(1, results.length);
        assertEquals("foo", results[0]);
        try {
            indexNameExpressionResolver.concreteIndexNames(context, "bar");
            fail();
        } catch (IndexNotFoundException e) {
            assertThat(e.getIndex().getName(), equalTo("bar"));
        }
        try {
            indexNameExpressionResolver.concreteIndexNames(context, "baz*");
            fail();
        } catch (IndexNotFoundException e) {
            assertThat(e.getIndex().getName(), equalTo("baz*"));
        }
        try {
            indexNameExpressionResolver.concreteIndexNames(context, "foo", "baz*");
            fail();
        } catch (IndexNotFoundException e) {
            assertThat(e.getIndex().getName(), equalTo("baz*"));
        }
    }
    IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, expandOpen);
    String[] results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
    assertEquals(3, results.length);
    context = new IndexNameExpressionResolver.Context(state, expand);
    results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
    assertEquals(4, results.length);
}
Also used : ClusterState(org.elasticsearch.cluster.ClusterState) ClusterName(org.elasticsearch.cluster.ClusterName) IndexNotFoundException(org.elasticsearch.index.IndexNotFoundException) Matchers.containsString(org.hamcrest.Matchers.containsString) IndicesOptions(org.elasticsearch.action.support.IndicesOptions)

Example 83 with ClusterName

use of org.elasticsearch.cluster.ClusterName in project elasticsearch by elastic.

the class IndexNameExpressionResolverTests method testConcreteIndicesIgnoreIndicesOneMissingIndex.

public void testConcreteIndicesIgnoreIndicesOneMissingIndex() {
    MetaData.Builder mdBuilder = MetaData.builder().put(indexBuilder("testXXX")).put(indexBuilder("kuku"));
    ClusterState state = ClusterState.builder(new ClusterName("_name")).metaData(mdBuilder).build();
    IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, IndicesOptions.strictExpandOpen());
    try {
        indexNameExpressionResolver.concreteIndexNames(context, "testZZZ");
        fail("Expected IndexNotFoundException");
    } catch (IndexNotFoundException e) {
        assertThat(e.getMessage(), is("no such index"));
    }
}
Also used : ClusterState(org.elasticsearch.cluster.ClusterState) ClusterName(org.elasticsearch.cluster.ClusterName) IndexNotFoundException(org.elasticsearch.index.IndexNotFoundException)

Example 84 with ClusterName

use of org.elasticsearch.cluster.ClusterName in project elasticsearch by elastic.

the class IndexNameExpressionResolverTests method testDedupConcreteIndices.

public void testDedupConcreteIndices() {
    MetaData.Builder mdBuilder = MetaData.builder().put(indexBuilder("index1").putAlias(AliasMetaData.builder("alias1")));
    ClusterState state = ClusterState.builder(new ClusterName("_name")).metaData(mdBuilder).build();
    IndicesOptions[] indicesOptions = new IndicesOptions[] { IndicesOptions.strictExpandOpen(), IndicesOptions.strictExpand(), IndicesOptions.lenientExpandOpen(), IndicesOptions.strictExpandOpenAndForbidClosed() };
    for (IndicesOptions options : indicesOptions) {
        IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options);
        String[] results = indexNameExpressionResolver.concreteIndexNames(context, "index1", "index1", "alias1");
        assertThat(results, equalTo(new String[] { "index1" }));
    }
}
Also used : ClusterState(org.elasticsearch.cluster.ClusterState) ClusterName(org.elasticsearch.cluster.ClusterName) Matchers.containsString(org.hamcrest.Matchers.containsString) IndicesOptions(org.elasticsearch.action.support.IndicesOptions)

Example 85 with ClusterName

use of org.elasticsearch.cluster.ClusterName in project elasticsearch by elastic.

the class IndexNameExpressionResolverTests method testIndexOptionsLenient.

public void testIndexOptionsLenient() {
    MetaData.Builder mdBuilder = MetaData.builder().put(indexBuilder("foo").putAlias(AliasMetaData.builder("foofoobar"))).put(indexBuilder("foobar").putAlias(AliasMetaData.builder("foofoobar"))).put(indexBuilder("foofoo-closed").state(IndexMetaData.State.CLOSE)).put(indexBuilder("foofoo").putAlias(AliasMetaData.builder("barbaz")));
    ClusterState state = ClusterState.builder(new ClusterName("_name")).metaData(mdBuilder).build();
    IndicesOptions lenientExpand = IndicesOptions.fromOptions(true, true, true, true);
    IndicesOptions[] indicesOptions = new IndicesOptions[] { IndicesOptions.lenientExpandOpen(), lenientExpand };
    for (IndicesOptions options : indicesOptions) {
        IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, options);
        String[] results = indexNameExpressionResolver.concreteIndexNames(context, "foo");
        assertEquals(1, results.length);
        assertEquals("foo", results[0]);
        results = indexNameExpressionResolver.concreteIndexNames(context, "bar");
        assertThat(results, emptyArray());
        results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo", "foobar");
        assertEquals(2, results.length);
        assertThat(results, arrayContainingInAnyOrder("foofoo", "foobar"));
        results = indexNameExpressionResolver.concreteIndexNames(context, "foofoobar");
        assertEquals(2, results.length);
        assertEquals(new HashSet<>(Arrays.asList("foo", "foobar")), new HashSet<>(Arrays.asList(results)));
        results = indexNameExpressionResolver.concreteIndexNames(context, "foo", "bar");
        assertEquals(1, results.length);
        assertThat(results, arrayContainingInAnyOrder("foo"));
        results = indexNameExpressionResolver.concreteIndexNames(context, "barbaz", "foobar");
        assertEquals(2, results.length);
        assertThat(results, arrayContainingInAnyOrder("foofoo", "foobar"));
        results = indexNameExpressionResolver.concreteIndexNames(context, "barbaz", "bar");
        assertEquals(1, results.length);
        assertThat(results, arrayContainingInAnyOrder("foofoo"));
        results = indexNameExpressionResolver.concreteIndexNames(context, "baz*");
        assertThat(results, emptyArray());
        results = indexNameExpressionResolver.concreteIndexNames(context, "foo", "baz*");
        assertEquals(1, results.length);
        assertEquals("foo", results[0]);
    }
    IndexNameExpressionResolver.Context context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen());
    String[] results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
    assertEquals(3, results.length);
    context = new IndexNameExpressionResolver.Context(state, lenientExpand);
    results = indexNameExpressionResolver.concreteIndexNames(context, Strings.EMPTY_ARRAY);
    assertEquals(Arrays.toString(results), 4, results.length);
    context = new IndexNameExpressionResolver.Context(state, IndicesOptions.lenientExpandOpen());
    results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo*");
    assertEquals(3, results.length);
    assertThat(results, arrayContainingInAnyOrder("foo", "foobar", "foofoo"));
    context = new IndexNameExpressionResolver.Context(state, lenientExpand);
    results = indexNameExpressionResolver.concreteIndexNames(context, "foofoo*");
    assertEquals(4, results.length);
    assertThat(results, arrayContainingInAnyOrder("foo", "foobar", "foofoo", "foofoo-closed"));
}
Also used : ClusterState(org.elasticsearch.cluster.ClusterState) ClusterName(org.elasticsearch.cluster.ClusterName) Matchers.containsString(org.hamcrest.Matchers.containsString) IndicesOptions(org.elasticsearch.action.support.IndicesOptions)

Aggregations

ClusterName (org.elasticsearch.cluster.ClusterName)95 ClusterState (org.elasticsearch.cluster.ClusterState)76 DiscoveryNode (org.elasticsearch.cluster.node.DiscoveryNode)22 DiscoveryNodes (org.elasticsearch.cluster.node.DiscoveryNodes)20 Settings (org.elasticsearch.common.settings.Settings)20 Matchers.containsString (org.hamcrest.Matchers.containsString)17 Version (org.elasticsearch.Version)14 AtomicReference (java.util.concurrent.atomic.AtomicReference)12 IndexMetaData (org.elasticsearch.cluster.metadata.IndexMetaData)12 MetaData (org.elasticsearch.cluster.metadata.MetaData)12 ClusterSettings (org.elasticsearch.common.settings.ClusterSettings)12 ArrayList (java.util.ArrayList)11 RoutingTable (org.elasticsearch.cluster.routing.RoutingTable)10 List (java.util.List)9 IndexShardRoutingTable (org.elasticsearch.cluster.routing.IndexShardRoutingTable)9 HashMap (java.util.HashMap)8 HashSet (java.util.HashSet)8 Collectors (java.util.stream.Collectors)8 BytesArray (org.elasticsearch.common.bytes.BytesArray)8 ESTestCase (org.elasticsearch.test.ESTestCase)8