Return-Path: X-Original-To: apmail-hadoop-common-commits-archive@www.apache.org Delivered-To: apmail-hadoop-common-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BBE5F706C for ; Mon, 19 Dec 2011 05:21:55 +0000 (UTC) Received: (qmail 49780 invoked by uid 500); 19 Dec 2011 05:21:55 -0000 Delivered-To: apmail-hadoop-common-commits-archive@hadoop.apache.org Received: (qmail 49648 invoked by uid 500); 19 Dec 2011 05:21:51 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 49632 invoked by uid 99); 19 Dec 2011 05:21:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Dec 2011 05:21:50 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Dec 2011 05:21:47 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id F411F2388860; Mon, 19 Dec 2011 05:21:24 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1220611 - in /hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common: ./ src/main/java/org/apache/hadoop/ha/ src/test/java/org/apache/hadoop/ha/ Date: Mon, 19 Dec 2011 05:21:24 -0000 To: common-commits@hadoop.apache.org From: todd@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111219052124.F411F2388860@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: todd Date: Mon Dec 19 05:21:24 2011 New Revision: 1220611 URL: http://svn.apache.org/viewvc?rev=1220611&view=rev Log: HADOOP-7925. Add interface and update CLI to query current state to HAServiceProtocol. Contributed by Eli Collins. Modified: hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/CHANGES.HDFS-1623.txt hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAServiceProtocol.java hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestHAAdmin.java Modified: hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/CHANGES.HDFS-1623.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/CHANGES.HDFS-1623.txt?rev=1220611&r1=1220610&r2=1220611&view=diff ============================================================================== --- hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/CHANGES.HDFS-1623.txt (original) +++ hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/CHANGES.HDFS-1623.txt Mon Dec 19 05:21:24 2011 @@ -18,3 +18,6 @@ HADOOP-7921. StandbyException should ext HADOOP-7928. HA: Client failover policy is incorrectly trying to fail over all IOExceptions (atm) + +HADOOP-7925. Add interface and update CLI to query current state to + HAServiceProtocol (eli via todd) Modified: hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java?rev=1220611&r1=1220610&r2=1220611&view=diff ============================================================================== --- hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java (original) +++ hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java Mon Dec 19 05:21:24 2011 @@ -24,6 +24,7 @@ import java.util.Map; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.conf.Configured; +import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState; import org.apache.hadoop.ipc.RPC; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.util.Tool; @@ -44,7 +45,9 @@ public class HAAdmin extends Configured .put("-transitionToActive", new UsageInfo("", "Transitions the daemon into Active state")) .put("-transitionToStandby", - new UsageInfo("", "Transitions the daemon into Passive state")) + new UsageInfo("", "Transitions the daemon into Standby state")) + .put("-getServiceState", + new UsageInfo("", "Returns the state of the daemon")) .put("-checkHealth", new UsageInfo("", "Requests that the daemon perform a health check.\n" + @@ -123,6 +126,19 @@ public class HAAdmin extends Configured return 0; } + private int getServiceState(final String[] argv) + throws IOException, ServiceFailedException { + if (argv.length != 2) { + errOut.println("getServiceState: incorrect number of arguments"); + printUsage(errOut, "-getServiceState"); + return -1; + } + + HAServiceProtocol proto = getProtocol(argv[1]); + out.println(proto.getServiceState()); + return 0; + } + /** * Return a proxy to the specified target host:port. */ @@ -155,6 +171,8 @@ public class HAAdmin extends Configured return transitionToActive(argv); } else if ("-transitionToStandby".equals(cmd)) { return transitionToStandby(argv); + } else if ("-getServiceState".equals(cmd)) { + return getServiceState(argv); } else if ("-checkHealth".equals(cmd)) { return checkHealth(argv); } else if ("-help".equals(cmd)) { @@ -182,7 +200,7 @@ public class HAAdmin extends Configured return -1; } - errOut .println(cmd + " [" + usageInfo.args + "]: " + usageInfo.help); + errOut.println(cmd + " [" + usageInfo.args + "]: " + usageInfo.help); return 1; } Modified: hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAServiceProtocol.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAServiceProtocol.java?rev=1220611&r1=1220610&r2=1220611&view=diff ============================================================================== --- hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAServiceProtocol.java (original) +++ hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAServiceProtocol.java Mon Dec 19 05:21:24 2011 @@ -36,6 +36,24 @@ public interface HAServiceProtocol exten public static final long versionID = 1L; /** + * An HA service may be in active or standby state. + */ + public enum HAServiceState { + ACTIVE("active"), + STANDBY("standby"); + + private String name; + + HAServiceState(String name) { + this.name = name; + } + + public String toString() { + return name; + } + } + + /** * Monitor the health of service. This periodically called by the HA * frameworks to monitor the health of the service. * @@ -69,4 +87,9 @@ public interface HAServiceProtocol exten * if transition from active to standby fails. */ public void transitionToStandby() throws ServiceFailedException; + + /** + * Return the current state of the service. + */ + public HAServiceState getServiceState(); } Modified: hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestHAAdmin.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestHAAdmin.java?rev=1220611&r1=1220610&r2=1220611&view=diff ============================================================================== --- hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestHAAdmin.java (original) +++ hadoop/common/branches/HDFS-1623/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestHAAdmin.java Mon Dec 19 05:21:24 2011 @@ -79,7 +79,7 @@ public class TestHAAdmin { assertOutputContains("transitionToActive: incorrect number of arguments"); assertEquals(-1, runTool("-transitionToActive", "x", "y")); assertOutputContains("transitionToActive: incorrect number of arguments"); -} + } @Test public void testHelp() throws Exception { @@ -99,7 +99,13 @@ public class TestHAAdmin { assertEquals(0, runTool("-transitionToStandby", "xxx")); Mockito.verify(mockProtocol).transitionToStandby(); } - + + @Test + public void testGetServiceState() throws Exception { + assertEquals(0, runTool("-getServiceState", "xxx")); + Mockito.verify(mockProtocol).getServiceState(); + } + @Test public void testCheckHealth() throws Exception { assertEquals(0, runTool("-checkHealth", "xxx"));