diff --git a/graylog2-server/src/main/java/org/graylog2/indexer/indexset/IndexSetConfig.java b/graylog2-server/src/main/java/org/graylog2/indexer/indexset/IndexSetConfig.java index 5546ff54b13f..a37981f5ec00 100644 --- a/graylog2-server/src/main/java/org/graylog2/indexer/indexset/IndexSetConfig.java +++ b/graylog2-server/src/main/java/org/graylog2/indexer/indexset/IndexSetConfig.java @@ -18,6 +18,7 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.auto.value.AutoValue; @@ -56,14 +57,6 @@ public abstract class IndexSetConfig implements Comparable { private static final Duration DEFAULT_FIELD_TYPE_REFRESH_INTERVAL = Duration.standardSeconds(5L); - public static boolean isRegularIndex(@Nullable String templateType, boolean isWritable) { - // "isWritable == false" marks the restored-archive index set, which can also not be used as a default - return isWritable && (templateType == null || DEFAULT_INDEX_TEMPLATE_TYPE.equals(templateType)); - } - public static boolean isRegularIndex(IndexSetConfig config) { - return isRegularIndex(config.indexTemplateType().orElse(null), config.isWritable()); - } - @JsonProperty("id") @Nullable @Id @@ -81,6 +74,13 @@ public static boolean isRegularIndex(IndexSetConfig config) { @JsonProperty("writable") public abstract boolean isWritable(); + /** + * Indicates whether this index set is intended to + * store messages ingested by user, not by the system + */ + @JsonProperty("regular") + public abstract Optional isRegular(); + @JsonProperty(FIELD_INDEX_PREFIX) @NotBlank @Pattern(regexp = INDEX_PREFIX_REGEX) @@ -144,11 +144,19 @@ public static boolean isRegularIndex(IndexSetConfig config) { @JsonProperty("field_type_refresh_interval") public abstract Duration fieldTypeRefreshInterval(); + @JsonIgnore + public boolean isRegularIndex() { + final String indexTemplate = indexTemplateType().orElse(null); + return isWritable() && (indexTemplate == null || DEFAULT_INDEX_TEMPLATE_TYPE.equals(indexTemplate) || + isRegular().orElse(false)); + } + @JsonCreator public static IndexSetConfig create(@Id @ObjectId @JsonProperty("_id") @Nullable String id, @JsonProperty("title") @NotBlank String title, @JsonProperty("description") @Nullable String description, @JsonProperty("writable") @Nullable Boolean isWritable, + @JsonProperty("regular") @Nullable Boolean isRegular, @JsonProperty(FIELD_INDEX_PREFIX) @Pattern(regexp = INDEX_PREFIX_REGEX) String indexPrefix, @JsonProperty("index_match_pattern") @Nullable String indexMatchPattern, @JsonProperty("index_wildcard") @Nullable String indexWildcard, @@ -179,6 +187,7 @@ public static IndexSetConfig create(@Id @ObjectId @JsonProperty("_id") @Nullable .title(title) .description(description) .isWritable(writableValue) + .isRegular(isRegular) .indexPrefix(indexPrefix) .indexMatchPattern(indexMatchPattern) .indexWildcard(indexWildcard) @@ -198,58 +207,13 @@ public static IndexSetConfig create(@Id @ObjectId @JsonProperty("_id") @Nullable .build(); } - public static IndexSetConfig create(String id, - String title, - String description, - boolean isWritable, - String indexPrefix, - int shards, - int replicas, - String rotationStrategyClass, - RotationStrategyConfig rotationStrategy, - String retentionStrategyClass, - RetentionStrategyConfig retentionStrategy, - ZonedDateTime creationDate, - String indexAnalyzer, - String indexTemplateName, - String indexTemplateType, - int indexOptimizationMaxNumSegments, - boolean indexOptimizationDisabled, - Duration fieldTypeRefreshInterval) { - return create(id, title, description, isWritable, indexPrefix, null, null, shards, replicas, - rotationStrategyClass, rotationStrategy, retentionStrategyClass, retentionStrategy, creationDate, - indexAnalyzer, indexTemplateName, indexTemplateType, indexOptimizationMaxNumSegments, indexOptimizationDisabled, - fieldTypeRefreshInterval); - } - - public static IndexSetConfig create(String title, - String description, - boolean isWritable, - String indexPrefix, - int shards, - int replicas, - String rotationStrategyClass, - RotationStrategyConfig rotationStrategy, - String retentionStrategyClass, - RetentionStrategyConfig retentionStrategy, - ZonedDateTime creationDate, - String indexAnalyzer, - String indexTemplateName, - String indexTemplateType, - int indexOptimizationMaxNumSegments, - boolean indexOptimizationDisabled, - Duration fieldTypeRefreshInterval) { - return create(null, title, description, isWritable, indexPrefix, null, null, shards, replicas, - rotationStrategyClass, rotationStrategy, retentionStrategyClass, retentionStrategy, creationDate, - indexAnalyzer, indexTemplateName, indexTemplateType, indexOptimizationMaxNumSegments, indexOptimizationDisabled, - fieldTypeRefreshInterval); - } // Compatibility creator after field type refresh interval has been introduced public static IndexSetConfig create(String id, String title, String description, boolean isWritable, + Boolean isRegular, String indexPrefix, int shards, int replicas, @@ -263,7 +227,7 @@ public static IndexSetConfig create(String id, String indexTemplateType, int indexOptimizationMaxNumSegments, boolean indexOptimizationDisabled) { - return create(id, title, description, isWritable, indexPrefix, null, null, shards, replicas, + return create(id, title, description, isWritable, isRegular, indexPrefix, null, null, shards, replicas, rotationStrategyClass, rotationStrategy, retentionStrategyClass, retentionStrategy, creationDate, indexAnalyzer, indexTemplateName, indexTemplateType, indexOptimizationMaxNumSegments, indexOptimizationDisabled, DEFAULT_FIELD_TYPE_REFRESH_INTERVAL); @@ -273,6 +237,7 @@ public static IndexSetConfig create(String id, public static IndexSetConfig create(String title, String description, boolean isWritable, + Boolean isRegular, String indexPrefix, int shards, int replicas, @@ -286,7 +251,7 @@ public static IndexSetConfig create(String title, String indexTemplateType, int indexOptimizationMaxNumSegments, boolean indexOptimizationDisabled) { - return create(null, title, description, isWritable, indexPrefix, null, null, shards, replicas, + return create(null, title, description, isWritable, isRegular, indexPrefix, null, null, shards, replicas, rotationStrategyClass, rotationStrategy, retentionStrategyClass, retentionStrategy, creationDate, indexAnalyzer, indexTemplateName, indexTemplateType, indexOptimizationMaxNumSegments, indexOptimizationDisabled, DEFAULT_FIELD_TYPE_REFRESH_INTERVAL); @@ -320,6 +285,8 @@ public abstract static class Builder { public abstract Builder isWritable(boolean isWritable); + public abstract Builder isRegular(@Nullable Boolean isRegular); + public abstract Builder indexPrefix(String indexPrefix); public abstract Builder indexMatchPattern(String indexMatchPattern); diff --git a/graylog2-server/src/main/java/org/graylog2/migrations/V20161116172100_DefaultIndexSetMigration.java b/graylog2-server/src/main/java/org/graylog2/migrations/V20161116172100_DefaultIndexSetMigration.java index 0f3384f111b0..200993a57f85 100644 --- a/graylog2-server/src/main/java/org/graylog2/migrations/V20161116172100_DefaultIndexSetMigration.java +++ b/graylog2-server/src/main/java/org/graylog2/migrations/V20161116172100_DefaultIndexSetMigration.java @@ -83,6 +83,7 @@ public void upgrade() { final IndexSetConfig config = IndexSetConfig.builder() .title("Default index set") .description("The Graylog default index set") + .isRegular(true) .indexPrefix(elasticsearchConfiguration.getIndexPrefix()) .shards(elasticsearchConfiguration.getShards()) .replicas(elasticsearchConfiguration.getReplicas()) diff --git a/graylog2-server/src/main/java/org/graylog2/migrations/V20190705071400_AddEventIndexSetsMigration.java b/graylog2-server/src/main/java/org/graylog2/migrations/V20190705071400_AddEventIndexSetsMigration.java index adc3b9ffa151..7880d780415c 100644 --- a/graylog2-server/src/main/java/org/graylog2/migrations/V20190705071400_AddEventIndexSetsMigration.java +++ b/graylog2-server/src/main/java/org/graylog2/migrations/V20190705071400_AddEventIndexSetsMigration.java @@ -151,6 +151,7 @@ private IndexSet setupEventsIndexSet(String indexSetTitle, String indexSetDescri .description(indexSetDescription) .indexTemplateType(EVENT_TEMPLATE_TYPE) .isWritable(true) + .isRegular(false) .indexPrefix(indexPrefix) .shards(elasticsearchConfiguration.getShards()) .replicas(elasticsearchConfiguration.getReplicas()) diff --git a/graylog2-server/src/main/java/org/graylog2/rest/resources/streams/StreamResource.java b/graylog2-server/src/main/java/org/graylog2/rest/resources/streams/StreamResource.java index 9d441a32f31c..9bead14a6d87 100644 --- a/graylog2-server/src/main/java/org/graylog2/rest/resources/streams/StreamResource.java +++ b/graylog2-server/src/main/java/org/graylog2/rest/resources/streams/StreamResource.java @@ -42,7 +42,6 @@ import org.graylog2.database.PaginatedList; import org.graylog2.indexer.IndexSet; import org.graylog2.indexer.IndexSetRegistry; -import org.graylog2.indexer.indexset.IndexSetConfig; import org.graylog2.plugin.Message; import org.graylog2.plugin.Tools; import org.graylog2.plugin.alarms.AlertCondition; @@ -171,7 +170,7 @@ public Response create(@ApiParam(name = "JSON body", required = true) final Crea final IndexSet indexSet = stream.getIndexSet(); if (!indexSet.getConfig().isWritable()) { throw new BadRequestException("Assigned index set must be writable!"); - } else if (!IndexSetConfig.isRegularIndex(indexSet.getConfig())) { + } else if (!indexSet.getConfig().isRegularIndex()) { throw new BadRequestException("Assigned index set is not usable"); } @@ -329,7 +328,7 @@ public StreamResponse update(@ApiParam(name = "streamId", required = true) throw new BadRequestException("Index set with ID <" + stream.getIndexSetId() + "> does not exist!"); } else if (!indexSet.get().getConfig().isWritable()) { throw new BadRequestException("Assigned index set must be writable!"); - } else if (!IndexSetConfig.isRegularIndex(indexSet.get().getConfig())) { + } else if (!indexSet.get().getConfig().isRegularIndex()) { throw new BadRequestException("Assigned index set is not usable"); } diff --git a/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/IndexSetsResource.java b/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/IndexSetsResource.java index ad6af734bd76..cdbf31a1b3e0 100644 --- a/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/IndexSetsResource.java +++ b/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/IndexSetsResource.java @@ -221,7 +221,7 @@ public IndexSetStats indexSetStatistics(@ApiParam(name = "id", required = true) public IndexSetSummary save(@ApiParam(name = "Index set configuration", required = true) @Valid @NotNull IndexSetSummary indexSet) { try { - final IndexSetConfig indexSetConfig = indexSet.toIndexSetConfig(); + final IndexSetConfig indexSetConfig = indexSet.toIndexSetConfig(true); final Optional violation = indexSetValidator.validate(indexSetConfig); if (violation.isPresent()) { @@ -281,7 +281,7 @@ public IndexSetSummary setDefault(@ApiParam(name = "id", required = true) final IndexSetConfig indexSet = indexSetService.get(id) .orElseThrow(() -> new NotFoundException("Index set <" + id + "> does not exist")); - if (!IndexSetConfig.isRegularIndex(indexSet)) { + if (!indexSet.isRegularIndex()) { throw new ClientErrorException("Index set not eligible as default", Response.Status.CONFLICT); } diff --git a/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/requests/IndexSetUpdateRequest.java b/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/requests/IndexSetUpdateRequest.java index 297906bef8d6..a1d0d1b2931a 100644 --- a/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/requests/IndexSetUpdateRequest.java +++ b/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/requests/IndexSetUpdateRequest.java @@ -122,6 +122,7 @@ public IndexSetConfig toIndexSetConfig(String id, IndexSetConfig oldConfig) { .title(title()) .description(description()) .isWritable(isWritable()) + .isRegular(oldConfig.isRegular().orElse(null)) .indexPrefix(oldConfig.indexPrefix()) .indexMatchPattern(oldConfig.indexMatchPattern()) .indexWildcard(oldConfig.indexWildcard()) diff --git a/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/responses/IndexSetSummary.java b/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/responses/IndexSetSummary.java index d1d5dc1c96d8..3e1c001cb919 100644 --- a/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/responses/IndexSetSummary.java +++ b/graylog2-server/src/main/java/org/graylog2/rest/resources/system/indexer/responses/IndexSetSummary.java @@ -114,6 +114,7 @@ public static IndexSetSummary create(@JsonProperty("id") @Nullable String id, @JsonProperty("description") @Nullable String description, @JsonProperty("default") boolean isDefault, @JsonProperty("writable") boolean isWritable, + @JsonProperty("can_be_default") boolean canBeDefault, @JsonProperty("index_prefix") @Pattern(regexp = IndexSetConfig.INDEX_PREFIX_REGEX) String indexPrefix, @JsonProperty("shards") @Min(1) int shards, @JsonProperty("replicas") @Min(0) int replicas, @@ -127,7 +128,7 @@ public static IndexSetSummary create(@JsonProperty("id") @Nullable String id, @JsonProperty("index_optimization_disabled") boolean indexOptimizationDisabled, @JsonProperty("field_type_refresh_interval") Duration fieldTypeRefreshInterval, @JsonProperty("index_template_type") @Nullable String templateType) { - return new AutoValue_IndexSetSummary(id, title, description, isDefault, IndexSetConfig.isRegularIndex(templateType, isWritable), + return new AutoValue_IndexSetSummary(id, title, description, isDefault, canBeDefault, isWritable, indexPrefix, shards, replicas, rotationStrategyClass, rotationStrategy, retentionStrategyClass, retentionStrategy, creationDate, indexAnalyzer, indexOptimizationMaxNumSegments, indexOptimizationDisabled, fieldTypeRefreshInterval, @@ -141,6 +142,7 @@ public static IndexSetSummary fromIndexSetConfig(IndexSetConfig indexSet, boolea indexSet.description(), isDefault, indexSet.isWritable(), + indexSet.isRegularIndex(), indexSet.indexPrefix(), indexSet.shards(), indexSet.replicas(), @@ -157,12 +159,13 @@ public static IndexSetSummary fromIndexSetConfig(IndexSetConfig indexSet, boolea } - public IndexSetConfig toIndexSetConfig() { + public IndexSetConfig toIndexSetConfig(boolean isRegular) { final IndexSetConfig.Builder builder = IndexSetConfig.builder() .id(id()) .title(title()) .description(description()) .isWritable(isWritable()) + .isRegular(isRegular) .indexPrefix(indexPrefix()) .shards(shards()) .replicas(replicas()) diff --git a/graylog2-server/src/test/java/org/graylog2/indexer/MongoIndexSetTest.java b/graylog2-server/src/test/java/org/graylog2/indexer/MongoIndexSetTest.java index 3850415442c8..727140d086ff 100644 --- a/graylog2-server/src/test/java/org/graylog2/indexer/MongoIndexSetTest.java +++ b/graylog2-server/src/test/java/org/graylog2/indexer/MongoIndexSetTest.java @@ -82,7 +82,7 @@ public class MongoIndexSetTest { private final IndexSetConfig config = IndexSetConfig.create( "Test", "Test", - true, + true, true, "graylog", 1, 0, diff --git a/graylog2-server/src/test/java/org/graylog2/indexer/indexset/IndexSetConfigTest.java b/graylog2-server/src/test/java/org/graylog2/indexer/indexset/IndexSetConfigTest.java index 4eefcd685278..ff904c32d5e2 100644 --- a/graylog2-server/src/test/java/org/graylog2/indexer/indexset/IndexSetConfigTest.java +++ b/graylog2-server/src/test/java/org/graylog2/indexer/indexset/IndexSetConfigTest.java @@ -16,6 +16,7 @@ */ package org.graylog2.indexer.indexset; +import org.graylog2.indexer.MessageIndexTemplateProvider; import org.graylog2.indexer.retention.strategies.NoopRetentionStrategy; import org.graylog2.indexer.retention.strategies.NoopRetentionStrategyConfig; import org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy; @@ -74,7 +75,7 @@ public void indexTemplateTypeDefault() { "57f3d721a43c2d59cb750001", "Test 3", "A test index-set.", - true, + true, true, "graylog3", 4, 1, @@ -94,7 +95,7 @@ public void indexTemplateTypeDefault() { "57f3d721a43c2d59cb750001", "Test 3", "A test index-set.", - true, + true, true, "graylog3", 4, 1, @@ -121,4 +122,160 @@ public void indexTemplateTypeDefault() { // A template type value of "null" should result in an empty template type assertThat(config4.indexTemplateType()).isNotPresent(); } + + @Test + public void writableIndexWithMissingTemplateType_isRegularIndex() { + final IndexSetConfig config = IndexSetConfig.create( + "57f3d721a43c2d59cb750001", + "Test Regular Index", + "Test Regular Index", + true, false, + "regular_index_test", + 4, + 1, + MessageCountRotationStrategy.class.getCanonicalName(), + MessageCountRotationStrategyConfig.create(1000), + NoopRetentionStrategy.class.getCanonicalName(), + NoopRetentionStrategyConfig.create(10), + ZonedDateTime.now(ZoneOffset.UTC), + "standard", + "graylog3-template", + null, + 1, + false + ); + + assertThat(config.isRegular()).contains(false); + assertThat(config.isRegularIndex()).isTrue(); + } + + @Test + public void writableIndexWithDefaultIndexTemplateType_isRegularIndex() { + final IndexSetConfig config = IndexSetConfig.create( + "57f3d721a43c2d59cb750001", + "Test Regular Index", + "Test Regular Index", + true, false, + "regular_index_test", + 4, + 1, + MessageCountRotationStrategy.class.getCanonicalName(), + MessageCountRotationStrategyConfig.create(1000), + NoopRetentionStrategy.class.getCanonicalName(), + NoopRetentionStrategyConfig.create(10), + ZonedDateTime.now(ZoneOffset.UTC), + "standard", + "graylog3-template", + MessageIndexTemplateProvider.MESSAGE_TEMPLATE_TYPE, + 1, + false + ); + + assertThat(config.isRegular()).contains(false); + assertThat(config.isRegularIndex()).isTrue(); + } + + @Test + public void writableIndexWithIsRegularFlag_isRegularIndex() { + final IndexSetConfig config = IndexSetConfig.create( + "57f3d721a43c2d59cb750001", + "Test Regular Index", + "Test Regular Index", + true, true, + "regular_index_test", + 4, + 1, + MessageCountRotationStrategy.class.getCanonicalName(), + MessageCountRotationStrategyConfig.create(1000), + NoopRetentionStrategy.class.getCanonicalName(), + NoopRetentionStrategyConfig.create(10), + ZonedDateTime.now(ZoneOffset.UTC), + "standard", + "graylog3-template", + EVENT_TEMPLATE_TYPE, + 1, + false + ); + + assertThat(config.isRegular()).contains(true); + assertThat(config.isRegularIndex()).isTrue(); + } + + @Test + public void writableIndexWithNonDefaultIndexTemplateType_isNotRegularIndex() { + final IndexSetConfig config = IndexSetConfig.create( + "57f3d721a43c2d59cb750001", + "Test Regular Index", + "Test Regular Index", + true, false, + "regular_index_test", + 4, + 1, + MessageCountRotationStrategy.class.getCanonicalName(), + MessageCountRotationStrategyConfig.create(1000), + NoopRetentionStrategy.class.getCanonicalName(), + NoopRetentionStrategyConfig.create(10), + ZonedDateTime.now(ZoneOffset.UTC), + "standard", + "graylog3-template", + EVENT_TEMPLATE_TYPE, + 1, + false + ); + + assertThat(config.isRegular()).contains(false); + assertThat(config.isRegularIndex()).isFalse(); + } + + @Test + public void nonWritableIndex_isNotRegularIndex() { + final IndexSetConfig config = IndexSetConfig.create( + "57f3d721a43c2d59cb750001", + "Test Regular Index", + "Test Regular Index", + false, true, + "regular_index_test", + 4, + 1, + MessageCountRotationStrategy.class.getCanonicalName(), + MessageCountRotationStrategyConfig.create(1000), + NoopRetentionStrategy.class.getCanonicalName(), + NoopRetentionStrategyConfig.create(10), + ZonedDateTime.now(ZoneOffset.UTC), + "standard", + "graylog3-template", + MessageIndexTemplateProvider.MESSAGE_TEMPLATE_TYPE, + 1, + false + ); + + assertThat(config.isRegular()).contains(true); + assertThat(config.isRegularIndex()).isFalse(); + } + + @Test + public void missingIsRegularField_defaultsToFalse() { + final IndexSetConfig config = IndexSetConfig.create( + "57f3d721a43c2d59cb750001", + "Test Regular Index", + "Test Regular Index", + true, null, + "regular_index_test", + 4, + 1, + MessageCountRotationStrategy.class.getCanonicalName(), + MessageCountRotationStrategyConfig.create(1000), + NoopRetentionStrategy.class.getCanonicalName(), + NoopRetentionStrategyConfig.create(10), + ZonedDateTime.now(ZoneOffset.UTC), + "standard", + "graylog3-template", + EVENT_TEMPLATE_TYPE, + 1, + false + ); + + assertThat(config.isRegular()).isEmpty(); + assertThat(config.isRegularIndex()).isFalse(); + } } diff --git a/graylog2-server/src/test/java/org/graylog2/indexer/indexset/MongoIndexSetServiceTest.java b/graylog2-server/src/test/java/org/graylog2/indexer/indexset/MongoIndexSetServiceTest.java index b164d408739d..a1d9c7943e9b 100644 --- a/graylog2-server/src/test/java/org/graylog2/indexer/indexset/MongoIndexSetServiceTest.java +++ b/graylog2-server/src/test/java/org/graylog2/indexer/indexset/MongoIndexSetServiceTest.java @@ -93,7 +93,7 @@ public void getWithStringId() throws Exception { "57f3d721a43c2d59cb750001", "Test 1", "This is the index set configuration for Test 1", - true, + true, true, "test_1", 4, 1, @@ -122,7 +122,7 @@ public void getReturnsExistingIndexSetConfig() throws Exception { "57f3d721a43c2d59cb750001", "Test 1", "This is the index set configuration for Test 1", - true, + true, true, "test_1", 4, 1, @@ -187,7 +187,7 @@ public void findAll() throws Exception { "57f3d721a43c2d59cb750001", "Test 1", "This is the index set configuration for Test 1", - true, + true, true, "test_1", 4, 1, @@ -206,7 +206,7 @@ public void findAll() throws Exception { "57f3d721a43c2d59cb750002", "Test 2", null, - true, + true, false, "test_2", 1, 0, @@ -225,7 +225,7 @@ public void findAll() throws Exception { "57f3d721a43c2d59cb750003", "Test 3", "This is the index set configuration for Test 3 - with an index set index template", - true, + true, null, "test_3", 1, 0, @@ -250,7 +250,7 @@ public void save() throws Exception { final IndexSetConfig indexSetConfig = IndexSetConfig.create( "Test 3", null, - true, + true, true, "test_3", 10, 0, diff --git a/graylog2-server/src/test/java/org/graylog2/rest/resources/system/indexer/IndexSetsResourceTest.java b/graylog2-server/src/test/java/org/graylog2/rest/resources/system/indexer/IndexSetsResourceTest.java index 79b078fb08e5..b19455d89373 100644 --- a/graylog2-server/src/test/java/org/graylog2/rest/resources/system/indexer/IndexSetsResourceTest.java +++ b/graylog2-server/src/test/java/org/graylog2/rest/resources/system/indexer/IndexSetsResourceTest.java @@ -118,7 +118,7 @@ public void list() { "id", "title", "description", - true, + true, true, "prefix", 1, 0, @@ -153,7 +153,7 @@ public void listDenied() { "id", "title", "description", - true, + true, true, "prefix", 1, 0, @@ -200,7 +200,7 @@ public void get() { "id", "title", "description", - true, + true, true, "prefix", 1, 0, @@ -300,7 +300,7 @@ public void save() { final IndexSetConfig indexSetConfig = IndexSetConfig.create( "title", "description", - true, + true, true, "prefix", 1, 0, @@ -326,7 +326,7 @@ public void save() { verify(indexSetService, times(1)).save(indexSetConfig); verify(indexSetService, times(1)).getDefault(); verifyNoMoreInteractions(indexSetService); - assertThat(summary.toIndexSetConfig()).isEqualTo(savedIndexSetConfig); + assertThat(summary.toIndexSetConfig(true)).isEqualTo(savedIndexSetConfig); } @Test @@ -337,7 +337,7 @@ public void saveDenied() { final IndexSetConfig indexSetConfig = IndexSetConfig.create( "title", "description", - true, + true, true, "prefix", 1, 0, @@ -369,7 +369,7 @@ public void update() { "id", "new title", "description", - true, + true, false, "prefix", 1, 0, @@ -399,7 +399,7 @@ public void update() { verifyNoMoreInteractions(indexSetService); // The real update wouldn't replace the index template nameā€¦ - final IndexSetConfig actual = summary.toIndexSetConfig().toBuilder() + final IndexSetConfig actual = summary.toIndexSetConfig(false).toBuilder() .indexTemplateName("index-template") .build(); assertThat(actual).isEqualTo(updatedIndexSetConfig); @@ -412,7 +412,7 @@ public void updateDenied() { "id", "title", "description", - true, + true, true, "prefix", 1, 0, @@ -445,7 +445,7 @@ public void updateFailsWhenDefaultSetIsSetReadOnly() throws Exception { defaultIndexSetId, "title", "description", - true, + true, true, "prefix", 1, 0, @@ -631,7 +631,7 @@ public void setDefaultMakesIndexDefaultIfWritable() throws Exception { indexSetId, "title", "description", - true, + true, true, "prefix", 1, 0, @@ -699,7 +699,7 @@ public void setDefaultDoesNotDoAnythingIfIndexSetIsNotWritable() throws Exceptio readOnlyIndexSetId, "title", "description", - false, + false, true, "prefix", 1, 0, @@ -736,7 +736,7 @@ public void setDefaultDoesNotDoAnythingIfIndexSetIsNotElegibleAsDefault() throws readOnlyIndexSetId, "title", "description", - true, + true, false, "prefix", 1, 0, diff --git a/graylog2-server/src/test/java/org/graylog2/streams/StreamMock.java b/graylog2-server/src/test/java/org/graylog2/streams/StreamMock.java index 237ae5af903f..23b11499a0cb 100644 --- a/graylog2-server/src/test/java/org/graylog2/streams/StreamMock.java +++ b/graylog2-server/src/test/java/org/graylog2/streams/StreamMock.java @@ -73,7 +73,7 @@ public StreamMock(Map stream, List streamRules) { "index-set-id", "title", "description", - true, + true, true, "prefix", 1, 0, diff --git a/graylog2-server/src/test/resources/org/graylog2/indexer/indexset/MongoIndexSetServiceTest.json b/graylog2-server/src/test/resources/org/graylog2/indexer/indexset/MongoIndexSetServiceTest.json index 99fec5580291..6a9e426b0770 100644 --- a/graylog2-server/src/test/resources/org/graylog2/indexer/indexset/MongoIndexSetServiceTest.json +++ b/graylog2-server/src/test/resources/org/graylog2/indexer/indexset/MongoIndexSetServiceTest.json @@ -25,7 +25,8 @@ "index_analyzer": "standard", "index_template_name": "test_1", "index_optimization_max_num_segments": 1, - "index_optimization_disabled": false + "index_optimization_disabled": false, + "regular": true, }, { "_id": { @@ -51,7 +52,8 @@ "index_analyzer": "standard", "index_template_name": "test_2", "index_optimization_max_num_segments": 1, - "index_optimization_disabled": false + "index_optimization_disabled": false, + "regular": false }, { "_id": {