ydb-embedded-ui 22.3.0 → 22.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.d.ts +10 -1
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js +75 -13
- package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js.map +1 -1
- package/dist/components/DiskCapacityInfo/i18n/index.d.ts +1 -1
- package/dist/components/DiskPopup/DiskPopup.d.ts +25 -0
- package/dist/components/DiskPopup/DiskPopup.js +44 -0
- package/dist/components/DiskPopup/DiskPopup.js.map +1 -0
- package/dist/components/DiskPopup/DiskPopup.scss +203 -0
- package/dist/components/DiskPopup/i18n/en.json +3 -0
- package/dist/components/DiskPopup/i18n/index.d.ts +2 -0
- package/dist/components/DiskPopup/i18n/index.js +4 -0
- package/dist/components/DiskPopup/i18n/index.js.map +1 -0
- package/dist/components/DiskStatus/DiskStatus.d.ts +31 -0
- package/dist/components/DiskStatus/DiskStatus.js +61 -0
- package/dist/components/DiskStatus/DiskStatus.js.map +1 -0
- package/dist/components/DiskStatus/DiskStatus.scss +59 -0
- package/dist/components/DiskStatus/i18n/en.json +6 -0
- package/dist/components/DiskStatus/i18n/index.d.ts +2 -0
- package/dist/components/DiskStatus/i18n/index.js +4 -0
- package/dist/components/DiskStatus/i18n/index.js.map +1 -0
- package/dist/components/EntityStatus/EntityStatus.d.ts +1 -0
- package/dist/components/EntityStatus/EntityStatus.js +1 -1
- package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
- package/dist/components/EvictVDiskButton/i18n/en.json +1 -1
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/HoverPopup/HoverPopup.d.ts +2 -1
- package/dist/components/HoverPopup/HoverPopup.js +49 -17
- package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
- package/dist/components/HoverPopup/usePopupPriority.d.ts +4 -0
- package/dist/components/HoverPopup/usePopupPriority.js +30 -0
- package/dist/components/HoverPopup/usePopupPriority.js.map +1 -0
- package/dist/components/PDiskInfo/PDiskLogSize.d.ts +5 -0
- package/dist/components/PDiskInfo/PDiskLogSize.js +20 -0
- package/dist/components/PDiskInfo/PDiskLogSize.js.map +1 -0
- package/dist/components/PDiskInfo/PDiskLogSize.scss +12 -0
- package/dist/components/PDiskInfo/getPDiskDetails.d.ts +4 -0
- package/dist/components/PDiskInfo/getPDiskDetails.js +33 -0
- package/dist/components/PDiskInfo/getPDiskDetails.js.map +1 -0
- package/dist/components/PDiskInfo/i18n/en.json +64 -2
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/PDiskInfo/statuses.d.ts +7 -0
- package/dist/components/PDiskInfo/statuses.js +185 -0
- package/dist/components/PDiskInfo/statuses.js.map +1 -0
- package/dist/components/PDiskPopup/PDiskPopup.d.ts +4 -7
- package/dist/components/PDiskPopup/PDiskPopup.js +28 -99
- package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
- package/dist/components/PDiskPopup/i18n/en.json +2 -12
- package/dist/components/PDiskPopup/i18n/index.d.ts +1 -1
- package/dist/components/StorageGroupInfo/StorageGroupInfo.d.ts +3 -3
- package/dist/components/StorageGroupInfo/StorageGroupInfo.js +78 -218
- package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
- package/dist/components/StorageGroupInfo/StorageGroupInfo.scss +21 -0
- package/dist/components/StorageGroupInfo/i18n/en.json +1 -9
- package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
- package/dist/components/VDisk/VDisk.d.ts +2 -1
- package/dist/components/VDisk/VDisk.js +23 -32
- package/dist/components/VDisk/VDisk.js.map +1 -1
- package/dist/components/VDisk/VDiskWithDonorsStack.d.ts +1 -1
- package/dist/components/VDisk/VDiskWithDonorsStack.js +2 -1
- package/dist/components/VDisk/VDiskWithDonorsStack.js.map +1 -1
- package/dist/components/VDisk/getFlagStatusText.d.ts +2 -0
- package/dist/components/VDisk/getFlagStatusText.js +18 -0
- package/dist/components/VDisk/getFlagStatusText.js.map +1 -0
- package/dist/components/VDisk/i18n/en.json +1 -1
- package/dist/components/VDisk/i18n/index.d.ts +1 -1
- package/dist/components/VDiskInfo/getVDiskDetails.d.ts +5 -0
- package/dist/components/VDiskInfo/getVDiskDetails.js +29 -0
- package/dist/components/VDiskInfo/getVDiskDetails.js.map +1 -0
- package/dist/components/VDiskInfo/i18n/en.json +3 -1
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/VDiskPopup/VDiskPopup.d.ts +6 -8
- package/dist/components/VDiskPopup/VDiskPopup.js +106 -240
- package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
- package/dist/components/VDiskPopup/VDiskPopup.scss +3 -10
- package/dist/components/VDiskPopup/i18n/en.json +6 -22
- package/dist/components/VDiskPopup/i18n/index.d.ts +1 -1
- package/dist/components/VDiskStatus/VDiskReplicationStatus.d.ts +8 -0
- package/dist/components/VDiskStatus/VDiskReplicationStatus.js +32 -0
- package/dist/components/VDiskStatus/VDiskReplicationStatus.js.map +1 -0
- package/dist/components/VDiskStatus/VDiskStatus.d.ts +16 -0
- package/dist/components/VDiskStatus/VDiskStatus.js +20 -0
- package/dist/components/VDiskStatus/VDiskStatus.js.map +1 -0
- package/dist/components/VDiskStatus/VDiskStatus.scss +32 -0
- package/dist/components/VDiskStatus/i18n/en.json +33 -0
- package/dist/components/VDiskStatus/i18n/index.d.ts +1 -0
- package/dist/components/VDiskStatus/i18n/index.js +5 -0
- package/dist/components/VDiskStatus/i18n/index.js.map +1 -0
- package/dist/components/VDiskStatus/index.d.ts +2 -0
- package/dist/components/VDiskStatus/index.js +3 -0
- package/dist/components/VDiskStatus/index.js.map +1 -0
- package/dist/components/VDiskStatus/statuses.d.ts +4 -0
- package/dist/components/VDiskStatus/statuses.js +120 -0
- package/dist/components/VDiskStatus/statuses.js.map +1 -0
- package/dist/components/capacityMetricsColumns/i18n/en.json +4 -4
- package/dist/containers/Cluster/ClusterDrawerHealthcheck.js +6 -1
- package/dist/containers/Cluster/ClusterDrawerHealthcheck.js.map +1 -1
- package/dist/containers/Clusters/ClusterDrawerHealthcheck.js +1 -1
- package/dist/containers/Clusters/ClusterDrawerHealthcheck.js.map +1 -1
- package/dist/containers/Header/Header.js +8 -2
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Header/StorageGroupLeftControls.d.ts +1 -0
- package/dist/containers/Header/StorageGroupLeftControls.js +23 -0
- package/dist/containers/Header/StorageGroupLeftControls.js.map +1 -0
- package/dist/containers/Header/i18n/en.json +3 -1
- package/dist/containers/Header/i18n/index.d.ts +1 -1
- package/dist/containers/Operations/constants.d.ts +1 -1
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js +4 -4
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js.map +1 -1
- package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/Disks/Disks.js +36 -9
- package/dist/containers/Storage/Disks/Disks.js.map +1 -1
- package/dist/containers/Storage/PDisk/PDisk.d.ts +2 -1
- package/dist/containers/Storage/PDisk/PDisk.js +2 -2
- package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
- package/dist/containers/Storage/PDisk/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +7 -2
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.scss +14 -82
- package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/StorageGroupStateLabel.d.ts +4 -0
- package/dist/containers/Storage/StorageGroupStateLabel.js +9 -0
- package/dist/containers/Storage/StorageGroupStateLabel.js.map +1 -0
- package/dist/containers/Storage/utils/getStorageGroupStateLabel.d.ts +2 -0
- package/dist/containers/Storage/utils/getStorageGroupStateLabel.js +35 -0
- package/dist/containers/Storage/utils/getStorageGroupStateLabel.js.map +1 -0
- package/dist/containers/StorageGroupPage/StorageGroupPage.js +17 -12
- package/dist/containers/StorageGroupPage/StorageGroupPage.js.map +1 -1
- package/dist/containers/StorageGroupPage/StorageGroupPage.scss +9 -13
- package/dist/containers/StorageGroupPage/i18n/en.json +3 -1
- package/dist/containers/StorageGroupPage/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +4 -1
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/SchemaObjectInfo.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/SchemaObjectInfo.js +11 -2
- package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/SchemaObjectInfo.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.js +9 -8
- package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/StreamingQueryInfo.d.ts +16 -1
- package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/StreamingQueryInfo.js +56 -19
- package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/StreamingQueryInfo.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/i18n/en.json +5 -1
- package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.d.ts +3 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.js +3 -3
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.js.map +1 -1
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js +8 -1
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
- package/dist/containers/Tenants/DatabaseDrawerHealthcheck.js +8 -1
- package/dist/containers/Tenants/DatabaseDrawerHealthcheck.js.map +1 -1
- package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/lib.js.map +1 -1
- package/dist/store/configureStore.d.ts +2 -2
- package/dist/store/defaultStore.d.ts +1 -1
- package/dist/store/reducers/header/types.d.ts +1 -1
- package/dist/store/reducers/index.d.ts +2 -2
- package/dist/store/reducers/pdisk/types.d.ts +1 -0
- package/dist/store/reducers/pdisk/utils.js +6 -1
- package/dist/store/reducers/pdisk/utils.js.map +1 -1
- package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +1 -0
- package/dist/store/reducers/storage/prepareGroupsDisks.js +7 -18
- package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
- package/dist/store/reducers/storage/utils.js +4 -0
- package/dist/store/reducers/storage/utils.js.map +1 -1
- package/dist/store/reducers/streamingQuery/streamingQuery.js +2 -4
- package/dist/store/reducers/streamingQuery/streamingQuery.js.map +1 -1
- package/dist/styles/mixins.scss +22 -0
- package/dist/types/api/pdisk.d.ts +4 -0
- package/dist/types/api/pdisk.js.map +1 -1
- package/dist/types/api/vdisk.d.ts +8 -0
- package/dist/types/api/vdisk.js +7 -0
- package/dist/types/api/vdisk.js.map +1 -1
- package/dist/types/store/nodesList.d.ts +4 -2
- package/dist/uiFactory/types.d.ts +5 -2
- package/dist/utils/bytesParsers/formatBytes.d.ts +3 -1
- package/dist/utils/bytesParsers/formatBytes.js +12 -3
- package/dist/utils/bytesParsers/formatBytes.js.map +1 -1
- package/dist/utils/disks/constants.d.ts +1 -0
- package/dist/utils/disks/constants.js +4 -0
- package/dist/utils/disks/constants.js.map +1 -1
- package/dist/utils/disks/diskInfo/getDiskLocationItems.d.ts +16 -0
- package/dist/utils/disks/diskInfo/getDiskLocationItems.js +30 -0
- package/dist/utils/disks/diskInfo/getDiskLocationItems.js.map +1 -0
- package/dist/utils/disks/diskInfo/i18n/en.json +9 -0
- package/dist/utils/disks/diskInfo/i18n/index.d.ts +2 -0
- package/dist/utils/disks/diskInfo/i18n/index.js +4 -0
- package/dist/utils/disks/diskInfo/i18n/index.js.map +1 -0
- package/dist/utils/disks/iconCalculators.d.ts +5 -0
- package/dist/utils/disks/iconCalculators.js +1 -1
- package/dist/utils/disks/iconCalculators.js.map +1 -1
- package/dist/utils/disks/prepareDisks.d.ts +6 -2
- package/dist/utils/disks/prepareDisks.js +22 -35
- package/dist/utils/disks/prepareDisks.js.map +1 -1
- package/dist/utils/disks/types.d.ts +9 -2
- package/dist/utils/hooks/useNodeMetadata.d.ts +2 -0
- package/dist/utils/hooks/useNodeMetadata.js +15 -0
- package/dist/utils/hooks/useNodeMetadata.js.map +1 -0
- package/dist/utils/nodes.js +6 -2
- package/dist/utils/nodes.js.map +1 -1
- package/dist/utils/storageMetrics.d.ts +2 -2
- package/dist/utils/storageMetrics.js +22 -10
- package/dist/utils/storageMetrics.js.map +1 -1
- package/dist/utils/timeParsers/formatDuration.d.ts +4 -1
- package/dist/utils/timeParsers/formatDuration.js +16 -1
- package/dist/utils/timeParsers/formatDuration.js.map +1 -1
- package/dist/utils/timeParsers/i18n/en.json +5 -1
- package/dist/utils/timeParsers/i18n/index.d.ts +1 -1
- package/dist/utils/timeParsers/i18n/ru.json +5 -1
- package/package.json +2 -2
- package/src/components/DiskCapacityInfo/DiskCapacityInfo.tsx +106 -15
- package/src/components/DiskPopup/DiskPopup.scss +203 -0
- package/src/components/DiskPopup/DiskPopup.tsx +123 -0
- package/src/components/DiskPopup/i18n/en.json +3 -0
- package/src/components/DiskPopup/i18n/index.ts +5 -0
- package/src/components/DiskStatus/DiskStatus.scss +59 -0
- package/src/components/DiskStatus/DiskStatus.tsx +149 -0
- package/src/components/DiskStatus/i18n/en.json +6 -0
- package/src/components/DiskStatus/i18n/index.ts +5 -0
- package/src/components/EntityStatus/EntityStatus.tsx +1 -1
- package/src/components/EvictVDiskButton/i18n/en.json +1 -1
- package/src/components/HoverPopup/HoverPopup.tsx +67 -20
- package/src/components/HoverPopup/usePopupPriority.ts +39 -0
- package/src/components/PDiskInfo/PDiskLogSize.scss +12 -0
- package/src/components/PDiskInfo/PDiskLogSize.tsx +37 -0
- package/src/components/PDiskInfo/getPDiskDetails.tsx +37 -0
- package/src/components/PDiskInfo/i18n/en.json +64 -8
- package/src/components/PDiskInfo/statuses.ts +209 -0
- package/src/components/PDiskPopup/PDiskPopup.tsx +62 -147
- package/src/components/PDiskPopup/i18n/en.json +2 -12
- package/src/components/StorageGroupInfo/StorageGroupInfo.scss +21 -0
- package/src/components/StorageGroupInfo/StorageGroupInfo.tsx +121 -260
- package/src/components/StorageGroupInfo/i18n/en.json +1 -9
- package/src/components/VDisk/VDisk.tsx +31 -34
- package/src/components/VDisk/VDiskWithDonorsStack.tsx +2 -0
- package/src/components/VDisk/getFlagStatusText.ts +19 -0
- package/src/components/VDisk/i18n/en.json +1 -1
- package/src/components/VDiskInfo/getVDiskDetails.tsx +41 -0
- package/src/components/VDiskInfo/i18n/en.json +3 -10
- package/src/components/VDiskPopup/VDiskPopup.scss +3 -10
- package/src/components/VDiskPopup/VDiskPopup.tsx +197 -421
- package/src/components/VDiskPopup/i18n/en.json +6 -22
- package/src/components/VDiskStatus/VDiskReplicationStatus.tsx +77 -0
- package/src/components/VDiskStatus/VDiskStatus.scss +32 -0
- package/src/components/VDiskStatus/VDiskStatus.tsx +38 -0
- package/src/components/VDiskStatus/i18n/en.json +33 -0
- package/src/components/VDiskStatus/i18n/index.ts +7 -0
- package/src/components/VDiskStatus/index.ts +7 -0
- package/src/components/VDiskStatus/statuses.ts +139 -0
- package/src/components/capacityMetricsColumns/i18n/en.json +4 -4
- package/src/containers/Cluster/ClusterDrawerHealthcheck.tsx +6 -0
- package/src/containers/Clusters/ClusterDrawerHealthcheck.tsx +1 -0
- package/src/containers/Header/Header.tsx +11 -3
- package/src/containers/Header/StorageGroupLeftControls.tsx +38 -0
- package/src/containers/Header/i18n/en.json +3 -1
- package/src/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.tsx +13 -2
- package/src/containers/Storage/Disks/Disks.tsx +66 -12
- package/src/containers/Storage/PDisk/PDisk.tsx +3 -0
- package/src/containers/Storage/PaginatedStorageGroupsTable/columns/columns.tsx +24 -3
- package/src/containers/Storage/StorageExpertModePanel/components/SpaceLegend.scss +14 -82
- package/src/containers/Storage/StorageGroupStateLabel.tsx +22 -0
- package/src/containers/Storage/utils/getStorageGroupStateLabel.ts +49 -0
- package/src/containers/StorageGroupPage/StorageGroupPage.scss +9 -13
- package/src/containers/StorageGroupPage/StorageGroupPage.tsx +53 -25
- package/src/containers/StorageGroupPage/i18n/en.json +3 -1
- package/src/containers/Tenant/Diagnostics/Overview/Overview.tsx +5 -1
- package/src/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/SchemaObjectInfo.tsx +12 -1
- package/src/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.tsx +11 -10
- package/src/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/StreamingQueryInfo.tsx +83 -20
- package/src/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/i18n/en.json +5 -1
- package/src/containers/Tenant/Healthcheck/components/HealthcheckDrawer.tsx +5 -2
- package/src/containers/Tenant/TenantDrawerHealthcheck.tsx +10 -0
- package/src/containers/Tenants/DatabaseDrawerHealthcheck.tsx +10 -0
- package/src/lib.ts +1 -0
- package/src/store/reducers/header/types.ts +3 -1
- package/src/store/reducers/pdisk/types.ts +1 -0
- package/src/store/reducers/pdisk/utils.ts +6 -3
- package/src/store/reducers/storage/prepareGroupsDisks.ts +7 -22
- package/src/store/reducers/storage/utils.ts +4 -0
- package/src/store/reducers/streamingQuery/streamingQuery.ts +2 -4
- package/src/styles/mixins.scss +22 -0
- package/src/types/api/pdisk.ts +4 -0
- package/src/types/api/vdisk.ts +9 -0
- package/src/types/store/nodesList.ts +7 -7
- package/src/uiFactory/types.ts +9 -2
- package/src/utils/bytesParsers/formatBytes.ts +23 -4
- package/src/utils/disks/constants.ts +5 -0
- package/src/utils/disks/diskInfo/getDiskLocationItems.ts +50 -0
- package/src/utils/disks/diskInfo/i18n/en.json +9 -0
- package/src/utils/disks/diskInfo/i18n/index.ts +5 -0
- package/src/utils/disks/iconCalculators.ts +1 -1
- package/src/utils/disks/prepareDisks.ts +21 -47
- package/src/utils/disks/types.ts +10 -2
- package/src/utils/hooks/useNodeMetadata.ts +21 -0
- package/src/utils/nodes.ts +6 -1
- package/src/utils/storageMetrics.ts +27 -14
- package/src/utils/timeParsers/formatDuration.ts +22 -1
- package/src/utils/timeParsers/i18n/en.json +5 -1
- package/src/utils/timeParsers/i18n/ru.json +5 -1
|
@@ -1,26 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"label_storage-pool": "StoragePool",
|
|
4
|
-
"label_donor": "Donor",
|
|
5
|
-
"label_node-id": "NodeId",
|
|
6
|
-
"label_pdisk-id": "PDiskId",
|
|
7
|
-
"label_vslot-id": "VSlotId",
|
|
8
|
-
"label_links": "Links",
|
|
2
|
+
"label_storage-pool": "Storage Pool Name",
|
|
9
3
|
"label_vdisk": "VDisk",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"label_front-queues": "FrontQueues",
|
|
14
|
-
"label_replicated": "Replicated",
|
|
15
|
-
"label_progress": "Progress",
|
|
16
|
-
"label_remaining": "Remaining",
|
|
17
|
-
"label_unsync-vdisks": "UnsyncVDisks",
|
|
18
|
-
"label_allocated": "Allocated",
|
|
19
|
-
"label_available": "Available",
|
|
20
|
-
"label_read": "Read",
|
|
21
|
-
"label_write": "Write",
|
|
22
|
-
"label_replication": "Replication",
|
|
23
|
-
"label_recipient": "Recipient",
|
|
4
|
+
"label_front-queues": "Front Queues",
|
|
5
|
+
"label_read": "Read Throughput",
|
|
6
|
+
"label_write": "Write Throughput",
|
|
24
7
|
"action_open-in-developer-ui": "Open in Developer UI",
|
|
25
|
-
"action_go-to-vdisk": "Go to VDisk"
|
|
8
|
+
"action_go-to-vdisk": "Go to VDisk",
|
|
9
|
+
"label_compaction": "Compaction"
|
|
26
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const vDiskPopupKeyset: (key: "
|
|
1
|
+
export declare const vDiskPopupKeyset: (key: "action_open-in-developer-ui" | "label_storage-pool" | "label_vdisk" | "label_front-queues" | "label_read" | "label_write" | "action_go-to-vdisk" | "label_compaction", params?: import("@gravity-ui/i18n").Params) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LabelProps } from '@gravity-ui/uikit';
|
|
2
|
+
import type { PreparedVDisk } from '../../utils/disks/types';
|
|
3
|
+
import './VDiskStatus.scss';
|
|
4
|
+
interface VDiskReplicationStatusProps extends Pick<LabelProps, 'size'> {
|
|
5
|
+
data: Pick<PreparedVDisk, 'DetailedReplicationStatus' | 'Replicated' | 'ReplicationProgress' | 'ReplicationSecondsRemaining'>;
|
|
6
|
+
}
|
|
7
|
+
export declare function VDiskReplicationStatus({ data, size }: VDiskReplicationStatusProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Flex, Progress } from '@gravity-ui/uikit';
|
|
4
|
+
import { EVDiskDetailedReplicationStatus } from '../../types/api/vdisk';
|
|
5
|
+
import { cn } from '../../utils/cn';
|
|
6
|
+
import { formatPercent } from '../../utils/dataFormatters/dataFormatters';
|
|
7
|
+
import { formatDurationToShortTimeFormat } from '../../utils/timeParsers';
|
|
8
|
+
import { parseOptionalNonNegativeNumber } from '../../utils/utils';
|
|
9
|
+
import { DiskStatusLabel } from '../DiskStatus/DiskStatus';
|
|
10
|
+
import { vDiskStatusKeyset as i18n } from './i18n';
|
|
11
|
+
import { getVDiskReplicationLabel } from './statuses';
|
|
12
|
+
import './VDiskStatus.scss';
|
|
13
|
+
const b = cn('ydb-vdisk-status');
|
|
14
|
+
export function VDiskReplicationStatus({ data, size }) {
|
|
15
|
+
const label = getVDiskReplicationLabel(data);
|
|
16
|
+
const showProgress = data.DetailedReplicationStatus === EVDiskDetailedReplicationStatus.InProgress ||
|
|
17
|
+
(!data.DetailedReplicationStatus && data.Replicated === false);
|
|
18
|
+
return (_jsxs(React.Fragment, { children: [label && _jsx(DiskStatusLabel, { ...label, size: size }), showProgress && _jsx(ReplicationProgress, { data: data, size: size })] }));
|
|
19
|
+
}
|
|
20
|
+
function ReplicationProgress({ data, size }) {
|
|
21
|
+
const progress = parseOptionalNonNegativeNumber(data.ReplicationProgress);
|
|
22
|
+
const percentage = progress !== undefined && progress <= 1 ? Math.round(progress * 100) : undefined;
|
|
23
|
+
const seconds = parseOptionalNonNegativeNumber(data.ReplicationSecondsRemaining);
|
|
24
|
+
const remaining = seconds === undefined
|
|
25
|
+
? undefined
|
|
26
|
+
: formatDurationToShortTimeFormat(Math.ceil(seconds) * 1000, 2, { compact: true });
|
|
27
|
+
if (percentage === undefined && !remaining) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return (_jsxs(Flex, { alignItems: "center", gap: 2, className: b('replication-progress', { size }), children: [percentage !== undefined && (_jsxs(React.Fragment, { children: [_jsx("span", { children: formatPercent(percentage / 100, 0) }), _jsx("div", { role: "progressbar", "aria-label": i18n('label_replication-progress'), "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": percentage, className: b('progress-bar'), children: _jsx(Progress, { value: percentage, theme: "info", size: "xs" }) })] })), remaining && _jsx("span", { children: i18n('context_remaining', { duration: remaining }) })] }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=VDiskReplicationStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VDiskReplicationStatus.js","sourceRoot":"","sources":["../../../src/components/VDiskStatus/VDiskReplicationStatus.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LabelProps } from '@gravity-ui/uikit';
|
|
2
|
+
import { EFlag } from '../../types/api/enums';
|
|
3
|
+
import type { EVDiskState } from '../../types/api/vdisk';
|
|
4
|
+
export declare function VDiskStateLabel({ state, size }: {
|
|
5
|
+
state?: EVDiskState;
|
|
6
|
+
} & Pick<LabelProps, 'size'>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function VDiskDonorLabel({ donorMode, size, }: {
|
|
8
|
+
donorMode?: boolean;
|
|
9
|
+
} & Pick<LabelProps, 'size'>): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export declare function VDiskFrontQueuesLabel({ flag }: {
|
|
11
|
+
flag?: EFlag;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function VDiskCompactionRankLabel({ flag, rank }: {
|
|
14
|
+
flag?: EFlag;
|
|
15
|
+
rank: 'fresh' | 'level';
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { EFlag } from '../../types/api/enums';
|
|
3
|
+
import { VDISK_LABEL_CONFIG } from '../../utils/disks/constants';
|
|
4
|
+
import { calculateFrontQueuesIcon } from '../../utils/disks/iconCalculators';
|
|
5
|
+
import { DiskFlagLabel, DiskStatusLabel } from '../DiskStatus/DiskStatus';
|
|
6
|
+
import { vDiskStatusKeyset as i18n } from './i18n';
|
|
7
|
+
import { getVDiskStateLabel } from './statuses';
|
|
8
|
+
export function VDiskStateLabel({ state, size }) {
|
|
9
|
+
return _jsx(DiskStatusLabel, { ...getVDiskStateLabel({ VDiskState: state }), size: size });
|
|
10
|
+
}
|
|
11
|
+
export function VDiskDonorLabel({ donorMode, size, }) {
|
|
12
|
+
return donorMode ? (_jsx(DiskStatusLabel, { value: i18n('label_donor'), ...VDISK_LABEL_CONFIG.donor, size: size })) : null;
|
|
13
|
+
}
|
|
14
|
+
export function VDiskFrontQueuesLabel({ flag }) {
|
|
15
|
+
return (_jsx(DiskFlagLabel, { flag: flag, icon: calculateFrontQueuesIcon({ FrontQueues: flag || EFlag.Grey }) }));
|
|
16
|
+
}
|
|
17
|
+
export function VDiskCompactionRankLabel({ flag, rank }) {
|
|
18
|
+
return (_jsx(DiskFlagLabel, { flag: flag, title: i18n(rank === 'fresh' ? 'label_fresh' : 'label_level') }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=VDiskStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VDiskStatus.js","sourceRoot":"","sources":["../../../src/components/VDiskStatus/VDiskStatus.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,wBAAwB,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAC,iBAAiB,IAAI,IAAI,EAAC,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAE9C,MAAM,UAAU,eAAe,CAAC,EAAC,KAAK,EAAE,IAAI,EAAmD;IAC3F,OAAO,KAAC,eAAe,OAAK,kBAAkB,CAAC,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC5B,SAAS,EACT,IAAI,GAC2C;IAC/C,OAAO,SAAS,CAAC,CAAC,CAAC,CACf,KAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,CAC5F,CAAC,CAAC,CAAC,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAC,IAAI,EAAiB;IACxD,OAAO,CACH,KAAC,aAAa,IACV,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,wBAAwB,CAAC,EAAC,WAAW,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,EAAC,CAAC,GACnE,CACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,EAAC,IAAI,EAAE,IAAI,EAA0C;IAC1F,OAAO,CACH,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,GAAI,CAC/F,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@use '../../styles/mixins';
|
|
2
|
+
|
|
3
|
+
.ydb-vdisk-status {
|
|
4
|
+
&__replication-progress {
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
min-height: 24px;
|
|
7
|
+
padding: 0 10px;
|
|
8
|
+
|
|
9
|
+
color: var(--g-color-text-info-heavy);
|
|
10
|
+
border-radius: var(--g-border-radius-xs);
|
|
11
|
+
background-color: var(--g-color-base-selection);
|
|
12
|
+
@include mixins.text-body-short();
|
|
13
|
+
|
|
14
|
+
&_size_xs {
|
|
15
|
+
min-height: 20px;
|
|
16
|
+
padding: 2px 6px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
> span {
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__progress-bar {
|
|
25
|
+
--g-progress-empty-background-color: var(--g-color-base-info-light);
|
|
26
|
+
--g-progress-filled-background-color: var(--g-color-base-info-heavy);
|
|
27
|
+
|
|
28
|
+
flex-shrink: 0;
|
|
29
|
+
|
|
30
|
+
width: 103px;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"label_donor": "Donor",
|
|
3
|
+
"label_fresh": "Fresh Rank",
|
|
4
|
+
"label_level": "Level Rank",
|
|
5
|
+
"label_replicated": "Replicated",
|
|
6
|
+
"label_replication": "Replication",
|
|
7
|
+
"label_replication-progress": "Replication progress",
|
|
8
|
+
"value_ok": "Ok",
|
|
9
|
+
"value_in-progress": "In progress",
|
|
10
|
+
"value_initial": "Initial",
|
|
11
|
+
"value_sync-guid-recovery": "Sync Guid Recovery",
|
|
12
|
+
"value_pdisk-error": "PDisk Error",
|
|
13
|
+
"value_local-recovery-error": "Local Recovery Error",
|
|
14
|
+
"value_sync-guid-recovery-error": "Sync Guid Recovery Error",
|
|
15
|
+
"value_no-data": "No data",
|
|
16
|
+
"value_waiting-for-token": "Waiting for token",
|
|
17
|
+
"value_phantoms-only": "Phantoms only",
|
|
18
|
+
"label_not-replicated": "Not replicated",
|
|
19
|
+
"value_no-detailed-status": "No detailed status",
|
|
20
|
+
"context_state-ok": "The VDisk is operating normally",
|
|
21
|
+
"context_state-initial": "The VDisk is starting",
|
|
22
|
+
"context_state-sync-guid-recovery": "The VDisk is synchronizing with other VDisks of the group",
|
|
23
|
+
"context_state-pdisk-error": "The VDisk cannot operate because its underlying PDisk reported an error",
|
|
24
|
+
"context_state-local-recovery-error": "The VDisk failed to restore its state from the PDisk",
|
|
25
|
+
"context_state-sync-guid-recovery-error": "The VDisk failed to complete synchronization identity with other VDisks in the group",
|
|
26
|
+
"context_state-no-data": "The VDisk state is unknown",
|
|
27
|
+
"context_replicated": "The VDisk is fully replicated",
|
|
28
|
+
"context_not-replicated": "The VDisk isn't replicated",
|
|
29
|
+
"context_replication-in-progress": "Replication is in progress, data is being transferred to VDisk",
|
|
30
|
+
"context_replication-waiting-for-token": "Replication is waiting for a token from the broker",
|
|
31
|
+
"context_replication-phantoms-only": "Replication cannot finish due to phantom blobs",
|
|
32
|
+
"context_remaining": "{{duration}} left"
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const vDiskStatusKeyset: (key: "value_ok" | "value_no-data" | "value_initial" | "context_state-initial" | "label_donor" | "label_fresh" | "label_level" | "label_replicated" | "label_replication" | "label_replication-progress" | "value_in-progress" | "value_sync-guid-recovery" | "value_pdisk-error" | "value_local-recovery-error" | "value_sync-guid-recovery-error" | "value_waiting-for-token" | "value_phantoms-only" | "label_not-replicated" | "value_no-detailed-status" | "context_state-ok" | "context_state-sync-guid-recovery" | "context_state-pdisk-error" | "context_state-local-recovery-error" | "context_state-sync-guid-recovery-error" | "context_state-no-data" | "context_replicated" | "context_not-replicated" | "context_replication-in-progress" | "context_replication-waiting-for-token" | "context_replication-phantoms-only" | "context_remaining", params?: import("@gravity-ui/i18n").Params) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/VDiskStatus/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/VDiskStatus/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,eAAe,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PreparedVDisk } from '../../utils/disks/types';
|
|
2
|
+
import type { DiskStatusLabelData } from '../DiskStatus/DiskStatus';
|
|
3
|
+
export declare function getVDiskStateLabel(data: PreparedVDisk): DiskStatusLabelData;
|
|
4
|
+
export declare function getVDiskReplicationLabel(data: PreparedVDisk): DiskStatusLabelData | undefined;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ArrowsRotateLeft, ArrowsRotateLeftSlash, Check, CirclePause, CircleQuestion, CircleStop, } from '@gravity-ui/icons';
|
|
2
|
+
import { EVDiskDetailedReplicationStatus, EVDiskState } from '../../types/api/vdisk';
|
|
3
|
+
import { NOT_AVAILABLE_SEVERITY, NUMERIC_SEVERITY_TO_LABEL_VIEW, VDISK_STATE_SEVERITY_FOR_STATE_MODE, } from '../../utils/disks/constants';
|
|
4
|
+
import { calculateStateIcon } from '../../utils/disks/iconCalculators';
|
|
5
|
+
import { parseOptionalNonNegativeNumber } from '../../utils/utils';
|
|
6
|
+
import { vDiskStatusKeyset as i18n } from './i18n';
|
|
7
|
+
export function getVDiskStateLabel(data) {
|
|
8
|
+
var _a;
|
|
9
|
+
const state = data.VDiskState;
|
|
10
|
+
const severity = state
|
|
11
|
+
? ((_a = VDISK_STATE_SEVERITY_FOR_STATE_MODE[state]) !== null && _a !== void 0 ? _a : NOT_AVAILABLE_SEVERITY)
|
|
12
|
+
: NOT_AVAILABLE_SEVERITY;
|
|
13
|
+
if (!state || severity === NOT_AVAILABLE_SEVERITY) {
|
|
14
|
+
return {
|
|
15
|
+
value: i18n('value_no-data'),
|
|
16
|
+
theme: 'unknown',
|
|
17
|
+
icon: CircleQuestion,
|
|
18
|
+
tooltip: i18n('context_state-no-data'),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const labels = {
|
|
22
|
+
[EVDiskState.OK]: {
|
|
23
|
+
value: i18n('value_ok'),
|
|
24
|
+
tooltip: i18n('context_state-ok'),
|
|
25
|
+
},
|
|
26
|
+
[EVDiskState.Initial]: {
|
|
27
|
+
value: i18n('value_initial'),
|
|
28
|
+
tooltip: i18n('context_state-initial'),
|
|
29
|
+
},
|
|
30
|
+
[EVDiskState.SyncGuidRecovery]: {
|
|
31
|
+
value: i18n('value_sync-guid-recovery'),
|
|
32
|
+
tooltip: i18n('context_state-sync-guid-recovery'),
|
|
33
|
+
},
|
|
34
|
+
[EVDiskState.PDiskError]: {
|
|
35
|
+
value: i18n('value_pdisk-error'),
|
|
36
|
+
tooltip: i18n('context_state-pdisk-error'),
|
|
37
|
+
},
|
|
38
|
+
[EVDiskState.LocalRecoveryError]: {
|
|
39
|
+
value: i18n('value_local-recovery-error'),
|
|
40
|
+
tooltip: i18n('context_state-local-recovery-error'),
|
|
41
|
+
},
|
|
42
|
+
[EVDiskState.SyncGuidRecoveryError]: {
|
|
43
|
+
value: i18n('value_sync-guid-recovery-error'),
|
|
44
|
+
tooltip: i18n('context_state-sync-guid-recovery-error'),
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
const labelView = NUMERIC_SEVERITY_TO_LABEL_VIEW[severity];
|
|
48
|
+
return {
|
|
49
|
+
...labels[state],
|
|
50
|
+
theme: labelView.theme,
|
|
51
|
+
icon: state === EVDiskState.OK ? Check : calculateStateIcon(data),
|
|
52
|
+
dangerHeavy: Boolean(labelView.dangerHeavy),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function getVDiskReplicationLabel(data) {
|
|
56
|
+
switch (data.DetailedReplicationStatus) {
|
|
57
|
+
case EVDiskDetailedReplicationStatus.Replicated:
|
|
58
|
+
return replicatedLabel();
|
|
59
|
+
case EVDiskDetailedReplicationStatus.InProgress:
|
|
60
|
+
return {
|
|
61
|
+
title: i18n('label_replication'),
|
|
62
|
+
value: i18n('value_in-progress'),
|
|
63
|
+
theme: 'info',
|
|
64
|
+
icon: ArrowsRotateLeft,
|
|
65
|
+
tooltip: i18n('context_replication-in-progress'),
|
|
66
|
+
};
|
|
67
|
+
case EVDiskDetailedReplicationStatus.WaitingForToken:
|
|
68
|
+
return {
|
|
69
|
+
title: i18n('label_replication'),
|
|
70
|
+
value: i18n('value_waiting-for-token'),
|
|
71
|
+
theme: 'info',
|
|
72
|
+
icon: CirclePause,
|
|
73
|
+
tooltip: i18n('context_replication-waiting-for-token'),
|
|
74
|
+
};
|
|
75
|
+
case EVDiskDetailedReplicationStatus.PhantomsOnly:
|
|
76
|
+
return {
|
|
77
|
+
title: i18n('label_replication'),
|
|
78
|
+
value: i18n('value_phantoms-only'),
|
|
79
|
+
theme: 'info',
|
|
80
|
+
icon: CircleStop,
|
|
81
|
+
tooltip: i18n('context_replication-phantoms-only'),
|
|
82
|
+
};
|
|
83
|
+
default:
|
|
84
|
+
if (data.DetailedReplicationStatus) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
if (data.Replicated === true) {
|
|
88
|
+
return replicatedLabel();
|
|
89
|
+
}
|
|
90
|
+
if (data.Replicated === false) {
|
|
91
|
+
const progress = parseOptionalNonNegativeNumber(data.ReplicationProgress);
|
|
92
|
+
const seconds = parseOptionalNonNegativeNumber(data.ReplicationSecondsRemaining);
|
|
93
|
+
if ((progress !== undefined && progress <= 1) || seconds !== undefined) {
|
|
94
|
+
return {
|
|
95
|
+
title: i18n('label_replication'),
|
|
96
|
+
value: i18n('value_no-detailed-status'),
|
|
97
|
+
theme: 'info',
|
|
98
|
+
icon: ArrowsRotateLeft,
|
|
99
|
+
tooltip: i18n('context_not-replicated'),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
value: i18n('label_not-replicated'),
|
|
104
|
+
theme: 'normal',
|
|
105
|
+
icon: ArrowsRotateLeftSlash,
|
|
106
|
+
tooltip: i18n('context_not-replicated'),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function replicatedLabel() {
|
|
113
|
+
return {
|
|
114
|
+
value: i18n('label_replicated'),
|
|
115
|
+
theme: 'success',
|
|
116
|
+
icon: Check,
|
|
117
|
+
tooltip: i18n('context_replicated'),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=statuses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statuses.js","sourceRoot":"","sources":["../../../src/components/VDiskStatus/statuses.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
"field_normalized-occupancy": "Normalized Occupancy",
|
|
6
6
|
"field_capacity-alert": "Capacity Alert",
|
|
7
7
|
"value_implicit-unit-count": "1 (implicit)",
|
|
8
|
-
"context_pdisk-usage": "
|
|
9
|
-
"context_vdisk-slot-usage": "Percentage of VDisk space
|
|
10
|
-
"context_vdisk-raw-usage": "Percentage of VDisk space
|
|
8
|
+
"context_pdisk-usage": "The share of PDisk chunk space used by the residing VDisks. Doesn't include SysLog and CommonLog usage",
|
|
9
|
+
"context_vdisk-slot-usage": "Percentage of used VDisk space relative to the first low-space warning. Can exceed 100%.",
|
|
10
|
+
"context_vdisk-raw-usage": "Percentage of used VDisk space relative to its fair share on the PDisk. Can exceed 100%.",
|
|
11
11
|
"context_normalized-occupancy": "Internal score used for gently handling low-space cases.",
|
|
12
|
-
"context_capacity-alert": "
|
|
12
|
+
"context_capacity-alert": "The named status used for the graceful low space handling.",
|
|
13
13
|
"context_group-size-in-units": "Relative capacity of this group (1 = single, 2 = double, …). Affects VDisk space quota on the PDisk.",
|
|
14
14
|
"context_slot-size-in-units": "Relative size of this PDisk in the cluster (1 = single, 2 = double, …). Same units as Group Size In Units."
|
|
15
15
|
}
|
|
@@ -5,6 +5,7 @@ import { selectAllHealthcheckInfo, selectCheckStatus, } from '../../store/reduce
|
|
|
5
5
|
import { useTypedSelector } from '../../utils/hooks';
|
|
6
6
|
import { Healthcheck } from '../Tenant/Healthcheck/Healthcheck';
|
|
7
7
|
import { HealthcheckDrawer } from '../Tenant/Healthcheck/components/HealthcheckDrawer';
|
|
8
|
+
import { getDatabaseHealthcheckAssistantTarget } from '../Tenant/Healthcheck/utils';
|
|
8
9
|
import i18n from './i18n';
|
|
9
10
|
export function useClusterHealthcheckQueryParams() {
|
|
10
11
|
const [{ showHealthcheck, issuesFilter, view, healthcheckIssue, healthcheckLeaf }, setQueryParams,] = useQueryParams({
|
|
@@ -104,6 +105,10 @@ export function ClusterDrawerHealthcheck({ children, database, clusterName, }) {
|
|
|
104
105
|
const renderDrawerContent = React.useCallback(() => {
|
|
105
106
|
return (_jsx(Healthcheck, { database: database, clusterName: clusterName, scope: "cluster", targetIssueId: healthcheckIssue !== null && healthcheckIssue !== void 0 ? healthcheckIssue : undefined, targetLeafIssueId: healthcheckLeaf !== null && healthcheckLeaf !== void 0 ? healthcheckLeaf : undefined, targetLeafIssueRef: handleTargetLeafIssueRef }));
|
|
106
107
|
}, [clusterName, database, handleTargetLeafIssueRef, healthcheckIssue, healthcheckLeaf]);
|
|
107
|
-
return (_jsx(HealthcheckDrawer, {
|
|
108
|
+
return (_jsx(HealthcheckDrawer, { target: getDatabaseHealthcheckAssistantTarget({
|
|
109
|
+
database,
|
|
110
|
+
clusterName,
|
|
111
|
+
scope: 'cluster',
|
|
112
|
+
}), isDrawerVisible: Boolean(showHealthcheck) && Boolean(database), onCloseDrawer: handleCloseDrawer, onTransitionInComplete: healthcheckIssue && healthcheckLeaf ? handleTransitionInComplete : undefined, renderDrawerContent: renderDrawerContent, drawerId: "cluster-healthcheck-details", storageKey: "cluster-healthcheck-details-drawer-width", title: i18n('title_healthcheck-dashboard'), status: healthcheckStatus, healthcheckData: healthcheckData, downloadFilePrefix: `${database}-healthcheck`, downloadTooltip: i18n('action_download-healthcheck'), isDownloadDisabled: !healthcheckData, children: children }));
|
|
108
113
|
}
|
|
109
114
|
//# sourceMappingURL=ClusterDrawerHealthcheck.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Cluster/ClusterDrawerHealthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EACH,wBAAwB,EACxB,iBAAiB,GACpB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"ClusterDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Cluster/ClusterDrawerHealthcheck.tsx"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,6 @@ export function ClusterDrawerHealthcheck({ clusterName, isVisible, onClose, chil
|
|
|
21
21
|
}
|
|
22
22
|
return _jsx(Healthcheck, { clusterName: clusterName });
|
|
23
23
|
}, [clusterName]);
|
|
24
|
-
return (_jsx(HealthcheckDrawer, { isDrawerVisible: isVisible && Boolean(clusterName), onCloseDrawer: handleCloseDrawer, renderDrawerContent: renderDrawerContent, drawerId: "cluster-healthcheck-details", storageKey: "cluster-healthcheck-details-drawer-width", title: `${tenantI18n('title_healthcheck-dashboard')}${clusterName ? `: ${clusterName}` : ''}`, status: healthcheckStatus, healthcheckData: healthcheckData, downloadFilePrefix: `${clusterName}-cluster-healthcheck`, downloadTooltip: tenantI18n('action_download-healthcheck'), isDownloadDisabled: !healthcheckData, children: children }));
|
|
24
|
+
return (_jsx(HealthcheckDrawer, { target: clusterName ? { scope: 'cluster', request: { clusterName } } : undefined, isDrawerVisible: isVisible && Boolean(clusterName), onCloseDrawer: handleCloseDrawer, renderDrawerContent: renderDrawerContent, drawerId: "cluster-healthcheck-details", storageKey: "cluster-healthcheck-details-drawer-width", title: `${tenantI18n('title_healthcheck-dashboard')}${clusterName ? `: ${clusterName}` : ''}`, status: healthcheckStatus, healthcheckData: healthcheckData, downloadFilePrefix: `${clusterName}-cluster-healthcheck`, downloadTooltip: tenantI18n('action_download-healthcheck'), isDownloadDisabled: !healthcheckData, children: children }));
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=ClusterDrawerHealthcheck.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Clusters/ClusterDrawerHealthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,+BAA+B,EAC/B,wBAAwB,GAC3B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,oDAAoD,CAAC;AACrF,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AASpE,MAAM,UAAU,wBAAwB,CAAC,EACrC,WAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,GACoB;IAC5B,MAAM,EAAC,wBAAwB,EAAE,2BAA2B,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEvF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,wBAAwB,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CACrD,CAAC;IAEF,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,+BAA+B,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAC5D,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,OAAO,EAAE,CAAC;QACV,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACpC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAErE,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAC,WAAW,IAAC,WAAW,EAAE,WAAW,GAAI,CAAC;IACrD,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACH,KAAC,iBAAiB,IACd,eAAe,EAAE,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,EAClD,aAAa,EAAE,iBAAiB,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAC,6BAA6B,EACtC,UAAU,EAAC,0CAA0C,EACrD,KAAK,EAAE,GAAG,UAAU,CAAC,6BAA6B,CAAC,GAC/C,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EACvC,EAAE,EACF,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,GAAG,WAAW,sBAAsB,EACxD,eAAe,EAAE,UAAU,CAAC,6BAA6B,CAAC,EAC1D,kBAAkB,EAAE,CAAC,eAAe,YAEnC,QAAQ,GACO,CACvB,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"ClusterDrawerHealthcheck.js","sourceRoot":"","sources":["../../../src/containers/Clusters/ClusterDrawerHealthcheck.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,+BAA+B,EAC/B,wBAAwB,GAC3B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,oDAAoD,CAAC;AACrF,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AASpE,MAAM,UAAU,wBAAwB,CAAC,EACrC,WAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,GACoB;IAC5B,MAAM,EAAC,wBAAwB,EAAE,2BAA2B,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEvF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,wBAAwB,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CACrD,CAAC;IAEF,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,+BAA+B,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAC5D,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,OAAO,EAAE,CAAC;QACV,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACpC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAErE,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAC,WAAW,IAAC,WAAW,EAAE,WAAW,GAAI,CAAC;IACrD,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACH,KAAC,iBAAiB,IACd,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAC,WAAW,EAAC,EAAC,CAAC,CAAC,CAAC,SAAS,EAC5E,eAAe,EAAE,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,EAClD,aAAa,EAAE,iBAAiB,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAC,6BAA6B,EACtC,UAAU,EAAC,0CAA0C,EACrD,KAAK,EAAE,GAAG,UAAU,CAAC,6BAA6B,CAAC,GAC/C,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EACvC,EAAE,EACF,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,GAAG,WAAW,sBAAsB,EACxD,eAAe,EAAE,UAAU,CAAC,6BAA6B,CAAC,EAC1D,kBAAkB,EAAE,CAAC,eAAe,YAEnC,QAAQ,GACO,CACvB,CAAC;AACN,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { HeaderBreadcrumbs } from './HeaderBreadcrumbs';
|
|
3
3
|
import { HeaderLeftControls } from './HeaderLeftControls';
|
|
4
4
|
import { HeaderRightControls } from './HeaderRightControls';
|
|
5
|
+
import { StorageGroupLeftControls } from './StorageGroupLeftControls';
|
|
5
6
|
import { b } from './constants';
|
|
6
7
|
import { useHeaderBreadcrumbs } from './hooks/useHeaderBreadcrumbs';
|
|
7
8
|
import { useHeaderData } from './hooks/useHeaderData';
|
|
@@ -33,7 +34,12 @@ export function Header() {
|
|
|
33
34
|
if (!metaCapabilitiesLoaded) {
|
|
34
35
|
return null;
|
|
35
36
|
}
|
|
36
|
-
const
|
|
37
|
-
|
|
37
|
+
const renderLeftControls = () => {
|
|
38
|
+
if (page === 'storageGroup') {
|
|
39
|
+
return _jsx(StorageGroupLeftControls, {});
|
|
40
|
+
}
|
|
41
|
+
return database && isDatabasePage && isV2NavigationEnabled ? (_jsx(HeaderLeftControls, { database: database, databaseData: databaseData, isDatabaseDataLoading: isDatabaseDataLoading })) : null;
|
|
42
|
+
};
|
|
43
|
+
return (_jsxs("header", { className: b(), children: [_jsx(HeaderBreadcrumbs, { breadcrumbItems: breadcrumbItems, endContent: renderLeftControls() }), _jsx(HeaderRightControls, { clusterName: clusterName, database: database, databaseData: databaseData, isDatabasePage: isDatabasePage, isClusterPage: isClusterPage, isHomePage: isHomePage, isClustersHomePage: isClustersHomePage, isDatabaseDataLoading: isDatabaseDataLoading, isAddClusterAvailable: isAddClusterAvailable, isV2NavigationEnabled: isV2NavigationEnabled, isViewerUser: isViewerUser, prepareTenantBackend: prepareTenantBackend, clusterLinks: clusterLinks, databaseLinks: databaseLinks, handleEditCluster: handleEditCluster, handleDeleteCluster: handleDeleteCluster })] }));
|
|
38
44
|
}
|
|
39
45
|
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/containers/Header/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,CAAC,EAAC,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAElE,OAAO,eAAe,CAAC;AAEvB,MAAM,UAAU,MAAM;IAClB,MAAM,EACF,sBAAsB,EACtB,IAAI,EACJ,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,kBAAkB,GACrB,GAAG,oBAAoB,EAAE,CAAC;IAE3B,MAAM,EACF,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,oBAAoB,GACvB,GAAG,aAAa,CAAC;QACd,sBAAsB;QACtB,QAAQ;QACR,WAAW;QACX,cAAc;QACd,kBAAkB;KACrB,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,oBAAoB,CAAC;QACzC,IAAI;QACJ,sBAAsB;QACtB,iBAAiB;QACjB,YAAY;QACZ,qBAAqB;QACrB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,sBAAsB;QACtB,YAAY;QACZ,kBAAkB;QAClB,mBAAmB;KACtB,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/containers/Header/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,CAAC,EAAC,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAElE,OAAO,eAAe,CAAC;AAEvB,MAAM,UAAU,MAAM;IAClB,MAAM,EACF,sBAAsB,EACtB,IAAI,EACJ,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,kBAAkB,GACrB,GAAG,oBAAoB,EAAE,CAAC;IAE3B,MAAM,EACF,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,oBAAoB,GACvB,GAAG,aAAa,CAAC;QACd,sBAAsB;QACtB,QAAQ;QACR,WAAW;QACX,cAAc;QACd,kBAAkB;KACrB,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,oBAAoB,CAAC;QACzC,IAAI;QACJ,sBAAsB;QACtB,iBAAiB;QACjB,YAAY;QACZ,qBAAqB;QACrB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,sBAAsB;QACtB,YAAY;QACZ,kBAAkB;QAClB,mBAAmB;KACtB,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC5B,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC1B,OAAO,KAAC,wBAAwB,KAAG,CAAC;QACxC,CAAC;QACD,OAAO,QAAQ,IAAI,cAAc,IAAI,qBAAqB,CAAC,CAAC,CAAC,CACzD,KAAC,kBAAkB,IACf,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,qBAAqB,GAC9C,CACL,CAAC,CAAC,CAAC,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,OAAO,CACH,kBAAQ,SAAS,EAAE,CAAC,EAAE,aAClB,KAAC,iBAAiB,IACd,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,kBAAkB,EAAE,GAClC,EAEF,KAAC,mBAAmB,IAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,EAC5C,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,mBAAmB,GAC1C,IACG,CACZ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function StorageGroupLeftControls(): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ClipboardButton, Flex } from '@gravity-ui/uikit';
|
|
3
|
+
import { skipToken } from '@reduxjs/toolkit/query';
|
|
4
|
+
import { StringParam, useQueryParams } from 'use-query-params';
|
|
5
|
+
import { storageApi } from '../../store/reducers/storage/storage';
|
|
6
|
+
import { valueIsDefined } from '../../utils';
|
|
7
|
+
import { useDatabaseFromQuery } from '../../utils/hooks/useDatabaseFromQuery';
|
|
8
|
+
import { StorageGroupStateLabel } from '../Storage/StorageGroupStateLabel';
|
|
9
|
+
import { b } from './constants';
|
|
10
|
+
import { headerKeyset } from './i18n';
|
|
11
|
+
export function StorageGroupLeftControls() {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const [{ groupId }] = useQueryParams({ groupId: StringParam });
|
|
14
|
+
const database = useDatabaseFromQuery();
|
|
15
|
+
const { currentData } = storageApi.endpoints.getStorageGroupsInfo.useQueryState(valueIsDefined(groupId)
|
|
16
|
+
? { groupId, with: 'all', fieldsRequired: 'all', database }
|
|
17
|
+
: skipToken);
|
|
18
|
+
if (!groupId) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return (_jsxs(Flex, { alignItems: "center", gap: 2, className: b('left-controls'), children: [_jsx(ClipboardButton, { text: groupId, view: "flat-secondary", size: "s", "aria-label": headerKeyset('action_copy-group-id-from-breadcrumb'), tooltipInitialText: headerKeyset('action_copy-group-id') }), _jsx(StorageGroupStateLabel, { state: (_b = (_a = currentData === null || currentData === void 0 ? void 0 : currentData.groups) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.State, size: "xs" })] }));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=StorageGroupLeftControls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageGroupLeftControls.js","sourceRoot":"","sources":["../../../src/containers/Header/StorageGroupLeftControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAC,UAAU,EAAC,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAC,CAAC,EAAC,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAEpC,MAAM,UAAU,wBAAwB;;IACpC,MAAM,CAAC,EAAC,OAAO,EAAC,CAAC,GAAG,cAAc,CAAC,EAAC,OAAO,EAAE,WAAW,EAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACxC,MAAM,EAAC,WAAW,EAAC,GAAG,UAAU,CAAC,SAAS,CAAC,oBAAoB,CAAC,aAAa,CACzE,cAAc,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAC;QACzD,CAAC,CAAC,SAAS,CAClB,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,MAAC,IAAI,IAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,aAC3D,KAAC,eAAe,IACZ,IAAI,EAAE,OAAO,EACb,IAAI,EAAC,gBAAgB,EACrB,IAAI,EAAC,GAAG,gBACI,YAAY,CAAC,sCAAsC,CAAC,EAChE,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAC1D,EACF,KAAC,sBAAsB,IAAC,KAAK,EAAE,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,0CAAG,CAAC,CAAC,0CAAE,KAAK,EAAE,IAAI,EAAC,IAAI,GAAG,IACzE,CACV,CAAC;AACN,CAAC"}
|
|
@@ -22,5 +22,7 @@
|
|
|
22
22
|
"description_developer-ui": "Developer interface with a full set\nof administrative functions",
|
|
23
23
|
"description_connect-to-db": "Connect to database",
|
|
24
24
|
"title_monitoring": "Open in {{system}}",
|
|
25
|
-
"action_copy-path": "Copy path"
|
|
25
|
+
"action_copy-path": "Copy path",
|
|
26
|
+
"action_copy-group-id": "Copy Storage Group ID",
|
|
27
|
+
"action_copy-group-id-from-breadcrumb": "Copy Storage Group ID from breadcrumb"
|
|
26
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const headerKeyset: (key: "title_monitoring" | "breadcrumbs.clusters" | "breadcrumbs.databases" | "breadcrumbs.tenant" | "breadcrumbs.node" | "breadcrumbs.pDisk" | "breadcrumbs.vDisk" | "breadcrumbs.tablet" | "breadcrumbs.tablets" | "breadcrumbs.storageGroup" | "title_connect" | "title_add-cluster" | "action_edit-db" | "action_delete-db" | "action_edit-cluster" | "action_delete-cluster" | "action_connect-to-db" | "action_go-to-shared-db" | "status_loading-shared-db" | "action_manage" | "title_developer-ui" | "description_developer-ui" | "description_connect-to-db" | "action_copy-path", params?: import("@gravity-ui/i18n").Params) => string;
|
|
1
|
+
export declare const headerKeyset: (key: "title_monitoring" | "breadcrumbs.clusters" | "breadcrumbs.databases" | "breadcrumbs.tenant" | "breadcrumbs.node" | "breadcrumbs.pDisk" | "breadcrumbs.vDisk" | "breadcrumbs.tablet" | "breadcrumbs.tablets" | "breadcrumbs.storageGroup" | "title_connect" | "title_add-cluster" | "action_edit-db" | "action_delete-db" | "action_edit-cluster" | "action_delete-cluster" | "action_connect-to-db" | "action_go-to-shared-db" | "status_loading-shared-db" | "action_manage" | "title_developer-ui" | "description_developer-ui" | "description_connect-to-db" | "action_copy-path" | "action_copy-group-id" | "action_copy-group-id-from-breadcrumb", params?: import("@gravity-ui/i18n").Params) => string;
|
|
@@ -18,7 +18,7 @@ export declare const COLUMNS_TITLES: {
|
|
|
18
18
|
readonly duration: string;
|
|
19
19
|
readonly state: string;
|
|
20
20
|
};
|
|
21
|
-
export declare const BASE_COLUMNS: ("status" | "id" | "
|
|
21
|
+
export declare const BASE_COLUMNS: ("status" | "id" | "duration" | "created_by" | "create_time" | "end_time")[];
|
|
22
22
|
export declare const OPERATION_KINDS: {
|
|
23
23
|
value: OperationKind;
|
|
24
24
|
content: string;
|
|
@@ -4,7 +4,7 @@ import { DiskStateProgressBar } from '../../../components/DiskStateProgressBar/D
|
|
|
4
4
|
import { HoverPopup } from '../../../components/HoverPopup/HoverPopup';
|
|
5
5
|
import { InternalLink } from '../../../components/InternalLink';
|
|
6
6
|
import { ProgressViewer } from '../../../components/ProgressViewer/ProgressViewer';
|
|
7
|
-
import {
|
|
7
|
+
import { VDiskPopup } from '../../../components/VDiskPopup/VDiskPopup';
|
|
8
8
|
import { YDBDefinitionList } from '../../../components/YDBDefinitionList/YDBDefinitionList';
|
|
9
9
|
import { useVDiskPagePath } from '../../../routes';
|
|
10
10
|
import { valueIsDefined } from '../../../utils';
|
|
@@ -51,7 +51,7 @@ export function PDiskSpaceDistribution({ data }) {
|
|
|
51
51
|
}, [SlotItems]);
|
|
52
52
|
const renderSlots = () => {
|
|
53
53
|
return SlotItems === null || SlotItems === void 0 ? void 0 : SlotItems.map((item, index) => {
|
|
54
|
-
return (_jsx(Slot, { item: item, minNonLogTotal: minNonLogTotal, pDiskId: PDiskId, nodeId: NodeId, getVDiskPagePath: getVDiskPagePath }, index));
|
|
54
|
+
return (_jsx(Slot, { item: item, minNonLogTotal: minNonLogTotal, pDiskId: PDiskId, nodeId: NodeId, nodeData: { Host: data.NodeHost, DC: data.NodeDC, Rack: data.NodeRack }, getVDiskPagePath: getVDiskPagePath }, index));
|
|
55
55
|
});
|
|
56
56
|
};
|
|
57
57
|
if (!(SlotItems === null || SlotItems === void 0 ? void 0 : SlotItems.length)) {
|
|
@@ -76,7 +76,7 @@ function getSlotHeight(item, minNonLogTotal) {
|
|
|
76
76
|
const multiplier = Math.min(totalValue / minNonLogTotal, MAX_SLOT_HEIGHT_MULTIPLIER);
|
|
77
77
|
return multiplier * BASE_SLOT_HEIGHT;
|
|
78
78
|
}
|
|
79
|
-
function Slot({ item, minNonLogTotal, nodeId, getVDiskPagePath, }) {
|
|
79
|
+
function Slot({ item, minNonLogTotal, nodeId, nodeData, getVDiskPagePath, }) {
|
|
80
80
|
const renderContent = () => {
|
|
81
81
|
if (isVDiskSlot(item)) {
|
|
82
82
|
const vDiskPagePath = getVDiskPagePath === null || getVDiskPagePath === void 0 ? void 0 : getVDiskPagePath({
|
|
@@ -85,7 +85,7 @@ function Slot({ item, minNonLogTotal, nodeId, getVDiskPagePath, }) {
|
|
|
85
85
|
});
|
|
86
86
|
const isReplicatingColor = item.Severity === DISK_COLOR_STATE_TO_NUMERIC_SEVERITY.Blue;
|
|
87
87
|
const isDonor = item.SlotData.DonorMode;
|
|
88
|
-
return (_jsx(HoverPopup, { renderPopupContent: () => _jsx(
|
|
88
|
+
return (_jsx(HoverPopup, { renderPopupContent: ({ onClose }) => (_jsx(VDiskPopup, { data: item.SlotData, nodeData: nodeData, onClose: onClose, view: "space-distribution" })), contentClassName: b('vdisk-popup'), placement: ['right', 'top'], children: _jsx(InternalLink, { to: vDiskPagePath, children: _jsx(DiskStateProgressBar, { className: b('slot'), tone: getDiskBarTone({
|
|
89
89
|
severity: item.Severity,
|
|
90
90
|
isDonor,
|
|
91
91
|
}), allocation: item.UsagePercent, striped: isReplicatingColor || isDonor, content: _jsx(SlotContent, { id: item.Id, title: item.Title, used: item.Used, total: item.Total }) }) }) }));
|