You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tez.apache.org by sr...@apache.org on 2016/02/01 23:05:25 UTC
tez git commit: TEZ-3080. Tez UI 2: Ensure UI 2 is in-line with UI 1
(sree)
Repository: tez
Updated Branches:
refs/heads/TEZ-2980 9335a9370 -> 3fb2a657a
TEZ-3080. Tez UI 2: Ensure UI 2 is in-line with UI 1 (sree)
Project: http://git-wip-us.apache.org/repos/asf/tez/repo
Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/3fb2a657
Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/3fb2a657
Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/3fb2a657
Branch: refs/heads/TEZ-2980
Commit: 3fb2a657a9ef66e9fa23c58717c212fcb0cd0592
Parents: 9335a93
Author: Sreenath Somarajapuram <sr...@apache.org>
Authored: Tue Feb 2 03:34:39 2016 +0530
Committer: Sreenath Somarajapuram <sr...@apache.org>
Committed: Tue Feb 2 03:34:39 2016 +0530
----------------------------------------------------------------------
TEZ-2980-CHANGES.txt | 1 +
.../main/webapp/app/controllers/app/index.js | 12 +++++
.../main/webapp/app/controllers/vertex/index.js | 28 +++++++++++
tez-ui2/src/main/webapp/app/models/timeline.js | 5 +-
tez-ui2/src/main/webapp/app/models/vertex.js | 5 ++
.../src/main/webapp/app/serializers/timeline.js | 14 ++++++
.../src/main/webapp/app/serializers/vertex.js | 5 ++
.../main/webapp/app/styles/details-page.less | 8 ++-
tez-ui2/src/main/webapp/app/styles/shared.less | 13 +++++
.../src/main/webapp/app/templates/app/index.hbs | 4 +-
.../main/webapp/app/templates/attempt/index.hbs | 12 +++++
.../src/main/webapp/app/templates/dag/index.hbs | 11 ++++
.../main/webapp/app/templates/task/index.hbs | 12 +++++
.../main/webapp/app/templates/vertex/index.hbs | 53 ++++++++++++++++++--
.../tests/unit/controllers/app/index-test.js | 1 +
15 files changed, 176 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/TEZ-2980-CHANGES.txt
----------------------------------------------------------------------
diff --git a/TEZ-2980-CHANGES.txt b/TEZ-2980-CHANGES.txt
index 38f474a..b653e42 100644
--- a/TEZ-2980-CHANGES.txt
+++ b/TEZ-2980-CHANGES.txt
@@ -32,3 +32,4 @@ ALL CHANGES:
TEZ-3062. Tez UI 2: Integrate graphical view
TEZ-3058. Tez UI 2: Add download data functionality
TEZ-3084. Tez UI 2: Display caller type and info
+ TEZ-3080. Tez UI 2: Ensure UI 2 is in-line with UI 1
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/controllers/app/index.js
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/controllers/app/index.js b/tez-ui2/src/main/webapp/app/controllers/app/index.js
index 9745328..cf199f8 100644
--- a/tez-ui2/src/main/webapp/app/controllers/app/index.js
+++ b/tez-ui2/src/main/webapp/app/controllers/app/index.js
@@ -16,7 +16,19 @@
* limitations under the License.
*/
+import Ember from 'ember';
import PageController from '../page';
export default PageController.extend({
+
+ trackingURL: Ember.computed("model.appID", function () {
+ console.log(this.get("hosts.rm"));
+ return [
+ this.get("hosts.rm"),
+ this.get("env.app.namespaces.web.rm"),
+ "app",
+ this.get("model.appID")
+ ].join("/");
+ })
+
});
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/controllers/vertex/index.js
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/controllers/vertex/index.js b/tez-ui2/src/main/webapp/app/controllers/vertex/index.js
index 9745328..c14d113 100644
--- a/tez-ui2/src/main/webapp/app/controllers/vertex/index.js
+++ b/tez-ui2/src/main/webapp/app/controllers/vertex/index.js
@@ -16,7 +16,35 @@
* limitations under the License.
*/
+import Ember from 'ember';
+
import PageController from '../page';
+function taskLinkComputerFactory(name) {
+ return Ember.computed(name, function () {
+ var tasks = this.get(name);
+
+ if(tasks) {
+ return tasks.map(function (task) {
+ return {
+ routeName: 'task',
+ model: task,
+ text: task
+ };
+ });
+ }
+ });
+}
+
export default PageController.extend({
+
+ pathname: Ember.computed(function() {
+ return window.location.pathname;
+ }).volatile(),
+
+ firstTasksToStart: taskLinkComputerFactory("model.firstTasksToStart"),
+ lastTasksToFinish: taskLinkComputerFactory("model.lastTasksToFinish"),
+ shortestDurationTasks: taskLinkComputerFactory("model.shortestDurationTasks"),
+ longestDurationTasks: taskLinkComputerFactory("model.longestDurationTasks"),
+
});
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/models/timeline.js
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/models/timeline.js b/tez-ui2/src/main/webapp/app/models/timeline.js
index 60157d3..ca82193 100644
--- a/tez-ui2/src/main/webapp/app/models/timeline.js
+++ b/tez-ui2/src/main/webapp/app/models/timeline.js
@@ -82,5 +82,8 @@ export default AbstractModel.extend({
});
return counterHash;
- })
+ }),
+
+ diagnostics: DS.attr('string'),
+
});
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/models/vertex.js
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/models/vertex.js b/tez-ui2/src/main/webapp/app/models/vertex.js
index d8f1b43..1f4365b 100644
--- a/tez-ui2/src/main/webapp/app/models/vertex.js
+++ b/tez-ui2/src/main/webapp/app/models/vertex.js
@@ -106,6 +106,11 @@ export default AMTimelineModel.extend({
maxDuration: DS.attr('number'),
avgDuration: DS.attr('number'),
+ firstTasksToStart: DS.attr("object"),
+ lastTasksToFinish: DS.attr("object"),
+ shortestDurationTasks: DS.attr("object"),
+ longestDurationTasks: DS.attr("object"),
+
processorClassName: DS.attr('string'),
dagID: DS.attr('string'),
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/serializers/timeline.js
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/serializers/timeline.js b/tez-ui2/src/main/webapp/app/serializers/timeline.js
index 2f6a0d5..c258c64 100644
--- a/tez-ui2/src/main/webapp/app/serializers/timeline.js
+++ b/tez-ui2/src/main/webapp/app/serializers/timeline.js
@@ -16,8 +16,20 @@
* limitations under the License.
*/
+import Ember from 'ember';
+
import LoaderSerializer from './loader';
+function getDiagnostics(source) {
+ var diagnostics = Ember.get(source, 'otherinfo.diagnostics') || "";
+
+ diagnostics = diagnostics.replace(/\t/g, "  ");
+ diagnostics = diagnostics.replace(/\[/g, "<div>» ");
+ diagnostics = diagnostics.replace(/\]/g, "</div>");
+
+ return diagnostics;
+}
+
export default LoaderSerializer.extend({
primaryKey: 'entity',
@@ -33,6 +45,8 @@ export default LoaderSerializer.extend({
startTime: 'otherinfo.startTime',
endTime: 'otherinfo.endTime',
+ diagnostics: getDiagnostics,
+
_counterGroups: 'otherinfo.counters.counterGroups'
}
});
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/serializers/vertex.js
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/serializers/vertex.js b/tez-ui2/src/main/webapp/app/serializers/vertex.js
index 1f99f3a..bf074f1 100644
--- a/tez-ui2/src/main/webapp/app/serializers/vertex.js
+++ b/tez-ui2/src/main/webapp/app/serializers/vertex.js
@@ -44,6 +44,11 @@ export default TimelineSerializer.extend({
maxDuration: 'otherinfo.stats.maxTaskDuration',
avgDuration: 'otherinfo.stats.avgTaskDuration',
+ firstTasksToStart: 'otherinfo.stats.firstTasksToStart',
+ lastTasksToFinish: 'otherinfo.stats.lastTasksToFinish',
+ shortestDurationTasks: 'otherinfo.stats.shortestDurationTasks',
+ longestDurationTasks: 'otherinfo.stats.longestDurationTasks',
+
processorClassName: getProcessorClass,
dagID: 'primaryfilters.TEZ_DAG_ID.0',
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/styles/details-page.less
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/styles/details-page.less b/tez-ui2/src/main/webapp/app/styles/details-page.less
index 4f65018..b3b1a16 100644
--- a/tez-ui2/src/main/webapp/app/styles/details-page.less
+++ b/tez-ui2/src/main/webapp/app/styles/details-page.less
@@ -16,13 +16,14 @@
* limitations under the License.
*/
+@import "bower_components/snippet-ss/less/no";
+
.detail-list {
display: inline-block;
margin: 0 10px 10px 0;
table-layout: fixed;
- white-space: nowrap;
.progress {
margin-bottom: 0px;
@@ -40,6 +41,11 @@
td {
padding: 0px 20px 0px 0px;
+ white-space: nowrap;
+
+ .ember-view {
+ display: inline;
+ }
}
td:first-child {
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/styles/shared.less
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/styles/shared.less b/tez-ui2/src/main/webapp/app/styles/shared.less
index 0dc70f7..a96636f 100644
--- a/tez-ui2/src/main/webapp/app/styles/shared.less
+++ b/tez-ui2/src/main/webapp/app/styles/shared.less
@@ -38,3 +38,16 @@ b {
bottom: .2em;
}
}
+
+.diagnostics {
+ padding: 10px;
+ white-space: pre-line;
+
+ div {
+ padding-left: 20px;
+ }
+}
+
+.CodeMirror {
+ height: auto;
+}
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/templates/app/index.hbs
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/templates/app/index.hbs b/tez-ui2/src/main/webapp/app/templates/app/index.hbs
index 3567f32..feaee3a 100644
--- a/tez-ui2/src/main/webapp/app/templates/app/index.hbs
+++ b/tez-ui2/src/main/webapp/app/templates/app/index.hbs
@@ -55,8 +55,8 @@
</thead>
<tbody>
<tr>
- <td>Application ID</td>
- <td>{{model.app.entityID}}</td>
+ <td>Application Tracking URL</td>
+ <td><a href={{trackingURL}} target="_blank">{{model.app.entityID}}</a></td>
</tr>
<tr>
<td>Application Name</td>
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/templates/attempt/index.hbs
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/templates/attempt/index.hbs b/tez-ui2/src/main/webapp/app/templates/attempt/index.hbs
index 1d77e25..a8be79f 100644
--- a/tez-ui2/src/main/webapp/app/templates/attempt/index.hbs
+++ b/tez-ui2/src/main/webapp/app/templates/attempt/index.hbs
@@ -62,6 +62,18 @@
</tr>
</tbody>
</table>
+
+ {{#if model.diagnostics}}
+ <div class="panel panel-danger">
+ <div class="panel-heading">
+ Diagnostics
+ </div>
+ <div class="diagnostics">
+ {{{model.diagnostics}}}
+ </div>
+ </div>
+ {{/if}}
+
{{else}}
{{partial "loading"}}
{{/if}}
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/templates/dag/index.hbs
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/templates/dag/index.hbs b/tez-ui2/src/main/webapp/app/templates/dag/index.hbs
index 7ea00c5..0003a64 100644
--- a/tez-ui2/src/main/webapp/app/templates/dag/index.hbs
+++ b/tez-ui2/src/main/webapp/app/templates/dag/index.hbs
@@ -78,6 +78,17 @@
{{caller-info type=model.callerType info=model.callerInfo}}
{{/if}}
+ {{#if model.diagnostics}}
+ <div class="panel panel-danger">
+ <div class="panel-heading">
+ Diagnostics
+ </div>
+ <div class="diagnostics">
+ {{{model.diagnostics}}}
+ </div>
+ </div>
+ {{/if}}
+
{{outlet}}
{{else}}
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/templates/task/index.hbs
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/templates/task/index.hbs b/tez-ui2/src/main/webapp/app/templates/task/index.hbs
index b9d98c8..c4b0a5a 100644
--- a/tez-ui2/src/main/webapp/app/templates/task/index.hbs
+++ b/tez-ui2/src/main/webapp/app/templates/task/index.hbs
@@ -54,6 +54,18 @@
</tr>
</tbody>
</table>
+
+ {{#if model.diagnostics}}
+ <div class="panel panel-danger">
+ <div class="panel-heading">
+ Diagnostics
+ </div>
+ <div class="diagnostics">
+ {{{model.diagnostics}}}
+ </div>
+ </div>
+ {{/if}}
+
{{else}}
{{partial "loading"}}
{{/if}}
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/app/templates/vertex/index.hbs
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/app/templates/vertex/index.hbs b/tez-ui2/src/main/webapp/app/templates/vertex/index.hbs
index eb3a477..cac5c92 100644
--- a/tez-ui2/src/main/webapp/app/templates/vertex/index.hbs
+++ b/tez-ui2/src/main/webapp/app/templates/vertex/index.hbs
@@ -72,12 +72,18 @@
<td>First Task Start Time</td>
<td>
{{txt model.firstTaskStartTime type="date"}}
+ {{#if firstTasksToStart}}
+ [{{em-table-linked-cell content=firstTasksToStart}}]
+ {{/if}}
</td>
</tr>
<tr>
<td>Last Task Finish Time</td>
<td>
{{txt model.lastTaskFinishTime type="date"}}
+ {{#if lastTasksToFinish}}
+ [{{em-table-linked-cell content=lastTasksToFinish}}]
+ {{/if}}
</td>
</tr>
</tbody>
@@ -94,19 +100,40 @@
<tbody>
<tr>
<td>Total Tasks</td>
- <td>{{txt model.totalTasks type="number"}}</td>
+ <td>
+ <a href="{{pathname}}/tasks">{{txt model.totalTasks type="number"}} Tasks</a>
+ </td>
</tr>
<tr>
<td>Successful Tasks</td>
- <td>{{txt model.successfulTasks type="number"}}</td>
+ {{#if model.successfulTasks}}
+ <td>
+ <a href="{{pathname}}/tasks?searchText=SUCCEEDED">{{txt model.successfulTasks type="number"}} Succeeded</a>
+ </td>
+ {{else}}
+ <td>{{txt model.successfulTasks type="number"}}</td>
+ {{/if}}
</tr>
<tr>
<td>Failed Tasks</td>
- <td>{{txt model.failedTasks type="number"}}</td>
+ {{#if model.failedTasks}}
+ <td>
+ <a href="{{pathname}}/tasks?searchText=FAILED">{{txt model.failedTasks type="number"}} Failed</a>
+ </td>
+ {{else}}
+ <td>{{txt model.failedTasks type="number"}}</td>
+ {{/if}}
</tr>
<tr>
<td>Killed Tasks</td>
- <td>{{txt model.killedTasks type="number"}}</td>
+ {{#if model.killedTasks}}
+ <td>
+ <a href="{{pathname}}/tasks?searchText=KILLED">{{txt model.killedTasks type="number"}} Killed</a>
+ </td>
+ {{else}}
+ <td>{{txt model.killedTasks type="number"}}</td>
+ {{/if}}
+
</tr>
<tr>
<td>Average Duration</td>
@@ -118,16 +145,34 @@
<td>Minimum Duration</td>
<td>
{{txt model.minDuration type="duration"}}
+ {{#if shortestDurationTasks}}
+ [{{em-table-linked-cell content=shortestDurationTasks}}]
+ {{/if}}
</td>
</tr>
<tr>
<td>Maximum Duration</td>
<td>
{{txt model.maxDuration type="duration"}}
+ {{#if longestDurationTasks}}
+ [{{em-table-linked-cell content=longestDurationTasks}}]
+ {{/if}}
</td>
</tr>
</tbody>
</table>
+
+ {{#if model.diagnostics}}
+ <div class="panel panel-danger">
+ <div class="panel-heading">
+ Diagnostics
+ </div>
+ <div class="diagnostics">
+ {{{model.diagnostics}}}
+ </div>
+ </div>
+ {{/if}}
+
{{else}}
{{partial "loading"}}
{{/if}}
http://git-wip-us.apache.org/repos/asf/tez/blob/3fb2a657/tez-ui2/src/main/webapp/tests/unit/controllers/app/index-test.js
----------------------------------------------------------------------
diff --git a/tez-ui2/src/main/webapp/tests/unit/controllers/app/index-test.js b/tez-ui2/src/main/webapp/tests/unit/controllers/app/index-test.js
index 9bd6604..676b1d4 100644
--- a/tez-ui2/src/main/webapp/tests/unit/controllers/app/index-test.js
+++ b/tez-ui2/src/main/webapp/tests/unit/controllers/app/index-test.js
@@ -32,4 +32,5 @@ test('Basic creation test', function(assert) {
});
assert.ok(controller);
+ assert.ok(controller.trackingURL);
});