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
This commit is contained in:
@@ -16,6 +16,7 @@ package com.google.gerrit.elasticsearch;
|
|||||||
|
|
||||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||||
import com.google.gerrit.server.config.GerritServerConfig;
|
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.IndexConfig;
|
||||||
import com.google.gerrit.server.index.IndexModule;
|
import com.google.gerrit.server.index.IndexModule;
|
||||||
import com.google.gerrit.server.index.SingleVersionModule;
|
import com.google.gerrit.server.index.SingleVersionModule;
|
||||||
@@ -67,6 +68,7 @@ public class ElasticIndexModule extends LifecycleModule {
|
|||||||
} else {
|
} else {
|
||||||
install(new SingleVersionModule(singleVersions));
|
install(new SingleVersionModule(singleVersions));
|
||||||
}
|
}
|
||||||
|
bind(AbstractVersionManager.class).to(ElasticVersionManager.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ package com.google.gerrit.lucene;
|
|||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||||
import com.google.gerrit.server.config.GerritServerConfig;
|
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.IndexConfig;
|
||||||
import com.google.gerrit.server.index.IndexModule;
|
import com.google.gerrit.server.index.IndexModule;
|
||||||
import com.google.gerrit.server.index.SingleVersionModule;
|
import com.google.gerrit.server.index.SingleVersionModule;
|
||||||
@@ -77,6 +78,7 @@ public class LuceneIndexModule extends LifecycleModule {
|
|||||||
} else {
|
} else {
|
||||||
install(new SingleVersionModule(singleVersions));
|
install(new SingleVersionModule(singleVersions));
|
||||||
}
|
}
|
||||||
|
bind(AbstractVersionManager.class).to(LuceneVersionManager.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ package com.google.gerrit.sshd.commands;
|
|||||||
|
|
||||||
import com.google.gerrit.common.data.GlobalCapability;
|
import com.google.gerrit.common.data.GlobalCapability;
|
||||||
import com.google.gerrit.extensions.annotations.RequiresCapability;
|
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.server.index.ReindexerAlreadyRunningException;
|
||||||
import com.google.gerrit.sshd.CommandMetaData;
|
import com.google.gerrit.sshd.CommandMetaData;
|
||||||
import com.google.gerrit.sshd.SshCommand;
|
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")
|
@Argument(index = 0, required = true, metaVar = "INDEX", usage = "index name to activate")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@Inject private LuceneVersionManager luceneVersionManager;
|
@Inject private AbstractVersionManager versionManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void run() throws UnloggedFailure {
|
protected void run() throws UnloggedFailure {
|
||||||
try {
|
try {
|
||||||
if (luceneVersionManager.activateLatestIndex(name)) {
|
if (versionManager.activateLatestIndex(name)) {
|
||||||
stdout.println("Activated latest index version");
|
stdout.println("Activated latest index version");
|
||||||
} else {
|
} else {
|
||||||
stdout.println("Not activating index, already using latest version");
|
stdout.println("Not activating index, already using latest version");
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ package com.google.gerrit.sshd.commands;
|
|||||||
|
|
||||||
import com.google.gerrit.common.data.GlobalCapability;
|
import com.google.gerrit.common.data.GlobalCapability;
|
||||||
import com.google.gerrit.extensions.annotations.RequiresCapability;
|
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.server.index.ReindexerAlreadyRunningException;
|
||||||
import com.google.gerrit.sshd.CommandMetaData;
|
import com.google.gerrit.sshd.CommandMetaData;
|
||||||
import com.google.gerrit.sshd.SshCommand;
|
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")
|
@Argument(index = 0, required = true, metaVar = "INDEX", usage = "index name to start")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@Inject private LuceneVersionManager luceneVersionManager;
|
@Inject private AbstractVersionManager versionManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void run() throws UnloggedFailure {
|
protected void run() throws UnloggedFailure {
|
||||||
try {
|
try {
|
||||||
if (luceneVersionManager.startReindexer(name, force)) {
|
if (versionManager.startReindexer(name, force)) {
|
||||||
stdout.println("Reindexer started");
|
stdout.println("Reindexer started");
|
||||||
} else {
|
} else {
|
||||||
stdout.println("Nothing to reindex, index is already the latest version");
|
stdout.println("Nothing to reindex, index is already the latest version");
|
||||||
|
|||||||
Reference in New Issue
Block a user