Return-Path: Delivered-To: apmail-hadoop-hdfs-commits-archive@minotaur.apache.org Received: (qmail 63746 invoked from network); 11 Nov 2010 22:24:49 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 11 Nov 2010 22:24:49 -0000 Received: (qmail 29576 invoked by uid 500); 11 Nov 2010 22:25:20 -0000 Delivered-To: apmail-hadoop-hdfs-commits-archive@hadoop.apache.org Received: (qmail 29492 invoked by uid 500); 11 Nov 2010 22:25:20 -0000 Mailing-List: contact hdfs-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hdfs-dev@hadoop.apache.org Delivered-To: mailing list hdfs-commits@hadoop.apache.org Received: (qmail 29484 invoked by uid 99); 11 Nov 2010 22:25:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Nov 2010 22:25:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.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; Thu, 11 Nov 2010 22:25:19 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 95C0923889DE; Thu, 11 Nov 2010 22:24:05 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1034181 - in /hadoop/hdfs/trunk/src/test/system: java/org/apache/hadoop/hdfs/test/system/DNClient.java java/org/apache/hadoop/hdfs/test/system/NNClient.java test/org/apache/hadoop/hdfs/TestHL040.java Date: Thu, 11 Nov 2010 22:24:05 -0000 To: hdfs-commits@hadoop.apache.org From: cos@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101111222405.95C0923889DE@eris.apache.org> Author: cos Date: Thu Nov 11 22:24:05 2010 New Revision: 1034181 URL: http://svn.apache.org/viewvc?rev=1034181&view=rev Log: HDFS-1408. Herriot NN and DN clients should vend statistics. Contributed by Konstantin Boudnik. Modified: hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java Modified: hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java?rev=1034181&r1=1034180&r2=1034181&view=diff ============================================================================== --- hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java (original) +++ hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java Thu Nov 11 22:24:05 2010 @@ -36,6 +36,7 @@ import org.apache.hadoop.test.system.pro public class DNClient extends HDFSDaemonClient { DNProtocol proxy; + private static final String HADOOP_DATANODE_OPTS_ENV = "HADOOP_DATANODE_OPTS"; public DNClient(Configuration conf, RemoteProcess process) throws IOException { super(conf, process); @@ -79,4 +80,20 @@ public class DNClient extends HDFSDaemon public Configuration getDatanodeConfig() throws IOException { return getProxy().getDaemonConf(); } + + @Override + public String getHadoopOptsEnvName() { + return HADOOP_DATANODE_OPTS_ENV; + } + + /** + * Concrete implementation of abstract super class method + * @param attributeName name of the attribute to be retrieved + * @return Object value of the given attribute + * @throws IOException is thrown in case of communication errors + */ + @Override + public Object getDaemonAttribute (String attributeName) throws IOException { + return getJmxAttribute("DataNode", "DataNodeInfo", attributeName); + } } Modified: hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java?rev=1034181&r1=1034180&r2=1034181&view=diff ============================================================================== --- hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java (original) +++ hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java Thu Nov 11 22:24:05 2010 @@ -31,6 +31,7 @@ import org.apache.hadoop.test.system.pro public class NNClient extends HDFSDaemonClient { NNProtocol proxy; + private static final String HADOOP_NAMENODE_OPTS_ENV = "HADOOP_NAMENODE_OPTS"; public NNClient(Configuration conf, RemoteProcess process) throws IOException { super(conf, process); @@ -68,4 +69,20 @@ public class NNClient extends HDFSDaemon protected NNProtocol getProxy() { return proxy; } + + @Override + public String getHadoopOptsEnvName() { + return HADOOP_NAMENODE_OPTS_ENV; + } + + /** + * Concrete implementation of abstract super class method + * @param attributeName name of the attribute to be retrieved + * @return Object value of the given attribute + * @throws IOException is thrown in case of communication errors + */ + @Override + public Object getDaemonAttribute (String attributeName) throws IOException { + return getJmxAttribute("NameNode", "NameNodeInfo", attributeName); + } } Modified: hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java?rev=1034181&r1=1034180&r2=1034181&view=diff ============================================================================== --- hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java (original) +++ hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java Thu Nov 11 22:24:05 2010 @@ -20,6 +20,7 @@ package org.apache.hadoop.hdfs; import java.io.IOException; import java.util.Collection; +import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -31,6 +32,7 @@ import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.mortbay.util.ajax.JSON; public class TestHL040 { private HDFSCluster cluster = null; @@ -64,6 +66,21 @@ public class TestHL040 { dnC.getProcessInfo()); Assert.assertNotNull("Datanode process info isn't suppose to be null", dnC.getProcessInfo()); + LOG.info("Free space " + getFreeSpace(dnC)); } } + + private long getFreeSpace(DNClient dnC) throws IOException { + Object volObj = dnC.getDaemonAttribute("VolumeInfo"); + Assert.assertNotNull("Attribute value is expected to be not null", volObj); + LOG.debug("Got object: " + volObj); + Map volInfoMap = (Map) JSON.parse(volObj.toString()); + long totalFreeSpace = 0L; + for (Object key : volInfoMap.keySet()) { + Map attrMap = (Map) volInfoMap.get(key); + long freeSpace = (Long) attrMap.get("freeSpace"); + totalFreeSpace += freeSpace; + } + return totalFreeSpace; + } }