Repository: hive Updated Branches: refs/heads/master a4c43f033 -> a5ffa7190
HIVE-11724 : WebHcat get jobs to order jobs on time order with latest at top (Kiran Kumar Kolli, reviewed by Hari Subramaniyan) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/a5ffa719 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/a5ffa719 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/a5ffa719 Branch: refs/heads/master Commit: a5ffa71908f5f15c5acaef476ad557d98583f2fa Parents: a4c43f0 Author: Hari Subramaniyan <harisan...@apache.org> Authored: Tue Sep 29 11:56:51 2015 -0700 Committer: Hari Subramaniyan <harisan...@apache.org> Committed: Tue Sep 29 11:56:51 2015 -0700 ---------------------------------------------------------------------- .../hive/hcatalog/templeton/AppConfig.java | 21 ++++++++++++++++++++ .../apache/hive/hcatalog/templeton/Server.java | 12 +++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/a5ffa719/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java ---------------------------------------------------------------------- diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java index 062d5a0..403ff14 100644 --- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java +++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java @@ -89,6 +89,11 @@ public class AppConfig extends Configuration { "webhcat-site.xml" }; + public enum JobsListOrder { + lexicographicalasc, + lexicographicaldesc, + } + public static final String PORT = "templeton.port"; public static final String EXEC_ENCODING_NAME = "templeton.exec.encoding"; public static final String EXEC_ENVS_NAME = "templeton.exec.envs"; @@ -105,6 +110,7 @@ public class AppConfig extends Configuration { public static final String HIVE_PATH_NAME = "templeton.hive.path"; public static final String MAPPER_MEMORY_MB = "templeton.mapper.memory.mb"; public static final String MR_AM_MEMORY_MB = "templeton.mr.am.memory.mb"; + public static final String TEMPLETON_JOBSLIST_ORDER = "templeton.jobs.listorder"; /** * see webhcat-default.xml @@ -281,6 +287,21 @@ public class AppConfig extends Configuration { } } + public JobsListOrder getListJobsOrder() { + String requestedOrder = get(TEMPLETON_JOBSLIST_ORDER); + if (requestedOrder != null) { + try { + return JobsListOrder.valueOf(requestedOrder.toLowerCase()); + } + catch(IllegalArgumentException ex) { + LOG.warn("Ignoring setting " + TEMPLETON_JOBSLIST_ORDER + " configured with in-correct value " + requestedOrder); + } + } + + // Default to lexicographicalasc + return JobsListOrder.lexicographicalasc; + } + public void startCleanup() { JobState.getStorageInstance(this).startCleanup(this); } http://git-wip-us.apache.org/repos/asf/hive/blob/a5ffa719/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java ---------------------------------------------------------------------- diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java index 27b8e38..bba16c5 100644 --- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java +++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java @@ -1002,8 +1002,16 @@ public class Server { throw new BadParam("Invalid numrecords format: numrecords should be an integer > 0"); } - // Sort the list lexicographically - Collections.sort(list); + // Sort the list as requested + switch (appConf.getListJobsOrder()) { + case lexicographicaldesc: + Collections.sort(list, Collections.reverseOrder()); + break; + case lexicographicalasc: + default: + Collections.sort(list); + break; + } for (String job : list) { // If numRecords = -1, fetch all records.