Repository: ambari Updated Branches: refs/heads/trunk 655e8018a -> 892c6ad36
AMBARI-5054. Negative duration for completed apps on ATS. (Mikhail Bayuk via onechiporenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/892c6ad3 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/892c6ad3 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/892c6ad3 Branch: refs/heads/trunk Commit: 892c6ad363ac5282af456105baad55c7ae2219c6 Parents: 655e801 Author: Oleg Nechiporenko <[email protected]> Authored: Wed Mar 12 20:06:15 2014 +0200 Committer: Oleg Nechiporenko <[email protected]> Committed: Wed Mar 12 20:06:15 2014 +0200 ---------------------------------------------------------------------- ambari-web/app/controllers/global/cluster_controller.js | 4 +++- ambari-web/app/models/jobs/job.js | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/892c6ad3/ambari-web/app/controllers/global/cluster_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/global/cluster_controller.js b/ambari-web/app/controllers/global/cluster_controller.js index 0437d51..e2b678e 100644 --- a/ambari-web/app/controllers/global/cluster_controller.js +++ b/ambari-web/app/controllers/global/cluster_controller.js @@ -116,7 +116,8 @@ App.ClusterController = Em.Controller.extend({ var clientClock = new Date().getTime(); var serverClock = (data.RootServiceComponents.server_clock).toString(); serverClock = serverClock.length < 13? serverClock+ '000': serverClock; - App.set('clockDistance', serverClock - clientClock ); + App.set('clockDistance', serverClock - clientClock); + App.set('currentServerTime', parseInt(serverClock)); console.log('loading ambari server clock distance'); }, getServerClockErrorCallback: function () { @@ -232,6 +233,7 @@ App.ClusterController = Em.Controller.extend({ callback(); return false; } + App.set('currentServerTime', App.get('currentServerTime') + App.componentsUpdateInterval); var testUrl = App.get('isHadoop2Stack') ? '/data/hosts/HDP2/hc_host_status.json' : '/data/dashboard/services.json'; var statusUrl = '/hosts?fields=Hosts/host_status,Hosts/maintenance_state,host_components/HostRoles/state,host_components/HostRoles/maintenance_state,alerts/summary&minimal_response=true'; if (isInitialLoad) { http://git-wip-us.apache.org/repos/asf/ambari/blob/892c6ad3/ambari-web/app/models/jobs/job.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/jobs/job.js b/ambari-web/app/models/jobs/job.js index c812859..04bdea2 100644 --- a/ambari-web/app/models/jobs/job.js +++ b/ambari-web/app/models/jobs/job.js @@ -55,12 +55,16 @@ App.AbstractJob = DS.Model.extend({ * @return {Number} Duration in milliseconds. */ duration : function() { - return dateUtils.duration(this.get('startTime'), this.get('endTime')) + var startTime = this.get('startTime'); + var endTime = this.get('endTime'); + if(endTime < startTime) { + endTime = App.get('currentServerTime'); + } + return dateUtils.duration(startTime, endTime); }.property('startTime', 'endTime'), durationDisplay : function() { - var duration = this.get('duration'); - return dateUtils.timingFormat(duration, true); + return dateUtils.timingFormat(this.get('duration'), true); }.property('duration'), /**
