Merge branch 'stable-2.15' into stable-2.16

* stable-2.15:
  ElasticContainer: Use version 7.0.0-rc1 for V7_0 tests
  ElasticContainer: Use version 5.6.16 for V5_6 tests
  Add support for Elasticsearch 6.7.0

Change-Id: I267fcfa797f3428a3af144b31089710bb736a931
This commit is contained in:
Marco Miller
2019-03-28 10:41:38 -04:00
13 changed files with 15 additions and 53 deletions

View File

@@ -3049,14 +3049,6 @@ Note that the site initialization program only allows to configure a single
server. To configure multiple servers the `gerrit.config` file must be edited
manually.
[[elasticsearch.maxRetryTimeout]]elasticsearch.maxRetryTimeout::
+
Sets the maximum timeout to honor in case of multiple retries of the same request.
+
The value is in the usual time-unit format like `1 m`, `5 m`.
+
Defaults to `30000 ms`.
[[elasticsearch.numberOfShards]]elasticsearch.numberOfShards::
+
Sets the number of shards to use per index. Refer to the

View File

@@ -1091,8 +1091,8 @@ maven_jar(
# and httpasyncclient as necessary.
maven_jar(
name = "elasticsearch-rest-client",
artifact = "org.elasticsearch.client:elasticsearch-rest-client:6.6.2",
sha1 = "2c429141e488091c358aa43b1e6873d457464c5d",
artifact = "org.elasticsearch.client:elasticsearch-rest-client:6.7.0",
sha1 = "032bf7044d1d5664ebdbfd6f2601027c806565ce",
)
JACKSON_VERSION = "2.9.8"

View File

@@ -26,7 +26,6 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.http.HttpHost;
import org.eclipse.jgit.lib.Config;
@@ -37,24 +36,20 @@ class ElasticConfiguration {
static final String SECTION_ELASTICSEARCH = "elasticsearch";
static final String KEY_PASSWORD = "password";
static final String KEY_USERNAME = "username";
static final String KEY_MAX_RETRY_TIMEOUT = "maxRetryTimeout";
static final String KEY_PREFIX = "prefix";
static final String KEY_SERVER = "server";
static final String KEY_NUMBER_OF_SHARDS = "numberOfShards";
static final String KEY_NUMBER_OF_REPLICAS = "numberOfReplicas";
static final String DEFAULT_PORT = "9200";
static final String DEFAULT_USERNAME = "elastic";
static final int DEFAULT_MAX_RETRY_TIMEOUT_MS = 30000;
static final int DEFAULT_NUMBER_OF_SHARDS = 5;
static final int DEFAULT_NUMBER_OF_REPLICAS = 1;
static final TimeUnit MAX_RETRY_TIMEOUT_UNIT = TimeUnit.MILLISECONDS;
private final Config cfg;
private final List<HttpHost> hosts;
final String username;
final String password;
final int maxRetryTimeout;
final int numberOfShards;
final int numberOfReplicas;
final String prefix;
@@ -68,14 +63,6 @@ class ElasticConfiguration {
? null
: firstNonNull(
cfg.getString(SECTION_ELASTICSEARCH, null, KEY_USERNAME), DEFAULT_USERNAME);
this.maxRetryTimeout =
(int)
cfg.getTimeUnit(
SECTION_ELASTICSEARCH,
null,
KEY_MAX_RETRY_TIMEOUT,
DEFAULT_MAX_RETRY_TIMEOUT_MS,
MAX_RETRY_TIMEOUT_UNIT);
this.prefix = Strings.nullToEmpty(cfg.getString(SECTION_ELASTICSEARCH, null, KEY_PREFIX));
this.numberOfShards =
cfg.getInt(SECTION_ELASTICSEARCH, null, KEY_NUMBER_OF_SHARDS, DEFAULT_NUMBER_OF_SHARDS);

View File

@@ -128,7 +128,6 @@ class ElasticRestClientProvider implements Provider<RestClient>, LifecycleListen
private RestClient build() {
RestClientBuilder builder = RestClient.builder(cfg.getHosts());
builder.setMaxRetryTimeoutMillis(cfg.maxRetryTimeout);
setConfiguredCredentialsIfAny(builder);
return builder.build();
}

View File

@@ -24,6 +24,7 @@ public enum ElasticVersion {
V6_4("6.4.*"),
V6_5("6.5.*"),
V6_6("6.6.*"),
V6_7("6.7.*"),
V7_0("7.0.*");
private final String version;

View File

@@ -32,7 +32,7 @@ public class ElasticReindexIT extends AbstractReindexTests {
@ConfigSuite.Config
public static Config elasticsearchV6() {
return getConfig(ElasticVersion.V6_6);
return getConfig(ElasticVersion.V6_7);
}
@ConfigSuite.Config

View File

@@ -31,7 +31,7 @@ public class ElasticIndexIT extends AbstractIndexTests {
@ConfigSuite.Config
public static Config elasticsearchV6() {
return getConfig(ElasticVersion.V6_6);
return getConfig(ElasticVersion.V6_7);
}
@ConfigSuite.Config

View File

@@ -15,21 +15,17 @@
package com.google.gerrit.elasticsearch;
import static com.google.common.truth.Truth.assertThat;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.DEFAULT_MAX_RETRY_TIMEOUT_MS;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.DEFAULT_USERNAME;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.KEY_MAX_RETRY_TIMEOUT;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.KEY_PASSWORD;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.KEY_PREFIX;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.KEY_SERVER;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.KEY_USERNAME;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.MAX_RETRY_TIMEOUT_UNIT;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.SECTION_ELASTICSEARCH;
import static java.util.stream.Collectors.toList;
import com.google.common.collect.ImmutableList;
import com.google.inject.ProvisionException;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import org.eclipse.jgit.lib.Config;
import org.junit.Rule;
import org.junit.Test;
@@ -46,7 +42,6 @@ public class ElasticConfigurationTest {
assertThat(esCfg.username).isNull();
assertThat(esCfg.password).isNull();
assertThat(esCfg.prefix).isEmpty();
assertThat(esCfg.maxRetryTimeout).isEqualTo(DEFAULT_MAX_RETRY_TIMEOUT_MS);
}
@Test
@@ -65,23 +60,6 @@ public class ElasticConfigurationTest {
assertThat(esCfg.prefix).isEqualTo("myprefix");
}
@Test
public void maxRetryTimeoutInDefaultUnit() {
Config cfg = newConfig();
cfg.setString(SECTION_ELASTICSEARCH, null, KEY_MAX_RETRY_TIMEOUT, "45000");
ElasticConfiguration esCfg = new ElasticConfiguration(cfg);
assertThat(esCfg.maxRetryTimeout).isEqualTo(45000);
}
@Test
public void maxRetryTimeoutInOtherUnit() {
Config cfg = newConfig();
cfg.setString(SECTION_ELASTICSEARCH, null, KEY_MAX_RETRY_TIMEOUT, "45 s");
ElasticConfiguration esCfg = new ElasticConfiguration(cfg);
assertThat(esCfg.maxRetryTimeout)
.isEqualTo(MAX_RETRY_TIMEOUT_UNIT.convert(45, TimeUnit.SECONDS));
}
@Test
public void withAuthentication() throws Exception {
Config cfg = newConfig();

View File

@@ -37,7 +37,7 @@ public class ElasticContainer extends ElasticsearchContainer {
private static String getImageName(ElasticVersion version) {
switch (version) {
case V5_6:
return "docker.elastic.co/elasticsearch/elasticsearch:5.6.15";
return "docker.elastic.co/elasticsearch/elasticsearch:5.6.16";
case V6_2:
return "docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4";
case V6_3:
@@ -48,8 +48,10 @@ public class ElasticContainer extends ElasticsearchContainer {
return "docker.elastic.co/elasticsearch/elasticsearch-oss:6.5.4";
case V6_6:
return "docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.2";
case V6_7:
return "docker.elastic.co/elasticsearch/elasticsearch-oss:6.7.0";
case V7_0:
return "docker.elastic.co/elasticsearch/elasticsearch-oss:7.0.0-beta1";
return "docker.elastic.co/elasticsearch/elasticsearch-oss:7.0.0-rc1";
}
throw new IllegalStateException("No tests for version: " + version.name());
}

View File

@@ -41,7 +41,7 @@ public class ElasticV6QueryAccountsTest extends AbstractQueryAccountsTest {
return;
}
container = ElasticContainer.createAndStart(ElasticVersion.V6_6);
container = ElasticContainer.createAndStart(ElasticVersion.V6_7);
nodeInfo = new ElasticNodeInfo(container.getHttpHost().getPort());
}

View File

@@ -41,7 +41,7 @@ public class ElasticV6QueryChangesTest extends AbstractQueryChangesTest {
return;
}
container = ElasticContainer.createAndStart(ElasticVersion.V6_6);
container = ElasticContainer.createAndStart(ElasticVersion.V6_7);
nodeInfo = new ElasticNodeInfo(container.getHttpHost().getPort());
}

View File

@@ -41,7 +41,7 @@ public class ElasticV6QueryGroupsTest extends AbstractQueryGroupsTest {
return;
}
container = ElasticContainer.createAndStart(ElasticVersion.V6_6);
container = ElasticContainer.createAndStart(ElasticVersion.V6_7);
nodeInfo = new ElasticNodeInfo(container.getHttpHost().getPort());
}

View File

@@ -43,6 +43,9 @@ public class ElasticVersionTest {
assertThat(ElasticVersion.forVersion("6.6.0")).isEqualTo(ElasticVersion.V6_6);
assertThat(ElasticVersion.forVersion("6.6.1")).isEqualTo(ElasticVersion.V6_6);
assertThat(ElasticVersion.forVersion("6.7.0")).isEqualTo(ElasticVersion.V6_7);
assertThat(ElasticVersion.forVersion("6.7.1")).isEqualTo(ElasticVersion.V6_7);
assertThat(ElasticVersion.forVersion("7.0.0")).isEqualTo(ElasticVersion.V7_0);
assertThat(ElasticVersion.forVersion("7.0.1")).isEqualTo(ElasticVersion.V7_0);
}