Merge branch 'stable-2.14' into stable-2.15

* stable-2.14:
  SshCommandsIT: Include `logging ls` and `logging set` commands
  Add tests to make sure ssh commands can be executed
  Align ElasticIndexModule with LuceneIndexModule
  Revert "Remove unneeded nested MultiVersionModule class"
  Remove unneeded nested MultiVersionModule class
  Only bind index {start/activate} if needed
  InitIndex: Allow to configure index.maxLimit for Elasticsearch

Change-Id: Icf925e3724ca6974831676e505692807a771e70b
This commit is contained in:
David Pursehouse
2018-04-11 13:41:51 +09:00
8 changed files with 24 additions and 9 deletions

View File

@@ -2749,9 +2749,10 @@ result lists). Set to 0 for no limit.
+
When `index.type` is set to `ELASTICSEARCH`, this value should not exceed
the `index.max_result_window` value configured on the Elasticsearch
server.
server. If a value is not configured during site initialization, defaults to
10000, which is the default value of `index.max_result_window` in Elasticsearch.
+
Defaults to no limit.
When `index.type` is set to `LUCENE`, defaults to no limit.
[[index.maxPages]]index.maxPages::
+

View File

@@ -75,7 +75,9 @@ public class SshCommandsIT extends AbstractDaemonTest {
"test-submit",
"version"),
"index",
ImmutableList.of("activate", "changes", "project", "start"),
ImmutableList.of("changes", "project"), // "activate" and "start" are not included
"logging",
ImmutableList.of("ls", "set"),
"plugin",
ImmutableList.of("add", "enable", "install", "ls", "reload", "remove", "rm"),
"test-submit",

View File

@@ -82,7 +82,6 @@ public class ElasticIndexModule extends AbstractModule {
} else {
install(new SingleVersionModule(singleVersions));
}
bind(VersionManager.class).to(ElasticVersionManager.class);
}
@Provides
@@ -94,6 +93,7 @@ public class ElasticIndexModule extends AbstractModule {
private class MultiVersionModule extends LifecycleModule {
@Override
public void configure() {
bind(VersionManager.class).to(ElasticVersionManager.class);
listener().to(ElasticVersionManager.class);
if (onlineUpgrade) {
listener().to(OnlineUpgrader.class);

View File

@@ -92,7 +92,6 @@ public class LuceneIndexModule extends AbstractModule {
} else {
install(new SingleVersionModule(singleVersions));
}
bind(VersionManager.class).to(LuceneVersionManager.class);
}
@Provides
@@ -106,6 +105,7 @@ public class LuceneIndexModule extends AbstractModule {
private class MultiVersionModule extends LifecycleModule {
@Override
public void configure() {
bind(VersionManager.class).to(LuceneVersionManager.class);
listener().to(LuceneVersionManager.class);
if (onlineUpgrade) {
listener().to(OnlineUpgrader.class);

View File

@@ -533,7 +533,7 @@ public class Daemon extends SiteProgram {
sysInjector.getInstance(DownloadConfig.class),
sysInjector.getInstance(LfsPluginAuthCommand.Module.class)));
if (!slave) {
modules.add(new IndexCommandsModule());
modules.add(new IndexCommandsModule(sysInjector));
}
return sysInjector.createChildInjector(modules);
}

View File

@@ -70,6 +70,7 @@ class InitIndex implements InitStep {
"Transport protocol", "protocol", "http", Sets.newHashSet("http", "https"));
defaultServer.string("Hostname", "hostname", "localhost");
defaultServer.string("Port", "port", "9200");
index.string("Result window size", "maxLimit", "10000");
}
if ((site.isNew || isEmptySite()) && type == IndexType.LUCENE) {

View File

@@ -14,20 +14,31 @@
package com.google.gerrit.sshd.commands;
import com.google.gerrit.server.index.VersionManager;
import com.google.gerrit.sshd.CommandModule;
import com.google.gerrit.sshd.CommandName;
import com.google.gerrit.sshd.Commands;
import com.google.gerrit.sshd.DispatchCommandProvider;
import com.google.inject.Injector;
import com.google.inject.Key;
public class IndexCommandsModule extends CommandModule {
private final Injector injector;
public IndexCommandsModule(Injector injector) {
this.injector = injector;
}
@Override
protected void configure() {
CommandName gerrit = Commands.named("gerrit");
CommandName index = Commands.named(gerrit, "index");
command(index).toProvider(new DispatchCommandProvider(index));
if (injector.getExistingBinding(Key.get(VersionManager.class)) != null) {
command(index, IndexActivateCommand.class);
command(index, IndexStartCommand.class);
}
command(index, IndexChangesCommand.class);
command(index, IndexProjectCommand.class);
}

View File

@@ -395,7 +395,7 @@ public class WebAppInitializer extends GuiceServletContextListener implements Fi
false,
sysInjector.getInstance(DownloadConfig.class),
sysInjector.getInstance(LfsPluginAuthCommand.Module.class)));
modules.add(new IndexCommandsModule());
modules.add(new IndexCommandsModule(sysInjector));
return sysInjector.createChildInjector(modules);
}