浏览代码

HADOOP-8804. Improve Web UIs when the wildcard address is used. Contributed by Senthil Kumar

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1395704 13f79535-47bb-0310-9956-ffa450edef68
Eli Collins 12 年之前
父节点
当前提交
67360e4545

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

@@ -32,6 +32,9 @@ Release 2.0.3-alpha - Unreleased
 
 
     HADOOP-8889. Upgrade to Surefire 2.12.3 (todd)
     HADOOP-8889. Upgrade to Surefire 2.12.3 (todd)
 
 
+    HADOOP-8804. Improve Web UIs when the wildcard address is used.
+    (Senthil Kumar via eli)
+
   OPTIMIZATIONS
   OPTIMIZATIONS
 
 
     HADOOP-8866. SampleQuantiles#query is O(N^2) instead of O(N). (Andrew Wang
     HADOOP-8866. SampleQuantiles#query is O(N^2) instead of O(N). (Andrew Wang

+ 4 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java

@@ -34,6 +34,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Locale;
 import java.util.StringTokenizer;
 import java.util.StringTokenizer;
 
 
+import com.google.common.net.InetAddresses;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.Path;
@@ -77,6 +78,9 @@ public class StringUtils {
    * @return the hostname to the first dot
    * @return the hostname to the first dot
    */
    */
   public static String simpleHostname(String fullHostname) {
   public static String simpleHostname(String fullHostname) {
+    if (InetAddresses.isInetAddress(fullHostname)) {
+      return fullHostname;
+    }
     int offset = fullHostname.indexOf('.');
     int offset = fullHostname.indexOf('.');
     if (offset != -1) {
     if (offset != -1) {
       return fullHostname.substring(0, offset);
       return fullHostname.substring(0, offset);

+ 13 - 0
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java

@@ -281,6 +281,19 @@ public class TestStringUtils extends UnitTestcaseTimeLimit {
     }
     }
   }
   }
 
 
+  @Test
+  public void testSimpleHostName() {
+    assertEquals("Should return hostname when FQDN is specified",
+            "hadoop01",
+            StringUtils.simpleHostname("hadoop01.domain.com"));
+    assertEquals("Should return hostname when only hostname is specified",
+            "hadoop01",
+            StringUtils.simpleHostname("hadoop01"));
+    assertEquals("Should not truncate when IP address is passed",
+            "10.10.5.68",
+            StringUtils.simpleHostname("10.10.5.68"));
+  }
+
   // Benchmark for StringUtils split
   // Benchmark for StringUtils split
   public static void main(String []args) {
   public static void main(String []args) {
     final String TO_SPLIT = "foo,bar,baz,blah,blah";
     final String TO_SPLIT = "foo,bar,baz,blah,blah";