1 import { Pipe, PipeTransform } from '@angular/core';
3 import _ from 'lodash';
8 export class OsdSummaryPipe implements PipeTransform {
9 transform(value: any): any {
16 let nearFullCount = 0;
18 _.each(value.osds, (osd) => {
25 if (osd.state.includes('nearfull')) {
28 if (osd.state.includes('full')) {
35 content: `${value.osds.length} ${$localize`total`}`,
41 class: 'card-text-line-break'
44 content: `${upCount} ${$localize`up`}, ${inCount} ${$localize`in`}`,
48 const downCount = value.osds.length - upCount;
49 const outCount = value.osds.length - inCount;
50 if (downCount > 0 || outCount > 0) {
53 class: 'card-text-line-break'
56 const downText = downCount > 0 ? `${downCount} ${$localize`down`}` : '';
57 const separator = downCount > 0 && outCount > 0 ? ', ' : '';
58 const outText = outCount > 0 ? `${outCount} ${$localize`out`}` : '';
60 content: `${downText}${separator}${outText}`,
61 class: 'card-text-error'
65 if (nearFullCount > 0) {
69 class: 'card-text-line-break'
72 content: `${nearFullCount} ${$localize`near full`}`,
73 class: 'card-text-error'
77 class: 'card-text-line-break'
84 content: `${fullCount} ${$localize`full`}`,
85 class: 'card-text-error'