Repository: tez Updated Branches: refs/heads/branch-0.7 42a63fd20 -> 0eb8ea08f
TEZ-2660. Tez UI: need to show application page even if system metrics publish is disabled. (pramachandran) (cherry picked from commit e1fc9cc4f95ef0f019f5d026f25cd2da34e4e97d) Project: http://git-wip-us.apache.org/repos/asf/tez/repo Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/0eb8ea08 Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/0eb8ea08 Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/0eb8ea08 Branch: refs/heads/branch-0.7 Commit: 0eb8ea08f6d403336c26d23f37cc585540c37519 Parents: 42a63fd Author: Prakash Ramachandran <[email protected]> Authored: Sat Sep 12 04:15:50 2015 +0530 Committer: Prakash Ramachandran <[email protected]> Committed: Sat Sep 12 04:17:07 2015 +0530 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../app/scripts/controllers/dag_controller.js | 4 +- .../controllers/tez-app-index-controller.js | 4 + .../app/scripts/models/TimelineRestAdapter.js | 6 +- .../src/main/webapp/app/scripts/models/dag.js | 7 +- tez-ui/src/main/webapp/app/scripts/router.js | 2 + .../main/webapp/app/templates/tez-app/index.hbs | 120 +++++++++++++------ 7 files changed, 102 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tez/blob/0eb8ea08/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index bccbda4..0cd0b88 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -6,6 +6,7 @@ Release 0.7.1: Unreleased INCOMPATIBLE CHANGES ALL CHANGES: + TEZ-2660. Tez UI: need to show application page even if system metrics publish is disabled. TEZ-2787. Tez AM should have java.io.tmpdir=./tmp to be consistent with tasks TEZ-2780. Tez UI: Update All Tasks page while in progress TEZ-2792. addendum fix build failure for java 6 http://git-wip-us.apache.org/repos/asf/tez/blob/0eb8ea08/tez-ui/src/main/webapp/app/scripts/controllers/dag_controller.js ---------------------------------------------------------------------- diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/dag_controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/dag_controller.js index 6260e06..8804813 100644 --- a/tez-ui/src/main/webapp/app/scripts/controllers/dag_controller.js +++ b/tez-ui/src/main/webapp/app/scripts/controllers/dag_controller.js @@ -174,8 +174,8 @@ App.DagController = Em.ObjectController.extend(App.Helpers.DisplayHelper, { }, enableAppIdLink: function() { - return !!(this.get('tezApp') && this.get('appDetail')); - }.property('applicationId', 'appDetail', 'tezApp'), + return !!this.get('tezApp'); + }.property('applicationId', 'tezApp'), childDisplayViews: [ Ember.Object.create({title: 'DAG Details', linkTo: 'dag.index'}), http://git-wip-us.apache.org/repos/asf/tez/blob/0eb8ea08/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js ---------------------------------------------------------------------- diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js index cfc0215..27c83e7 100644 --- a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js +++ b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js @@ -45,6 +45,10 @@ App.TezAppIndexController = Em.ObjectController.extend(App.ModelRefreshMixin, { }); }, + appUser: function() { + return this.get('appDetail.user') || this.get('user'); + }.property('appDetail.user', 'user'), + iconStatus: function() { return App.Helpers.misc.getStatusClassForEntity(this.get('model.appDetail.finalAppStatus')); }.property('id', 'appDetail.finalAppStatus'), http://git-wip-us.apache.org/repos/asf/tez/blob/0eb8ea08/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js ---------------------------------------------------------------------- diff --git a/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js b/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js index 051a984..fce7ab1 100644 --- a/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js +++ b/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js @@ -457,7 +457,11 @@ var timelineJsonToTezAppMap = { user: 'primaryfilters.user.0', dags: 'relatedentities.TEZ_DAG_ID', - configs: 'configs' + configs: 'configs', + + tezBuildTime: 'otherinfo.tezVersion.buildTime', + tezRevision: 'otherinfo.tezVersion.revision', + tezVersion: 'otherinfo.tezVersion.version' }; App.TezAppSerializer = App.TimelineSerializer.extend({ http://git-wip-us.apache.org/repos/asf/tez/blob/0eb8ea08/tez-ui/src/main/webapp/app/scripts/models/dag.js ---------------------------------------------------------------------- diff --git a/tez-ui/src/main/webapp/app/scripts/models/dag.js b/tez-ui/src/main/webapp/app/scripts/models/dag.js index 1cbee7c..c00e591 100644 --- a/tez-ui/src/main/webapp/app/scripts/models/dag.js +++ b/tez-ui/src/main/webapp/app/scripts/models/dag.js @@ -332,9 +332,12 @@ App.TezApp = App.AbstractEntity.extend({ appDetail: DS.belongsTo('appDetail', { async: true }), dags: DS.hasMany('dag', { async: true }), - configs: DS.hasMany('kVData', { async: false }) -}); + configs: DS.hasMany('kVData', { async: false }), + tezBuildTime: DS.attr('string'), + tezRevision: DS.attr('string'), + tezVersion: DS.attr('string'), +}); App.Task = App.AbstractEntity.extend({ status: DS.attr('string'), http://git-wip-us.apache.org/repos/asf/tez/blob/0eb8ea08/tez-ui/src/main/webapp/app/scripts/router.js ---------------------------------------------------------------------- diff --git a/tez-ui/src/main/webapp/app/scripts/router.js b/tez-ui/src/main/webapp/app/scripts/router.js index 77fb6ef..a937387 100644 --- a/tez-ui/src/main/webapp/app/scripts/router.js +++ b/tez-ui/src/main/webapp/app/scripts/router.js @@ -262,6 +262,8 @@ App.TezAppRoute = Em.Route.extend({ return store.find('appDetail', tezApp.get('appId')).then(function (appDetails){ tezApp.set('appDetail', appDetails); return tezApp; + }).catch(function() { + return tezApp; }); }); }, http://git-wip-us.apache.org/repos/asf/tez/blob/0eb8ea08/tez-ui/src/main/webapp/app/templates/tez-app/index.hbs ---------------------------------------------------------------------- diff --git a/tez-ui/src/main/webapp/app/templates/tez-app/index.hbs b/tez-ui/src/main/webapp/app/templates/tez-app/index.hbs index c9d57bd..ab056ed 100644 --- a/tez-ui/src/main/webapp/app/templates/tez-app/index.hbs +++ b/tez-ui/src/main/webapp/app/templates/tez-app/index.hbs @@ -36,6 +36,7 @@ <td>Application Tracking URL</td> <td><a target="_blank" {{bind-attr href=rmTrackingURL}}>{{unbound appId}}</a></td> </tr> + {{#if appDetail}} <tr> <td>Application Name</td> <td> @@ -53,51 +54,96 @@ </td> </tr> <tr> - <td>User</td> - <td>{{appDetail.user}}</td> - </tr> - <tr> <td>Application Type</td> <td>{{appDetail.type}}</td> </tr> - </tbody> - </table> - </div> - <div style="padding-top: 20px;"> - <table class='detail-list'> - <thead> - <tr> - <th colspan=2>Tez Application Details</th> - </tr> - </thead> - <tbody> + {{/if}} <tr> - <td>Application State</td> - <td> - {{appDetail.appState}} - </td> - </tr> - <tr> - <td>Final Application Status</td> - <td> - <i {{bind-attr class=':task-status iconStatus'}}></i> {{appDetail.finalAppStatus}} - </td> - </tr> - <tr> - <td>{{t 'common.time.start'}}</td> - <td>{{formatUnixTimestamp appDetail.startedTime}}</td> - </tr> - <tr> - <td>{{t 'common.time.end'}}</td> - <td>{{formatUnixTimestamp appDetail.finishedTime}}</td> - </tr> - <tr> - <td>{{t 'common.time.duration'}}</td> - <td>{{formatDuration appDetail.startedTime appDetail.finishedTime}}</td> + <td>User</td> + <td>{{appUser}}</td> </tr> </tbody> </table> </div> + + {{#if appDetail}} + <div style="padding-top: 20px;"> + <table class='detail-list'> + <thead> + <tr> + <th colspan=2>Tez Application Details</th> + </tr> + </thead> + <tbody> + <tr> + <td>Application State</td> + <td> + {{appDetail.appState}} + </td> + </tr> + <tr> + <td>Final Application Status</td> + <td> + {{#if appDetail.appState}} + <i {{bind-attr class=':task-status iconStatus'}}></i> {{appDetail.finalAppStatus}} + {{/if}} + </td> + </tr> + <tr> + <td>{{t 'common.time.start'}}</td> + <td>{{formatUnixTimestamp appDetail.startedTime}}</td> + </tr> + <tr> + <td>{{t 'common.time.end'}}</td> + <td>{{formatUnixTimestamp appDetail.finishedTime}}</td> + </tr> + <tr> + <td>{{t 'common.time.duration'}}</td> + <td>{{formatDuration appDetail.startedTime appDetail.finishedTime}}</td> + </tr> + </tbody> + </table> + </div> + {{/if}} + + {{#if tezVersion}} + <div style="padding-top: 20px;"> + <table class='detail-list'> + <thead> + <tr> + <th colspan=2>Tez Version Details</th> + </tr> + </thead> + <tbody> + <tr> + <td>Tez Version</td> + <td> + {{tezVersion}} + </td> + </tr> + <tr> + <td>Build Revision</td> + <td> + {{tezRevision}} + </td> + </tr> + <tr> + <td>Build Time</td> + <td> + {{tezBuildTime}} + </td> + </tr> + </tbody> + </table> + </div> + {{/if}} + + {{#unless appDetail}} + <div class="alert alert-info margin-medium-vertical"> + <strong>Info!</strong> Could not fetch application info from RM (yarn system metrics publishing might be disabled), some details might be missing + </div> + {{/unless}} + </div> {{#if diagnostics}}
