Skip to content

Commit 3b6d5ea

Browse files
committed
Show duration for completed pods
Fixes openshift/origin#2838
1 parent 589a660 commit 3b6d5ea

File tree

4 files changed

+48
-2
lines changed

4 files changed

+48
-2
lines changed

app/scripts/filters/resources.js

+30
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,36 @@ angular.module('openshiftConsole')
11681168
return reason;
11691169
};
11701170
})
1171+
.filter('podStartTime', function() {
1172+
return function(pod) {
1173+
var earliestStartTime = null;
1174+
_.each(_.get(pod, 'status.containerStatuses'), function(containerStatus){
1175+
var status = _.get(containerStatus, 'state.running') || _.get(containerStatus, 'state.terminated');
1176+
if (!status) {
1177+
return;
1178+
}
1179+
if (!earliestStartTime || moment(status.startedAt).isBefore(earliestStartTime)) {
1180+
earliestStartTime = status.startedAt;
1181+
}
1182+
});
1183+
return earliestStartTime;
1184+
};
1185+
})
1186+
.filter('podCompletionTime', function() {
1187+
return function(pod) {
1188+
var lastFinishTime = null;
1189+
_.each(_.get(pod, 'status.containerStatuses'), function(containerStatus){
1190+
var status = _.get(containerStatus, 'state.terminated');
1191+
if (!status) {
1192+
return;
1193+
}
1194+
if (!lastFinishTime || moment(status.finishedAt).isAfter(lastFinishTime)) {
1195+
lastFinishTime = status.finishedAt;
1196+
}
1197+
});
1198+
return lastFinishTime;
1199+
};
1200+
})
11711201
.filter('routeIngressCondition', function() {
11721202
return function(ingress, type) {
11731203
if (!ingress) {

app/views/browse/_pod-details.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ <h3>
1212
<dt>Status:</dt>
1313
<dd>
1414
<status-icon status="pod | podStatus"></status-icon>
15-
{{pod | podStatus | sentenceCase}}
15+
{{pod | podStatus | sentenceCase}}<span ng-if="pod | podCompletionTime">, ran for {{(pod | podStartTime) | duration : (pod | podCompletionTime)}}</span>
1616
<span ng-if="pod.metadata.deletionTimestamp">(expires {{pod.metadata.deletionTimestamp | date : 'medium'}})</span>
1717
</dd>
1818
<dt ng-if-start="pod.metadata.deletionTimestamp && pod.spec.terminationGracePeriodSeconds">Grace Period:</dt>

dist/scripts/scripts.js

+16
Original file line numberDiff line numberDiff line change
@@ -13225,6 +13225,22 @@ var c, d, e = _.get(a, "state.waiting.reason") || _.get(a, "state.terminated.rea
1322513225
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)));
1322613226
}), b;
1322713227
};
13228+
}).filter("podStartTime", function() {
13229+
return function(a) {
13230+
var b = null;
13231+
return _.each(_.get(a, "status.containerStatuses"), function(a) {
13232+
var c = _.get(a, "state.running") || _.get(a, "state.terminated");
13233+
c && (b && !moment(c.startedAt).isBefore(b) || (b = c.startedAt));
13234+
}), b;
13235+
};
13236+
}).filter("podCompletionTime", function() {
13237+
return function(a) {
13238+
var b = null;
13239+
return _.each(_.get(a, "status.containerStatuses"), function(a) {
13240+
var c = _.get(a, "state.terminated");
13241+
c && (b && !moment(c.finishedAt).isAfter(b) || (b = c.finishedAt));
13242+
}), b;
13243+
};
1322813244
}).filter("routeIngressCondition", function() {
1322913245
return function(a, b) {
1323013246
return a ? _.find(a.conditions, {

dist/scripts/templates.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1182,7 +1182,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function(
11821182
"<dt>Status:</dt>\n" +
11831183
"<dd>\n" +
11841184
"<status-icon status=\"pod | podStatus\"></status-icon>\n" +
1185-
"{{pod | podStatus | sentenceCase}}\n" +
1185+
"{{pod | podStatus | sentenceCase}}<span ng-if=\"pod | podCompletionTime\">, ran for {{(pod | podStartTime) | duration : (pod | podCompletionTime)}}</span>\n" +
11861186
"<span ng-if=\"pod.metadata.deletionTimestamp\">(expires {{pod.metadata.deletionTimestamp | date : 'medium'}})</span>\n" +
11871187
"</dd>\n" +
11881188
"<dt ng-if-start=\"pod.metadata.deletionTimestamp && pod.spec.terminationGracePeriodSeconds\">Grace Period:</dt>\n" +

0 commit comments

Comments
 (0)