diff options
Diffstat (limited to 'src/main/java/com/google/gerrit/server/ssh/commands/AdminReplicate.java')
-rw-r--r-- | src/main/java/com/google/gerrit/server/ssh/commands/AdminReplicate.java | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/src/main/java/com/google/gerrit/server/ssh/commands/AdminReplicate.java b/src/main/java/com/google/gerrit/server/ssh/commands/AdminReplicate.java deleted file mode 100644 index efb66e6cdf..0000000000 --- a/src/main/java/com/google/gerrit/server/ssh/commands/AdminReplicate.java +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (C) 2009 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.server.ssh.commands; - -import com.google.gerrit.client.reviewdb.Project; -import com.google.gerrit.git.PushAllProjectsOp; -import com.google.gerrit.git.ReplicationQueue; -import com.google.gerrit.server.project.ProjectCache; -import com.google.gerrit.server.ssh.AdminCommand; -import com.google.gerrit.server.ssh.BaseCommand; -import com.google.inject.Inject; - -import org.kohsuke.args4j.Argument; -import org.kohsuke.args4j.Option; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; - -/** Force a project to replicate, again. */ -@AdminCommand -final class AdminReplicate extends BaseCommand { - @Option(name = "--all", usage = "push all known projects") - private boolean all; - - @Option(name = "--url", metaVar = "PATTERN", usage = "pattern to match URL on") - private String urlMatch; - - @Argument(index = 0, multiValued = true, metaVar = "PROJECT", usage = "project name") - private List<String> projectNames = new ArrayList<String>(2); - - @Inject - private PushAllProjectsOp.Factory pushAllOpFactory; - - @Inject - private ReplicationQueue replication; - - @Inject - private ProjectCache projectCache; - - @Override - public void start() { - startThread(new CommandRunnable() { - @Override - public void run() throws Exception { - parseCommandLine(); - AdminReplicate.this.schedule(); - } - }); - } - - private void schedule() throws Failure { - if (all && projectNames.size() > 0) { - throw new Failure(1, "error: cannot combine --all and PROJECT"); - } - - if (!replication.isEnabled()) { - throw new Failure(1, "error: replication not enabled"); - } - - if (all) { - pushAllOpFactory.create(urlMatch).start(0, TimeUnit.SECONDS); - - } else { - for (final String name : projectNames) { - final Project.NameKey key = new Project.NameKey(name); - if (projectCache.get(key) != null) { - replication.scheduleFullSync(key, urlMatch); - } else { - throw new Failure(1, "error: '" + name + "': not a Gerrit project"); - } - } - } - } -} |