From 3b6d5ea0293fdaf1f467bebaa6709e57b3210351 Mon Sep 17 00:00:00 2001 From: Jessica Forrester Date: Mon, 21 Nov 2016 14:06:04 -0500 Subject: [PATCH] Show duration for completed pods Fixes https://github.com/openshift/origin/issues/2838 --- app/scripts/filters/resources.js | 30 ++++++++++++++++++++++++++++++ app/views/browse/_pod-details.html | 2 +- dist/scripts/scripts.js | 16 ++++++++++++++++ dist/scripts/templates.js | 2 +- 4 files changed, 48 insertions(+), 2 deletions(-) diff --git a/app/scripts/filters/resources.js b/app/scripts/filters/resources.js index cbcb34d563..680c06e140 100644 --- a/app/scripts/filters/resources.js +++ b/app/scripts/filters/resources.js @@ -1168,6 +1168,36 @@ angular.module('openshiftConsole') return reason; }; }) + .filter('podStartTime', function() { + return function(pod) { + var earliestStartTime = null; + _.each(_.get(pod, 'status.containerStatuses'), function(containerStatus){ + var status = _.get(containerStatus, 'state.running') || _.get(containerStatus, 'state.terminated'); + if (!status) { + return; + } + if (!earliestStartTime || moment(status.startedAt).isBefore(earliestStartTime)) { + earliestStartTime = status.startedAt; + } + }); + return earliestStartTime; + }; + }) + .filter('podCompletionTime', function() { + return function(pod) { + var lastFinishTime = null; + _.each(_.get(pod, 'status.containerStatuses'), function(containerStatus){ + var status = _.get(containerStatus, 'state.terminated'); + if (!status) { + return; + } + if (!lastFinishTime || moment(status.finishedAt).isAfter(lastFinishTime)) { + lastFinishTime = status.finishedAt; + } + }); + return lastFinishTime; + }; + }) .filter('routeIngressCondition', function() { return function(ingress, type) { if (!ingress) { diff --git a/app/views/browse/_pod-details.html b/app/views/browse/_pod-details.html index a144b1f5a8..5a68e52ac4 100644 --- a/app/views/browse/_pod-details.html +++ b/app/views/browse/_pod-details.html @@ -12,7 +12,7 @@

Status:
- {{pod | podStatus | sentenceCase}} + {{pod | podStatus | sentenceCase}}, ran for {{(pod | podStartTime) | duration : (pod | podCompletionTime)}} (expires {{pod.metadata.deletionTimestamp | date : 'medium'}})
Grace Period:
diff --git a/dist/scripts/scripts.js b/dist/scripts/scripts.js index 67791e592d..78a89b33fd 100644 --- a/dist/scripts/scripts.js +++ b/dist/scripts/scripts.js @@ -13225,6 +13225,22 @@ var c, d, e = _.get(a, "state.waiting.reason") || _.get(a, "state.terminated.rea return e ? void (b = e) :(c = _.get(a, "state.terminated.signal")) ? void (b = "Signal: " + c) :(d = _.get(a, "state.terminated.exitCode"), void (d && (b = "Exit Code: " + d))); }), b; }; +}).filter("podStartTime", function() { +return function(a) { +var b = null; +return _.each(_.get(a, "status.containerStatuses"), function(a) { +var c = _.get(a, "state.running") || _.get(a, "state.terminated"); +c && (b && !moment(c.startedAt).isBefore(b) || (b = c.startedAt)); +}), b; +}; +}).filter("podCompletionTime", function() { +return function(a) { +var b = null; +return _.each(_.get(a, "status.containerStatuses"), function(a) { +var c = _.get(a, "state.terminated"); +c && (b && !moment(c.finishedAt).isAfter(b) || (b = c.finishedAt)); +}), b; +}; }).filter("routeIngressCondition", function() { return function(a, b) { return a ? _.find(a.conditions, { diff --git a/dist/scripts/templates.js b/dist/scripts/templates.js index 01e0f2f3f6..3cacec0f42 100644 --- a/dist/scripts/templates.js +++ b/dist/scripts/templates.js @@ -1182,7 +1182,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
Status:
\n" + "
\n" + "\n" + - "{{pod | podStatus | sentenceCase}}\n" + + "{{pod | podStatus | sentenceCase}}, ran for {{(pod | podStartTime) | duration : (pod | podCompletionTime)}}\n" + "(expires {{pod.metadata.deletionTimestamp | date : 'medium'}})\n" + "
\n" + "
Grace Period:
\n" +