You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2019/02/14 15:26:57 UTC

[hadoop] branch branch-3.1 updated: YARN-7761. [UI2] Clicking 'master container log' or 'Link' next to 'log' under application's appAttempt goes to Old UI's Log link. Contributed by Akhil PB.

This is an automated email from the ASF dual-hosted git repository.

sunilg pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.1 by this push:
     new ec08eed  YARN-7761. [UI2] Clicking 'master container log' or 'Link' next to 'log' under application's appAttempt goes to Old UI's Log link. Contributed by Akhil PB.
ec08eed is described below

commit ec08eed5421e4832db156777795896d607c9a525
Author: Sunil G <su...@apache.org>
AuthorDate: Thu Feb 14 20:55:43 2019 +0530

    YARN-7761. [UI2] Clicking 'master container log' or 'Link' next to 'log' under application's appAttempt goes to Old UI's Log link. Contributed by Akhil PB.
    
    (cherry picked from commit d321d0e747ec91f6b66fe8eb73ea3b9ef99825ae)
---
 .../src/main/webapp/app/components/timeline-view.js          | 12 ++++++------
 .../src/main/webapp/app/controllers/yarn-app/logs.js         |  9 +++++++--
 .../src/main/webapp/app/helpers/log-files-comma.js           |  2 +-
 .../src/main/webapp/app/models/yarn-app-attempt.js           |  6 ++++++
 .../src/main/webapp/app/models/yarn-container.js             |  7 +++++++
 .../src/main/webapp/app/models/yarn-timeline-container.js    |  7 +++++++
 .../src/main/webapp/app/routes/yarn-app/logs.js              |  6 ++++++
 .../src/main/webapp/app/routes/yarn-node-container.js        |  8 +++++---
 .../webapp/app/templates/components/app-attempt-table.hbs    |  8 +++++---
 .../main/webapp/app/templates/components/container-table.hbs |  8 +++++---
 .../src/main/webapp/app/templates/yarn-app.hbs               |  4 ++--
 .../src/main/webapp/app/templates/yarn-apps/apps.hbs         |  2 ++
 .../src/main/webapp/app/templates/yarn-node/info.hbs         |  4 +---
 13 files changed, 60 insertions(+), 23 deletions(-)

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 f09f42e..092cbe9 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
@@ -395,9 +395,9 @@ export default Ember.Component.extend({
       contentPath: 'logsLink',
       cellComponentName: 'em-table-html-cell',
       getCellContent: function(row) {
-        var logUrl = self.checkHttpProtocol(row.get('logsLink'));
-        if (logUrl) {
-          return `<a href="${logUrl}" target="_blank">Link</a>`;
+        var containerLogUrl = row.get('appAttemptContainerLogsURL');
+        if (containerLogUrl) {
+          return `<a href="${containerLogUrl}">Link</a>`;
         } else {
           return 'N/A';
         }
@@ -470,9 +470,9 @@ export default Ember.Component.extend({
       contentPath: 'logUrl',
       cellComponentName: 'em-table-html-cell',
       getCellContent: function(row) {
-        var url = self.checkHttpProtocol(row.get('logUrl'));
-        if (url) {
-          return `<a href="${url}" target="_blank">${url}</a>`;
+        var containerLogUrl = row.get('appAttemptContainerLogsURL');
+        if (containerLogUrl) {
+          return `<a href="${containerLogUrl}">Link</a>`;
         } else {
           return 'N/A';
         }
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/logs.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/logs.js
index 8224011..e1a8ec8 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/logs.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/logs.js
@@ -20,8 +20,10 @@ import Ember from 'ember';
 import Constants from 'yarn-ui/constants';
 
 export default Ember.Controller.extend({
-  queryParams: ["service"],
+  queryParams: ["service", "attempt", "containerid"],
   service: undefined,
+  attempt: undefined,
+  containerid: undefined,
 
   selectedAttemptId: "",
   attemptContainerList: null,
@@ -40,7 +42,7 @@ export default Ember.Controller.extend({
   },
 
   actions: {
-    showContainersForAttemptId(attemptId) {
+    showContainersForAttemptId(attemptId, containerId = "") {
       this.set("selectedAttemptId", "");
       if (attemptId) {
         this.set("_isLoadingTopPanel", true);
@@ -75,6 +77,9 @@ export default Ember.Controller.extend({
             }
             this.set("attemptContainerList", containers);
             this.initializeSelect(".js-fetch-logs-containers");
+            if (containerId) {
+              this.send("showLogFilesForContainerId", containerId);
+            }
           })
           .finally(() => {
             this.set("_isLoadingTopPanel", false);
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 026cd7f..963fc14 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
@@ -47,7 +47,7 @@ export default Ember.Helper.helper(function(params,hash) {
         nodeAddr + '/' + containerId + '/' + logFileName + '">' + logFileName +
         '</a>';
     if (i !== logFilesLen - 1) {
-      html = html + ",";
+      html = html + ", ";
     }
   }
   html = html + '</td>';
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 f483695..134ab72 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
@@ -146,4 +146,10 @@ export default DS.Model.extend({
     return `#/yarn-node/${this.get("nodeId")}/${addr}/info/`;
   }.property("nodeId", "nodeHttpAddress"),
 
+  appAttemptContainerLogsURL: function() {
+    const attemptId = this.get("id");
+    const containerId = this.get("appMasterContainerId");
+    const appId = Converter.attemptIdToAppId(attemptId);
+    return `#/yarn-app/${appId}/logs?attempt=${attemptId}&containerid=${containerId}`;
+  }.property("id", "appMasterContainerId")
 });
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 7482a2f..4086be0 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
@@ -66,4 +66,11 @@ export default DS.Model.extend({
     var addr = encodeURIComponent(this.get("nodeHttpAddress"));
     return `#/yarn-node/${this.get("nodeId")}/${addr}/info/`;
   }.property("nodeId", "nodeHttpAddress"),
+
+  appAttemptContainerLogsURL: function() {
+    const containerId = this.get("id");
+    const attemptId = Converter.containerIdToAttemptId(containerId);
+    const appId = Converter.attemptIdToAppId(attemptId);
+    return `#/yarn-app/${appId}/logs?attempt=${attemptId}&containerid=${containerId}`;
+  }.property("id")
 });
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-timeline-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-timeline-container.js
index 9384418..c734fb5 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-timeline-container.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-timeline-container.js
@@ -67,4 +67,11 @@ export default DS.Model.extend({
     var addr = encodeURIComponent(this.get("nodeHttpAddress"));
     return `#/yarn-node/${this.get("nodeId")}/${addr}/info/`;
   }.property("nodeId", "nodeHttpAddress"),
+
+  appAttemptContainerLogsURL: function() {
+    const containerId = this.get("id");
+    const attemptId = Converter.containerIdToAttemptId(containerId);
+    const appId = Converter.attemptIdToAppId(attemptId);
+    return `#/yarn-app/${appId}/logs?attempt=${attemptId}&containerid=${containerId}`;
+  }.property("id")
 });
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/logs.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/logs.js
index 99e4cff..b73bc80 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/logs.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/logs.js
@@ -37,8 +37,14 @@ export default AbstractRoute.extend(AppAttemptMixin, {
 
   activate() {
     const controller = this.controllerFor("yarn-app.logs");
+    const { attempt, containerid } = this.paramsFor('yarn-app.logs');
     controller.resetAfterRefresh();
     controller.initializeSelect();
+    if (attempt) {
+      controller.send("showContainersForAttemptId", attempt, containerid);
+    } else {
+      controller.set("selectedAttemptId", "");
+    }
   },
 
   unloadAll() {
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-container.js
index 388918e..0060e2b 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-container.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-container.js
@@ -22,12 +22,14 @@ import AbstractRoute from './abstract';
 
 export default AbstractRoute.extend({
   model(param) {
+    let nodeAddress = decodeURIComponent(param.node_addr);
+    nodeAddress = nodeAddress.replace(/(^\w+:|^)\/\//, '');
     // Get a specific container running on a specific node.
     return Ember.RSVP.hash({
       nodeContainer: this.store.queryRecord('yarn-node-container',
-          { nodeHttpAddr: param.node_addr, containerId: param.container_id }),
-      nmGpuInfo: this.store.findRecord('yarn-nm-gpu', param.node_addr, {reload:true}),
-      nodeInfo: { id: param.node_id, addr: param.node_addr, containerId: param.container_id }
+          { nodeHttpAddr: nodeAddress, containerId: param.container_id }),
+      nmGpuInfo: this.store.findRecord('yarn-nm-gpu', nodeAddress, {reload:true}),
+      nodeInfo: { id: param.node_id, addr: nodeAddress, containerId: param.container_id }
     });
   },
 
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 dc0397a..e842e39 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
@@ -56,10 +56,12 @@
       <td title="{{attempt.nodeHttpAddress}}"><a href="{{attempt.masterNodeURL}}">{{attempt.nodeHttpAddress}}</a></td>
     </tr>
     {{/if}}
-    {{#if attempt.logsLink}}
+    {{#if attempt.appAttemptContainerLogsURL}}
     <tr>
-      <td>Log</td>
-      <td><a href="{{prepend-protocol attempt.logsLink}}" target="_blank">Link</a></td>
+      <td>Logs</td>
+      <td>
+        <a href="{{attempt.appAttemptContainerLogsURL}}">Link</a>
+      </td>
     </tr>
     {{/if}}
     {{#if attempt.diagnosticsInfo}}
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 139b7eb..97164ac 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
@@ -54,10 +54,12 @@
       <td title="{{container.nodeHttpAddress}}"><a href="{{container.masterNodeURL}}">{{container.nodeHttpAddress}}</a></td>
     </tr>
     {{/if}}
-    {{#if container.logUrl}}
+    {{#if container.appAttemptContainerLogsURL}}
     <tr>
-      <td>Log</td>
-      <td><a href="{{prepend-protocol container.logUrl}}" target="_blank">Link</a></td>
+      <td>Logs</td>
+      <td>
+        <a href="{{container.appAttemptContainerLogsURL}}">Link</a>
+      </td>
     </tr>
     {{/if}}
   </tbody>
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 6e9bc08..c16a7a5 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
@@ -19,7 +19,7 @@
 {{breadcrumb-bar breadcrumbs=breadcrumbs}}
 
 {{#if actionResponse}}
-  <div class="row">
+  <div class="alert-wrapper">
     <div class="col-md-12">
       <div class="alert alert-dismissible {{if (eq actionResponse.type 'error') 'alert-danger' 'alert-success'}}" role="alert">
         <button class="close" data-dismiss="alert" aria-label="Close" {{action "resetActionResponse"}}><span aria-hidden="true">&times;</span></button>
@@ -29,7 +29,7 @@
   </div>
 {{/if}}
 
-<div class="panel-group">
+<div class="panel-group col-md-12">
   <div class="panel panel-default">
     <div class="yarn-app-header">
       <div class="flex">
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/apps.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/apps.hbs
index f740083..743e2bf 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/apps.hbs
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/apps.hbs
@@ -20,7 +20,9 @@
   <h4 align="center">Loading...</h4>
 {{else}}
   {{#if model.apps}}
+    <div class="col-md-12">
     {{em-table columns=columns rows=model.apps definition=tableDefinition}}
+    </div>
   {{else}}
     <h4 align="center">Could not find any applications from this cluster</h4>
   {{/if}}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node/info.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node/info.hbs
index a2c708e..59cbbf0 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node/info.hbs
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-node/info.hbs
@@ -129,9 +129,7 @@
           <div class="col-lg-6 container-fluid">
             <div class="panel panel-default">
               <div class="panel-heading">
-                <li>
-                  Resources - yarn.io/gpu
-                </li>
+                Resources - yarn.io/gpu
               </div>
               <div class="container-fluid" id="gpu-donut-chart">
                 {{donut-chart data=model.rmNode.getGpuDataForDonutChart


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org