浏览代码

HDFS-8981. Adding revision to data node jmx getVersion() method. (Siqi Li via mingma)

Ming Ma 9 年之前
父节点
当前提交
30db1adac3

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -36,6 +36,9 @@ Trunk (Unreleased)
 
     HDFS-8895. Remove deprecated BlockStorageLocation APIs. (wang)
 
+    HDFS-8981. Adding revision to data node jmx getVersion() method. (Siqi Li
+    via mingma)
+
   NEW FEATURES
 
     HDFS-3125. Add JournalService to enable Journal Daemon. (suresh)

+ 12 - 3
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java

@@ -2900,11 +2900,16 @@ public class DataNode extends ReconfigurableBase
     return NetUtils.createSocketAddr(
         conf.getTrimmed(DFS_DATANODE_ADDRESS_KEY, DFS_DATANODE_ADDRESS_DEFAULT));
   }
-  
+
   @Override // DataNodeMXBean
-  public String getVersion() {
+  public String getSoftwareVersion() {
     return VersionInfo.getVersion();
   }
+
+  @Override // DataNodeMXBean
+  public String getVersion() {
+    return VersionInfo.getVersion() + ", r" + VersionInfo.getRevision();
+  }
   
   @Override // DataNodeMXBean
   public String getRpcPort(){
@@ -2917,7 +2922,11 @@ public class DataNode extends ReconfigurableBase
   public String getHttpPort(){
     return this.getConf().get("dfs.datanode.info.port");
   }
-  
+
+  public String getRevision() {
+    return VersionInfo.getRevision();
+  }
+
   /**
    * @return the datanode's http port
    */

+ 8 - 1
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java

@@ -36,7 +36,14 @@ public interface DataNodeMXBean {
    * @return the version of Hadoop
    */
   public String getVersion();
-  
+
+  /**
+   * Get the version of software running on the DataNode
+   *
+   * @return a string representing the version
+   */
+  public String getSoftwareVersion();
+
   /**
    * Gets the rpc port.
    * 

+ 6 - 0
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java

@@ -51,6 +51,12 @@ public class TestDataNodeMXBean {
       // get attribute "Version"
       String version = (String)mbs.getAttribute(mxbeanName, "Version");
       Assert.assertEquals(datanode.getVersion(),version);
+      // get attribute "SotfwareVersion"
+      String softwareVersion =
+          (String)mbs.getAttribute(mxbeanName, "SoftwareVersion");
+      Assert.assertEquals(datanode.getSoftwareVersion(),softwareVersion);
+      Assert.assertEquals(version, softwareVersion
+          + ", r" + datanode.getRevision());
       // get attribute "RpcPort"
       String rpcPort = (String)mbs.getAttribute(mxbeanName, "RpcPort");
       Assert.assertEquals(datanode.getRpcPort(),rpcPort);