AdminApi: Reintroduce return value of methods

Prior to change Ie760bf3e1 all the methods of GerritSshApi returned
a boolean value. After that change, they all return void.

Removing the return value breaks classes that extend GerritSshApi and
expect to be able to invoke the superclass implementation and get the
status.

In change I6566f8671 the return value of createProject was changed
back to boolean, but the others were not.

Change the remaining methods back to return a boolean.

Change-Id: If4a9227f70bfcd85965e1febd45f4a75cc2505bd
Signed-off-by: David Pursehouse <dpursehouse@collab.net>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/AdminApi.java b/src/main/java/com/googlesource/gerrit/plugins/replication/AdminApi.java
index 79362fd..acbf763 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/AdminApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/AdminApi.java
@@ -19,7 +19,7 @@
 public interface AdminApi {
   public boolean createProject(Project.NameKey project, String head);
 
-  public void deleteProject(Project.NameKey project);
+  public boolean deleteProject(Project.NameKey project);
 
-  public void updateHead(Project.NameKey project, String newHead);
+  public boolean updateHead(Project.NameKey project, String newHead);
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/GerritSshApi.java b/src/main/java/com/googlesource/gerrit/plugins/replication/GerritSshApi.java
index 0e8764a..46c8892 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/GerritSshApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/GerritSshApi.java
@@ -54,7 +54,7 @@
   }
 
   @Override
-  public void deleteProject(Project.NameKey projectName) {
+  public boolean deleteProject(Project.NameKey projectName) {
     if (!withoutDeleteProjectPlugin.contains(uri)) {
       OutputStream errStream = sshHelper.newErrorBufferStream();
       String cmd = "deleteproject delete --yes-really-delete --force " + projectName.get();
@@ -63,6 +63,7 @@
         exitCode = execute(uri, cmd, errStream);
       } catch (IOException e) {
         logError("deleting", uri, errStream, cmd, e);
+        return false;
       }
       if (exitCode == 1) {
         logger.atInfo().log(
@@ -71,17 +72,20 @@
         withoutDeleteProjectPlugin.add(uri);
       }
     }
+    return true;
   }
 
   @Override
-  public void updateHead(Project.NameKey projectName, String newHead) {
+  public boolean updateHead(Project.NameKey projectName, String newHead) {
     OutputStream errStream = sshHelper.newErrorBufferStream();
     String cmd = "gerrit set-head " + projectName.get() + " --new-head " + newHead;
     try {
       execute(uri, cmd, errStream);
     } catch (IOException e) {
       logError("updating HEAD of", uri, errStream, cmd, e);
+      return false;
     }
+    return true;
   }
 
   private URIish toSshUri(URIish uri) throws URISyntaxException {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/LocalFS.java b/src/main/java/com/googlesource/gerrit/plugins/replication/LocalFS.java
index 908e7e0..aa6e16c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/LocalFS.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/LocalFS.java
@@ -52,17 +52,19 @@
   }
 
   @Override
-  public void deleteProject(Project.NameKey project) {
+  public boolean deleteProject(Project.NameKey project) {
     try {
       recursivelyDelete(new File(uri.getPath()));
       repLog.info("Deleted local repository: {}", uri);
     } catch (IOException e) {
       repLog.error("Error deleting local repository {}:\n", uri.getPath(), e);
+      return false;
     }
+    return true;
   }
 
   @Override
-  public void updateHead(Project.NameKey project, String newHead) {
+  public boolean updateHead(Project.NameKey project, String newHead) {
     try (Repository repo = new FileRepository(uri.getPath())) {
       if (newHead != null) {
         RefUpdate u = repo.updateRef(Constants.HEAD);
@@ -70,7 +72,9 @@
       }
     } catch (IOException e) {
       repLog.error("Failed to update HEAD of repository {} to {}", uri.getPath(), newHead, e);
+      return false;
     }
+    return true;
   }
 
   private static void recursivelyDelete(File dir) throws IOException {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/RemoteSsh.java b/src/main/java/com/googlesource/gerrit/plugins/replication/RemoteSsh.java
index 6dfa117..ee9d4c0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/RemoteSsh.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/RemoteSsh.java
@@ -60,7 +60,7 @@
   }
 
   @Override
-  public void deleteProject(Project.NameKey project) {
+  public boolean deleteProject(Project.NameKey project) {
     String quotedPath = QuotedString.BOURNE.quote(uri.getPath());
     String cmd = "rm -rf " + quotedPath;
     OutputStream errStream = sshHelper.newErrorBufferStream();
@@ -78,11 +78,13 @@
           cmd,
           errStream,
           e);
+      return false;
     }
+    return true;
   }
 
   @Override
-  public void updateHead(Project.NameKey project, String newHead) {
+  public boolean updateHead(Project.NameKey project, String newHead) {
     String quotedPath = QuotedString.BOURNE.quote(uri.getPath());
     String cmd =
         "cd " + quotedPath + " && git symbolic-ref HEAD " + QuotedString.BOURNE.quote(newHead);
@@ -101,6 +103,8 @@
           cmd,
           errStream,
           e);
+      return false;
     }
+    return true;
   }
 }