@@ -5640,12 +5640,6 @@ var b = 0;
5640
5640
return a && a.forEach(function(a) {
5641
5641
a.state && a.state.running && b++;
5642
5642
}), b;
5643
- }, a.showDebugAction = function(c) {
5644
- if ("Completed" === _.get(a, "pod.status.phase")) return !1;
5645
- if (z(a.pod, "openshift.io/build.name")) return !1;
5646
- if (b("isDebugPod")(a.pod)) return !1;
5647
- var d = _.get(c, "state.waiting.reason");
5648
- return "ImagePullBackOff" !== d && "ErrImagePull" !== d && (!_.get(c, "state.running") || !c.ready);
5649
5643
}, a.$on("$destroy", function() {
5650
5644
g.unwatchAll(n), m(), $(window).off("resize.terminalsize");
5651
5645
});
@@ -11069,7 +11063,36 @@ a.model.editing = !1;
11069
11063
};
11070
11064
}
11071
11065
};
11072
- }), angular.module("openshiftConsole").directive("podTemplate", function() {
11066
+ }), angular.module("openshiftConsole").directive("containerStatuses", [ "$filter", function(a) {
11067
+ return {
11068
+ restrict:"E",
11069
+ scope:{
11070
+ pod:"=",
11071
+ onDebugTerminal:"=?",
11072
+ detailed:"=?"
11073
+ },
11074
+ templateUrl:"views/_container-statuses.html",
11075
+ link:function(b) {
11076
+ b.hasDebugTerminal = angular.isFunction(b.onDebugTerminal);
11077
+ var c = a("isContainerTerminatedSuccessfully"), d = function(a) {
11078
+ return _.every(a, c);
11079
+ };
11080
+ b.$watch("pod", function(a) {
11081
+ b.initContainersTerminated = d(a.status.initContainerStatuses), b.expandInitContainers !== !1 && (b.expandInitContainers = !b.initContainersTerminated);
11082
+ }), b.toggleInitContainer = function() {
11083
+ b.expandInitContainers = !b.expandInitContainers;
11084
+ }, b.showDebugAction = function(c) {
11085
+ if ("Completed" === _.get(b.pod, "status.phase")) return !1;
11086
+ if (a("annotation")(b.pod, "openshift.io/build.name")) return !1;
11087
+ if (a("isDebugPod")(b.pod)) return !1;
11088
+ var d = _.get(c, "state.waiting.reason");
11089
+ return "ImagePullBackOff" !== d && "ErrImagePull" !== d && (!_.get(c, "state.running") || !c.ready);
11090
+ }, b.debugTerminal = function(a) {
11091
+ if (b.hasDebugTerminal) return b.onDebugTerminal.call(this, a);
11092
+ };
11093
+ }
11094
+ };
11095
+ } ]).directive("podTemplate", function() {
11073
11096
return {
11074
11097
restrict:"E",
11075
11098
scope:{
@@ -11081,6 +11104,18 @@ addHealthCheckUrl:"@?"
11081
11104
},
11082
11105
templateUrl:"views/_pod-template.html"
11083
11106
};
11107
+ }).directive("podTemplateContainer", function() {
11108
+ return {
11109
+ restrict:"E",
11110
+ scope:{
11111
+ container:"=podTemplateContainer",
11112
+ imagesByDockerReference:"=",
11113
+ builds:"=",
11114
+ detailed:"=?",
11115
+ labelPrefix:"@?"
11116
+ },
11117
+ templateUrl:"views/_pod-template-container.html"
11118
+ };
11084
11119
}).directive("annotations", function() {
11085
11120
return {
11086
11121
restrict:"E",
@@ -14903,6 +14938,10 @@ return a.state.waiting && "CrashLoopBackOff" === a.state.waiting.reason;
14903
14938
return function(a) {
14904
14939
return a.state.terminated && 0 !== a.state.terminated.exitCode;
14905
14940
};
14941
+ }).filter("isContainerTerminatedSuccessfully", function() {
14942
+ return function(a) {
14943
+ return a.state.terminated && 0 === a.state.terminated.exitCode;
14944
+ };
14906
14945
}).filter("isContainerUnprepared", function() {
14907
14946
return function(a) {
14908
14947
if (!a.state.running || a.ready !== !1 || !a.state.running.startedAt) return !1;
@@ -16161,6 +16200,64 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
16161
16200
);
16162
16201
16163
16202
16203
+ $templateCache.put('views/_container-statuses.html',
16204
+ " <div ng-if=\"detailed && pod.status.initContainerStatuses.length\">\n" +
16205
+ "<h4 class=\"mar-bottom-xl\" row ng-if=\"initContainersTerminated\">\n" +
16206
+ "<span><i class=\"fa fa-check text-success\"></i></span>\n" +
16207
+ "<span flex>\n" +
16208
+ "<ng-pluralize count=\"pod.status.initContainerStatuses.length\" when=\"{'1': ' Init container {{pod.status.initContainerStatuses[0].name}}','other': ' {} init containers'}\">\n" +
16209
+ "</ng-pluralize>\n" +
16210
+ "completed successfully\n" +
16211
+ "</span>\n" +
16212
+ "<span ng-if=\"initContainersTerminated\">\n" +
16213
+ "<a class=\"page-header-link\" href=\"\" ng-click=\"toggleInitContainer()\">\n" +
16214
+ "<span ng-if=\"!expandInitContainers\">Show</span>\n" +
16215
+ "<span ng-if=\"expandInitContainers\">Hide</span>\n" +
16216
+ "Details\n" +
16217
+ "</a>\n" +
16218
+ "</span>\n" +
16219
+ "</h4>\n" +
16220
+ "<div class=\"animate-if\" ng-if=\"expandInitContainers\" ng-repeat=\"containerStatus in pod.status.initContainerStatuses track by containerStatus.name\">\n" +
16221
+ "<h4 class=\"component-label\">Init container {{containerStatus.name}}</h4>\n" +
16222
+ "<dl class=\"dl-horizontal left\">\n" +
16223
+ "<dt>State:</dt>\n" +
16224
+ "<dd>\n" +
16225
+ "<kubernetes-object-describe-container-state container-state=\"containerStatus.state\"></kubernetes-object-describe-container-state>\n" +
16226
+ "</dd>\n" +
16227
+ "<dt ng-if=\"!(containerStatus.lastState | isEmptyObj)\">Last State</dt>\n" +
16228
+ "<dd ng-if=\"!(containerStatus.lastState | isEmptyObj)\">\n" +
16229
+ "<kubernetes-object-describe-container-state container-state=\"containerStatus.lastState\"></kubernetes-object-describe-container-state>\n" +
16230
+ "</dd>\n" +
16231
+ "<dt>Ready:</dt>\n" +
16232
+ "<dd>{{containerStatus.ready}}</dd>\n" +
16233
+ "<dt>Restart Count:</dt>\n" +
16234
+ "<dd>{{containerStatus.restartCount}}</dd>\n" +
16235
+ "</dl>\n" +
16236
+ "</div>\n" +
16237
+ "</div>\n" +
16238
+ "<div ng-repeat=\"containerStatus in pod.status.containerStatuses track by containerStatus.name\">\n" +
16239
+ "<h4>Container {{containerStatus.name}}</h4>\n" +
16240
+ "<dl class=\"dl-horizontal left\">\n" +
16241
+ "<dt>State:</dt>\n" +
16242
+ "<dd>\n" +
16243
+ "<kubernetes-object-describe-container-state container-state=\"containerStatus.state\"></kubernetes-object-describe-container-state>\n" +
16244
+ "</dd>\n" +
16245
+ "<dt ng-if=\"!(containerStatus.lastState | isEmptyObj)\">Last State</dt>\n" +
16246
+ "<dd ng-if=\"!(containerStatus.lastState | isEmptyObj)\">\n" +
16247
+ "<kubernetes-object-describe-container-state container-state=\"containerStatus.lastState\"></kubernetes-object-describe-container-state>\n" +
16248
+ "</dd>\n" +
16249
+ "<dt>Ready:</dt>\n" +
16250
+ "<dd>{{containerStatus.ready}}</dd>\n" +
16251
+ "<dt>Restart Count:</dt>\n" +
16252
+ "<dd>{{containerStatus.restartCount}}</dd>\n" +
16253
+ "<div ng-if=\"hasDebugTerminal && showDebugAction(containerStatus) && ('pods' | canI : 'create')\" class=\"debug-pod-action\">\n" +
16254
+ "<a href=\"\" ng-click=\"debugTerminal(containerStatus.name)\" role=\"button\">Debug in Terminal</a>\n" +
16255
+ "</div>\n" +
16256
+ "</dl>\n" +
16257
+ "</div>"
16258
+ );
16259
+
16260
+
16164
16261
$templateCache.put('views/_edit-request-limit.html',
16165
16262
"<ng-form name=\"form\" ng-if=\"!requestCalculated || !limitCalculated\">\n" +
16166
16263
"<h3>\n" +
@@ -16210,18 +16307,9 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
16210
16307
);
16211
16308
16212
16309
16213
- $templateCache.put('views/_pod-template.html',
16214
- " <div ng-if=\"detailed && addHealthCheckUrl && !(podTemplate | hasHealthChecks)\" class=\"alert alert-info\">\n" +
16215
- "<span class=\"pficon pficon-info\" aria-hidden=\"true\"></span>\n" +
16216
- "<span ng-if=\"podTemplate.spec.containers.length === 1\">This container has no health checks</span>\n" +
16217
- "<span ng-if=\"podTemplate.spec.containers.length > 1\">Not all containers have health checks</span>\n" +
16218
- "to ensure your application is running correctly.\n" +
16219
- "<a ng-href=\"{{addHealthCheckUrl}}\" class=\"nowrap\">Add Health Checks</a>\n" +
16220
- "</div>\n" +
16221
- "<div class=\"pod-template-container\">\n" +
16222
- "<div class=\"pod-template-block\" ng-repeat=\"container in podTemplate.spec.containers\">\n" +
16223
- "<div class=\"pod-template\">\n" +
16224
- "<div class=\"component-label\">Container: {{container.name}}</div>\n" +
16310
+ $templateCache.put('views/_pod-template-container.html',
16311
+ " <div class=\"pod-template\">\n" +
16312
+ "<div class=\"component-label\"><span ng-bind-template=\"{{labelPrefix||'Container'}}:\"></span> {{container.name}}</div>\n" +
16225
16313
"<div row ng-if=\"container.image\" class=\"pod-template-image icon-row\">\n" +
16226
16314
"<div class=\"icon-wrap\">\n" +
16227
16315
"<span class=\"pficon pficon-image\" aria-hidden=\"true\"></span>\n" +
@@ -16376,6 +16464,31 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
16376
16464
"<probe probe=\"container.livenessProbe\"></probe>\n" +
16377
16465
"</div>\n" +
16378
16466
"</div>\n" +
16467
+ "</div>"
16468
+ );
16469
+
16470
+
16471
+ $templateCache.put('views/_pod-template.html',
16472
+ " <div ng-if=\"detailed && addHealthCheckUrl && !(podTemplate | hasHealthChecks)\" class=\"alert alert-info\">\n" +
16473
+ "<span class=\"pficon pficon-info\" aria-hidden=\"true\"></span>\n" +
16474
+ "<span ng-if=\"podTemplate.spec.containers.length === 1\">Container {{podTemplate.spec.containers[0].name}} does not have health checks</span>\n" +
16475
+ "<span ng-if=\"podTemplate.spec.containers.length > 1\">Not all containers have health checks</span>\n" +
16476
+ "to ensure your application is running correctly.\n" +
16477
+ "<a ng-href=\"{{addHealthCheckUrl}}\" class=\"nowrap\">Add Health Checks</a>\n" +
16478
+ "</div>\n" +
16479
+ "<div ng-if=\"detailed && podTemplate.spec.initContainers.length\">\n" +
16480
+ "<h4>Init Containers</h4>\n" +
16481
+ "<div class=\"pod-template-container\">\n" +
16482
+ "<div class=\"pod-template-block\" ng-repeat=\"container in podTemplate.spec.initContainers\">\n" +
16483
+ "<pod-template-container pod-template-container=\"container\" images-by-docker-reference=\"imagesByDockerReference\" builds=\"builds\" detailed=\"detailed\" label-prefix=\"Init Container\"></pod-template-container>\n" +
16484
+ "</div>\n" +
16485
+ "</div>\n" +
16486
+ "</div>\n" +
16487
+ "<div>\n" +
16488
+ "<h4 ng-if=\"detailed\">Containers</h4>\n" +
16489
+ "<div class=\"pod-template-container\">\n" +
16490
+ "<div class=\"pod-template-block\" ng-repeat=\"container in podTemplate.spec.containers\">\n" +
16491
+ "<pod-template-container pod-template-container=\"container\" images-by-docker-reference=\"imagesByDockerReference\" builds=\"builds\" detailed=\"detailed\"></pod-template-container>\n" +
16379
16492
"<div extension-point extension-name=\"container-links\" extension-types=\"link dom\" extension-args=\"[container, podTemplate]\"></div>\n" +
16380
16493
"</div>\n" +
16381
16494
"</div>\n" +
@@ -17285,25 +17398,8 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
17285
17398
"</span>\n" +
17286
17399
"</dd>\n" +
17287
17400
"</dl>\n" +
17288
- "<div ng-repeat=\"containerStatus in pod.status.containerStatuses | orderBy:'name'\">\n" +
17289
- "<h4>Container {{containerStatus.name}}</h4>\n" +
17290
- "<dl class=\"dl-horizontal left\">\n" +
17291
- "<dt>State:</dt>\n" +
17292
- "<dd>\n" +
17293
- "<kubernetes-object-describe-container-state container-state=\"containerStatus.state\"></kubernetes-object-describe-container-state>\n" +
17294
- "</dd>\n" +
17295
- "<dt ng-if=\"!(containerStatus.lastState | isEmptyObj)\">Last State</dt>\n" +
17296
- "<dd ng-if=\"!(containerStatus.lastState | isEmptyObj)\">\n" +
17297
- "<kubernetes-object-describe-container-state container-state=\"containerStatus.lastState\"></kubernetes-object-describe-container-state>\n" +
17298
- "</dd>\n" +
17299
- "<dt>Ready:</dt>\n" +
17300
- "<dd>{{containerStatus.ready}}</dd>\n" +
17301
- "<dt>Restart Count:</dt>\n" +
17302
- "<dd>{{containerStatus.restartCount}}</dd>\n" +
17303
- "<div ng-if=\"showDebugAction(containerStatus) && ('pods' | canI : 'create')\" class=\"debug-pod-action\">\n" +
17304
- "<a href=\"\" ng-click=\"debugTerminal(containerStatus.name)\" role=\"button\">Debug in Terminal</a>\n" +
17305
- "</div>\n" +
17306
- "</dl>\n" +
17401
+ "<div>\n" +
17402
+ "<container-statuses pod=\"pod\" on-debug-terminal=\"debugTerminal\" detailed=\"true\"></container-statuses>\n" +
17307
17403
"</div>\n" +
17308
17404
"</div>\n" +
17309
17405
"<div class=\"col-lg-6\">\n" +
0 commit comments