From 55dde827e60ef6455114b0bb28ecc07b6e457f37 Mon Sep 17 00:00:00 2001 From: Eric E Payne Date: Thu, 7 Feb 2019 16:38:11 +0000 Subject: [PATCH] YARN-7171: RM UI should sort memory / cores numerically. Contributed by Ahmed Hussein (cherry picked from commit d1ca9432dd0b3e9b46b4903e8c9d33f5c28fcc1b) --- .../webapps/static/yarn.dt.plugins.js | 23 +++++++++++++++++++ .../yarn/server/webapp/WebPageUtils.java | 3 ++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/yarn.dt.plugins.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/yarn.dt.plugins.js index c0032725c43..51cb6305af4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/yarn.dt.plugins.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/yarn.dt.plugins.js @@ -41,6 +41,29 @@ jQuery.fn.dataTableExt.oSort['title-numeric-desc'] = function(a,b) { return ((x < y) ? 1 : ((x > y) ? -1 : 0)); }; +// 'numeric-ignore-strings' sort type +jQuery.fn.dataTableExt.oSort['num-ignore-str-asc'] = function(a, b) { + if (isNaN(a) && isNaN(b)) return ((a < b) ? 1 : ((a > b) ? -1 : 0)); + + if (isNaN(a)) return 1; + if (isNaN(b)) return -1; + + x = parseFloat(a); + y = parseFloat(b); + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); +}; + +jQuery.fn.dataTableExt.oSort['num-ignore-str-desc'] = function(a, b) { + if (isNaN(a) && isNaN(b)) return ((a < b) ? 1 : ((a > b) ? -1 : 0)); + + if (isNaN(a)) return 1; + if (isNaN(b)) return -1; + + x = parseFloat(a); + y = parseFloat(b); + return ((x < y) ? 1 : ((x > y) ? -1 : 0)); +}; + jQuery.fn.dataTableExt.oApi.fnSetFilteringDelay = function ( oSettings, iDelay ) { var _that = this, diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java index b2f65a84504..1cd7d87d9b7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebPageUtils.java @@ -51,8 +51,9 @@ public class WebPageUtils { sb.append("[\n") .append("{'sType':'natural', 'aTargets': [0]") .append(", 'mRender': parseHadoopID }") - .append("\n, {'sType':'numeric', 'aTargets': [6, 7, 8]") + .append("\n, {'sType':'num-ignore-str', 'aTargets': [6, 7, 8]") .append(", 'mRender': renderHadoopDate }") + .append("\n, {'sType':'num-ignore-str', 'aTargets': [11, 12, 13, 14, 15] }") .append("\n, {'sType':'numeric', bSearchable:false, 'aTargets':"); if (isFairSchedulerPage) { sb.append("[15]");