You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ec...@apache.org on 2014/12/15 18:11:48 UTC

hbase git commit: HBASE-12680 Move signal related code from ClusterManager to HBaseClusterManager and change ClusterManager to an interface

Repository: hbase
Updated Branches:
  refs/heads/master ae684cac8 -> 555d14ed4


HBASE-12680 Move signal related code from ClusterManager to HBaseClusterManager and change ClusterManager to an interface

Summary: The reason of this change is to make us write implementation of ClusterManager not using ssh/unix signals.

Test Plan: The compilation is OK.

Reviewers: eclark, manukranthk

Differential Revision: https://reviews.facebook.net/D30201

Signed-off-by: Elliott Clark <ec...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/555d14ed
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/555d14ed
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/555d14ed

Branch: refs/heads/master
Commit: 555d14ed4525f9a0d533b90e20afcce0dc8c595f
Parents: ae684ca
Author: Yi Deng <da...@gmail.com>
Authored: Fri Dec 12 14:08:48 2014 -0800
Committer: Elliott Clark <ec...@apache.org>
Committed: Mon Dec 15 09:09:43 2014 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/ClusterManager.java | 49 ++++++--------------
 .../hadoop/hbase/HBaseClusterManager.java       | 28 +++++++++--
 2 files changed, 37 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/555d14ed/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java
----------------------------------------------------------------------
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java
index 836fbe8..dd96e43 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java
+++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java
@@ -20,10 +20,8 @@ package org.apache.hadoop.hbase;
 
 import java.io.IOException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.conf.Configurable;
 import org.apache.hadoop.hbase.classification.InterfaceAudience;
-import org.apache.hadoop.conf.Configured;
 
 
 /**
@@ -32,16 +30,7 @@ import org.apache.hadoop.conf.Configured;
  * functionality for carrying out deployment-specific tasks.
  */
 @InterfaceAudience.Private
-public abstract class ClusterManager extends Configured {
-  protected static final Log LOG = LogFactory.getLog(ClusterManager.class);
-
-  private static final String SIGKILL = "SIGKILL";
-  private static final String SIGSTOP = "SIGSTOP";
-  private static final String SIGCONT = "SIGCONT";
-
-  public ClusterManager() {
-  }
-
+interface ClusterManager extends Configurable {
   /**
    * Type of the service daemon
    */
@@ -72,50 +61,38 @@ public abstract class ClusterManager extends Configured {
   /**
    * Start the service on the given host
    */
-  public abstract void start(ServiceType service, String hostname) throws IOException;
+  void start(ServiceType service, String hostname) throws IOException;
 
   /**
    * Stop the service on the given host
    */
-  public abstract void stop(ServiceType service, String hostname) throws IOException;
-
-  /**
-   * Restart the service on the given host
-   */
-  public abstract void restart(ServiceType service, String hostname) throws IOException;
+  void stop(ServiceType service, String hostname) throws IOException;
 
   /**
-   * Send the given posix signal to the service
+   * Restarts the service on the given host
    */
-  public abstract void signal(ServiceType service, String signal,
-      String hostname) throws IOException;
+  void restart(ServiceType service, String hostname) throws IOException;
 
   /**
-   * Kill the service running on given host
+   * Kills the service running on the given host
    */
-  public void kill(ServiceType service, String hostname) throws IOException {
-    signal(service, SIGKILL, hostname);
-  }
+  void kill(ServiceType service, String hostname) throws IOException;
 
   /**
-   * Suspend the service running on given host
+   * Suspends the service running on the given host
    */
-  public void suspend(ServiceType service, String hostname) throws IOException {
-    signal(service, SIGSTOP, hostname);
-  }
+  void suspend(ServiceType service, String hostname) throws IOException;
 
   /**
-   * Resume the services running on given hosts
+   * Resumes the services running on the given host
    */
-  public void resume(ServiceType service, String hostname) throws IOException {
-    signal(service, SIGCONT, hostname);
-  }
+  void resume(ServiceType service, String hostname) throws IOException;
 
   /**
    * Returns whether the service is running on the remote host. This only checks whether the
    * service still has a pid.
    */
-  public abstract boolean isRunning(ServiceType service, String hostname) throws IOException;
+  boolean isRunning(ServiceType service, String hostname) throws IOException;
 
   /* TODO: further API ideas:
    *

http://git-wip-us.apache.org/repos/asf/hbase/blob/555d14ed/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
----------------------------------------------------------------------
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
index 8203088..e396178 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
+++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
@@ -24,7 +24,10 @@ import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hbase.classification.InterfaceAudience;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.hbase.HBaseClusterManager.CommandProvider.Operation;
 import org.apache.hadoop.hbase.util.Pair;
 import org.apache.hadoop.hbase.util.RetryCounter;
@@ -37,10 +40,15 @@ import org.apache.hadoop.util.Shell;
  * to manage the cluster. Assumes Unix-like commands are available like 'ps',
  * 'kill', etc. Also assumes the user running the test has enough "power" to start & stop
  * servers on the remote machines (for example, the test user could be the same user as the
- * user the daemon isrunning as)
+ * user the daemon is running as)
  */
 @InterfaceAudience.Private
-public class HBaseClusterManager extends ClusterManager {
+public class HBaseClusterManager extends Configured implements ClusterManager {
+  private static final String SIGKILL = "SIGKILL";
+  private static final String SIGSTOP = "SIGSTOP";
+  private static final String SIGCONT = "SIGCONT";
+
+  protected static final Log LOG = LogFactory.getLog(HBaseClusterManager.class);
   private String sshUserName;
   private String sshOptions;
 
@@ -181,7 +189,6 @@ public class HBaseClusterManager extends ClusterManager {
   }
 
   public HBaseClusterManager() {
-    super();
   }
 
   protected CommandProvider getCommandProvider(ServiceType service) {
@@ -263,7 +270,6 @@ public class HBaseClusterManager extends ClusterManager {
     exec(hostname, service, Operation.RESTART);
   }
 
-  @Override
   public void signal(ServiceType service, String signal, String hostname) throws IOException {
     execWithRetries(hostname, getCommandProvider(service).signalCommand(service, signal));
   }
@@ -275,4 +281,18 @@ public class HBaseClusterManager extends ClusterManager {
     return ret.length() > 0;
   }
 
+  @Override
+  public void kill(ServiceType service, String hostname) throws IOException {
+    signal(service, SIGKILL, hostname);
+  }
+
+  @Override
+  public void suspend(ServiceType service, String hostname) throws IOException {
+    signal(service, SIGSTOP, hostname);
+  }
+
+  @Override
+  public void resume(ServiceType service, String hostname) throws IOException {
+    signal(service, SIGCONT, hostname);
+  }
 }