From 8fef8664e2e51f28235a685803ef3a076481b9a0 Mon Sep 17 00:00:00 2001 From: Harkishen Singh Date: Wed, 8 Apr 2020 22:28:05 +0530 Subject: [PATCH 1/4] Adds suport for showing warning icon when pods down than desired Signed-off-by: Harkishen Singh --- .../common/components/resourcelist/statefulset/component.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app/frontend/common/components/resourcelist/statefulset/component.ts b/src/app/frontend/common/components/resourcelist/statefulset/component.ts index 77ed79dd9e56..4b576e86e4e4 100644 --- a/src/app/frontend/common/components/resourcelist/statefulset/component.ts +++ b/src/app/frontend/common/components/resourcelist/statefulset/component.ts @@ -56,6 +56,7 @@ export class StatefulSetListComponent extends ResourceListWithStatuses< this.registerBinding(this.icon.checkCircle, 'kd-success', this.isInSuccessState); this.registerBinding(this.icon.timelapse, 'kd-muted', this.isInPendingState); this.registerBinding(this.icon.error, 'kd-error', this.isInErrorState); + this.registerBinding(this.icon.warning, 'kd-warning', this.hasUnhealthyPods); // Register action columns. this.registerActionColumn('menu', MenuComponent); @@ -73,6 +74,10 @@ export class StatefulSetListComponent extends ResourceListWithStatuses< return statefulSetList.statefulSets; } + hasUnhealthyPods(resource: StatefulSet): boolean { + return resource.podInfo.running !== resource.podInfo.desired; + } + isInErrorState(resource: StatefulSet): boolean { return resource.podInfo.warnings.length > 0; } From d05cd7890841e8e0dbb6a6421c86c40f81e8c3b5 Mon Sep 17 00:00:00 2001 From: Harkishen Singh Date: Thu, 9 Apr 2020 13:05:00 +0530 Subject: [PATCH 2/4] updated stateful set logic Signed-off-by: Harkishen Singh --- .../resourcelist/statefulset/component.ts | 23 +++++++++++-------- .../resourcelist/statefulset/template.html | 7 ++++++ .../components/workloadstatus/component.ts | 5 ++++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/app/frontend/common/components/resourcelist/statefulset/component.ts b/src/app/frontend/common/components/resourcelist/statefulset/component.ts index 4b576e86e4e4..a60c34ba8142 100644 --- a/src/app/frontend/common/components/resourcelist/statefulset/component.ts +++ b/src/app/frontend/common/components/resourcelist/statefulset/component.ts @@ -20,7 +20,7 @@ import { ComponentFactoryResolver, Input, } from '@angular/core'; -import {Event, Metric, StatefulSet, StatefulSetList} from '@api/backendapi'; +import {Event, Metric, StatefulSet, StatefulSetList, PodInfo} from '@api/backendapi'; import {Observable} from 'rxjs/Observable'; import {ResourceListWithStatuses} from '../../../resources/list'; import {NotificationsService} from '../../../services/global/notifications'; @@ -56,7 +56,6 @@ export class StatefulSetListComponent extends ResourceListWithStatuses< this.registerBinding(this.icon.checkCircle, 'kd-success', this.isInSuccessState); this.registerBinding(this.icon.timelapse, 'kd-muted', this.isInPendingState); this.registerBinding(this.icon.error, 'kd-error', this.isInErrorState); - this.registerBinding(this.icon.warning, 'kd-warning', this.hasUnhealthyPods); // Register action columns. this.registerActionColumn('menu', MenuComponent); @@ -74,24 +73,30 @@ export class StatefulSetListComponent extends ResourceListWithStatuses< return statefulSetList.statefulSets; } - hasUnhealthyPods(resource: StatefulSet): boolean { - return resource.podInfo.running !== resource.podInfo.desired; - } - isInErrorState(resource: StatefulSet): boolean { return resource.podInfo.warnings.length > 0; } isInPendingState(resource: StatefulSet): boolean { - return resource.podInfo.warnings.length === 0 && resource.podInfo.pending > 0; + return (resource.podInfo.warnings.length === 0 && resource.podInfo.pending > 0) || (resource.podInfo.running !== resource.podInfo.desired); } isInSuccessState(resource: StatefulSet): boolean { - return resource.podInfo.warnings.length === 0 && resource.podInfo.pending === 0; + return resource.podInfo.warnings.length === 0 && resource.podInfo.pending === 0 && (resource.podInfo.running === resource.podInfo.desired); + } + + getDisplayStatus(podInfo: PodInfo): string { + let msgState = 'Running'; + + if (podInfo.pending > 1 || (podInfo.running !== podInfo.desired)) { + msgState = 'Pending'; + } + + return msgState; } getDisplayColumns(): string[] { - return ['statusicon', 'name', 'labels', 'pods', 'age', 'images']; + return ['statusicon', 'name', 'labels', 'status', 'pods', 'age', 'images']; } hasErrors(statefulSet: StatefulSet): boolean { diff --git a/src/app/frontend/common/components/resourcelist/statefulset/template.html b/src/app/frontend/common/components/resourcelist/statefulset/template.html index bfe8ad07959c..269a73346aca 100644 --- a/src/app/frontend/common/components/resourcelist/statefulset/template.html +++ b/src/app/frontend/common/components/resourcelist/statefulset/template.html @@ -82,6 +82,13 @@ + + Status + {{getDisplayStatus(ss.podInfo)}} + + Pods diff --git a/src/app/frontend/common/components/workloadstatus/component.ts b/src/app/frontend/common/components/workloadstatus/component.ts index 1920e54495b2..9740bce20676 100644 --- a/src/app/frontend/common/components/workloadstatus/component.ts +++ b/src/app/frontend/common/components/workloadstatus/component.ts @@ -35,6 +35,11 @@ export class WorkloadStatusComponent { @Input() resourcesRatio = emptyResourcesRatio; colors: string[] = []; + constructor() { + console.warn('resourceratio below') + console.warn(this.resourcesRatio) + } + getCustomColor(label: string): string { if (label.includes('Running')) { return '#00c752'; From ab7e6d166b4054bef7c77498dfb7262b5d2a8565 Mon Sep 17 00:00:00 2001 From: Harkishen Singh Date: Thu, 9 Apr 2020 15:50:08 +0530 Subject: [PATCH 3/4] removed false constructor and status column in statefulsets Signed-off-by: Harkishen Singh --- .../resourcelist/statefulset/component.ts | 16 +++------------- .../resourcelist/statefulset/template.html | 7 ------- .../components/workloadstatus/component.ts | 5 ----- 3 files changed, 3 insertions(+), 25 deletions(-) diff --git a/src/app/frontend/common/components/resourcelist/statefulset/component.ts b/src/app/frontend/common/components/resourcelist/statefulset/component.ts index a60c34ba8142..493f183782e0 100644 --- a/src/app/frontend/common/components/resourcelist/statefulset/component.ts +++ b/src/app/frontend/common/components/resourcelist/statefulset/component.ts @@ -78,25 +78,15 @@ export class StatefulSetListComponent extends ResourceListWithStatuses< } isInPendingState(resource: StatefulSet): boolean { - return (resource.podInfo.warnings.length === 0 && resource.podInfo.pending > 0) || (resource.podInfo.running !== resource.podInfo.desired); + return resource.podInfo.warnings.length === 0 && (resource.podInfo.pending > 0 || resource.podInfo.running !== resource.podInfo.desired); } isInSuccessState(resource: StatefulSet): boolean { - return resource.podInfo.warnings.length === 0 && resource.podInfo.pending === 0 && (resource.podInfo.running === resource.podInfo.desired); - } - - getDisplayStatus(podInfo: PodInfo): string { - let msgState = 'Running'; - - if (podInfo.pending > 1 || (podInfo.running !== podInfo.desired)) { - msgState = 'Pending'; - } - - return msgState; + return resource.podInfo.warnings.length === 0 && resource.podInfo.pending === 0 && resource.podInfo.running === resource.podInfo.desired; } getDisplayColumns(): string[] { - return ['statusicon', 'name', 'labels', 'status', 'pods', 'age', 'images']; + return ['statusicon', 'name', 'labels', 'pods', 'age', 'images']; } hasErrors(statefulSet: StatefulSet): boolean { diff --git a/src/app/frontend/common/components/resourcelist/statefulset/template.html b/src/app/frontend/common/components/resourcelist/statefulset/template.html index 269a73346aca..bfe8ad07959c 100644 --- a/src/app/frontend/common/components/resourcelist/statefulset/template.html +++ b/src/app/frontend/common/components/resourcelist/statefulset/template.html @@ -82,13 +82,6 @@ - - Status - {{getDisplayStatus(ss.podInfo)}} - - Pods diff --git a/src/app/frontend/common/components/workloadstatus/component.ts b/src/app/frontend/common/components/workloadstatus/component.ts index 9740bce20676..1920e54495b2 100644 --- a/src/app/frontend/common/components/workloadstatus/component.ts +++ b/src/app/frontend/common/components/workloadstatus/component.ts @@ -35,11 +35,6 @@ export class WorkloadStatusComponent { @Input() resourcesRatio = emptyResourcesRatio; colors: string[] = []; - constructor() { - console.warn('resourceratio below') - console.warn(this.resourcesRatio) - } - getCustomColor(label: string): string { if (label.includes('Running')) { return '#00c752'; From 4f11f3a2a64f71c9263744c9990b253ef7b677ed Mon Sep 17 00:00:00 2001 From: Harkishen Singh Date: Thu, 9 Apr 2020 19:26:17 +0530 Subject: [PATCH 4/4] linted Signed-off-by: Harkishen Singh --- .../components/resourcelist/statefulset/component.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/app/frontend/common/components/resourcelist/statefulset/component.ts b/src/app/frontend/common/components/resourcelist/statefulset/component.ts index 493f183782e0..13a74ee8fdee 100644 --- a/src/app/frontend/common/components/resourcelist/statefulset/component.ts +++ b/src/app/frontend/common/components/resourcelist/statefulset/component.ts @@ -78,11 +78,18 @@ export class StatefulSetListComponent extends ResourceListWithStatuses< } isInPendingState(resource: StatefulSet): boolean { - return resource.podInfo.warnings.length === 0 && (resource.podInfo.pending > 0 || resource.podInfo.running !== resource.podInfo.desired); + return ( + resource.podInfo.warnings.length === 0 && + (resource.podInfo.pending > 0 || resource.podInfo.running !== resource.podInfo.desired) + ); } isInSuccessState(resource: StatefulSet): boolean { - return resource.podInfo.warnings.length === 0 && resource.podInfo.pending === 0 && resource.podInfo.running === resource.podInfo.desired; + return ( + resource.podInfo.warnings.length === 0 && + resource.podInfo.pending === 0 && + resource.podInfo.running === resource.podInfo.desired + ); } getDisplayColumns(): string[] {