diff options
author | Marco Miller <marco.miller@ericsson.com> | 2018-04-05 16:45:43 -0400 |
---|---|---|
committer | Marco Miller <marco.miller@ericsson.com> | 2018-04-09 11:25:26 -0400 |
commit | e5dc28f707241b314843defad7bd062bb832e071 (patch) | |
tree | f55fa53d5e345796791d1283a174f9f2112a71a1 | |
parent | 16e5d8803948a39a13aaccc94185ff5c82e530af (diff) |
Index start/activate commands: fix Elastic support
Before this fix, the IndexStartCommand and IndexActivateCommand worked
only for the Lucene index-type case. Replace the latter hard-coded case
with support for it but also the Elastic case as well. Meaning, use
AbstractVersionManager rather than its LuceneVersionManager sub-type, so
that ElasticVersionManager can also be (seamlessly) supported for those
commands. Hence bind AbstractVersionManager to the configured sub-type
class, in order for it to be used that way.
This change can be fully tested through using the --force option of the
gerrit index start command [1]. The gerrit index activate command [2]
does not have such an option.
[1] https://gerrit-review.googlesource.com/Documentation/cmd-index-start.html
[2] https://gerrit-review.googlesource.com/Documentation/cmd-index-activate.html
Bug: Issue 8584, Issue 8585
Change-Id: Ibd8d22dca3a94e8b6a81db2935d1c34b1e80401d
4 files changed, 10 insertions, 6 deletions
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java index 65065f9e93..e037e59080 100644 --- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java +++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java @@ -16,6 +16,7 @@ package com.google.gerrit.elasticsearch; import com.google.gerrit.lifecycle.LifecycleModule; import com.google.gerrit.server.config.GerritServerConfig; +import com.google.gerrit.server.index.AbstractVersionManager; import com.google.gerrit.server.index.IndexConfig; import com.google.gerrit.server.index.IndexModule; import com.google.gerrit.server.index.SingleVersionModule; @@ -67,6 +68,7 @@ public class ElasticIndexModule extends LifecycleModule { } else { install(new SingleVersionModule(singleVersions)); } + bind(AbstractVersionManager.class).to(ElasticVersionManager.class); } @Provides diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneIndexModule.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneIndexModule.java index 699fd517bb..9a7aadbfb3 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneIndexModule.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneIndexModule.java @@ -17,6 +17,7 @@ package com.google.gerrit.lucene; import com.google.common.collect.ImmutableMap; import com.google.gerrit.lifecycle.LifecycleModule; import com.google.gerrit.server.config.GerritServerConfig; +import com.google.gerrit.server.index.AbstractVersionManager; import com.google.gerrit.server.index.IndexConfig; import com.google.gerrit.server.index.IndexModule; import com.google.gerrit.server.index.SingleVersionModule; @@ -77,6 +78,7 @@ public class LuceneIndexModule extends LifecycleModule { } else { install(new SingleVersionModule(singleVersions)); } + bind(AbstractVersionManager.class).to(LuceneVersionManager.class); } @Provides diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexActivateCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexActivateCommand.java index 6b3e6d7828..5db515eaab 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexActivateCommand.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexActivateCommand.java @@ -16,7 +16,7 @@ package com.google.gerrit.sshd.commands; import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.extensions.annotations.RequiresCapability; -import com.google.gerrit.lucene.LuceneVersionManager; +import com.google.gerrit.server.index.AbstractVersionManager; import com.google.gerrit.server.index.ReindexerAlreadyRunningException; import com.google.gerrit.sshd.CommandMetaData; import com.google.gerrit.sshd.SshCommand; @@ -30,12 +30,12 @@ public class IndexActivateCommand extends SshCommand { @Argument(index = 0, required = true, metaVar = "INDEX", usage = "index name to activate") private String name; - @Inject private LuceneVersionManager luceneVersionManager; + @Inject private AbstractVersionManager versionManager; @Override protected void run() throws UnloggedFailure { try { - if (luceneVersionManager.activateLatestIndex(name)) { + if (versionManager.activateLatestIndex(name)) { stdout.println("Activated latest index version"); } else { stdout.println("Not activating index, already using latest version"); diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexStartCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexStartCommand.java index fb9b4829a5..20fe211d4f 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexStartCommand.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/IndexStartCommand.java @@ -16,7 +16,7 @@ package com.google.gerrit.sshd.commands; import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.extensions.annotations.RequiresCapability; -import com.google.gerrit.lucene.LuceneVersionManager; +import com.google.gerrit.server.index.AbstractVersionManager; import com.google.gerrit.server.index.ReindexerAlreadyRunningException; import com.google.gerrit.sshd.CommandMetaData; import com.google.gerrit.sshd.SshCommand; @@ -34,12 +34,12 @@ public class IndexStartCommand extends SshCommand { @Argument(index = 0, required = true, metaVar = "INDEX", usage = "index name to start") private String name; - @Inject private LuceneVersionManager luceneVersionManager; + @Inject private AbstractVersionManager versionManager; @Override protected void run() throws UnloggedFailure { try { - if (luceneVersionManager.startReindexer(name, force)) { + if (versionManager.startReindexer(name, force)) { stdout.println("Reindexer started"); } else { stdout.println("Nothing to reindex, index is already the latest version"); |