Search in sources :

Example 51 with ClusterService

use of org.elasticsearch.cluster.service.ClusterService in project elasticsearch by elastic.

the class IndicesServiceTests method testDeleteIndexStore.

public void testDeleteIndexStore() throws Exception {
    IndicesService indicesService = getIndicesService();
    IndexService test = createIndex("test");
    ClusterService clusterService = getInstanceFromNode(ClusterService.class);
    IndexMetaData firstMetaData = clusterService.state().metaData().index("test");
    assertTrue(test.hasShard(0));
    try {
        indicesService.deleteIndexStore("boom", firstMetaData, clusterService.state());
        fail();
    } catch (IllegalStateException ex) {
    // all good
    }
    GatewayMetaState gwMetaState = getInstanceFromNode(GatewayMetaState.class);
    MetaData meta = gwMetaState.loadMetaState();
    assertNotNull(meta);
    assertNotNull(meta.index("test"));
    assertAcked(client().admin().indices().prepareDelete("test"));
    meta = gwMetaState.loadMetaState();
    assertNotNull(meta);
    assertNull(meta.index("test"));
    test = createIndex("test");
    client().prepareIndex("test", "type", "1").setSource("field", "value").setRefreshPolicy(IMMEDIATE).get();
    client().admin().indices().prepareFlush("test").get();
    assertHitCount(client().prepareSearch("test").get(), 1);
    IndexMetaData secondMetaData = clusterService.state().metaData().index("test");
    assertAcked(client().admin().indices().prepareClose("test"));
    ShardPath path = ShardPath.loadShardPath(logger, getNodeEnvironment(), new ShardId(test.index(), 0), test.getIndexSettings());
    assertTrue(path.exists());
    try {
        indicesService.deleteIndexStore("boom", secondMetaData, clusterService.state());
        fail();
    } catch (IllegalStateException ex) {
    // all good
    }
    assertTrue(path.exists());
    // now delete the old one and make sure we resolve against the name
    try {
        indicesService.deleteIndexStore("boom", firstMetaData, clusterService.state());
        fail();
    } catch (IllegalStateException ex) {
    // all good
    }
    assertAcked(client().admin().indices().prepareOpen("test"));
    ensureGreen("test");
}
Also used : ShardId(org.elasticsearch.index.shard.ShardId) ClusterService(org.elasticsearch.cluster.service.ClusterService) IndexService(org.elasticsearch.index.IndexService) ShardPath(org.elasticsearch.index.shard.ShardPath) MetaData(org.elasticsearch.cluster.metadata.MetaData) IndexMetaData(org.elasticsearch.cluster.metadata.IndexMetaData) IndexMetaData(org.elasticsearch.cluster.metadata.IndexMetaData) GatewayMetaState(org.elasticsearch.gateway.GatewayMetaState)

Example 52 with ClusterService

use of org.elasticsearch.cluster.service.ClusterService in project elasticsearch by elastic.

the class TribeIT method updateMetaData.

private static void updateMetaData(InternalTestCluster cluster, UnaryOperator<MetaData.Builder> addCustoms) {
    ClusterService clusterService = cluster.getInstance(ClusterService.class, cluster.getMasterName());
    final CountDownLatch latch = new CountDownLatch(1);
    clusterService.submitStateUpdateTask("update customMetaData", new ClusterStateUpdateTask(Priority.IMMEDIATE) {

        @Override
        public void clusterStateProcessed(String source, ClusterState oldState, ClusterState newState) {
            latch.countDown();
        }

        @Override
        public ClusterState execute(ClusterState currentState) throws Exception {
            MetaData.Builder builder = MetaData.builder(currentState.metaData());
            builder = addCustoms.apply(builder);
            return ClusterState.builder(currentState).metaData(builder).build();
        }

        @Override
        public void onFailure(String source, Exception e) {
            fail("failed to apply cluster state from [" + source + "] with " + e.getMessage());
        }
    });
    try {
        latch.await(1, TimeUnit.MINUTES);
    } catch (InterruptedException e) {
        fail("latch waiting on publishing custom md interrupted [" + e.getMessage() + "]");
    }
    assertThat("timed out trying to add custom metadata to " + cluster.getClusterName(), latch.getCount(), equalTo(0L));
}
Also used : ClusterState(org.elasticsearch.cluster.ClusterState) ClusterService(org.elasticsearch.cluster.service.ClusterService) ClusterStateUpdateTask(org.elasticsearch.cluster.ClusterStateUpdateTask) Matchers.containsString(org.hamcrest.Matchers.containsString) CountDownLatch(java.util.concurrent.CountDownLatch) MasterNotDiscoveredException(org.elasticsearch.discovery.MasterNotDiscoveredException) ClusterBlockException(org.elasticsearch.cluster.block.ClusterBlockException) IOException(java.io.IOException)

Aggregations

ClusterService (org.elasticsearch.cluster.service.ClusterService)52 ClusterState (org.elasticsearch.cluster.ClusterState)31 Settings (org.elasticsearch.common.settings.Settings)25 ThreadPool (org.elasticsearch.threadpool.ThreadPool)20 TransportService (org.elasticsearch.transport.TransportService)20 TestThreadPool (org.elasticsearch.threadpool.TestThreadPool)17 CountDownLatch (java.util.concurrent.CountDownLatch)15 IOException (java.io.IOException)13 DiscoveryNode (org.elasticsearch.cluster.node.DiscoveryNode)13 ActionFilters (org.elasticsearch.action.support.ActionFilters)12 IndexNameExpressionResolver (org.elasticsearch.cluster.metadata.IndexNameExpressionResolver)12 ClusterServiceUtils.createClusterService (org.elasticsearch.test.ClusterServiceUtils.createClusterService)12 Before (org.junit.Before)12 ShardId (org.elasticsearch.index.shard.ShardId)11 ArrayList (java.util.ArrayList)10 HashSet (java.util.HashSet)10 TimeUnit (java.util.concurrent.TimeUnit)10 ExecutionException (java.util.concurrent.ExecutionException)9 DiscoveryNodes (org.elasticsearch.cluster.node.DiscoveryNodes)9 ESTestCase (org.elasticsearch.test.ESTestCase)9