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 server. To configure multiple servers the `gerrit.config` file must be edited
manually. 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:: [[elasticsearch.numberOfShards]]elasticsearch.numberOfShards::
+ +
Sets the number of shards to use per index. Refer to the Sets the number of shards to use per index. Refer to the

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -15,21 +15,17 @@
package com.google.gerrit.elasticsearch; package com.google.gerrit.elasticsearch;
import static com.google.common.truth.Truth.assertThat; 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.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_PASSWORD;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.KEY_PREFIX; 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_SERVER;
import static com.google.gerrit.elasticsearch.ElasticConfiguration.KEY_USERNAME; 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 com.google.gerrit.elasticsearch.ElasticConfiguration.SECTION_ELASTICSEARCH;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.inject.ProvisionException; import com.google.inject.ProvisionException;
import java.util.Arrays; import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Config;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
@@ -46,7 +42,6 @@ public class ElasticConfigurationTest {
assertThat(esCfg.username).isNull(); assertThat(esCfg.username).isNull();
assertThat(esCfg.password).isNull(); assertThat(esCfg.password).isNull();
assertThat(esCfg.prefix).isEmpty(); assertThat(esCfg.prefix).isEmpty();
assertThat(esCfg.maxRetryTimeout).isEqualTo(DEFAULT_MAX_RETRY_TIMEOUT_MS);
} }
@Test @Test
@@ -65,23 +60,6 @@ public class ElasticConfigurationTest {
assertThat(esCfg.prefix).isEqualTo("myprefix"); 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 @Test
public void withAuthentication() throws Exception { public void withAuthentication() throws Exception {
Config cfg = newConfig(); Config cfg = newConfig();

View File

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

View File

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

View File

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

View File

@@ -41,7 +41,7 @@ public class ElasticV6QueryGroupsTest extends AbstractQueryGroupsTest {
return; return;
} }
container = ElasticContainer.createAndStart(ElasticVersion.V6_6); container = ElasticContainer.createAndStart(ElasticVersion.V6_7);
nodeInfo = new ElasticNodeInfo(container.getHttpHost().getPort()); 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.0")).isEqualTo(ElasticVersion.V6_6);
assertThat(ElasticVersion.forVersion("6.6.1")).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.0")).isEqualTo(ElasticVersion.V7_0);
assertThat(ElasticVersion.forVersion("7.0.1")).isEqualTo(ElasticVersion.V7_0); assertThat(ElasticVersion.forVersion("7.0.1")).isEqualTo(ElasticVersion.V7_0);
} }