Index(NewIndex newIndex) { this.name = newIndex.getName(); this.settings = newIndex.getSettings().build(); ImmutableMap.Builder<String, Type> builder = ImmutableMap.builder(); for (NewIndex.NewIndexType newIndexType : newIndex.getTypes().values()) { Type type = new Type(newIndexType); builder.put(type.getName(), type); } this.types = builder.build(); }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create(indexName, newBuilder(new MapSettings().asConfig()).build()); index.getSettings().put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0); index.getSettings().put("index.refresh_interval", "-1"); } }
@Test public void test_definition_of_index() { IndexDefinition.IndexDefinitionContext context = new IndexDefinition.IndexDefinitionContext(); underTest.define(context); assertThat(context.getIndices()).hasSize(1); NewIndex ruleIndex = context.getIndices().get("rules"); assertThat(ruleIndex).isNotNull(); assertThat(ruleIndex.getTypes().keySet()).containsOnly("activeRule", "ruleExtension", "rule"); // no cluster by default assertThat(ruleIndex.getSettings().get("index.number_of_shards")).isEqualTo("2"); assertThat(ruleIndex.getSettings().get("index.number_of_replicas")).isEqualTo("0"); }
@Test public void verify_default_index_settings_in_standalone() { Settings underTest = new NewIndex("issues", defaultSettingsConfiguration).getSettings().build(); assertThat(underTest.get("index.number_of_shards")).isNotEmpty(); assertThat(underTest.get("index.mapper.dynamic")).isEqualTo("false"); assertThat(underTest.get("index.refresh_interval")).isEqualTo("30s"); assertThat(underTest.get("index.number_of_shards")).isEqualTo("1"); assertThat(underTest.get("index.number_of_replicas")).isEqualTo("0"); }
@Test public void default_shards_and_replicas() { NewIndex index = new NewIndex("issues", newBuilder(settings.asConfig()).setDefaultNbOfShards(5).build()); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_SHARDS)).isEqualTo("5"); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_REPLICAS)).isEqualTo("0"); }
@Test public void define() { ViewIndexDefinition def = new ViewIndexDefinition(new MapSettings().asConfig()); def.define(underTest); assertThat(underTest.getIndices()).hasSize(1); NewIndex index = underTest.getIndices().get("views"); assertThat(index).isNotNull(); assertThat(index.getTypes().keySet()).containsOnly("view"); assertThat(index.getSettings().get("index.number_of_shards")).isEqualTo("5"); assertThat(index.getSettings().get("index.number_of_replicas")).isEqualTo("0"); } }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create(INDEX, newBuilder(new MapSettings().asConfig()).build()); index.getSettings().put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, replicas); index.getSettings().put("index.refresh_interval", "-1"); NewIndex.NewIndexType type = index.createType(INDEX_TYPE_FAKE.getType()); type.createIntegerField(INT_FIELD); }
@Test public void verify_default_index_settings_in_cluster() { settings.setProperty(CLUSTER_ENABLED.getKey(), "true"); Settings underTest = new NewIndex("issues", defaultSettingsConfiguration).getSettings().build(); assertThat(underTest.get("index.number_of_shards")).isNotEmpty(); assertThat(underTest.get("index.mapper.dynamic")).isEqualTo("false"); assertThat(underTest.get("index.refresh_interval")).isEqualTo("30s"); assertThat(underTest.get("index.number_of_shards")).isEqualTo("1"); assertThat(underTest.get("index.number_of_replicas")).isEqualTo("1"); }
@Test public void define() { UserIndexDefinition def = new UserIndexDefinition(new MapSettings().asConfig()); def.define(underTest); assertThat(underTest.getIndices()).hasSize(1); NewIndex index = underTest.getIndices().get("users"); assertThat(index).isNotNull(); assertThat(index.getTypes().keySet()).containsOnly("user"); // no cluster by default assertThat(index.getSettings().get("index.number_of_shards")).isEqualTo("1"); assertThat(index.getSettings().get("index.number_of_replicas")).isEqualTo("0"); } }
@Test public void define() { IssueIndexDefinition def = new IssueIndexDefinition(new MapSettings().asConfig()); def.define(underTest); assertThat(underTest.getIndices()).hasSize(1); NewIndex issuesIndex = underTest.getIndices().get("issues"); assertThat(issuesIndex).isNotNull(); assertThat(issuesIndex.getTypes().keySet()).containsOnly("issue", "authorization"); // no cluster by default assertThat(issuesIndex.getSettings().get("index.number_of_shards")).isEqualTo("5"); assertThat(issuesIndex.getSettings().get("index.number_of_replicas")).isEqualTo("0"); } }
@Test public void customize_number_of_shards() { settings.setProperty("sonar.search.issues.shards", "3"); NewIndex index = new NewIndex("issues", newBuilder(settings.asConfig()).setDefaultNbOfShards(5).build()); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_SHARDS)).isEqualTo("3"); // keep default value assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_REPLICAS)).isEqualTo("0"); }
@Test public void in_standalone_searchReplicas_is_not_overridable() { settings.setProperty(SEARCH_REPLICAS.getKey(), "5"); NewIndex index = new NewIndex("issues", defaultSettingsConfiguration); assertThat(index.getSettings().get("index.number_of_replicas")).isEqualTo("0"); }
@Test public void five_shards_and_one_replica_by_default_on_cluster() { settings.setProperty(CLUSTER_ENABLED.getKey(), "true"); NewIndex index = new NewIndex("issues", newBuilder(settings.asConfig()).setDefaultNbOfShards(5).build()); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_SHARDS)).isEqualTo("5"); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_REPLICAS)).isEqualTo("1"); }
@Test public void enable_replica_if_clustering_is_enabled() { settings.setProperty(CLUSTER_ENABLED.getKey(), true); IndexDefinition.IndexDefinitionContext context = new IndexDefinition.IndexDefinitionContext(); underTest.define(context); NewIndex ruleIndex = context.getIndices().get("rules"); assertThat(ruleIndex.getSettings().get("index.number_of_replicas")).isEqualTo("1"); }
@Test public void default_number_of_replicas_on_standalone_instance_must_be_0() { NewIndex index = new NewIndex("issues", newBuilder(settings.asConfig()).setDefaultNbOfShards(5).build()); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_REPLICAS)).isEqualTo("0"); }
@Test public void default_number_of_replicas_on_cluster_instance_must_be_1() { settings.setProperty(CLUSTER_ENABLED.getKey(), "true"); NewIndex index = new NewIndex("issues", newBuilder(settings.asConfig()).setDefaultNbOfShards(5).build()); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_REPLICAS)).isEqualTo("1"); }
@Test public void default_number_of_replicas_on_non_enabled_cluster_must_be_0() { settings.setProperty(CLUSTER_ENABLED.getKey(), "false"); NewIndex index = new NewIndex("issues", newBuilder(settings.asConfig()).setDefaultNbOfShards(5).build()); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_REPLICAS)).isEqualTo("0"); }
@Test public void when_number_of_replicas_on_cluster_is_specified_to_zero_default_value_must_not_be_used() { settings.setProperty(CLUSTER_ENABLED.getKey(), "true"); settings.setProperty(SEARCH_REPLICAS.getKey(), "0"); NewIndex index = new NewIndex("issues", newBuilder(settings.asConfig()).setDefaultNbOfShards(5).build()); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_REPLICAS)).isEqualTo("0"); }
@Test public void index_defined_with_specified_number_of_replicas_when_cluster_enabled() { settings.setProperty(CLUSTER_ENABLED.getKey(), "true"); settings.setProperty(SEARCH_REPLICAS.getKey(), "3"); NewIndex index = new NewIndex("issues", newBuilder(settings.asConfig()).setDefaultNbOfShards(5).build()); assertThat(index.getSettings().get(IndexMetaData.SETTING_NUMBER_OF_REPLICAS)).isEqualTo("3"); }
Index(NewIndex newIndex) { this.name = newIndex.getName(); this.settings = newIndex.getSettings().build(); ImmutableMap.Builder<String, IndexType> builder = ImmutableMap.builder(); for (NewIndex.NewIndexType newIndexType : newIndex.getTypes().values()) { IndexType type = new IndexType(newIndexType); builder.put(type.getName(), type); } this.types = builder.build(); }