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'),
 
   /**

Reply via email to