Skip to content

Commit 73aed5f

Browse files
committed
feat(Storage): show usage column
1 parent 7315a9c commit 73aed5f

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

src/containers/Storage/StorageGroups/StorageGroups.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
vertical-align: top;
4343
text-overflow: ellipsis;
4444
}
45+
&__usage-label {
46+
&_overload {
47+
color: var(--yc-color-text-light-primary);
48+
background-color: var(--yc-color-base-danger-heavy);
49+
}
50+
}
4551
&__group-id {
4652
font-weight: 500;
4753
}

src/containers/Storage/StorageGroups/StorageGroups.tsx

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {bytesToGB, bytesToSpeed} from '../../../utils/utils';
1616
import {stringifyVdiskId} from '../../../utils';
1717

1818
import Vdisk from '../Vdisk/Vdisk';
19-
import {isFullDonorData, getDegradedSeverity} from '../utils';
19+
import {isFullDonorData, getDegradedSeverity, getUsageSeverity, getUsage} from '../utils';
2020

2121
import './StorageGroups.scss';
2222

@@ -49,7 +49,7 @@ const tableColumnsNames: Record<TableColumnsIdsValues, string> = {
4949
Used: 'Used',
5050
Limit: 'Limit',
5151
UsedSpaceFlag: 'Space',
52-
UsedPercents: 'Used percents',
52+
UsedPercents: 'Usage',
5353
Read: 'Read',
5454
Write: 'Write',
5555
VDisks: 'VDisks',
@@ -120,6 +120,24 @@ function StorageGroups({data, tableSettings, visibleEntities, nodes}: StorageGro
120120
align: DataTable.LEFT,
121121
defaultOrder: DataTable.DESCENDING,
122122
},
123+
{
124+
name: TableColumnsIds.UsedPercents,
125+
header: tableColumnsNames[TableColumnsIds.UsedPercents],
126+
width: 100,
127+
render: ({row}) => {
128+
const usage = getUsage(row, 5);
129+
return (
130+
<Label
131+
theme={getUsageSeverity(usage)}
132+
className={b('usage-label', {overload: usage >= 100})}
133+
>
134+
{usage}%
135+
</Label>
136+
);
137+
},
138+
sortAccessor: getUsage,
139+
align: DataTable.LEFT,
140+
},
123141
{
124142
name: TableColumnsIds.GroupID,
125143
header: tableColumnsNames[TableColumnsIds.GroupID],
@@ -147,18 +165,6 @@ function StorageGroups({data, tableSettings, visibleEntities, nodes}: StorageGro
147165
},
148166
align: DataTable.RIGHT,
149167
},
150-
// {
151-
// name: tableColumnsIds.UsedPercents,
152-
// header: tableColumnsNames[tableColumnsIds.UsedPercents],
153-
// width: '100px',
154-
// render: ({row}) => {
155-
// return (
156-
// Math.round((row[tableColumnsIds.Used] * 100) / row[tableColumnsIds.Limit]) +
157-
// '%'
158-
// );
159-
// },
160-
// align: DataTable.RIGHT,
161-
// },
162168
{
163169
name: TableColumnsIds.UsedSpaceFlag,
164170
header: tableColumnsNames[TableColumnsIds.UsedSpaceFlag],

src/containers/Storage/utils/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,11 @@ export const getDegradedSeverity = (group: IStoragePoolGroup) => {
4040

4141
return evaluate(group.Missing);
4242
};
43+
44+
export const getUsageSeverity = generateEvaluator(80, 85);
45+
46+
export const getUsage = (data: IStoragePoolGroup, step = 1) => {
47+
const usage = Math.round((data.Used * 100) / data.Limit);
48+
49+
return Math.floor(usage / step) * step;
50+
};

0 commit comments

Comments
 (0)