Ver código fonte

HADOOP-6838. svn merge -c 964130 from trunk

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.21@964131 13f79535-47bb-0310-9956-ffa450edef68
Konstantin Boudnik 15 anos atrás
pai
commit
8e6193626a

+ 3 - 0
CHANGES.txt

@@ -908,6 +908,9 @@ Release 0.21.0 - 2010-07-01
 
   BUG FIXES
 
+    HADOOP-6839. [Herriot] Implement a functionality for getting the user list
+    for creating proxy users. (Vinay Thota via cos)
+
     HADOOP-6819. [Herriot] Shell command for getting the new exceptions in
     the logs returning exitcode 1 after executing successfully. (Vinay Thota
     via cos)

+ 28 - 0
src/test/system/java/org/apache/hadoop/test/system/AbstractDaemonCluster.java

@@ -21,6 +21,8 @@ package org.apache.hadoop.test.system;
 import java.io.IOException;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.FileInputStream;
+import java.io.DataInputStream;
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -48,6 +50,8 @@ public abstract class AbstractDaemonCluster {
   private String newConfDir = null;  
   private static final  String CONF_HADOOP_LOCAL_DIR =
       "test.system.hdrc.hadoop.local.confdir"; 
+  private static final  String CONF_HADOOP_MULTI_USER_LIST =
+      "test.system.hdrc.multi-user.list.path";
   private final static Object waitLock = new Object();
   
   /**
@@ -296,6 +300,30 @@ public abstract class AbstractDaemonCluster {
       }
     }
   }
+
+  /**
+   * Get the multi users list.
+   * @return ArrayList - users list as a array list.
+   * @throws IOException - if an I/O error occurs.
+   */
+  public ArrayList<String> getHadoopMultiUsersList() throws
+     IOException {
+    String hadoopUserListPath = conf.get(CONF_HADOOP_MULTI_USER_LIST);
+    if (hadoopUserListPath == null || hadoopUserListPath.isEmpty()) {
+      LOG.error("Proxy user list path has not been passed for "
+          + CONF_HADOOP_MULTI_USER_LIST);
+      throw new IllegalArgumentException(
+          "Proxy user list hasn't been provided.");
+    }
+    File fileObj = new File(hadoopUserListPath);
+    DataInputStream disObj = new DataInputStream(new FileInputStream(fileObj));
+    ArrayList<String> usersList = new ArrayList<String>();
+    String strLine = null;
+    while((strLine = disObj.readLine()) != null){
+      usersList.add(strLine.substring(0,strLine.indexOf(',')));
+    }
+    return usersList;
+  }
   
   /**
    * It's a local folder where the config file stores temporarily