diff --git a/src/components/VDiskInfo/VDiskInfo.tsx b/src/components/VDiskInfo/VDiskInfo.tsx index 35311a89c..de7c00ded 100644 --- a/src/components/VDiskInfo/VDiskInfo.tsx +++ b/src/components/VDiskInfo/VDiskInfo.tsx @@ -46,6 +46,7 @@ export function VDiskInfo({ Guid, Replicated, VDiskState, + PDiskErrorReason, VDiskSlotId, Kind, SatisfactionRank, @@ -74,6 +75,12 @@ export function VDiskInfo({ value: VDiskState, }); } + if (valueIsDefined(PDiskErrorReason) && PDiskErrorReason != '') { + vdiskInfo.push({ + label: vDiskInfoKeyset('disk-error-reason'), + value: PDiskErrorReason, + }); + } if (Number(AllocatedSize) >= 0 && Number(AvailableSize) >= 0) { vdiskInfo.push({ label: vDiskInfoKeyset('size'), diff --git a/src/components/VDiskInfo/i18n/en.json b/src/components/VDiskInfo/i18n/en.json index 2ce37f9dd..02738da0c 100644 --- a/src/components/VDiskInfo/i18n/en.json +++ b/src/components/VDiskInfo/i18n/en.json @@ -9,6 +9,7 @@ "replication-status": "Replicated", "state-status": "VDisk State", + "disk-error-reason": "PDisk Error Reason", "space-status": "Disk Space", "fresh-rank-satisfaction": "Fresh Rank Satisfaction", diff --git a/src/components/VDiskPopup/VDiskPopup.tsx b/src/components/VDiskPopup/VDiskPopup.tsx index 86488c7f3..9193124d9 100644 --- a/src/components/VDiskPopup/VDiskPopup.tsx +++ b/src/components/VDiskPopup/VDiskPopup.tsx @@ -42,6 +42,7 @@ const prepareVDiskData = (data: TVDiskStateInfo) => { const { VDiskId, VDiskState, + PDiskErrorReason, SatisfactionRank, DiskSpace, FrontQueues, @@ -58,6 +59,10 @@ const prepareVDiskData = (data: TVDiskStateInfo) => { {label: 'State', value: VDiskState ?? 'not available'}, ]; + if (PDiskErrorReason) { + vdiskData.push({label: 'PDisk Error', value: PDiskErrorReason}); + } + if (StoragePoolName) { vdiskData.push({label: 'StoragePool', value: StoragePoolName}); } diff --git a/src/types/api/vdisk.ts b/src/types/api/vdisk.ts index eaa2fd329..f978a0d4c 100644 --- a/src/types/api/vdisk.ts +++ b/src/types/api/vdisk.ts @@ -35,6 +35,8 @@ export interface TVDiskStateInfo { /** Current state of VDisk */ VDiskState?: EVDiskState; + /** PDisk error string */ + PDiskErrorReason?: string; /** Disk space flags */ DiskSpace?: EFlag; /** Compaction satisfaction rank */