Skip to content

Commit 17cf94d

Browse files
committed
feat(Storage): red progress bars for unavailable disks
1 parent 926adfc commit 17cf94d

File tree

4 files changed

+27
-19
lines changed

4 files changed

+27
-19
lines changed

src/containers/Storage/Pdisk/Pdisk.tsx

+3-9
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import DiskStateProgressBar, {
1313
} from '../DiskStateProgressBar/DiskStateProgressBar';
1414
import {STRUCTURE} from '../../Node/NodePages';
1515

16+
import {colorSeverity, NOT_AVAILABLE_SEVERITY} from '../utils';
17+
1618
import './Pdisk.scss';
1719

1820
const b = cn('pdisk-storage');
@@ -34,14 +36,6 @@ const stateSeverity = {
3436
DeviceIoError: 5,
3537
};
3638

37-
const colorSeverity = {
38-
Grey: 0,
39-
Green: 1,
40-
Blue: 2,
41-
Yellow: 3,
42-
Orange: 4,
43-
Red: 5,
44-
};
4539
type PDiskState = keyof typeof stateSeverity;
4640

4741
interface PDiskProps {
@@ -57,7 +51,7 @@ interface PDiskProps {
5751
}
5852

5953
const getStateSeverity = (pDiskState?: PDiskState) => {
60-
return pDiskState ? stateSeverity[pDiskState] : colorSeverity.Grey;
54+
return pDiskState ? stateSeverity[pDiskState] : NOT_AVAILABLE_SEVERITY;
6155
};
6256

6357
function Pdisk(props: PDiskProps) {

src/containers/Storage/Vdisk/Vdisk.js

+13-10
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import DiskStateProgressBar, {
1212
} from '../DiskStateProgressBar/DiskStateProgressBar';
1313
import {STRUCTURE} from '../../Node/NodePages';
1414

15+
import {colorSeverity, NOT_AVAILABLE_SEVERITY} from '../utils';
16+
1517
import './Vdisk.scss';
1618

1719
const b = cn('vdisk-storage');
@@ -34,17 +36,8 @@ const stateSeverity = {
3436
OK: 1,
3537
};
3638

37-
const colorSeverity = {
38-
Grey: 0,
39-
Green: 1,
40-
Blue: 2,
41-
Yellow: 3,
42-
Orange: 4,
43-
Red: 5,
44-
};
45-
4639
const getStateSeverity = (vDiskState) => {
47-
return stateSeverity[vDiskState] ?? colorSeverity.Grey;
40+
return stateSeverity[vDiskState] ?? NOT_AVAILABLE_SEVERITY;
4841
};
4942

5043
const getColorSeverity = (color) => {
@@ -57,15 +50,25 @@ function Vdisk(props) {
5750

5851
const anchor = useRef();
5952

53+
// determine disk status severity
6054
useEffect(() => {
6155
const {DiskSpace, VDiskState, FrontQueues, Replicated} = props;
56+
57+
// if the disk is not available, this determines its status severity regardless of other features
58+
if (!VDiskState) {
59+
setSeverity(NOT_AVAILABLE_SEVERITY);
60+
return;
61+
}
62+
6263
const DiskSpaceSeverity = getColorSeverity(DiskSpace);
6364
const VDiskSpaceSeverity = getStateSeverity(VDiskState);
6465
const FrontQueuesSeverity = Math.min(colorSeverity.Orange, getColorSeverity(FrontQueues));
66+
6567
let newSeverity = Math.max(DiskSpaceSeverity, VDiskSpaceSeverity, FrontQueuesSeverity);
6668
if (!Replicated && newSeverity === colorSeverity.Green) {
6769
newSeverity = colorSeverity.Blue;
6870
}
71+
6972
setSeverity(newSeverity);
7073
}, [props.VDiskState, props.DiskSpace, props.FrontQueues, props.Replicated]);
7174

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export const colorSeverity = {
2+
Grey: 0,
3+
Green: 1,
4+
Blue: 2,
5+
Yellow: 3,
6+
Orange: 4,
7+
Red: 5,
8+
};
9+
10+
export const NOT_AVAILABLE_SEVERITY = colorSeverity.Red;

src/containers/Storage/utils/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './constants';

0 commit comments

Comments
 (0)