From 9caa81a31b8cee4727a27230ec4891f718d60c4e Mon Sep 17 00:00:00 2001 From: Marco Miller Date: Sun, 6 Dec 2020 16:10:20 -0500 Subject: Elasticsearch: Discontinue EOL version 6.8 thus whole V6 support - Remove the whole V6 support as 6.8 was the last supported 6.x version. - Remove the no longer necessary documentation parts about that version. - Update the related tests accordingly, including removing the V6 ones. [1] https://www.elastic.co/support/eol Change-Id: I4748c9718eec246479a2fae78e5f9b1ef912fb93 --- Documentation/config-gerrit.txt | 6 +- .../gerrit/elasticsearch/AbstractElasticIndex.java | 42 +++------- .../gerrit/elasticsearch/ElasticAccountIndex.java | 3 +- .../gerrit/elasticsearch/ElasticChangeIndex.java | 35 +------- .../gerrit/elasticsearch/ElasticConfiguration.java | 7 +- .../gerrit/elasticsearch/ElasticGroupIndex.java | 4 +- .../gerrit/elasticsearch/ElasticProjectIndex.java | 4 +- .../gerrit/elasticsearch/ElasticQueryAdapter.java | 45 +--------- .../elasticsearch/ElasticRestClientProvider.java | 2 +- .../gerrit/elasticsearch/ElasticSetting.java | 8 +- .../gerrit/elasticsearch/ElasticVersion.java | 29 ------- .../gerrit/acceptance/pgm/ElasticReindexIT.java | 5 -- .../gerrit/acceptance/ssh/ElasticIndexIT.java | 5 -- javatests/com/google/gerrit/elasticsearch/BUILD | 10 --- .../gerrit/elasticsearch/ElasticContainer.java | 2 - .../elasticsearch/ElasticV6QueryAccountsTest.java | 64 --------------- .../elasticsearch/ElasticV6QueryChangesTest.java | 95 ---------------------- .../elasticsearch/ElasticV6QueryGroupsTest.java | 64 --------------- .../elasticsearch/ElasticV6QueryProjectsTest.java | 64 --------------- .../gerrit/elasticsearch/ElasticVersionTest.java | 45 ---------- 20 files changed, 31 insertions(+), 508 deletions(-) delete mode 100644 javatests/com/google/gerrit/elasticsearch/ElasticV6QueryAccountsTest.java delete mode 100644 javatests/com/google/gerrit/elasticsearch/ElasticV6QueryChangesTest.java delete mode 100644 javatests/com/google/gerrit/elasticsearch/ElasticV6QueryGroupsTest.java delete mode 100644 javatests/com/google/gerrit/elasticsearch/ElasticV6QueryProjectsTest.java diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt index f35dfc7284..e63e0bea39 100644 --- a/Documentation/config-gerrit.txt +++ b/Documentation/config-gerrit.txt @@ -3047,10 +3047,6 @@ WARNING: Support for Elasticsearch is still experimental and is not recommended for production use. For compatibility information, please refer to the link:https://www.gerritcodereview.com/elasticsearch.html[project homepage]. -In Elasticsearch version 6.2 or later, the open and closed changes are merged -into the default `_doc` type. The latter is also used for the accounts and groups -indices starting with Elasticsearch 6.2. - Note that when Gerrit is configured to use Elasticsearch, the Elasticsearch server(s) must be reachable during the site initialization. @@ -3080,7 +3076,7 @@ Sets the number of shards to use per index. Refer to the link:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html#_static_index_settings[ Elasticsearch documentation] for details. + -Defaults to 5 for Elasticsearch versions 5 and 6, and to 1 starting with Elasticsearch 7. +Defaults to 1. [[elasticsearch.numberOfReplicas]]elasticsearch.numberOfReplicas:: + diff --git a/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java b/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java index 0d1f9cd50a..ed32ce5b28 100644 --- a/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java +++ b/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java @@ -127,7 +127,6 @@ abstract class AbstractElasticIndex implements Index { private final SitePaths sitePaths; private final String indexNameRaw; - protected final String type; protected final ElasticRestClientProvider client; protected final String indexName; protected final Gson gson; @@ -147,7 +146,6 @@ abstract class AbstractElasticIndex implements Index { this.indexName = config.getIndexName(indexName, schema.getVersion()); this.indexNameRaw = indexName; this.client = client; - this.type = client.adapter().getType(); } @Override @@ -167,7 +165,7 @@ abstract class AbstractElasticIndex implements Index { @Override public void delete(K id) { - String uri = getURI(type, BULK); + String uri = getURI(BULK); Response response = postRequest(uri, getDeleteActions(id), getRefreshParam()); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK) { @@ -192,10 +190,8 @@ abstract class AbstractElasticIndex implements Index { } // Recreate the index. - String indexCreationFields = concatJsonString(getSettings(client.adapter()), getMappings()); - response = - performRequest( - "PUT", indexName + client.adapter().includeTypeNameParam(), indexCreationFields); + String indexCreationFields = concatJsonString(getSettings(), getMappings()); + response = performRequest("PUT", indexName, indexCreationFields); statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK) { String error = String.format("Failed to create index %s: %s", indexName, statusCode); @@ -207,26 +203,20 @@ abstract class AbstractElasticIndex implements Index { protected abstract String getMappings(); - private String getSettings(ElasticQueryAdapter adapter) { - return gson.toJson(ImmutableMap.of(SETTINGS, ElasticSetting.createSetting(config, adapter))); + private String getSettings() { + return gson.toJson(ImmutableMap.of(SETTINGS, ElasticSetting.createSetting(config))); } protected abstract String getId(V v); protected String getMappingsForSingleType(MappingProperties properties) { - return getMappingsFor(client.adapter().getType(), properties); + return getMappingsFor(properties); } - protected String getMappingsFor(String type, MappingProperties properties) { + protected String getMappingsFor(MappingProperties properties) { JsonObject mappings = new JsonObject(); - if (client.adapter().omitType()) { - mappings.add(MAPPINGS, gson.toJsonTree(properties)); - } else { - JsonObject mappingType = new JsonObject(); - mappingType.add(type, gson.toJsonTree(properties)); - mappings.add(MAPPINGS, gson.toJsonTree(mappingType)); - } + mappings.add(MAPPINGS, gson.toJsonTree(properties)); return gson.toJson(mappings); } @@ -305,15 +295,9 @@ abstract class AbstractElasticIndex implements Index { return sortArray; } - protected String getURI(String type, String request) { + protected String getURI(String request) { try { - String encodedIndexName = URLEncoder.encode(indexName, UTF_8.toString()); - if (SEARCH.equals(request) && client.adapter().omitType()) { - return encodedIndexName + "/" + request; - } - String encodedTypeIfAny = - client.adapter().omitType() ? "" : "/" + URLEncoder.encode(type, UTF_8.toString()); - return encodedIndexName + encodedTypeIfAny + "/" + request; + return URLEncoder.encode(indexName, UTF_8.toString()) + "/" + request; } catch (UnsupportedEncodingException e) { throw new StorageException(e); } @@ -359,12 +343,10 @@ abstract class AbstractElasticIndex implements Index { protected class ElasticQuerySource implements DataSource { private final QueryOptions opts; private final String search; - private final String index; - ElasticQuerySource(Predicate p, QueryOptions opts, String index, JsonArray sortArray) + ElasticQuerySource(Predicate p, QueryOptions opts, JsonArray sortArray) throws QueryParseException { this.opts = opts; - this.index = index; QueryBuilder qb = queryBuilder.toQueryBuilder(p); SearchSourceBuilder searchSource = new SearchSourceBuilder(client.adapter()) @@ -392,7 +374,7 @@ abstract class AbstractElasticIndex implements Index { private ResultSet readImpl(Function mapper) { try { - String uri = getURI(index, SEARCH); + String uri = getURI(SEARCH); Response response = performRequest(HttpPost.METHOD_NAME, uri, search, Collections.emptyMap()); StatusLine statusLine = response.getStatusLine(); diff --git a/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java b/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java index 374120e3e4..bde3ad50b6 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java +++ b/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java @@ -74,7 +74,7 @@ public class ElasticAccountIndex extends AbstractElasticIndex(schema, as)); - String uri = getURI(type, BULK); + String uri = getURI(BULK); Response response = postRequest(uri, bulk, getRefreshParam()); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK) { @@ -96,7 +96,6 @@ public class ElasticAccountIndex extends AbstractElasticIndex IndexUtils.accountFields(o, schema.useLegacyNumericFields())), - type, sortArray); } diff --git a/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java b/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java index a65840044e..2be1585f06 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java +++ b/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java @@ -14,8 +14,6 @@ package com.google.gerrit.elasticsearch; -import static com.google.gerrit.server.index.change.ChangeIndexRewriter.CLOSED_STATUSES; -import static com.google.gerrit.server.index.change.ChangeIndexRewriter.OPEN_STATUSES; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Objects.requireNonNull; @@ -23,7 +21,6 @@ import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.ListMultimap; -import com.google.common.collect.Lists; import com.google.common.collect.MultimapBuilder; import com.google.common.collect.Sets; import com.google.gerrit.elasticsearch.ElasticMapping.MappingProperties; @@ -50,7 +47,6 @@ import com.google.gerrit.server.config.SitePaths; import com.google.gerrit.server.index.IndexUtils; import com.google.gerrit.server.index.change.ChangeField; import com.google.gerrit.server.index.change.ChangeIndex; -import com.google.gerrit.server.index.change.ChangeIndexRewriter; import com.google.gerrit.server.project.SubmitRuleOptions; import com.google.gerrit.server.query.change.ChangeData; import com.google.gson.JsonArray; @@ -59,7 +55,6 @@ import com.google.gson.JsonObject; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; import java.util.Collections; -import java.util.List; import java.util.Optional; import java.util.Set; import org.apache.http.HttpStatus; @@ -82,8 +77,6 @@ class ElasticChangeIndex extends AbstractElasticIndex } private static final String CHANGES = "changes"; - private static final String OPEN_CHANGES = "open_" + CHANGES; - private static final String CLOSED_CHANGES = "closed_" + CHANGES; private final ChangeMapping mapping; private final ChangeData.Factory changeDataFactory; @@ -109,7 +102,7 @@ class ElasticChangeIndex extends AbstractElasticIndex public void replace(ChangeData cd) { BulkRequest bulk = new IndexRequest(getId(cd), indexName).add(new UpdateRequest<>(schema, cd)); - String uri = getURI(type, BULK); + String uri = getURI(BULK); Response response = postRequest(uri, bulk, getRefreshParam()); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK) { @@ -122,27 +115,9 @@ class ElasticChangeIndex extends AbstractElasticIndex @Override public DataSource getSource(Predicate p, QueryOptions opts) throws QueryParseException { - Set statuses = ChangeIndexRewriter.getPossibleStatus(p); - List indexes = Lists.newArrayListWithCapacity(2); - if (!client.adapter().omitType()) { - if (client.adapter().useV6Type()) { - if (!Sets.intersection(statuses, OPEN_STATUSES).isEmpty() - || !Sets.intersection(statuses, CLOSED_STATUSES).isEmpty()) { - indexes.add(ElasticQueryAdapter.V6_TYPE); - } - } else { - if (!Sets.intersection(statuses, OPEN_STATUSES).isEmpty()) { - indexes.add(OPEN_CHANGES); - } - if (!Sets.intersection(statuses, CLOSED_STATUSES).isEmpty()) { - indexes.add(CLOSED_CHANGES); - } - } - } - QueryOptions filteredOpts = opts.filterFields(o -> IndexUtils.changeFields(o, schema.useLegacyNumericFields())); - return new ElasticQuerySource(p, filteredOpts, getURI(indexes), getSortArray()); + return new ElasticQuerySource(p, filteredOpts, getSortArray()); } private JsonArray getSortArray() { @@ -155,10 +130,6 @@ class ElasticChangeIndex extends AbstractElasticIndex return sortArray; } - private String getURI(List types) { - return String.join(",", types); - } - @Override protected String getDeleteActions(Change.Id c) { return getDeleteRequest(c); @@ -166,7 +137,7 @@ class ElasticChangeIndex extends AbstractElasticIndex @Override protected String getMappings() { - return getMappingsFor(client.adapter().getType(), mapping.changes); + return getMappingsFor(mapping.changes); } @Override diff --git a/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java b/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java index 35c33cb9b4..06b128c102 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java +++ b/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java @@ -44,7 +44,7 @@ class ElasticConfiguration { static final String DEFAULT_PORT = "9200"; static final String DEFAULT_USERNAME = "elastic"; - static final int DEFAULT_NUMBER_OF_SHARDS = 0; + static final int DEFAULT_NUMBER_OF_SHARDS = 1; static final int DEFAULT_NUMBER_OF_REPLICAS = 1; static final int DEFAULT_MAX_RESULT_WINDOW = 10000; @@ -107,10 +107,7 @@ class ElasticConfiguration { return String.format("%s%s_%04d", prefix, name, schemaVersion); } - int getNumberOfShards(ElasticQueryAdapter adapter) { - if (numberOfShards == DEFAULT_NUMBER_OF_SHARDS) { - return adapter.getDefaultNumberOfShards(); - } + int getNumberOfShards() { return numberOfShards; } } diff --git a/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java b/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java index 3922f89616..241e7fddd9 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java +++ b/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java @@ -75,7 +75,7 @@ public class ElasticGroupIndex extends AbstractElasticIndex(schema, group)); - String uri = getURI(type, BULK); + String uri = getURI(BULK); Response response = postRequest(uri, bulk, getRefreshParam()); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK) { @@ -90,7 +90,7 @@ public class ElasticGroupIndex extends AbstractElasticIndex getSource(Predicate p, QueryOptions opts) throws QueryParseException { JsonArray sortArray = getSortArray(GroupField.UUID.getName()); - return new ElasticQuerySource(p, opts.filterFields(IndexUtils::groupFields), type, sortArray); + return new ElasticQuerySource(p, opts.filterFields(IndexUtils::groupFields), sortArray); } @Override diff --git a/java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java b/java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java index 7e45f4fc23..36eeca1083 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java +++ b/java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java @@ -76,7 +76,7 @@ public class ElasticProjectIndex extends AbstractElasticIndex(schema, projectState)); - String uri = getURI(type, BULK); + String uri = getURI(BULK); Response response = postRequest(uri, bulk, getRefreshParam()); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK) { @@ -91,7 +91,7 @@ public class ElasticProjectIndex extends AbstractElasticIndex getSource(Predicate p, QueryOptions opts) throws QueryParseException { JsonArray sortArray = getSortArray(ProjectField.NAME.getName()); - return new ElasticQuerySource(p, opts.filterFields(IndexUtils::projectFields), type, sortArray); + return new ElasticQuerySource(p, opts.filterFields(IndexUtils::projectFields), sortArray); } @Override diff --git a/java/com/google/gerrit/elasticsearch/ElasticQueryAdapter.java b/java/com/google/gerrit/elasticsearch/ElasticQueryAdapter.java index 779d433615..19d990181d 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticQueryAdapter.java +++ b/java/com/google/gerrit/elasticsearch/ElasticQueryAdapter.java @@ -14,42 +14,23 @@ package com.google.gerrit.elasticsearch; -import static com.google.gerrit.elasticsearch.ElasticVersion.V6_8; - public class ElasticQueryAdapter { - static final String V6_TYPE = "_doc"; - - private static final String INCLUDE_TYPE = "include_type_name=true"; private static final String INDICES = "?allow_no_indices=false"; - private final boolean useV6Type; - private final boolean omitType; - private final int defaultNumberOfShards; - private final String searchFilteringName; - private final String indicesExistParams; private final String exactFieldType; private final String stringFieldType; private final String indexProperty; private final String rawFieldsKey; private final String versionDiscoveryUrl; - private final String includeTypeNameParam; - ElasticQueryAdapter(ElasticVersion version) { - this.useV6Type = version.isV6(); - this.omitType = version.isV7OrLater(); - this.defaultNumberOfShards = version.isV7OrLater() ? 1 : 5; - this.versionDiscoveryUrl = version.isV6OrLater() ? "/%s*" : "/%s*/_aliases"; + ElasticQueryAdapter() { + this.versionDiscoveryUrl = "/%s*"; this.searchFilteringName = "_source"; this.exactFieldType = "keyword"; this.stringFieldType = "text"; this.indexProperty = "true"; this.rawFieldsKey = "_source"; - - // Since v6.7 (end-of-life), in fact, for these two parameters: - this.indicesExistParams = - version.isAtLeastMinorVersion(V6_8) ? INDICES + "&" + INCLUDE_TYPE : INDICES; - this.includeTypeNameParam = version.isAtLeastMinorVersion(V6_8) ? "?" + INCLUDE_TYPE : ""; } public String searchFilteringName() { @@ -57,7 +38,7 @@ public class ElasticQueryAdapter { } String indicesExistParams() { - return indicesExistParams; + return INDICES; } String exactFieldType() { @@ -76,27 +57,7 @@ public class ElasticQueryAdapter { return rawFieldsKey; } - boolean useV6Type() { - return useV6Type; - } - - boolean omitType() { - return omitType; - } - - int getDefaultNumberOfShards() { - return defaultNumberOfShards; - } - - String getType() { - return useV6Type() ? V6_TYPE : ""; - } - String getVersionDiscoveryUrl(String name) { return String.format(versionDiscoveryUrl, name); } - - String includeTypeNameParam() { - return includeTypeNameParam; - } } diff --git a/java/com/google/gerrit/elasticsearch/ElasticRestClientProvider.java b/java/com/google/gerrit/elasticsearch/ElasticRestClientProvider.java index a67de44d0d..f635b23c53 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticRestClientProvider.java +++ b/java/com/google/gerrit/elasticsearch/ElasticRestClientProvider.java @@ -65,7 +65,7 @@ class ElasticRestClientProvider implements Provider, LifecycleListen client = build(); ElasticVersion version = getVersion(); logger.atInfo().log("Elasticsearch integration version %s", version); - adapter = new ElasticQueryAdapter(version); + adapter = new ElasticQueryAdapter(); } } } diff --git a/java/com/google/gerrit/elasticsearch/ElasticSetting.java b/java/com/google/gerrit/elasticsearch/ElasticSetting.java index e016efb94e..7ec0566a88 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticSetting.java +++ b/java/com/google/gerrit/elasticsearch/ElasticSetting.java @@ -22,18 +22,18 @@ class ElasticSetting { private static final ImmutableMap CUSTOM_CHAR_MAPPING = ImmutableMap.of("\\u002E", "\\u0020", "\\u005F", "\\u0020"); - static SettingProperties createSetting(ElasticConfiguration config, ElasticQueryAdapter adapter) { - return new ElasticSetting.Builder().addCharFilter().addAnalyzer().build(config, adapter); + static SettingProperties createSetting(ElasticConfiguration config) { + return new ElasticSetting.Builder().addCharFilter().addAnalyzer().build(config); } static class Builder { private final ImmutableMap.Builder fields = new ImmutableMap.Builder<>(); - SettingProperties build(ElasticConfiguration config, ElasticQueryAdapter adapter) { + SettingProperties build(ElasticConfiguration config) { SettingProperties properties = new SettingProperties(); properties.analysis = fields.build(); - properties.numberOfShards = config.getNumberOfShards(adapter); + properties.numberOfShards = config.getNumberOfShards(); properties.numberOfReplicas = config.numberOfReplicas; properties.maxResultWindow = config.maxResultWindow; return properties; diff --git a/java/com/google/gerrit/elasticsearch/ElasticVersion.java b/java/com/google/gerrit/elasticsearch/ElasticVersion.java index b3f1471517..225ecaac1f 100644 --- a/java/com/google/gerrit/elasticsearch/ElasticVersion.java +++ b/java/com/google/gerrit/elasticsearch/ElasticVersion.java @@ -18,7 +18,6 @@ import com.google.common.base.Joiner; import java.util.regex.Pattern; public enum ElasticVersion { - V6_8("6.8.*"), V7_0("7.0.*"), V7_1("7.1.*"), V7_2("7.2.*"), @@ -67,34 +66,6 @@ public enum ElasticVersion { return Joiner.on(", ").join(ElasticVersion.values()); } - public boolean isV6() { - return getMajor() == 6; - } - - public boolean isV6OrLater() { - return isAtLeastVersion(6); - } - - public boolean isV7OrLater() { - return isAtLeastVersion(7); - } - - private boolean isAtLeastVersion(int major) { - return getMajor() >= major; - } - - public boolean isAtLeastMinorVersion(ElasticVersion version) { - return getMajor().equals(version.getMajor()) && getMinor() >= version.getMinor(); - } - - private Integer getMajor() { - return Integer.valueOf(version.split("\\.")[0]); - } - - private Integer getMinor() { - return Integer.valueOf(version.split("\\.")[1]); - } - @Override public String toString() { return version; diff --git a/javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java b/javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java index 7b99a55e57..f23cc10cb8 100644 --- a/javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java +++ b/javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java @@ -25,11 +25,6 @@ import org.eclipse.jgit.lib.Config; public class ElasticReindexIT extends AbstractReindexTests { @ConfigSuite.Default - public static Config elasticsearchV6() { - return getConfig(ElasticVersion.V6_8); - } - - @ConfigSuite.Config public static Config elasticsearchV7() { return getConfig(ElasticVersion.V7_8); } diff --git a/javatests/com/google/gerrit/acceptance/ssh/ElasticIndexIT.java b/javatests/com/google/gerrit/acceptance/ssh/ElasticIndexIT.java index 43a5cebf1b..f35bcb79eb 100644 --- a/javatests/com/google/gerrit/acceptance/ssh/ElasticIndexIT.java +++ b/javatests/com/google/gerrit/acceptance/ssh/ElasticIndexIT.java @@ -27,11 +27,6 @@ import org.eclipse.jgit.lib.Config; public class ElasticIndexIT extends AbstractIndexTests { @ConfigSuite.Default - public static Config elasticsearchV6() { - return getConfig(ElasticVersion.V6_8); - } - - @ConfigSuite.Config public static Config elasticsearchV7() { return getConfig(ElasticVersion.V7_8); } diff --git a/javatests/com/google/gerrit/elasticsearch/BUILD b/javatests/com/google/gerrit/elasticsearch/BUILD index e269fc25a0..be35d5a552 100644 --- a/javatests/com/google/gerrit/elasticsearch/BUILD +++ b/javatests/com/google/gerrit/elasticsearch/BUILD @@ -50,8 +50,6 @@ TYPES = [ SUFFIX = "sTest.java" -ELASTICSEARCH_TESTS_V6 = {i: "ElasticV6Query" + i.capitalize() + SUFFIX for i in TYPES} - ELASTICSEARCH_TESTS_V7 = {i: "ElasticV7Query" + i.capitalize() + SUFFIX for i in TYPES} ELASTICSEARCH_TAGS = [ @@ -60,14 +58,6 @@ ELASTICSEARCH_TAGS = [ "exclusive", ] -[junit_tests( - name = "elasticsearch_query_%ss_test_V6" % name, - size = "large", - srcs = [src], - tags = ELASTICSEARCH_TAGS, - deps = ELASTICSEARCH_DEPS + [QUERY_TESTS_DEP % name] + HTTP_TEST_DEPS, -) for name, src in ELASTICSEARCH_TESTS_V6.items()] - [junit_tests( name = "elasticsearch_query_%ss_test_V7" % name, size = "large", diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticContainer.java b/javatests/com/google/gerrit/elasticsearch/ElasticContainer.java index 48295ea5f9..35c32f3ccf 100644 --- a/javatests/com/google/gerrit/elasticsearch/ElasticContainer.java +++ b/javatests/com/google/gerrit/elasticsearch/ElasticContainer.java @@ -39,8 +39,6 @@ public class ElasticContainer extends ElasticsearchContainer { private static String getImageName(ElasticVersion version) { switch (version) { - case V6_8: - return "blacktop/elasticsearch:6.8.13"; case V7_0: return "blacktop/elasticsearch:7.0.1"; case V7_1: diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryAccountsTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryAccountsTest.java deleted file mode 100644 index 15d8dd63fe..0000000000 --- a/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryAccountsTest.java +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (C) 2018 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.elasticsearch; - -import com.google.gerrit.server.query.account.AbstractQueryAccountsTest; -import com.google.gerrit.testing.ConfigSuite; -import com.google.gerrit.testing.InMemoryModule; -import com.google.gerrit.testing.IndexConfig; -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.eclipse.jgit.lib.Config; -import org.junit.AfterClass; -import org.junit.BeforeClass; - -public class ElasticV6QueryAccountsTest extends AbstractQueryAccountsTest { - @ConfigSuite.Default - public static Config defaultConfig() { - return IndexConfig.createForElasticsearch(); - } - - private static ElasticContainer container; - - @BeforeClass - public static void startIndexService() { - if (container == null) { - // Only start Elasticsearch once - container = ElasticContainer.createAndStart(ElasticVersion.V6_8); - } - } - - @AfterClass - public static void stopElasticsearchServer() { - if (container != null) { - container.stop(); - } - } - - @Override - protected void initAfterLifecycleStart() throws Exception { - super.initAfterLifecycleStart(); - ElasticTestUtils.createAllIndexes(injector); - } - - @Override - protected Injector createInjector() { - Config elasticsearchConfig = new Config(config); - InMemoryModule.setDefaults(elasticsearchConfig); - String indicesPrefix = testName.getSanitizedMethodName(); - ElasticTestUtils.configure(elasticsearchConfig, container, indicesPrefix); - return Guice.createInjector(new InMemoryModule(elasticsearchConfig)); - } -} diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryChangesTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryChangesTest.java deleted file mode 100644 index d734f1eb6f..0000000000 --- a/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryChangesTest.java +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (C) 2018 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.elasticsearch; - -import static java.util.concurrent.TimeUnit.MINUTES; - -import com.google.gerrit.server.query.change.AbstractQueryChangesTest; -import com.google.gerrit.testing.ConfigSuite; -import com.google.gerrit.testing.GerritTestName; -import com.google.gerrit.testing.InMemoryModule; -import com.google.gerrit.testing.IndexConfig; -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.protocol.HttpClientContext; -import org.apache.http.impl.nio.client.CloseableHttpAsyncClient; -import org.apache.http.impl.nio.client.HttpAsyncClients; -import org.eclipse.jgit.lib.Config; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Rule; - -public class ElasticV6QueryChangesTest extends AbstractQueryChangesTest { - @ConfigSuite.Default - public static Config defaultConfig() { - return IndexConfig.createForElasticsearch(); - } - - private static ElasticContainer container; - private static CloseableHttpAsyncClient client; - - @BeforeClass - public static void startIndexService() { - if (container == null) { - // Only start Elasticsearch once - container = ElasticContainer.createAndStart(ElasticVersion.V6_8); - client = HttpAsyncClients.createDefault(); - client.start(); - } - } - - @AfterClass - public static void stopElasticsearchServer() { - if (container != null) { - container.stop(); - } - } - - @Rule public final GerritTestName testName = new GerritTestName(); - - @After - public void closeIndex() throws Exception { - // Close the index after each test to prevent exceeding Elasticsearch's - // shard limit (see Issue 10120). - client - .execute( - new HttpPost( - String.format( - "http://%s:%d/%s*/_close", - container.getHttpHost().getHostName(), - container.getHttpHost().getPort(), - testName.getSanitizedMethodName())), - HttpClientContext.create(), - null) - .get(5, MINUTES); - } - - @Override - protected void initAfterLifecycleStart() throws Exception { - super.initAfterLifecycleStart(); - ElasticTestUtils.createAllIndexes(injector); - } - - @Override - protected Injector createInjector() { - Config elasticsearchConfig = new Config(config); - InMemoryModule.setDefaults(elasticsearchConfig); - String indicesPrefix = testName.getSanitizedMethodName(); - ElasticTestUtils.configure(elasticsearchConfig, container, indicesPrefix); - return Guice.createInjector(new InMemoryModule(elasticsearchConfig)); - } -} diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryGroupsTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryGroupsTest.java deleted file mode 100644 index 28d798e7c4..0000000000 --- a/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryGroupsTest.java +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (C) 2018 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.elasticsearch; - -import com.google.gerrit.server.query.group.AbstractQueryGroupsTest; -import com.google.gerrit.testing.ConfigSuite; -import com.google.gerrit.testing.InMemoryModule; -import com.google.gerrit.testing.IndexConfig; -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.eclipse.jgit.lib.Config; -import org.junit.AfterClass; -import org.junit.BeforeClass; - -public class ElasticV6QueryGroupsTest extends AbstractQueryGroupsTest { - @ConfigSuite.Default - public static Config defaultConfig() { - return IndexConfig.createForElasticsearch(); - } - - private static ElasticContainer container; - - @BeforeClass - public static void startIndexService() { - if (container == null) { - // Only start Elasticsearch once - container = ElasticContainer.createAndStart(ElasticVersion.V6_8); - } - } - - @AfterClass - public static void stopElasticsearchServer() { - if (container != null) { - container.stop(); - } - } - - @Override - protected void initAfterLifecycleStart() throws Exception { - super.initAfterLifecycleStart(); - ElasticTestUtils.createAllIndexes(injector); - } - - @Override - protected Injector createInjector() { - Config elasticsearchConfig = new Config(config); - InMemoryModule.setDefaults(elasticsearchConfig); - String indicesPrefix = testName.getSanitizedMethodName(); - ElasticTestUtils.configure(elasticsearchConfig, container, indicesPrefix); - return Guice.createInjector(new InMemoryModule(elasticsearchConfig)); - } -} diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryProjectsTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryProjectsTest.java deleted file mode 100644 index 6658d7244e..0000000000 --- a/javatests/com/google/gerrit/elasticsearch/ElasticV6QueryProjectsTest.java +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (C) 2018 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.elasticsearch; - -import com.google.gerrit.server.query.project.AbstractQueryProjectsTest; -import com.google.gerrit.testing.ConfigSuite; -import com.google.gerrit.testing.InMemoryModule; -import com.google.gerrit.testing.IndexConfig; -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.eclipse.jgit.lib.Config; -import org.junit.AfterClass; -import org.junit.BeforeClass; - -public class ElasticV6QueryProjectsTest extends AbstractQueryProjectsTest { - @ConfigSuite.Default - public static Config defaultConfig() { - return IndexConfig.createForElasticsearch(); - } - - private static ElasticContainer container; - - @BeforeClass - public static void startIndexService() { - if (container == null) { - // Only start Elasticsearch once - container = ElasticContainer.createAndStart(ElasticVersion.V6_8); - } - } - - @AfterClass - public static void stopElasticsearchServer() { - if (container != null) { - container.stop(); - } - } - - @Override - protected void initAfterLifecycleStart() throws Exception { - super.initAfterLifecycleStart(); - ElasticTestUtils.createAllIndexes(injector); - } - - @Override - protected Injector createInjector() { - Config elasticsearchConfig = new Config(config); - InMemoryModule.setDefaults(elasticsearchConfig); - String indicesPrefix = testName.getSanitizedMethodName(); - ElasticTestUtils.configure(elasticsearchConfig, container, indicesPrefix); - return Guice.createInjector(new InMemoryModule(elasticsearchConfig)); - } -} diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticVersionTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticVersionTest.java index 9325a1b7bc..5d3d3e06a5 100644 --- a/javatests/com/google/gerrit/elasticsearch/ElasticVersionTest.java +++ b/javatests/com/google/gerrit/elasticsearch/ElasticVersionTest.java @@ -22,9 +22,6 @@ import org.junit.Test; public class ElasticVersionTest { @Test public void supportedVersion() throws Exception { - assertThat(ElasticVersion.forVersion("6.8.0")).isEqualTo(ElasticVersion.V6_8); - assertThat(ElasticVersion.forVersion("6.8.1")).isEqualTo(ElasticVersion.V6_8); - assertThat(ElasticVersion.forVersion("7.0.0")).isEqualTo(ElasticVersion.V7_0); assertThat(ElasticVersion.forVersion("7.0.1")).isEqualTo(ElasticVersion.V7_0); @@ -64,46 +61,4 @@ public class ElasticVersionTest { "Unsupported version: [4.0.0]. Supported versions: " + ElasticVersion.supportedVersions()); } - - @Test - public void atLeastMinorVersion() throws Exception { - assertThat(ElasticVersion.V6_8.isAtLeastMinorVersion(ElasticVersion.V6_8)).isTrue(); - assertThat(ElasticVersion.V7_0.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - assertThat(ElasticVersion.V7_1.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - assertThat(ElasticVersion.V7_2.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - assertThat(ElasticVersion.V7_3.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - assertThat(ElasticVersion.V7_4.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - assertThat(ElasticVersion.V7_5.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - assertThat(ElasticVersion.V7_6.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - assertThat(ElasticVersion.V7_7.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - assertThat(ElasticVersion.V7_8.isAtLeastMinorVersion(ElasticVersion.V6_8)).isFalse(); - } - - @Test - public void version6OrLater() throws Exception { - assertThat(ElasticVersion.V6_8.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_0.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_1.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_2.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_3.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_4.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_5.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_6.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_7.isV6OrLater()).isTrue(); - assertThat(ElasticVersion.V7_8.isV6OrLater()).isTrue(); - } - - @Test - public void version7OrLater() throws Exception { - assertThat(ElasticVersion.V6_8.isV7OrLater()).isFalse(); - assertThat(ElasticVersion.V7_0.isV7OrLater()).isTrue(); - assertThat(ElasticVersion.V7_1.isV7OrLater()).isTrue(); - assertThat(ElasticVersion.V7_2.isV7OrLater()).isTrue(); - assertThat(ElasticVersion.V7_3.isV7OrLater()).isTrue(); - assertThat(ElasticVersion.V7_4.isV7OrLater()).isTrue(); - assertThat(ElasticVersion.V7_5.isV7OrLater()).isTrue(); - assertThat(ElasticVersion.V7_6.isV7OrLater()).isTrue(); - assertThat(ElasticVersion.V7_7.isV7OrLater()).isTrue(); - assertThat(ElasticVersion.V7_8.isV7OrLater()).isTrue(); - } } -- cgit v1.2.3