diff --git a/CHANGES.txt b/CHANGES.txt index 24906442f45..c790e35509f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -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) diff --git a/src/test/system/java/org/apache/hadoop/test/system/AbstractDaemonCluster.java b/src/test/system/java/org/apache/hadoop/test/system/AbstractDaemonCluster.java index 7af6e24cf14..db43b6627f4 100644 --- a/src/test/system/java/org/apache/hadoop/test/system/AbstractDaemonCluster.java +++ b/src/test/system/java/org/apache/hadoop/test/system/AbstractDaemonCluster.java @@ -21,6 +21,8 @@ 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 @@ protected void assertNoExceptionMessages() throws IOException { } } } + + /** + * Get the multi users list. + * @return ArrayList - users list as a array list. + * @throws IOException - if an I/O error occurs. + */ + public ArrayList 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 usersList = new ArrayList(); + 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