HADOOP-6839. [Herriot] Implement a functionality for getting the user list for creating proxy users. Contributed by Vinay Thota.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@964130 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Konstantin Boudnik 2010-07-14 18:44:12 +00:00
parent c757b9bf8a
commit a73dfef140
2 changed files with 31 additions and 0 deletions

View File

@ -1032,6 +1032,9 @@ Release 0.21.0 - Unreleased
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)

View File

@ -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();
/**
@ -297,6 +301,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
* while serializing the object.