Merge "Merge branch 'stable-2.16'"
This commit is contained in:
		@@ -2851,14 +2851,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
 | 
			
		||||
 
 | 
			
		||||
@@ -1052,8 +1052,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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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();
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -15,14 +15,11 @@
 | 
			
		||||
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;
 | 
			
		||||
 | 
			
		||||
@@ -30,7 +27,6 @@ import com.google.common.collect.ImmutableList;
 | 
			
		||||
import com.google.gerrit.testing.GerritBaseTests;
 | 
			
		||||
import com.google.inject.ProvisionException;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.concurrent.TimeUnit;
 | 
			
		||||
import org.apache.http.HttpHost;
 | 
			
		||||
import org.eclipse.jgit.lib.Config;
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
@@ -44,7 +40,6 @@ public class ElasticConfigurationTest extends GerritBaseTests {
 | 
			
		||||
    assertThat(esCfg.username).isNull();
 | 
			
		||||
    assertThat(esCfg.password).isNull();
 | 
			
		||||
    assertThat(esCfg.prefix).isEmpty();
 | 
			
		||||
    assertThat(esCfg.maxRetryTimeout).isEqualTo(DEFAULT_MAX_RETRY_TIMEOUT_MS);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
@@ -63,23 +58,6 @@ public class ElasticConfigurationTest extends GerritBaseTests {
 | 
			
		||||
    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();
 | 
			
		||||
 
 | 
			
		||||
@@ -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());
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -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());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,9 @@ public class ElasticVersionTest extends GerritBaseTests {
 | 
			
		||||
    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);
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user