summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Miller <marco.miller@ericsson.com>2020-12-06 16:10:20 -0500
committerMarco Miller <marco.miller@ericsson.com>2020-12-07 17:20:29 -0500
commit9caa81a31b8cee4727a27230ec4891f718d60c4e (patch)
treede718944de27b902db9d8d65a316a7ed10e3ab95
parent9134e7917ea772732726f9469a3a64e0cf4050ba (diff)
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
-rw-r--r--Documentation/config-gerrit.txt6
-rw-r--r--java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java42
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java3
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java35
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticConfiguration.java7
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java4
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java4
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticQueryAdapter.java45
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticRestClientProvider.java2
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticSetting.java8
-rw-r--r--java/com/google/gerrit/elasticsearch/ElasticVersion.java29
-rw-r--r--javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java5
-rw-r--r--javatests/com/google/gerrit/acceptance/ssh/ElasticIndexIT.java5
-rw-r--r--javatests/com/google/gerrit/elasticsearch/BUILD10
-rw-r--r--javatests/com/google/gerrit/elasticsearch/ElasticContainer.java2
-rw-r--r--javatests/com/google/gerrit/elasticsearch/ElasticV6QueryAccountsTest.java64
-rw-r--r--javatests/com/google/gerrit/elasticsearch/ElasticV6QueryChangesTest.java95
-rw-r--r--javatests/com/google/gerrit/elasticsearch/ElasticV6QueryGroupsTest.java64
-rw-r--r--javatests/com/google/gerrit/elasticsearch/ElasticV6QueryProjectsTest.java64
-rw-r--r--javatests/com/google/gerrit/elasticsearch/ElasticVersionTest.java45
20 files changed, 31 insertions, 508 deletions
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<K, V> implements Index<K, V> {
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<K, V> implements Index<K, V> {
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<K, V> implements Index<K, V> {
@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<K, V> implements Index<K, V> {
}
// 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<K, V> implements Index<K, V> {
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<K, V> implements Index<K, V> {
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<K, V> implements Index<K, V> {
protected class ElasticQuerySource implements DataSource<V> {
private final QueryOptions opts;
private final String search;
- private final String index;
- ElasticQuerySource(Predicate<V> p, QueryOptions opts, String index, JsonArray sortArray)
+ ElasticQuerySource(Predicate<V> 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<K, V> implements Index<K, V> {
private <T> ResultSet<T> readImpl(Function<JsonObject, T> 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<Account.Id, Accoun
public void replace(AccountState as) {
BulkRequest bulk = new IndexRequest(getId(as), indexName).add(new UpdateRequest<>(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<Account.Id, Accoun
return new ElasticQuerySource(
p,
opts.filterFields(o -> 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<Change.Id, ChangeData>
}
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<Change.Id, ChangeData>
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<Change.Id, ChangeData>
@Override
public DataSource<ChangeData> getSource(Predicate<ChangeData> p, QueryOptions opts)
throws QueryParseException {
- Set<Change.Status> statuses = ChangeIndexRewriter.getPossibleStatus(p);
- List<String> 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<Change.Id, ChangeData>
return sortArray;
}
- private String getURI(List<String> types) {
- return String.join(",", types);
- }
-
@Override
protected String getDeleteActions(Change.Id c) {
return getDeleteRequest(c);
@@ -166,7 +137,7 @@ class ElasticChangeIndex extends AbstractElasticIndex<Change.Id, ChangeData>
@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<AccountGroup.UUID, I
BulkRequest bulk =
new IndexRequest(getId(group), indexName).add(new UpdateRequest<>(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<AccountGroup.UUID, I
public DataSource<InternalGroup> getSource(Predicate<InternalGroup> 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<Project.NameKey, P
new IndexRequest(projectState.getProject().getName(), indexName)
.add(new UpdateRequest<>(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<Project.NameKey, P
public DataSource<ProjectData> getSource(Predicate<ProjectData> 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<RestClient>, 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<String, String> 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<String, FieldProperties> 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 = [
@@ -61,14 +59,6 @@ ELASTICSEARCH_TAGS = [
]
[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",
srcs = [src],
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();
- }
}