Search in sources :

Example 1 with PutIndexTemplateRequestBuilder

use of org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder in project elasticsearch by elastic.

the class SimpleIndexTemplateIT method testAliasEmptyName.

public void testAliasEmptyName() throws Exception {
    PutIndexTemplateRequestBuilder putIndexTemplateRequestBuilder = client().admin().indices().preparePutTemplate("template_1").setPatterns(Collections.singletonList("te*")).addAlias(new Alias("  ").indexRouting("1,2,3"));
    IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> putIndexTemplateRequestBuilder.get());
    assertThat(e.getMessage(), equalTo("alias name is required"));
}
Also used : Alias(org.elasticsearch.action.admin.indices.alias.Alias) PutIndexTemplateRequestBuilder(org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder)

Example 2 with PutIndexTemplateRequestBuilder

use of org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder in project elasticsearch by elastic.

the class SimpleIndexTemplateIT method testAliasWithMultipleIndexRoutings.

public void testAliasWithMultipleIndexRoutings() throws Exception {
    PutIndexTemplateRequestBuilder putIndexTemplateRequestBuilder = client().admin().indices().preparePutTemplate("template_1").setPatterns(Collections.singletonList("te*")).addAlias(new Alias("alias").indexRouting("1,2,3"));
    IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> putIndexTemplateRequestBuilder.get());
    assertThat(e.getMessage(), equalTo("alias [alias] has several index routing values associated with it"));
}
Also used : Alias(org.elasticsearch.action.admin.indices.alias.Alias) PutIndexTemplateRequestBuilder(org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder)

Example 3 with PutIndexTemplateRequestBuilder

use of org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder in project elasticsearch by elastic.

the class ESIntegTestCase method randomIndexTemplate.

/**
     * Creates a randomized index template. This template is used to pass in randomized settings on a
     * per index basis. Allows to enable/disable the randomization for number of shards and replicas
     */
public void randomIndexTemplate() throws IOException {
    // TODO move settings for random directory etc here into the index based randomized settings.
    if (cluster().size() > 0) {
        Settings.Builder randomSettingsBuilder = setRandomIndexSettings(random(), Settings.builder());
        if (isInternalCluster()) {
            // this is only used by mock plugins and if the cluster is not internal we just can't set it
            randomSettingsBuilder.put(INDEX_TEST_SEED_SETTING.getKey(), random().nextLong());
        }
        randomSettingsBuilder.put(SETTING_NUMBER_OF_SHARDS, numberOfShards()).put(SETTING_NUMBER_OF_REPLICAS, numberOfReplicas());
        // if the test class is annotated with SuppressCodecs("*"), it means don't use lucene's codec randomization
        // otherwise, use it, it has assertions and so on that can find bugs.
        SuppressCodecs annotation = getClass().getAnnotation(SuppressCodecs.class);
        if (annotation != null && annotation.value().length == 1 && "*".equals(annotation.value()[0])) {
            randomSettingsBuilder.put("index.codec", randomFrom(CodecService.DEFAULT_CODEC, CodecService.BEST_COMPRESSION_CODEC));
        } else {
            randomSettingsBuilder.put("index.codec", CodecService.LUCENE_DEFAULT_CODEC);
        }
        XContentBuilder mappings = null;
        if (frequently() && randomDynamicTemplates()) {
            mappings = XContentFactory.jsonBuilder().startObject().startObject("_default_").endObject().endObject();
        }
        for (String setting : randomSettingsBuilder.internalMap().keySet()) {
            assertThat("non index. prefix setting set on index template, its a node setting...", setting, startsWith("index."));
        }
        // always default delayed allocation to 0 to make sure we have tests are not delayed
        randomSettingsBuilder.put(UnassignedInfo.INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING.getKey(), 0);
        if (randomBoolean()) {
            randomSettingsBuilder.put(IndexModule.INDEX_QUERY_CACHE_ENABLED_SETTING.getKey(), randomBoolean());
        }
        if (randomBoolean()) {
            randomSettingsBuilder.put(IndexModule.INDEX_QUERY_CACHE_EVERYTHING_SETTING.getKey(), randomBoolean());
        }
        if (randomBoolean()) {
            randomSettingsBuilder.put(IndexModule.INDEX_QUERY_CACHE_TERM_QUERIES_SETTING.getKey(), randomBoolean());
        }
        PutIndexTemplateRequestBuilder putTemplate = client().admin().indices().preparePutTemplate("random_index_template").setPatterns(Collections.singletonList("*")).setOrder(0).setSettings(randomSettingsBuilder);
        if (mappings != null) {
            logger.info("test using _default_ mappings: [{}]", mappings.bytes().utf8ToString());
            putTemplate.addMapping("_default_", mappings);
        }
        assertAcked(putTemplate.execute().actionGet());
    }
}
Also used : PutIndexTemplateRequestBuilder(org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder) DiskThresholdSettings(org.elasticsearch.cluster.routing.allocation.DiskThresholdSettings) Settings(org.elasticsearch.common.settings.Settings) IndexSettings(org.elasticsearch.index.IndexSettings) XContentBuilder(org.elasticsearch.common.xcontent.XContentBuilder)

Example 4 with PutIndexTemplateRequestBuilder

use of org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder in project elasticsearch by elastic.

the class SimpleIndexTemplateIT method testAliasInvalidFilterInvalidJson.

public void testAliasInvalidFilterInvalidJson() throws Exception {
    //invalid json: put index template fails
    PutIndexTemplateRequestBuilder putIndexTemplateRequestBuilder = client().admin().indices().preparePutTemplate("template_1").setPatterns(Collections.singletonList("te*")).addAlias(new Alias("invalid_alias").filter("abcde"));
    IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> putIndexTemplateRequestBuilder.get());
    assertThat(e.getMessage(), equalTo("failed to parse filter for alias [invalid_alias]"));
    GetIndexTemplatesResponse response = client().admin().indices().prepareGetTemplates("template_1").get();
    assertThat(response.getIndexTemplates().size(), equalTo(0));
}
Also used : Alias(org.elasticsearch.action.admin.indices.alias.Alias) GetIndexTemplatesResponse(org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesResponse) PutIndexTemplateRequestBuilder(org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder)

Aggregations

PutIndexTemplateRequestBuilder (org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequestBuilder)4 Alias (org.elasticsearch.action.admin.indices.alias.Alias)3 GetIndexTemplatesResponse (org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesResponse)1 DiskThresholdSettings (org.elasticsearch.cluster.routing.allocation.DiskThresholdSettings)1 Settings (org.elasticsearch.common.settings.Settings)1 XContentBuilder (org.elasticsearch.common.xcontent.XContentBuilder)1 IndexSettings (org.elasticsearch.index.IndexSettings)1