Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A436D200B6B for ; Fri, 9 Sep 2016 19:58:14 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id A2B8C160AC2; Fri, 9 Sep 2016 17:58:14 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 7CCDC160ACA for ; Fri, 9 Sep 2016 19:58:12 +0200 (CEST) Received: (qmail 81791 invoked by uid 500); 9 Sep 2016 17:58:07 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 80330 invoked by uid 99); 9 Sep 2016 17:58:06 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 09 Sep 2016 17:58:06 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 34046EF7C3; Fri, 9 Sep 2016 17:58:06 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: wangda@apache.org To: common-commits@hadoop.apache.org Date: Fri, 09 Sep 2016 17:58:16 -0000 Message-Id: <1575adfe17664668a87de574b1287ffe@git.apache.org> In-Reply-To: <91d51375330b4d83af5ded075a48c1c8@git.apache.org> References: <91d51375330b4d83af5ded075a48c1c8@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [12/44] hadoop git commit: YARN-4515. [YARN-3368] Support hosting web UI framework inside YARN RM. (Sunil G via wangda) YARN-5000. [YARN-3368] App attempt page is not loading when timeline server is not started (Sunil G via wangda) YARN-5038. [YARN-3368] archived-at: Fri, 09 Sep 2016 17:58:14 -0000 YARN-4515. [YARN-3368] Support hosting web UI framework inside YARN RM. (Sunil G via wangda) YARN-5000. [YARN-3368] App attempt page is not loading when timeline server is not started (Sunil G via wangda) YARN-5038. [YARN-3368] Application and Container pages shows wrong values when RM is stopped. (Sunil G via wangda) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5862574e Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5862574e Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5862574e Branch: refs/heads/YARN-3368 Commit: 5862574e3c6823f79da7753805ad8bb0ff2e273c Parents: b13b4f4 Author: Wangda Tan Authored: Tue May 17 22:28:24 2016 -0700 Committer: Wangda Tan Committed: Fri Sep 9 10:53:23 2016 -0700 ---------------------------------------------------------------------- LICENSE.txt | 2 + .../resources/assemblies/hadoop-yarn-dist.xml | 7 ++ .../hadoop/yarn/conf/YarnConfiguration.java | 23 ++++++ .../src/main/resources/yarn-default.xml | 26 +++++++ .../server/resourcemanager/ResourceManager.java | 76 +++++++++++++++++--- .../hadoop-yarn/hadoop-yarn-ui/pom.xml | 4 +- .../webapp/app/adapters/yarn-app-attempt.js | 4 +- .../webapp/app/adapters/yarn-container-log.js | 2 +- .../main/webapp/app/adapters/yarn-node-app.js | 10 ++- .../webapp/app/adapters/yarn-node-container.js | 10 ++- .../src/main/webapp/app/adapters/yarn-node.js | 5 +- .../main/webapp/app/components/timeline-view.js | 17 +++-- .../main/webapp/app/components/tree-selector.js | 4 +- .../main/webapp/app/helpers/log-files-comma.js | 2 +- .../src/main/webapp/app/helpers/node-link.js | 2 +- .../src/main/webapp/app/helpers/node-menu.js | 6 +- .../src/main/webapp/app/helpers/node-name.js | 46 ++++++++++++ .../main/webapp/app/models/yarn-app-attempt.js | 72 ++++++++++++++++++- .../src/main/webapp/app/models/yarn-app.js | 14 ++++ .../main/webapp/app/models/yarn-container.js | 7 ++ .../main/webapp/app/routes/yarn-app-attempt.js | 6 +- .../webapp/app/serializers/yarn-app-attempt.js | 5 +- .../src/main/webapp/app/serializers/yarn-app.js | 11 ++- .../webapp/app/serializers/yarn-container.js | 3 +- .../webapp/app/serializers/yarn-node-app.js | 5 +- .../app/serializers/yarn-node-container.js | 5 +- .../main/webapp/app/serializers/yarn-rm-node.js | 5 +- .../main/webapp/app/templates/application.hbs | 21 +++++- .../templates/components/app-attempt-table.hbs | 22 +++++- .../app/templates/components/app-table.hbs | 8 +-- .../templates/components/container-table.hbs | 4 +- .../templates/components/node-menu-panel.hbs | 44 ++++++++++++ .../app/templates/components/timeline-view.hbs | 2 +- .../src/main/webapp/app/templates/error.hbs | 2 +- .../webapp/app/templates/yarn-app-attempt.hbs | 4 ++ .../src/main/webapp/app/templates/yarn-app.hbs | 2 +- .../src/main/webapp/app/templates/yarn-apps.hbs | 9 ++- .../main/webapp/app/templates/yarn-node-app.hbs | 4 +- .../webapp/app/templates/yarn-node-apps.hbs | 12 ++-- .../app/templates/yarn-node-container.hbs | 2 +- .../app/templates/yarn-node-containers.hbs | 12 ++-- .../src/main/webapp/app/templates/yarn-node.hbs | 2 +- .../main/webapp/app/templates/yarn-nodes.hbs | 10 ++- .../main/webapp/app/templates/yarn-queue.hbs | 8 ++- .../src/main/webapp/config/environment.js | 2 +- .../hadoop-yarn-ui/src/main/webapp/package.json | 2 + .../webapp/tests/unit/helpers/node-name-test.js | 28 ++++++++ 47 files changed, 486 insertions(+), 93 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/LICENSE.txt ---------------------------------------------------------------------- diff --git a/LICENSE.txt b/LICENSE.txt index 45b6cdf..5efbd14 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1882,6 +1882,7 @@ The Apache Hadoop YARN Web UI component bundles the following files under the MI - datatables v1.10.8 (https://datatables.net/) - moment v2.10.6 (http://momentjs.com/) - Copyright (c) 2011-2015 Tim Wood, Iskren Chernev, Moment.js contributors - em-helpers v0.5.8 (https://github.com/sreenaths/em-helpers) + - ember-array-contains-helper v1.0.2 (https://github.com/bmeurant/ember-array-contains-helper) - ember-cli-app-version v0.5.8 (https://github.com/EmberSherpa/ember-cli-app-version) - Authored by Taras Mankovski - ember-cli-babel v5.1.6 (https://github.com/babel/ember-cli-babel) - Authored by Stefan Penner - ember-cli-content-security-policy v0.4.0 (https://github.com/rwjblue/ember-cli-content-security-policy) @@ -1895,6 +1896,7 @@ The Apache Hadoop YARN Web UI component bundles the following files under the MI - ember-cli-sri v1.2.1 (https://github.com/jonathanKingston/ember-cli-sri) - Authored by Jonathan Kingston - ember-cli-uglify v1.2.0 (github.com/ember-cli/ember-cli-uglify) - Authored by Robert Jackson - ember-d3 v0.1.0 (https://github.com/brzpegasus/ember-d3) - Authored by Estelle DeBlois + - ember-truth-helpers v1.2.0 (https://github.com/jmurphyau/ember-truth-helpers) - select2 v4.0.0 (https://select2.github.io/) All rights reserved. http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml ---------------------------------------------------------------------- diff --git a/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml b/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml index 219ed81..c3f459c 100644 --- a/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml +++ b/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml @@ -192,6 +192,13 @@ ${project.build.directory}/site /share/doc/hadoop/${hadoop.component} + + hadoop-yarn/hadoop-yarn-ui/target/hadoop-yarn-ui-${project.version} + /share/hadoop/${hadoop.component}/webapps/rm + + **/* + + http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 86e8a95..cdfc989 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -262,7 +262,30 @@ public class YarnConfiguration extends Configuration { public static final int DEFAULT_RM_WEBAPP_HTTPS_PORT = 8090; public static final String DEFAULT_RM_WEBAPP_HTTPS_ADDRESS = "0.0.0.0:" + DEFAULT_RM_WEBAPP_HTTPS_PORT; + + /** + * Enable YARN WebApp V2. + */ + public static final String RM_WEBAPP_UI2_ENABLE = RM_PREFIX + + "webapp.ui2.enable"; + public static final boolean DEFAULT_RM_WEBAPP_UI2_ENABLE = false; + + /** The address of the RM web ui2 application. */ + public static final String RM_WEBAPP_UI2_ADDRESS = RM_PREFIX + + "webapp.ui2.address"; + + public static final int DEFAULT_RM_WEBAPP_UI2_PORT = 8288; + public static final String DEFAULT_RM_WEBAPP_UI2_ADDRESS = "0.0.0.0:" + + DEFAULT_RM_WEBAPP_UI2_PORT; + /** The https address of the RM web ui2 application.*/ + public static final String RM_WEBAPP_UI2_HTTPS_ADDRESS = + RM_PREFIX + "webapp.ui2.https.address"; + + public static final int DEFAULT_RM_WEBAPP_UI2_HTTPS_PORT = 8290; + public static final String DEFAULT_RM_WEBAPP_UI2_HTTPS_ADDRESS = "0.0.0.0:" + + DEFAULT_RM_WEBAPP_UI2_HTTPS_PORT; + public static final String RM_RESOURCE_TRACKER_ADDRESS = RM_PREFIX + "resource-tracker.address"; public static final int DEFAULT_RM_RESOURCE_TRACKER_PORT = 8031; http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 423b78b..c85e0e3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -180,6 +180,32 @@ + To enable RM web ui2 application. + yarn.resourcemanager.webapp.ui2.enable + false + + + + + The http address of the RM web ui2 application. + If only a host is provided as the value, + the webapp will be served on a random port. + + yarn.resourcemanager.webapp.ui2.address + ${yarn.resourcemanager.hostname}:8288 + + + + + The https address of the RM web ui2 application. + If only a host is provided as the value, + the webapp will be served on a random port. + + yarn.resourcemanager.webapp.ui2.https.address + ${yarn.resourcemanager.hostname}:8290 + + + yarn.resourcemanager.resource-tracker.address ${yarn.resourcemanager.hostname}:8031 http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java index bf72fc1..296455f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java @@ -18,16 +18,6 @@ package org.apache.hadoop.yarn.server.resourcemanager; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintStream; -import java.net.InetSocketAddress; -import java.nio.charset.Charset; -import java.security.PrivilegedExceptionAction; -import java.security.SecureRandom; -import java.util.ArrayList; -import java.util.List; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.curator.framework.AuthInfo; @@ -38,10 +28,12 @@ import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ha.HAServiceProtocol; import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState; +import org.apache.hadoop.http.HttpServer2; import org.apache.hadoop.http.lib.StaticUserWebFilter; import org.apache.hadoop.metrics2.MetricsSystem; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.source.JvmMetrics; +import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.security.AuthenticationFilterInitializer; import org.apache.hadoop.security.Groups; import org.apache.hadoop.security.HttpCrossOriginFilterInitializer; @@ -123,6 +115,16 @@ import org.apache.hadoop.yarn.webapp.util.WebAppUtils; import org.apache.zookeeper.server.auth.DigestAuthenticationProvider; import com.google.common.annotations.VisibleForTesting; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintStream; +import java.net.InetSocketAddress; +import java.net.URI; +import java.nio.charset.Charset; +import java.security.PrivilegedExceptionAction; +import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.List; /** * The ResourceManager is the main class that is a set of components. @@ -904,7 +906,49 @@ public class ResourceManager extends CompositeService implements Recoverable { } } } - + + /** + * Return a HttpServer.Builder that the journalnode / namenode / secondary + * namenode can use to initialize their HTTP / HTTPS server. + * + */ + public static HttpServer2.Builder httpServerTemplateForRM(Configuration conf, + final InetSocketAddress httpAddr, final InetSocketAddress httpsAddr, + String name) throws IOException { + HttpServer2.Builder builder = new HttpServer2.Builder().setName(name) + .setConf(conf).setSecurityEnabled(false); + + if (httpAddr.getPort() == 0) { + builder.setFindPort(true); + } + + URI uri = URI.create("http://" + NetUtils.getHostPortString(httpAddr)); + builder.addEndpoint(uri); + LOG.info("Starting Web-server for " + name + " at: " + uri); + + return builder; + } + + protected void startWebAppV2() throws IOException { + Configuration config = getConfig(); + final InetSocketAddress httpAddr = config.getSocketAddr( + YarnConfiguration.RM_WEBAPP_UI2_ADDRESS, + YarnConfiguration.DEFAULT_RM_WEBAPP_UI2_ADDRESS, + YarnConfiguration.DEFAULT_RM_WEBAPP_UI2_PORT); + final InetSocketAddress httpsAddr = config.getSocketAddr( + YarnConfiguration.RM_WEBAPP_UI2_HTTPS_ADDRESS, + YarnConfiguration.DEFAULT_RM_WEBAPP_UI2_HTTPS_ADDRESS, + YarnConfiguration.DEFAULT_RM_WEBAPP_UI2_HTTPS_PORT); + + HttpServer2.Builder builder = httpServerTemplateForRM(config, httpAddr, + httpsAddr, "rm"); + + HttpServer2 infoServer = builder.build(); + infoServer.start(); + + LOG.info("Web server init done"); + } + protected void startWepApp() { // Use the customized yarn filter instead of the standard kerberos filter to @@ -1123,6 +1167,16 @@ public class ResourceManager extends CompositeService implements Recoverable { transitionToActive(); } + if (getConfig().getBoolean(YarnConfiguration.RM_WEBAPP_UI2_ENABLE, + YarnConfiguration.DEFAULT_RM_WEBAPP_UI2_ENABLE)) { + try { + startWebAppV2(); + LOG.info("Yarn WebApp UI 2 is started"); + } catch (Exception e) { + LOG.error("Failed to start Yarn web app v2:" + e.getMessage()); + } + } + startWepApp(); if (getConfig().getBoolean(YarnConfiguration.IS_MINI_YARN_CLUSTER, false)) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml index 66bf54a..6d46fda 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml @@ -20,12 +20,12 @@ hadoop-yarn org.apache.hadoop - 3.0.0-SNAPSHOT + 3.0.0-alpha1-SNAPSHOT 4.0.0 org.apache.hadoop hadoop-yarn-ui - 3.0.0-SNAPSHOT + 3.0.0-alpha1-SNAPSHOT Apache Hadoop YARN UI ${packaging.type} http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app-attempt.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app-attempt.js index d10ba45..78f5e02 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app-attempt.js @@ -31,10 +31,8 @@ export default AbstractAdapter.extend({ urlForFindRecord(id, modelName, snapshot) { var url = this._buildURL(); - var url = url + '/apps/' + + return url + '/apps/' + Converter.attemptIdToAppId(id) + "/appattempts/" + id; - console.log('app-attempt url:',url); - return url; } }); http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container-log.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container-log.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container-log.js index 39c3c87..9f2d5d7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container-log.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container-log.js @@ -42,7 +42,7 @@ export default DS.RESTAdapter.extend({ var nodeHttpAddr = splits[0]; var containerId = splits[1]; var filename = splits[2]; - this.host = this.host + nodeHttpAddr; + this.host = this.get('host') + nodeHttpAddr; var url = this._buildURL(); url = url + "/containerlogs/" + containerId + "/" + filename; return url; http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js index fd6c021..eaddfcb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js @@ -25,14 +25,20 @@ export default AbstractAdapter.extend({ serverName: "NM", urlForQuery(query) { - this.host = this.get("host") + query.nodeAddr; + var extension = this.get("host").split('/').pop(); + if (extension != query.nodeAddr) { + this.host = this.get("host") + query.nodeAddr; + } var url = this._buildURL(); url = url + "/apps"; return url; }, urlForQueryRecord: function (query) { - this.host = this.get("host") + query.nodeAddr; + var extension = this.get("host").split('/').pop(); + if (extension != query.nodeAddr) { + this.host = this.get("host") + query.nodeAddr; + } var url = this._buildURL(); url = url + "/apps/" + query.appId; return url; http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js index caf1e3f..56c4bcd 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js @@ -25,14 +25,20 @@ export default AbstractAdapter.extend({ serverName: "NM", urlForQuery(query) { - this.host = this.get("host") + query.nodeHttpAddr; + var extension = this.get("host").split('/').pop(); + if (extension != query.nodeHttpAddr) { + this.host = this.get("host") + query.nodeHttpAddr; + } var url = this._buildURL(); url = url + "/containers"; return url; }, urlForQueryRecord(query) { - this.host = this.get("host") + query.nodeHttpAddr; + var extension = this.get("host").split('/').pop(); + if (extension != query.nodeHttpAddr) { + this.host = this.get("host") + query.nodeHttpAddr; + } var url = this._buildURL(); url = url + "/containers/" + query.containerId; return url; http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js index c9f36c3..7a0fc4a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js @@ -25,7 +25,10 @@ export default AbstractAdapter.extend({ serverName: "NM", urlForFindRecord(id, modelName, snapshot) { - this.host = this.get("host") + id; + var extension = this.get("host").split('/').pop(); + if (extension != id) { + this.host = this.get("host") + id; + } var url = this._buildURL(); return url; }, http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/timeline-view.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/timeline-view.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/timeline-view.js index b92f4bf..8a2b3de 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/timeline-view.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/timeline-view.js @@ -225,18 +225,27 @@ export default Ember.Component.extend({ didInsertElement: function() { // init tooltip this.initTooltip(); + this.modelArr = []; // init model if (this.get("rmModel")) { this.get("rmModel").forEach(function(o) { - this.modelArr.push(o); + if(!this.modelArr.contains(o)) { + this.modelArr.push(o); + } }.bind(this)); } if (this.get("tsModel")) { - this.get("tsModel").forEach(function(o) { - this.modelArr.push(o); - }.bind(this)); + this.get("tsModel").forEach(function(o) { + if(!this.modelArr.contains(o)) { + this.modelArr.push(o); + } + }.bind(this)); + } + + if(this.modelArr.length == 0) { + return; } this.modelArr.sort(function(a, b) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js index 698c253..1af98ab 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js @@ -126,7 +126,7 @@ export default Ember.Component.extend({ .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) .on("click", function(d,i){ if (d.queueData.get("name") != this.get("selected")) { - document.location.href = "yarn-queue/" + d.queueData.get("name"); + document.location.href = "#/yarn-queue/" + d.queueData.get("name"); } }.bind(this)); // .on("click", click); @@ -176,7 +176,7 @@ export default Ember.Component.extend({ .attr("r", 20) .attr("href", function(d) { - return "yarn-queues/" + d.queueData.get("name"); + return "#/yarn-queues/" + d.queueData.get("name"); }) .style("stroke", function(d) { if (d.queueData.get("name") == this.get("selected")) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/log-files-comma.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/log-files-comma.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/log-files-comma.js index b6b57ec..192e1ed 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/log-files-comma.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/log-files-comma.js @@ -36,7 +36,7 @@ export default Ember.Helper.helper(function(params,hash) { var html = ''; var logFilesCommaSeparated = ""; for (var i = 0; i < logFilesLen; i++) { - html = html + '' + logFiles[i] + ''; if (i != logFilesLen - 1) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-link.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-link.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-link.js index 331f082..e524f08 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-link.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-link.js @@ -29,7 +29,7 @@ export default Ember.Helper.helper(function(params,hash) { if (nodeState == "SHUTDOWN" || nodeState == "LOST") { html = html + nodeHTTPAddress; } else { - html = html + '' + + html = html + '' + nodeHTTPAddress + ''; } html = html + ''; http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-menu.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-menu.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-menu.js index 2538d7d..d4a73a4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-menu.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-menu.js @@ -50,17 +50,17 @@ export default Ember.Helper.helper(function(params,hash) { if (hash.path == 'yarn-node') { html = html + ' class="active"'; } - html = html + '>Node InformationList of ApplicationsList of Containers'; return Ember.String.htmlSafe(html); }); http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-name.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-name.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-name.js new file mode 100644 index 0000000..56ce373 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-name.js @@ -0,0 +1,46 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Ember from 'ember'; + +export function nodeName(params/*, hash*/) { + // Place a menu within a panel inside col-md-2 container. + console.log('nodes-uid', params[0]); + var nodeIdSplitAtPort = params[0]; + var portIndex = nodeIdSplitAtPort.indexOf(':'); + if (portIndex != -1) { + nodeIdSplitAtPort = nodeIdSplitAtPort.substring(0, portIndex) + + ':​' + nodeIdSplitAtPort.substring(portIndex + 1); + } + var normalizedNodeId = ''; + var splitsAlongDots = nodeIdSplitAtPort.split('.'); + if (splitsAlongDots) { + var len = splitsAlongDots.length; + for (var i = 0; i < len; i++) { + normalizedNodeId = normalizedNodeId + splitsAlongDots[i]; + if (i != len - 1) { + normalizedNodeId = normalizedNodeId + '.​'; + } + } + } else { + normalizedNodeId = nodeIdSplitAtPort; + } + return Ember.String.htmlSafe(normalizedNodeId); +} + +export default Ember.Helper.helper(nodeName); http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app-attempt.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app-attempt.js index 8079907..b913a33 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app-attempt.js @@ -21,14 +21,29 @@ import Converter from 'yarn-ui/utils/converter'; export default DS.Model.extend({ startTime: DS.attr('string'), + startedTime: DS.attr('string'), finishedTime: DS.attr('string'), containerId: DS.attr('string'), + amContainerId: DS.attr('string'), nodeHttpAddress: DS.attr('string'), nodeId: DS.attr('string'), + hosts: DS.attr('string'), logsLink: DS.attr('string'), + state: DS.attr('string'), + + attemptStartedTime: function() { + var startTime = this.get("startTime"); + // If startTime variable is not present, get from startedTime + if (startTime == undefined || + startTime == "Invalid date") { + startTime = this.get("startedTime"); + } + + return startTime; + }.property("startedTime"), startTs: function() { - return Converter.dateToTimeStamp(this.get("startTime")); + return Converter.dateToTimeStamp(this.get('attemptStartedTime')); }.property("startTime"), finishedTs: function() { @@ -36,11 +51,57 @@ export default DS.Model.extend({ return ts; }.property("finishedTime"), + validatedFinishedTs: function() { + if (this.get("finishedTs") < this.get("startTs")) { + return ""; + } + return this.get("finishedTime"); + }.property("finishedTime"), + shortAppAttemptId: function() { + if (!this.get("containerId")) { + return this.get("id"); + } return "attempt_" + parseInt(Converter.containerIdToAttemptId(this.get("containerId")).split("_")[3]); }.property("containerId"), + appMasterContainerId: function() { + var id = this.get("containerId"); + // If containerId variable is not present, get from amContainerId + if (id == undefined) { + id = this.get("amContainerId"); + } + return id; + }.property("amContainerId"), + + IsAmNodeUrl: function() { + var url = this.get("nodeHttpAddress"); + // If nodeHttpAddress variable is not present, hardcode it. + if (url == undefined) { + url = "Not Available"; + } + return url != "Not Available"; + }.property("nodeHttpAddress"), + + amNodeId : function() { + var id = this.get("nodeId"); + // If nodeId variable is not present, get from host + if (id == undefined) { + id = this.get("hosts"); + } + return id; + }.property("nodeId"), + + IsLinkAvailable: function() { + var url = this.get("logsLink"); + // If logsLink variable is not present, hardcode its. + if (url == undefined) { + url = "Not Available"; + } + return url != "Not Available"; + }.property("logsLink"), + elapsedTime: function() { var elapsedMs = this.get("finishedTs") - this.get("startTs"); if (elapsedMs <= 0) { @@ -59,4 +120,13 @@ export default DS.Model.extend({ link: function() { return "/yarn-app-attempt/" + this.get("id"); }.property(), + + linkname: function() { + return "yarn-app-attempt"; + }.property(), + + attemptState: function() { + return this.get("state"); + }.property(), + }); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app.js index 1d506c2..a96c17c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app.js @@ -51,6 +51,13 @@ export default DS.Model.extend({ return this.get('finalStatus') == "FAILED" }.property("finalStatus"), + validatedFinishedTs: function() { + if (this.get("finishedTime") < this.get("startTime")) { + return ""; + } + return this.get("finishedTime"); + }.property("finishedTime"), + allocatedResource: function() { return Converter.resourceToString(this.get("allocatedMB"), this.get("allocatedVCores")); }.property("allocatedMB", "allocatedVCores"), @@ -67,6 +74,13 @@ export default DS.Model.extend({ return "width: " + this.get("progress") + "%"; }.property("progress"), + runningContainersNumber: function() { + if(this.get("runningContainers") < 0) { + return 0; + } + return this.get("runningContainers"); + }.property("progress"), + finalStatusStyle: function() { var style = "default"; var finalStatus = this.get("finalStatus"); http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container.js index b745296..bd9cea7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container.js @@ -40,6 +40,13 @@ export default DS.Model.extend({ return ts; }.property("finishedTime"), + validatedFinishedTs: function() { + if (this.get("finishedTs") < this.get("startTs")) { + return ""; + } + return this.get("finishedTime"); + }.property("finishedTime"), + elapsedTime: function() { var elapsedMs = this.get("finishedTs") - this.get("startTs"); if (elapsedMs <= 0) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js index a65118d..a8f27f5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js @@ -33,7 +33,11 @@ export default Ember.Route.extend({ { app_attempt_id: param.app_attempt_id, is_rm: false - }), + }).catch (function() { + // Promise rejected, fulfill with some default value to + // use as the route's model and continue on with the transition + return []; + }) }); } }); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app-attempt.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app-attempt.js index 291589c..4c542c4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app-attempt.js @@ -32,11 +32,14 @@ export default DS.JSONAPISerializer.extend({ type: primaryModelClass.modelName, // yarn-app attributes: { startTime: Converter.timeStampToDate(payload.startTime), + startedTime: Converter.timeStampToDate(payload.startedTime), finishedTime: Converter.timeStampToDate(payload.finishedTime), containerId: payload.containerId, + amContainerId: payload.amContainerId, nodeHttpAddress: payload.nodeHttpAddress, nodeId: payload.nodeId, - state: payload.nodeId, + hosts: payload.host, + state: payload.appAttemptState, logsLink: payload.logsLink } }; http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app.js index 234ad24..ba8c1f4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app.js @@ -75,10 +75,15 @@ export default DS.JSONAPISerializer.extend({ // payload has apps : { app: [ {},{},{} ] } // need some error handling for ex apps or app may not be defined. - normalizedArrayResponse.data = payload.apps.app.map(singleApp => { - return this.internalNormalizeSingleResponse(store, primaryModelClass, + if(payload.apps) { + normalizedArrayResponse.data = payload.apps.app.map(singleApp => { + return this.internalNormalizeSingleResponse(store, primaryModelClass, singleApp, singleApp.id, requestType); - }, this); + }, this); + } else { + normalizedArrayResponse.data = []; + } + return normalizedArrayResponse; } }); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container.js index 6f0386f..e051396 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container.js @@ -64,9 +64,10 @@ export default DS.JSONAPISerializer.extend({ singleContainer, singleContainer.id, requestType); }, this); return normalizedArrayResponse; + } else { + normalizedArrayResponse.data = []; } - normalizedArrayResponse.data = []; return normalizedArrayResponse; } }); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js index 8b1f152..5945813 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js @@ -76,10 +76,7 @@ export default DS.JSONAPISerializer.extend({ } else { // No container reported inside containers. // Response of the form { "apps": null } - normalizedArrayResponse.data = Ember.makeArray({ - id: "dummy", - type: primaryModelClass.modelName, - attributes: {}}); + normalizedArrayResponse.data = []; } return normalizedArrayResponse; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js index 528f2fe..a104f1e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js @@ -64,10 +64,7 @@ export default DS.JSONAPISerializer.extend({ } else { // No container reported inside containers. // Response of the form { "containers": null } - normalizedArrayResponse.data = Ember.makeArray({ - id: "dummy", - type: primaryModelClass.modelName, - attributes: {}}); + normalizedArrayResponse.data = []; } return normalizedArrayResponse; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-rm-node.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-rm-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-rm-node.js index 6cb9320..6feab36 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-rm-node.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-rm-node.js @@ -67,10 +67,7 @@ export default DS.JSONAPISerializer.extend({ singleNode, singleNode.id); }, this); } else { - normalizedArrayResponse.data = Ember.makeArray({ - id: "dummy", - type: primaryModelClass.modelName, - attributes: {}}); + normalizedArrayResponse.data = []; } return normalizedArrayResponse; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs index 88702c4..b45ec6b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs @@ -32,7 +32,26 @@ http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-attempt-table.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-attempt-table.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-attempt-table.hbs index 722f780..2b16f86 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-attempt-table.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-attempt-table.hbs @@ -24,23 +24,39 @@ Start Time - {{attempt.startTime}} + {{attempt.attemptStartedTime}} AM Container Id - {{attempt.containerId}} + {{attempt.appMasterContainerId}} + {{#if attempt.IsAmNodeUrl}} AM Node Web UI {{attempt.nodeHttpAddress}} + {{/if}} AM Node Id - {{attempt.nodeId}} + {{attempt.amNodeId}} + {{#if attempt.IsLinkAvailable}} Log link + {{/if}} + {{#if attempt.attemptState}} + + Attempt State + {{attempt.attemptState}} + + {{/if}} + {{#if attempt.elapsedTime}} + + Elapsed Time + {{attempt.elapsedTime}} + + {{/if}} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs index 6e8badc..0788d9c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs @@ -36,7 +36,7 @@ {{#if arr}} {{#each arr as |app|}} - {{app.id}} + {{app.id}} {{app.appName}} {{app.user}} {{app.queue}} @@ -44,7 +44,7 @@ {{app.finalStatus}} {{app.startTime}} {{app.elapsedTime}} - {{app.finishedTime}} + {{app.validatedFinishedTs}} {{app.priority}}
@@ -57,7 +57,7 @@ {{/each}} {{else}} - {{app.id}} + {{app.id}} {{app.appName}} {{app.user}} {{app.queue}} @@ -65,7 +65,7 @@ {{app.finalStatus}} {{app.startTime}} {{app.elapsedTime}} - {{app.finishedTime}} + {{app.validatedFinishedTs}} {{app.priority}}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/container-table.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/container-table.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/container-table.hbs index dcc31da..0736a69 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/container-table.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/container-table.hbs @@ -24,7 +24,7 @@ Finished Time - {{container.finishedTime}} + {{container.validatedFinishedTs}} Elapsed Time @@ -48,7 +48,7 @@ NodeManager UI - {{container.nodeHttpAddress}} + {{container.nodeHttpAddress}} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/node-menu-panel.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/node-menu-panel.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/node-menu-panel.hbs new file mode 100644 index 0000000..1e07e89 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/node-menu-panel.hbs @@ -0,0 +1,44 @@ +{{! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +}} + +
+
+
+

Node Manager
({{node-name nodeId}})

+
+
+ +
+
+
+{{outlet}} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/timeline-view.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/timeline-view.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/timeline-view.hbs index 2eb3441..6f529ba 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/timeline-view.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/timeline-view.hbs @@ -34,7 +34,7 @@
{{#if selected.link}} - {{selected.id}} + {{#link-to selected.linkname selected.id}}{{selected.id}}{{/link-to}} {{else}} {{selected.id}} {{/if}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/error.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/error.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/error.hbs index c546bf7..2e2a6e5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/error.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/error.hbs @@ -16,4 +16,4 @@ limitations under the License. --}} -

Sorry, Error Occured.

+

Sorry, Error Occurred.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempt.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempt.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempt.hbs index a0343b5..b01eceb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempt.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempt.hbs @@ -18,12 +18,16 @@
+ {{#if model.attempt}} {{app-attempt-table attempt=model.attempt}} + {{/if}}
+ {{#if (or model.rmContainers model.tsContainers)}} {{timeline-view parent-id="containers-timeline-div" my-id="timeline-view" height="400" rmModel=model.rmContainers tsModel=model.tsContainers label="shortAppAttemptId" attemptModel=false}} + {{/if}}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs index d306e64..2bc20f2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs @@ -61,7 +61,7 @@ Running Containers - {{model.app.runningContainers}} + {{model.app.runningContainersNumber}} Preempted Resource http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs index 98b9107..0fc6edf 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs @@ -15,7 +15,10 @@ * See the License for the specific language governing permissions and * limitations under the License. }} - -{{app-table table-id="apps-table" arr=model}} -{{simple-table table-id="apps-table" bFilter=true colsOrder="0,desc" colTypes="natural elapsed-time" colTargets="0 7"}} +{{#if model}} + {{app-table table-id="apps-table" arr=model}} + {{simple-table table-id="apps-table" bFilter=true colsOrder="0,desc" colTypes="natural elapsed-time" colTargets="0 7"}} +{{else}} +

Could not find any applications from this cluster

+{{/if}} {{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-app.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-app.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-app.hbs index dfd6fb5..1551957 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-app.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-app.hbs @@ -18,7 +18,7 @@
- {{node-menu path="yarn-node-app" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}} + {{node-menu-panel path="yarn-node-app" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}}
Application Information
@@ -48,7 +48,7 @@ {{#each model.nodeApp.containers as |container|}} - {{container}} + {{container}} {{/each}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-apps.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-apps.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-apps.hbs index d897afc..42de7eb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-apps.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-apps.hbs @@ -18,7 +18,8 @@
- {{node-menu path="yarn-node-apps" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}} + {{node-menu-panel path="yarn-node-apps" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}} + {{#if model.apps}}
@@ -31,21 +32,20 @@ {{#if model.apps}} {{#each model.apps as |app|}} - {{#if app.isDummyApp}} - - {{else}} - + - {{/if}} {{/each}} {{/if}}
No apps found on this node
{{app.appId}}{{app.appId}} {{app.state}} {{app.user}}
{{simple-table table-id="node-apps-table" bFilter=true colsOrder="0,desc" colTypes="natural" colTargets="0"}}
+ {{else}} +

No apps found on this node

+ {{/if}}
{{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-container.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-container.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-container.hbs index 8ddbae5..4104eec 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-container.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-container.hbs @@ -18,7 +18,7 @@
- {{node-menu path="yarn-node-container" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}} + {{node-menu-panel path="yarn-node-container" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}}
Container Information
http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-containers.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-containers.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-containers.hbs index 65a67a8..3ebcc6f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-containers.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node-containers.hbs @@ -18,7 +18,8 @@
- {{node-menu path="yarn-node-containers" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}} + {{node-menu-panel path="yarn-node-containers" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}} + {{#if model.containers}}
@@ -32,11 +33,8 @@ {{#if model.containers}} {{#each model.containers as |container|}} - {{#if container.isDummyContainer}} - - {{else}} - + - {{/if}} {{/each}} {{/if}}
No containers found on this node
{{container.containerId}}{{container.containerId}} {{container.state}} {{container.user}} @@ -46,13 +44,15 @@ logFiles=container.containerLogFiles}}
{{simple-table table-id="node-containers-table" bFilter=true colsOrder="0,desc" colTypes="natural" colTargets="0"}}
+ {{else}} +

No containers found on this node

+ {{/if}}
{{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node.hbs index d92a70a..d6f30ec 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node.hbs @@ -18,7 +18,7 @@
- {{node-menu path="yarn-node" nodeId=model.rmNode.id nodeAddr=model.node.id}} + {{node-menu-panel path="yarn-node" nodeId=model.rmNode.id nodeAddr=model.node.id}}
Node Information
http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-nodes.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-nodes.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-nodes.hbs index bf2a098..3c78498 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-nodes.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-nodes.hbs @@ -16,6 +16,7 @@ limitations under the License. --}} +{{#if model}} @@ -35,11 +36,7 @@ - {{#if model}} {{#each model as |node|}} - {{#if node.isDummyNode}} - - {{else}} @@ -55,11 +52,12 @@ - {{/if}} {{/each}} - {{/if}}
No nodes found on this cluster
{{node.nodeLabelsAsString}} {{node.rack}}{{node.availableVirtualCores}} {{node.version}}
{{simple-table table-id="nodes-table" bFilter=true}} +{{else}} +

No nodes found on this cluster

+{{/if}} {{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs index 51a4fb4..8ce4ffa 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs @@ -58,8 +58,12 @@
- {{app-table table-id="apps-table" arr=model.apps}} - {{simple-table table-id="apps-table" bFilter=true colTypes="elapsed-time" colTargets="7"}} + {{#if model.apps}} + {{app-table table-id="apps-table" arr=model.apps}} + {{simple-table table-id="apps-table" bFilter=true colTypes="elapsed-time" colTargets="7"}} + {{else}} +

Could not find any applications from this cluster

+ {{/if}}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/environment.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/environment.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/environment.js index 118e0ba..3c478be 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/environment.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/environment.js @@ -25,7 +25,7 @@ module.exports = function(environment) { modulePrefix: 'yarn-ui', environment: environment, baseURL: '/', - locationType: 'auto', + locationType: 'hash', EmberENV: { FEATURES: { // Here you can enable experimental features on an ember canary build http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/package.json ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/package.json b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/package.json index 40febda..417eb98 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/package.json +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/package.json @@ -22,6 +22,7 @@ "broccoli-asset-rev": "2.4.2", "broccoli-funnel": "1.0.1", "ember-bootstrap": "0.5.1", + "ember-array-contains-helper": "1.0.2", "ember-cli": "1.13.13", "ember-cli-app-version": "1.0.0", "ember-cli-babel": "5.1.6", @@ -42,6 +43,7 @@ "ember-export-application-global": "1.0.5", "ember-resolver": "2.0.3", "ember-spin-spinner": "0.2.3", + "ember-truth-helpers": "1.2.0", "select2": "4.0.0" } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/5862574e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/helpers/node-name-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/helpers/node-name-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/helpers/node-name-test.js new file mode 100644 index 0000000..8ff5eb6 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/helpers/node-name-test.js @@ -0,0 +1,28 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { nodeName } from '../../../helpers/node-name'; +import { module, test } from 'qunit'; + +module('Unit | Helper | node name'); + +// Replace this with your real tests. +test('it works', function(assert) { + let result = nodeName(42); + assert.ok(result); +}); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org For additional commands, e-mail: common-commits-help@hadoop.apache.org