ydb-embedded-ui 6.18.0 → 6.20.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/ComponentsProvider/ComponentsProvider.d.ts +2 -2
- package/dist/components/CriticalActionDialog/CriticalActionDialog.d.ts +2 -1
- package/dist/components/CriticalActionDialog/CriticalActionDialog.js +11 -3
- package/dist/components/CriticalActionDialog/CriticalActionDialog.js.map +1 -1
- package/dist/components/CriticalActionDialog/i18n/en.json +2 -1
- package/dist/components/CriticalActionDialog/i18n/index.d.ts +1 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +7 -36
- package/dist/components/GroupInfo/GroupInfo.js +3 -3
- package/dist/components/MetricChart/reducer.d.ts +2 -2
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/PaginatedTable/PaginatedTable.scss +4 -0
- package/dist/components/PaginatedTable/TableChunk.js +5 -2
- package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
- package/dist/components/PaginatedTable/TableRow.js +1 -1
- package/dist/components/PaginatedTable/TableRow.js.map +1 -1
- package/dist/components/TabletsStatistic/TabletsStatistic.d.ts +2 -4
- package/dist/components/TabletsStatistic/TabletsStatistic.js.map +1 -1
- package/dist/components/Tag/Tag.d.ts +2 -1
- package/dist/components/Tag/Tag.js.map +1 -1
- package/dist/components/Tags/Tags.d.ts +2 -1
- package/dist/components/Tags/Tags.js.map +1 -1
- package/dist/containers/AppWithClusters/ExtendedNode/ExtendedNode.js +4 -2
- package/dist/containers/AppWithClusters/ExtendedNode/ExtendedNode.js.map +1 -1
- package/dist/containers/AppWithClusters/ExtendedTenant/ExtendedTenant.js +4 -3
- package/dist/containers/AppWithClusters/ExtendedTenant/ExtendedTenant.js.map +1 -1
- package/dist/containers/AppWithClusters/useClusterData.d.ts +7 -1
- package/dist/containers/AppWithClusters/useClusterData.js +8 -8
- package/dist/containers/AppWithClusters/useClusterData.js.map +1 -1
- package/dist/containers/AsideNavigation/AsideNavigation.d.ts +3 -0
- package/dist/containers/AsideNavigation/AsideNavigation.js +6 -10
- package/dist/containers/AsideNavigation/AsideNavigation.js.map +1 -1
- package/dist/containers/AsideNavigation/Navigation.js +4 -1
- package/dist/containers/AsideNavigation/Navigation.js.map +1 -1
- package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.d.ts +3 -1
- package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js +2 -4
- package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js.map +1 -1
- package/dist/containers/Cluster/Cluster.js +5 -13
- package/dist/containers/Cluster/Cluster.js.map +1 -1
- package/dist/containers/Cluster/Cluster.scss +1 -0
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +3 -112
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +7 -14
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.d.ts +7 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js +43 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js.map +1 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.scss +11 -0
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.d.ts +8 -0
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js +8 -0
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js.map +1 -0
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.scss +16 -0
- package/dist/containers/Cluster/ClusterInfo/shared.d.ts +1 -0
- package/dist/containers/Cluster/ClusterInfo/shared.js +3 -0
- package/dist/containers/Cluster/ClusterInfo/shared.js.map +1 -0
- package/dist/containers/Cluster/ClusterInfo/utils.d.ts +12 -0
- package/dist/containers/Cluster/ClusterInfo/utils.js +145 -0
- package/dist/containers/Cluster/ClusterInfo/utils.js.map +1 -1
- package/dist/containers/Cluster/i18n/en.json +7 -1
- package/dist/containers/Cluster/i18n/index.d.ts +1 -1
- package/dist/containers/Cluster/i18n/index.js +1 -2
- package/dist/containers/Cluster/i18n/index.js.map +1 -1
- package/dist/containers/Header/Header.js +3 -7
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Node/Node.js +1 -5
- package/dist/containers/Node/Node.js.map +1 -1
- package/dist/containers/Node/NodePages.js +5 -4
- package/dist/containers/Node/NodePages.js.map +1 -1
- package/dist/containers/Node/NodeStructure/NodeStructure.js +9 -3
- package/dist/containers/Node/NodeStructure/NodeStructure.js.map +1 -1
- package/dist/containers/Nodes/Nodes.js +3 -13
- package/dist/containers/Nodes/Nodes.js.map +1 -1
- package/dist/containers/PDiskPage/DecommissionButton/DecommissionButton.js +1 -1
- package/dist/containers/PDiskPage/DecommissionButton/DecommissionButton.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskGroups/PDiskGroups.js +16 -7
- package/dist/containers/PDiskPage/PDiskGroups/PDiskGroups.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskGroups/utils.d.ts +2 -0
- package/dist/containers/PDiskPage/PDiskGroups/utils.js +14 -0
- package/dist/containers/PDiskPage/PDiskGroups/utils.js.map +1 -0
- package/dist/containers/PDiskPage/PDiskPage.js +1 -1
- package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
- package/dist/containers/Storage/Storage.js +9 -9
- package/dist/containers/Storage/Storage.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.js +7 -2
- package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/columns/getStorageGroupsColumns.d.ts +1 -1
- package/dist/containers/Storage/StorageGroups/columns/getStorageGroupsColumns.js +7 -20
- package/dist/containers/Storage/StorageGroups/columns/getStorageGroupsColumns.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/getGroups.d.ts +3 -1
- package/dist/containers/Storage/StorageGroups/getGroups.js +27 -24
- package/dist/containers/Storage/StorageGroups/getGroups.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.js +1 -1
- package/dist/containers/Storage/utils/index.js +3 -4
- package/dist/containers/Storage/utils/index.js.map +1 -1
- package/dist/containers/Tablets/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Configs/Configs.d.ts +6 -0
- package/dist/containers/Tenant/Diagnostics/Configs/Configs.js +79 -0
- package/dist/containers/Tenant/Diagnostics/Configs/Configs.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/Configs/Configs.scss +8 -0
- package/dist/containers/Tenant/Diagnostics/Configs/i18n/en.json +11 -0
- package/dist/containers/Tenant/Diagnostics/Configs/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/Configs/i18n/index.js +5 -0
- package/dist/containers/Tenant/Diagnostics/Configs/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +4 -0
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +3 -0
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +5 -0
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +21 -4
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.js +7 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.js.map +1 -0
- package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js +8 -3
- package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js.map +1 -1
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.d.ts +7 -0
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.js +17 -0
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.js.map +1 -0
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.scss +9 -0
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.d.ts +5 -9
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.js +7 -7
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.js.map +1 -1
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.scss +0 -12
- package/dist/containers/Tenant/Query/ExecuteResult/TraceButton.d.ts +1 -1
- package/dist/containers/Tenant/Query/ExecuteResult/TraceButton.js +9 -24
- package/dist/containers/Tenant/Query/ExecuteResult/TraceButton.js.map +1 -1
- package/dist/containers/Tenant/Query/ExecuteResult/i18n/en.json +0 -1
- package/dist/containers/Tenant/Query/ExecuteResult/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.d.ts +4 -12
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.js +7 -5
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.js.map +1 -1
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.scss +0 -6
- package/dist/containers/Tenant/Query/ExplainResult/i18n/en.json +1 -2
- package/dist/containers/Tenant/Query/ExplainResult/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Query/Query.js +14 -2
- package/dist/containers/Tenant/Query/Query.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.d.ts +3 -2
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +18 -36
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/i18n/en.json +1 -0
- package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/utils/queryTemplates.js +1 -1
- package/dist/containers/Tenant/utils/queryTemplates.js.map +1 -1
- package/dist/containers/UserSettings/i18n/en.json +0 -2
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +0 -1
- package/dist/containers/UserSettings/settings.js +2 -12
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.d.ts +3 -4
- package/dist/containers/VDiskPage/VDiskPage.js +33 -10
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/containers/VDiskPage/utils.d.ts +2 -0
- package/dist/containers/VDiskPage/utils.js +7 -0
- package/dist/containers/VDiskPage/utils.js.map +1 -0
- package/dist/lib.d.ts +1 -0
- package/dist/lib.js +1 -0
- package/dist/lib.js.map +1 -1
- package/dist/services/api.d.ts +20 -16
- package/dist/services/api.js +62 -21
- package/dist/services/api.js.map +1 -1
- package/dist/services/parsers/parseMetaCluster.d.ts +14 -0
- package/dist/services/parsers/parseMetaCluster.js +17 -31
- package/dist/services/parsers/parseMetaCluster.js.map +1 -1
- package/dist/services/settings.d.ts +0 -1
- package/dist/services/settings.js +1 -2
- package/dist/services/settings.js.map +1 -1
- package/dist/store/configureStore.d.ts +4 -4
- package/dist/store/defaultStore.d.ts +2 -2
- package/dist/store/getUrlData.js +9 -6
- package/dist/store/getUrlData.js.map +1 -1
- package/dist/store/reducers/api.d.ts +1 -1
- package/dist/store/reducers/api.js +1 -1
- package/dist/store/reducers/api.js.map +1 -1
- package/dist/store/reducers/authentication/authentication.d.ts +4 -4
- package/dist/store/reducers/cancelQuery.d.ts +2 -2
- package/dist/store/reducers/cancelQuery.js.map +1 -1
- package/dist/store/reducers/capabilities/capabilities.d.ts +6 -6
- package/dist/store/reducers/capabilities/hooks.d.ts +2 -0
- package/dist/store/reducers/capabilities/hooks.js +8 -1
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/cluster/cluster.d.ts +230 -2
- package/dist/store/reducers/cluster/cluster.js +45 -3
- package/dist/store/reducers/cluster/cluster.js.map +1 -1
- package/dist/store/reducers/cluster/utils.d.ts +4 -1
- package/dist/store/reducers/cluster/utils.js +16 -3
- package/dist/store/reducers/cluster/utils.js.map +1 -1
- package/dist/store/reducers/clusters/clusters.d.ts +2 -2
- package/dist/store/reducers/describe.d.ts +2 -2
- package/dist/store/reducers/executeQuery.d.ts +8 -4
- package/dist/store/reducers/executeQuery.js +35 -2
- package/dist/store/reducers/executeQuery.js.map +1 -1
- package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +2 -2
- package/dist/store/reducers/explainQuery/explainQuery.d.ts +2 -3
- package/dist/store/reducers/explainQuery/explainQuery.js +23 -2
- package/dist/store/reducers/explainQuery/explainQuery.js.map +1 -1
- package/dist/store/reducers/explainQuery/types.d.ts +1 -0
- package/dist/store/reducers/explainQuery/utils.d.ts +1 -1
- package/dist/store/reducers/explainQuery/utils.js.map +1 -1
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +58 -58
- package/dist/store/reducers/heatmap.d.ts +2 -2
- package/dist/store/reducers/hotKeys/hotKeys.d.ts +2 -2
- package/dist/store/reducers/index.d.ts +3 -3
- package/dist/store/reducers/network/network.d.ts +2 -2
- package/dist/store/reducers/node/node.d.ts +3 -3
- package/dist/store/reducers/node/selectors.d.ts +1 -1
- package/dist/store/reducers/nodes/nodes.d.ts +3 -4
- package/dist/store/reducers/nodes/nodes.js +1 -17
- package/dist/store/reducers/nodes/nodes.js.map +1 -1
- package/dist/store/reducers/nodes/types.d.ts +1 -6
- package/dist/store/reducers/nodes/utils.d.ts +1 -4
- package/dist/store/reducers/nodes/utils.js +1 -41
- package/dist/store/reducers/nodes/utils.js.map +1 -1
- package/dist/store/reducers/nodesList.d.ts +3 -3
- package/dist/store/reducers/overview/overview.d.ts +2 -2
- package/dist/store/reducers/partitions/partitions.d.ts +2 -2
- package/dist/store/reducers/pdisk/pdisk.d.ts +2 -3
- package/dist/store/reducers/pdisk/pdisk.js +1 -21
- package/dist/store/reducers/pdisk/pdisk.js.map +1 -1
- package/dist/store/reducers/pdisk/utils.d.ts +0 -3
- package/dist/store/reducers/pdisk/utils.js +0 -22
- package/dist/store/reducers/pdisk/utils.js.map +1 -1
- package/dist/store/reducers/preview.d.ts +2 -2
- package/dist/store/reducers/schema/schema.d.ts +3 -3
- package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +2 -2
- package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
- package/dist/store/reducers/storage/requestStorageData.d.ts +5 -0
- package/dist/store/reducers/storage/requestStorageData.js +12 -0
- package/dist/store/reducers/storage/requestStorageData.js.map +1 -0
- package/dist/store/reducers/storage/selectors.js +1 -1
- package/dist/store/reducers/storage/storage.d.ts +6 -4
- package/dist/store/reducers/storage/storage.js +6 -6
- package/dist/store/reducers/storage/storage.js.map +1 -1
- package/dist/store/reducers/storage/types.d.ts +11 -23
- package/dist/store/reducers/storage/utils.d.ts +3 -2
- package/dist/store/reducers/storage/utils.js +52 -26
- package/dist/store/reducers/storage/utils.js.map +1 -1
- package/dist/store/reducers/tableData.d.ts +1 -1
- package/dist/store/reducers/tablet.d.ts +7 -7
- package/dist/store/reducers/tablets.d.ts +13 -13
- package/dist/store/reducers/tenant/constants.d.ts +1 -0
- package/dist/store/reducers/tenant/constants.js +1 -0
- package/dist/store/reducers/tenant/constants.js.map +1 -1
- package/dist/store/reducers/tenant/tenant.d.ts +5 -2
- package/dist/store/reducers/tenant/tenant.js +12 -0
- package/dist/store/reducers/tenant/tenant.js.map +1 -1
- package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topNodes/topNodes.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
- package/dist/store/reducers/tenants/selectors.d.ts +27 -27
- package/dist/store/reducers/tenants/tenants.d.ts +2 -2
- package/dist/store/reducers/topic.d.ts +44 -44
- package/dist/store/reducers/trace.d.ts +4 -5
- package/dist/store/reducers/trace.js +5 -8
- package/dist/store/reducers/trace.js.map +1 -1
- package/dist/store/reducers/vdisk/utils.d.ts +0 -2
- package/dist/store/reducers/vdisk/utils.js +0 -10
- package/dist/store/reducers/vdisk/utils.js.map +1 -1
- package/dist/store/reducers/vdisk/vdisk.d.ts +8 -5
- package/dist/store/reducers/vdisk/vdisk.js +17 -32
- package/dist/store/reducers/vdisk/vdisk.js.map +1 -1
- package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
- package/dist/store/reducers/viewSchema/viewSchema.js +1 -1
- package/dist/store/reducers/viewSchema/viewSchema.js.map +1 -1
- package/dist/styles/mixins.scss +45 -0
- package/dist/types/api/capabilities.d.ts +1 -1
- package/dist/types/api/cluster.d.ts +31 -1
- package/dist/types/api/cluster.js +3 -1
- package/dist/types/api/cluster.js.map +1 -1
- package/dist/types/api/featureFlags.d.ts +13 -0
- package/dist/types/api/featureFlags.js +2 -0
- package/dist/types/api/featureFlags.js.map +1 -0
- package/dist/types/api/meta.d.ts +6 -4
- package/dist/types/api/pdisk.d.ts +1 -1
- package/dist/types/api/storage.d.ts +132 -6
- package/dist/types/api/storage.js +1 -5
- package/dist/types/api/storage.js.map +1 -1
- package/dist/types/api/trace.d.ts +16 -6
- package/dist/types/api/trace.js +7 -1
- package/dist/types/api/trace.js.map +1 -1
- package/dist/types/api/vdisk.d.ts +1 -1
- package/dist/types/store/executeQuery.d.ts +25 -3
- package/dist/types/store/executeQuery.js +5 -1
- package/dist/types/store/executeQuery.js.map +1 -1
- package/dist/utils/constants.d.ts +0 -1
- package/dist/utils/constants.js +0 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/disks/helpers.d.ts +4 -1
- package/dist/utils/disks/helpers.js +7 -1
- package/dist/utils/disks/helpers.js.map +1 -1
- package/dist/utils/monaco/yql/generateSuggestions.js +8 -3
- package/dist/utils/monaco/yql/generateSuggestions.js.map +1 -1
- package/dist/utils/nodes.d.ts +1 -2
- package/dist/utils/nodes.js.map +1 -1
- package/dist/utils/storage.d.ts +2 -21
- package/dist/utils/storage.js +14 -19
- package/dist/utils/storage.js.map +1 -1
- package/dist/utils/versions/parseNodesToVersionsValues.d.ts +1 -1
- package/dist/utils/versions/parseNodesToVersionsValues.js +3 -2
- package/dist/utils/versions/parseNodesToVersionsValues.js.map +1 -1
- package/package.json +2 -6
- package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.d.ts +0 -9
- package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.js +0 -9
- package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.js.map +0 -1
- package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.scss +0 -3
- package/dist/containers/Cluster/i18n/ru.json +0 -16
- package/dist/store/reducers/tenantOverview/topStorageGroups/topStorageGroups.d.ts +0 -4
- package/dist/store/reducers/tenantOverview/topStorageGroups/topStorageGroups.js +0 -29
- package/dist/store/reducers/tenantOverview/topStorageGroups/topStorageGroups.js.map +0 -1
- package/dist/store/reducers/tenantOverview/topStorageGroups/types.d.ts +0 -4
- package/dist/store/reducers/tenantOverview/topStorageGroups/types.js +0 -2
- package/dist/store/reducers/tenantOverview/topStorageGroups/types.js.map +0 -1
- package/dist/store/reducers/tenantOverview/topStorageGroups/utils.d.ts +0 -3
- package/dist/store/reducers/tenantOverview/topStorageGroups/utils.js +0 -13
- package/dist/store/reducers/tenantOverview/topStorageGroups/utils.js.map +0 -1
- package/dist/types/api/compute.d.ts +0 -60
- package/dist/types/api/compute.js +0 -6
- package/dist/types/api/compute.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"YdbInternalUser.js","sourceRoot":"","sources":["../../../../src/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,oBAAoB,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,MAAM,EAAE,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uDAAuD,CAAC;AACxF,OAAO,EAAC,EAAE,EAAC,MAAM,mBAAmB,CAAC;AACrC,OAAO,
|
1
|
+
{"version":3,"file":"YdbInternalUser.js","sourceRoot":"","sources":["../../../../src/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,oBAAoB,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,MAAM,EAAE,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uDAAuD,CAAC;AACxF,OAAO,EAAC,EAAE,EAAC,MAAM,mBAAmB,CAAC;AACrC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,wBAAwB,CAAC;AAEhC,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC;AAErC,MAAM,UAAU,eAAe,CAAC,EAAC,KAAK,EAAmB;IACrD,MAAM,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;IAEvD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC1B,OAAO,CAAC,IAAI,CACR,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,EAAC,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,CAAC,CACrF,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,MAAM,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,EAAE,aACf,eAAK,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,aAClC,cAAK,SAAS,EAAE,CAAC,CAAC,yBAAyB,CAAC,YAAG,IAAI,CAAC,cAAc,CAAC,GAAO,EACzE,KAAK,IAAI,cAAK,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,YAAG,KAAK,GAAO,IACpD,EACL,KAAK,CAAC,CAAC,CAAC,CACL,KAAC,MAAM,IAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,YAAY,YAC9E,KAAC,IAAI,IAAC,IAAI,EAAE,oBAAoB,GAAI,GAC/B,CACZ,CAAC,CAAC,CAAC,CACA,KAAC,MAAM,IACH,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAC5B,OAAO,EAAE,gBAAgB,YAEzB,KAAC,IAAI,IAAC,IAAI,EAAE,kBAAkB,GAAI,GAC7B,CACZ,IACC,CACT,CAAC;AACN,CAAC"}
|
@@ -8,10 +8,9 @@ import { AutoRefreshControl } from '../../components/AutoRefreshControl/AutoRefr
|
|
8
8
|
import { EntityStatus } from '../../components/EntityStatus/EntityStatus';
|
9
9
|
import { InternalLink } from '../../components/InternalLink';
|
10
10
|
import routes, { getLocationObjectFromHref } from '../../routes';
|
11
|
-
import { clusterApi, updateDefaultClusterTab } from '../../store/reducers/cluster/cluster';
|
11
|
+
import { clusterApi, selectClusterTitle, updateDefaultClusterTab, } from '../../store/reducers/cluster/cluster';
|
12
12
|
import { setHeaderBreadcrumbs } from '../../store/reducers/header/header';
|
13
13
|
import { cn } from '../../utils/cn';
|
14
|
-
import { CLUSTER_DEFAULT_TITLE } from '../../utils/constants';
|
15
14
|
import { useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
16
15
|
import { parseVersionsToVersionToColorMap } from '../../utils/versions';
|
17
16
|
import { NodesWrapper } from '../Nodes/NodesWrapper';
|
@@ -23,7 +22,6 @@ import { clusterTabs, clusterTabsIds, getClusterPath, isClusterTab } from './uti
|
|
23
22
|
import './Cluster.scss';
|
24
23
|
const b = cn('cluster');
|
25
24
|
export function Cluster({ additionalClusterProps, additionalTenantsProps, additionalNodesProps, additionalVersionsProps, }) {
|
26
|
-
var _a, _b;
|
27
25
|
const container = React.useRef(null);
|
28
26
|
const dispatch = useTypedDispatch();
|
29
27
|
const activeTabId = useClusterTab();
|
@@ -31,12 +29,12 @@ export function Cluster({ additionalClusterProps, additionalTenantsProps, additi
|
|
31
29
|
clusterName: StringParam,
|
32
30
|
backend: StringParam,
|
33
31
|
});
|
32
|
+
const clusterTitle = useTypedSelector((state) => selectClusterTitle(state, clusterName !== null && clusterName !== void 0 ? clusterName : undefined));
|
34
33
|
const { data: { clusterData: cluster = {}, groupsStats } = {}, isLoading: infoLoading, error, } = clusterApi.useGetClusterInfoQuery(clusterName !== null && clusterName !== void 0 ? clusterName : undefined);
|
35
34
|
const clusterError = error && typeof error === 'object' ? error : undefined;
|
36
|
-
const { Name } = cluster;
|
37
35
|
React.useEffect(() => {
|
38
36
|
dispatch(setHeaderBreadcrumbs('cluster', {}));
|
39
|
-
}, [dispatch
|
37
|
+
}, [dispatch]);
|
40
38
|
const versionToColor = React.useMemo(() => {
|
41
39
|
if (additionalVersionsProps === null || additionalVersionsProps === void 0 ? void 0 : additionalVersionsProps.getVersionToColorMap) {
|
42
40
|
return additionalVersionsProps === null || additionalVersionsProps === void 0 ? void 0 : additionalVersionsProps.getVersionToColorMap();
|
@@ -44,24 +42,18 @@ export function Cluster({ additionalClusterProps, additionalTenantsProps, additi
|
|
44
42
|
return parseVersionsToVersionToColorMap(cluster === null || cluster === void 0 ? void 0 : cluster.Versions);
|
45
43
|
}, [additionalVersionsProps, cluster]);
|
46
44
|
const getClusterTitle = () => {
|
47
|
-
var _a;
|
48
45
|
if (infoLoading) {
|
49
46
|
return _jsx(Skeleton, { className: b('title-skeleton') });
|
50
47
|
}
|
51
|
-
return (_jsx(EntityStatus, { size: "m", status: cluster === null || cluster === void 0 ? void 0 : cluster.Overall, name:
|
48
|
+
return (_jsx(EntityStatus, { size: "m", status: cluster === null || cluster === void 0 ? void 0 : cluster.Overall, name: clusterTitle, className: b('title') }));
|
52
49
|
};
|
53
|
-
const clusterTitle = (_b = (_a = cluster === null || cluster === void 0 ? void 0 : cluster.Name) !== null && _a !== void 0 ? _a : clusterName) !== null && _b !== void 0 ? _b : CLUSTER_DEFAULT_TITLE;
|
54
50
|
const activeTab = React.useMemo(() => clusterTabs.find(({ id }) => id === activeTabId), [activeTabId]);
|
55
51
|
return (_jsxs("div", { className: b(), ref: container, children: [_jsx(Helmet, { defaultTitle: `${clusterTitle} — YDB Monitoring`, titleTemplate: `%s — ${clusterTitle} — YDB Monitoring`, children: activeTab ? _jsx("title", { children: activeTab.title }) : null }), _jsx("div", { className: b('header'), children: getClusterTitle() }), _jsx("div", { className: b('tabs'), children: _jsx(Tabs, { size: "l", allowNotSelected: true, activeTab: activeTabId, items: clusterTabs, wrapTo: ({ id }, node) => {
|
56
52
|
const path = getClusterPath(id, { clusterName, backend });
|
57
53
|
return (_jsx(InternalLink, { to: path, onClick: () => {
|
58
54
|
dispatch(updateDefaultClusterTab(id));
|
59
55
|
}, children: node }, id));
|
60
|
-
} }) }),
|
61
|
-
.pathname, children: _jsx(ClusterInfo, { cluster: cluster, groupsStats: groupsStats, versionToColor: versionToColor, loading: infoLoading, error: clusterError, additionalClusterProps: additionalClusterProps }) }), _jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.tenants))
|
62
|
-
.pathname, children: _jsx(Tenants, { additionalTenantsProps: additionalTenantsProps }) }), _jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.nodes)).pathname, children: _jsx(NodesWrapper, { parentContainer: container.current, additionalNodesProps: additionalNodesProps }) }), _jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.storage))
|
63
|
-
.pathname, children: _jsx(StorageWrapper, { parentContainer: container.current, additionalNodesProps: additionalNodesProps }) }), _jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.versions))
|
64
|
-
.pathname, children: _jsx(Versions, { versionToColor: versionToColor }) }), _jsx(Route, { render: () => (_jsx(Redirect, { to: getLocationObjectFromHref(getClusterPath(activeTabId)) })) })] })] })] }));
|
56
|
+
} }) }), _jsx("div", { className: b('sticky-wrapper'), children: _jsx(AutoRefreshControl, { className: b('auto-refresh-control') }) }), _jsxs(Switch, { children: [_jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.overview)).pathname, children: _jsx(ClusterInfo, { cluster: cluster, groupsStats: groupsStats, versionToColor: versionToColor, loading: infoLoading, error: clusterError, additionalClusterProps: additionalClusterProps }) }), _jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.tenants)).pathname, children: _jsx(Tenants, { additionalTenantsProps: additionalTenantsProps }) }), _jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.nodes)).pathname, children: _jsx(NodesWrapper, { parentContainer: container.current, additionalNodesProps: additionalNodesProps }) }), _jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.storage)).pathname, children: _jsx(StorageWrapper, { parentContainer: container.current, additionalNodesProps: additionalNodesProps }) }), _jsx(Route, { path: getLocationObjectFromHref(getClusterPath(clusterTabsIds.versions)).pathname, children: _jsx(Versions, { versionToColor: versionToColor }) }), _jsx(Route, { render: () => (_jsx(Redirect, { to: getLocationObjectFromHref(getClusterPath(activeTabId)) })) })] })] }));
|
65
57
|
}
|
66
58
|
function useClusterTab() {
|
67
59
|
const dispatch = useTypedDispatch();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Cluster.js","sourceRoot":"","sources":["../../../src/containers/Cluster/Cluster.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAC,kBAAkB,EAAC,MAAM,wDAAwD,CAAC;AAC1F,OAAO,EAAC,YAAY,EAAC,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,MAAM,EAAE,EAAC,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAC/D,OAAO,
|
1
|
+
{"version":3,"file":"Cluster.js","sourceRoot":"","sources":["../../../src/containers/Cluster/Cluster.tsx"],"names":[],"mappings":"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"}
|
@@ -1,125 +1,16 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
-
import React from 'react';
|
3
|
-
import { ContentWithPopup } from '../../../components/ContentWithPopup/ContentWithPopup';
|
4
2
|
import { ResponseError } from '../../../components/Errors/ResponseError';
|
5
3
|
import { InfoViewer } from '../../../components/InfoViewer/InfoViewer';
|
6
4
|
import { InfoViewerSkeleton } from '../../../components/InfoViewerSkeleton/InfoViewerSkeleton';
|
7
|
-
import { LinkWithIcon } from '../../../components/LinkWithIcon/LinkWithIcon';
|
8
|
-
import { ProgressViewer } from '../../../components/ProgressViewer/ProgressViewer';
|
9
|
-
import { Tablet } from '../../../components/Tablet';
|
10
|
-
import { Tags } from '../../../components/Tags';
|
11
5
|
import { backend, customBackend } from '../../../store';
|
12
|
-
import { nodesApi } from '../../../store/reducers/nodes/nodes';
|
13
|
-
import { formatBytes, getSizeWithSignificantDigits } from '../../../utils/bytesParsers';
|
14
|
-
import { cn } from '../../../utils/cn';
|
15
6
|
import { DEVELOPER_UI_TITLE } from '../../../utils/constants';
|
16
|
-
import { formatStorageValues } from '../../../utils/dataFormatters/dataFormatters';
|
17
7
|
import { useTypedSelector } from '../../../utils/hooks';
|
18
|
-
import {
|
19
|
-
import {
|
20
|
-
import i18n from '../i18n';
|
21
|
-
import { compareTablets } from './utils';
|
8
|
+
import { b } from './shared';
|
9
|
+
import { getInfo, useGetVersionValues } from './utils';
|
22
10
|
import './ClusterInfo.scss';
|
23
|
-
const b = cn('cluster-info');
|
24
|
-
const GroupsStatsPopupContent = ({ stats }) => {
|
25
|
-
const { diskType, erasure, allocatedSize, availableSize } = stats;
|
26
|
-
const sizeToConvert = getSizeWithSignificantDigits(Math.max(allocatedSize, availableSize), 2);
|
27
|
-
const convertedAllocatedSize = formatBytes({ value: allocatedSize, size: sizeToConvert });
|
28
|
-
const convertedAvailableSize = formatBytes({ value: availableSize, size: sizeToConvert });
|
29
|
-
const usage = Math.round((allocatedSize / (allocatedSize + availableSize)) * 100);
|
30
|
-
const info = [
|
31
|
-
{
|
32
|
-
label: i18n('disk-type'),
|
33
|
-
value: diskType,
|
34
|
-
},
|
35
|
-
{
|
36
|
-
label: i18n('erasure'),
|
37
|
-
value: erasure,
|
38
|
-
},
|
39
|
-
{
|
40
|
-
label: i18n('allocated'),
|
41
|
-
value: convertedAllocatedSize,
|
42
|
-
},
|
43
|
-
{
|
44
|
-
label: i18n('available'),
|
45
|
-
value: convertedAvailableSize,
|
46
|
-
},
|
47
|
-
{
|
48
|
-
label: i18n('usage'),
|
49
|
-
value: usage + '%',
|
50
|
-
},
|
51
|
-
];
|
52
|
-
return (_jsx(InfoViewer, { dots: true, info: info, className: b('groups-stats-popup-content'), size: "s" }));
|
53
|
-
};
|
54
|
-
const DiskGroupsStatsBars = ({ stats }) => {
|
55
|
-
return (_jsx("div", { className: b('storage-groups-stats'), children: Object.values(stats).map((erasureStats) => (_jsx(ContentWithPopup, { placement: ['right'], content: _jsx(GroupsStatsPopupContent, { stats: erasureStats }), children: _jsx(ProgressViewer, { className: b('groups-stats-bar'), value: erasureStats.createdGroups, capacity: erasureStats.totalGroups }) }, erasureStats.erasure))) }));
|
56
|
-
};
|
57
|
-
const getGroupsStatsFields = (groupsStats) => {
|
58
|
-
return Object.keys(groupsStats).map((diskType) => {
|
59
|
-
return {
|
60
|
-
label: i18n('storage-groups', { diskType }),
|
61
|
-
value: _jsx(DiskGroupsStatsBars, { stats: groupsStats[diskType] }),
|
62
|
-
};
|
63
|
-
});
|
64
|
-
};
|
65
|
-
const getInfo = (cluster, versionsValues, groupsStats, additionalInfo, links) => {
|
66
|
-
const info = [];
|
67
|
-
if (cluster.DataCenters) {
|
68
|
-
info.push({
|
69
|
-
label: i18n('dc'),
|
70
|
-
value: _jsx(Tags, { tags: cluster.DataCenters }),
|
71
|
-
});
|
72
|
-
}
|
73
|
-
if (cluster.SystemTablets) {
|
74
|
-
const tablets = cluster.SystemTablets.slice(0).sort(compareTablets);
|
75
|
-
info.push({
|
76
|
-
label: i18n('tablets'),
|
77
|
-
value: (_jsx("div", { className: b('system-tablets'), children: tablets.map((tablet, tabletIndex) => (_jsx(Tablet, { tablet: tablet }, tabletIndex))) })),
|
78
|
-
});
|
79
|
-
}
|
80
|
-
if (cluster.Tenants) {
|
81
|
-
info.push({
|
82
|
-
label: i18n('databases'),
|
83
|
-
value: cluster.Tenants,
|
84
|
-
});
|
85
|
-
}
|
86
|
-
info.push({
|
87
|
-
label: i18n('nodes'),
|
88
|
-
value: _jsx(ProgressViewer, { value: cluster === null || cluster === void 0 ? void 0 : cluster.NodesAlive, capacity: cluster === null || cluster === void 0 ? void 0 : cluster.NodesTotal }),
|
89
|
-
}, {
|
90
|
-
label: i18n('load'),
|
91
|
-
value: _jsx(ProgressViewer, { value: cluster === null || cluster === void 0 ? void 0 : cluster.LoadAverage, capacity: cluster === null || cluster === void 0 ? void 0 : cluster.NumberOfCpus }),
|
92
|
-
}, {
|
93
|
-
label: i18n('storage-size'),
|
94
|
-
value: (_jsx(ProgressViewer, { value: cluster === null || cluster === void 0 ? void 0 : cluster.StorageUsed, capacity: cluster === null || cluster === void 0 ? void 0 : cluster.StorageTotal, formatValues: formatStorageValues })),
|
95
|
-
});
|
96
|
-
if (Object.keys(groupsStats).length) {
|
97
|
-
info.push(...getGroupsStatsFields(groupsStats));
|
98
|
-
}
|
99
|
-
info.push(...additionalInfo, {
|
100
|
-
label: i18n('links'),
|
101
|
-
value: (_jsx("div", { className: b('links'), children: links.map(({ title, url }) => (_jsx(LinkWithIcon, { title: title, url: url }, title))) })),
|
102
|
-
}, {
|
103
|
-
label: i18n('versions'),
|
104
|
-
value: _jsx(VersionsBar, { versionsValues: versionsValues }),
|
105
|
-
});
|
106
|
-
return info;
|
107
|
-
};
|
108
11
|
export const ClusterInfo = ({ cluster, versionToColor, groupsStats = {}, loading, error, additionalClusterProps = {}, }) => {
|
109
12
|
const singleClusterMode = useTypedSelector((state) => state.singleClusterMode);
|
110
|
-
const
|
111
|
-
tablets: false,
|
112
|
-
group: 'Version',
|
113
|
-
});
|
114
|
-
const versionsValues = React.useMemo(() => {
|
115
|
-
if (!currentData) {
|
116
|
-
return [];
|
117
|
-
}
|
118
|
-
if (Array.isArray(currentData.NodeGroups)) {
|
119
|
-
return parseNodeGroupsToVersionsValues(currentData.NodeGroups, versionToColor);
|
120
|
-
}
|
121
|
-
return parseNodesToVersionsValues(currentData.Nodes, versionToColor);
|
122
|
-
}, [currentData, versionToColor]);
|
13
|
+
const versionsValues = useGetVersionValues(cluster, versionToColor);
|
123
14
|
let internalLink = backend + '/internal';
|
124
15
|
if (singleClusterMode && !customBackend) {
|
125
16
|
internalLink = `/internal`;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ClusterInfo.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterInfo/ClusterInfo.tsx"],"names":[],"mappings":";AAAA,OAAO,
|
1
|
+
{"version":3,"file":"ClusterInfo.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterInfo/ClusterInfo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAC,UAAU,EAAC,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAC,kBAAkB,EAAC,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAMtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAC,CAAC,EAAC,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAC,OAAO,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAErD,OAAO,oBAAoB,CAAC;AAW5B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EACxB,OAAO,EACP,cAAc,EACd,WAAW,GAAG,EAAE,EAChB,OAAO,EACP,KAAK,EACL,sBAAsB,GAAG,EAAE,GACZ,EAAE,EAAE;IACnB,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/E,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAEpE,IAAI,YAAY,GAAG,OAAO,GAAG,WAAW,CAAC;IAEzC,IAAI,iBAAiB,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,YAAY,GAAG,WAAW,CAAC;IAC/B,CAAC;IAED,MAAM,EAAC,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAC,GAAG,sBAAsB,CAAC;IAEvD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE;QAC1E,EAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY,EAAC;QAC9C,GAAG,KAAK;KACX,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,KAAC,kBAAkB,IAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,GAAI,CAAC;QACrE,CAAC;QAED,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,GAAI,CAAC;IACzD,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,EAAE,aACd,KAAK,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAI,CAAC,CAAC,CAAC,IAAI,EACtE,cAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YAAG,UAAU,EAAE,GAAO,IAC7C,CACT,CAAC;AACN,CAAC,CAAC"}
|
@@ -47,24 +47,17 @@
|
|
47
47
|
gap: var(--g-spacing-2);
|
48
48
|
}
|
49
49
|
|
50
|
-
&__storage-groups-stats {
|
51
|
-
display: flex;
|
52
|
-
flex-direction: column;
|
53
|
-
gap: 11px;
|
54
|
-
}
|
55
|
-
|
56
|
-
&__groups-stats-bar {
|
57
|
-
cursor: pointer;
|
58
|
-
}
|
59
|
-
|
60
|
-
&__groups-stats-popup-content {
|
61
|
-
padding: 12px;
|
62
|
-
}
|
63
|
-
|
64
50
|
&__clipboard-button {
|
65
51
|
display: flex;
|
66
52
|
align-items: center;
|
67
53
|
|
68
54
|
margin-left: 5px;
|
69
55
|
}
|
56
|
+
&__dc-count {
|
57
|
+
text-transform: lowercase;
|
58
|
+
}
|
59
|
+
&__nodes-states {
|
60
|
+
display: flex;
|
61
|
+
gap: var(--g-spacing-half);
|
62
|
+
}
|
70
63
|
}
|
package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.d.ts
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { DiskGroupsStats } from '../../../../../store/reducers/cluster/types';
|
2
|
+
import './DiskGroupsStatsBars.scss';
|
3
|
+
interface DiskGroupsStatsProps {
|
4
|
+
stats: DiskGroupsStats;
|
5
|
+
}
|
6
|
+
export declare const DiskGroupsStatsBars: ({ stats }: DiskGroupsStatsProps) => import("react/jsx-runtime").JSX.Element;
|
7
|
+
export {};
|
package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { ContentWithPopup } from '../../../../../components/ContentWithPopup/ContentWithPopup';
|
3
|
+
import { InfoViewer } from '../../../../../components/InfoViewer';
|
4
|
+
import { ProgressViewer } from '../../../../../components/ProgressViewer/ProgressViewer';
|
5
|
+
import { formatBytes, getSizeWithSignificantDigits } from '../../../../../utils/bytesParsers';
|
6
|
+
import { cn } from '../../../../../utils/cn';
|
7
|
+
import i18n from '../../../i18n';
|
8
|
+
import './DiskGroupsStatsBars.scss';
|
9
|
+
const b = cn('ydb-disk-groups-stats');
|
10
|
+
export const DiskGroupsStatsBars = ({ stats }) => {
|
11
|
+
return (_jsx("div", { className: b(), children: Object.values(stats).map((erasureStats) => (_jsx(ContentWithPopup, { placement: ['right'], content: _jsx(GroupsStatsPopupContent, { stats: erasureStats }), children: _jsx(ProgressViewer, { className: b('bar'), value: erasureStats.createdGroups, capacity: erasureStats.totalGroups }) }, erasureStats.erasure))) }));
|
12
|
+
};
|
13
|
+
function GroupsStatsPopupContent({ stats }) {
|
14
|
+
const { diskType, erasure, allocatedSize, availableSize } = stats;
|
15
|
+
const sizeToConvert = getSizeWithSignificantDigits(Math.max(allocatedSize, availableSize), 2);
|
16
|
+
const convertedAllocatedSize = formatBytes({ value: allocatedSize, size: sizeToConvert });
|
17
|
+
const convertedAvailableSize = formatBytes({ value: availableSize, size: sizeToConvert });
|
18
|
+
const usage = Math.round((allocatedSize / (allocatedSize + availableSize)) * 100);
|
19
|
+
const info = [
|
20
|
+
{
|
21
|
+
label: i18n('disk-type'),
|
22
|
+
value: diskType,
|
23
|
+
},
|
24
|
+
{
|
25
|
+
label: i18n('erasure'),
|
26
|
+
value: erasure,
|
27
|
+
},
|
28
|
+
{
|
29
|
+
label: i18n('allocated'),
|
30
|
+
value: convertedAllocatedSize,
|
31
|
+
},
|
32
|
+
{
|
33
|
+
label: i18n('available'),
|
34
|
+
value: convertedAvailableSize,
|
35
|
+
},
|
36
|
+
{
|
37
|
+
label: i18n('usage'),
|
38
|
+
value: usage + '%',
|
39
|
+
},
|
40
|
+
];
|
41
|
+
return _jsx(InfoViewer, { dots: true, info: info, className: b('popup-content'), size: "s" });
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=DiskGroupsStatsBars.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DiskGroupsStatsBars.js","sourceRoot":"","sources":["../../../../../../src/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6DAA6D,CAAC;AAC7F,OAAO,EAAC,UAAU,EAAC,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,yDAAyD,CAAC;AAKvF,OAAO,EAAC,WAAW,EAAE,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAC,EAAE,EAAC,MAAM,yBAAyB,CAAC;AAC3C,OAAO,IAAI,MAAM,eAAe,CAAC;AAEjC,OAAO,4BAA4B,CAAC;AAEpC,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC;AAMtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAC,KAAK,EAAuB,EAAE,EAAE;IACjE,OAAO,CACH,cAAK,SAAS,EAAE,CAAC,EAAE,YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CACxC,KAAC,gBAAgB,IACb,SAAS,EAAE,CAAC,OAAO,CAAC,EAEpB,OAAO,EAAE,KAAC,uBAAuB,IAAC,KAAK,EAAE,YAAY,GAAI,YAEzD,KAAC,cAAc,IACX,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EACnB,KAAK,EAAE,YAAY,CAAC,aAAa,EACjC,QAAQ,EAAE,YAAY,CAAC,WAAW,GACpC,IAPG,YAAY,CAAC,OAAO,CAQV,CACtB,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC;AAMF,SAAS,uBAAuB,CAAC,EAAC,KAAK,EAA+B;IAClE,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAC,GAAG,KAAK,CAAC;IAEhE,MAAM,aAAa,GAAG,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9F,MAAM,sBAAsB,GAAG,WAAW,CAAC,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;IACxF,MAAM,sBAAsB,GAAG,WAAW,CAAC,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;IAExF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAElF,MAAM,IAAI,GAAG;QACT;YACI,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YACxB,KAAK,EAAE,QAAQ;SAClB;QACD;YACI,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;YACtB,KAAK,EAAE,OAAO;SACjB;QACD;YACI,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YACxB,KAAK,EAAE,sBAAsB;SAChC;QACD;YACI,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YACxB,KAAK,EAAE,sBAAsB;SAChC;QACD;YACI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YACpB,KAAK,EAAE,KAAK,GAAG,GAAG;SACrB;KACJ,CAAC;IAEF,OAAO,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,EAAC,GAAG,GAAG,CAAC;AAC1F,CAAC"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import type { EFlag } from '../../../../../types/api/enums';
|
2
|
+
import './NodesState.scss';
|
3
|
+
interface NodesStateProps {
|
4
|
+
state: EFlag;
|
5
|
+
children: React.ReactNode;
|
6
|
+
}
|
7
|
+
export declare function NodesState({ state, children }: NodesStateProps): import("react/jsx-runtime").JSX.Element;
|
8
|
+
export {};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { cn } from '../../../../../utils/cn';
|
3
|
+
import './NodesState.scss';
|
4
|
+
const b = cn('ydb-nodes-state');
|
5
|
+
export function NodesState({ state, children }) {
|
6
|
+
return _jsx("div", { className: b({ [state.toLowerCase()]: true }), children: children });
|
7
|
+
}
|
8
|
+
//# sourceMappingURL=NodesState.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NodesState.js","sourceRoot":"","sources":["../../../../../../src/containers/Cluster/ClusterInfo/components/NodesState/NodesState.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,EAAE,EAAC,MAAM,yBAAyB,CAAC;AAE3C,OAAO,mBAAmB,CAAC;AAE3B,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;AAOhC,MAAM,UAAU,UAAU,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAkB;IACzD,OAAO,cAAK,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAC,CAAC,YAAG,QAAQ,GAAO,CAAC;AAC9E,CAAC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
@import '../../../../../styles/mixins.scss';
|
2
|
+
|
3
|
+
.ydb-nodes-state {
|
4
|
+
display: flex;
|
5
|
+
justify-content: center;
|
6
|
+
align-items: center;
|
7
|
+
|
8
|
+
min-width: 30px;
|
9
|
+
padding: 0 var(--g-spacing-1);
|
10
|
+
|
11
|
+
color: var(--entity-state-font-color);
|
12
|
+
border: 1px solid var(--entity-state-border-color);
|
13
|
+
border-radius: var(--g-spacing-1);
|
14
|
+
background-color: var(--entity-state-background-color);
|
15
|
+
@include entity-state-colors();
|
16
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const b: import("@bem-react/classname").ClassNameFormatter;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterInfo/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,mBAAmB,CAAC;AAErC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC"}
|
@@ -1,2 +1,14 @@
|
|
1
|
+
import type { InfoViewerItem } from '../../../components/InfoViewer/InfoViewer';
|
2
|
+
import type { ClusterGroupsStats } from '../../../store/reducers/cluster/types';
|
3
|
+
import type { ClusterLink } from '../../../types/additionalProps';
|
4
|
+
import type { TClusterInfo } from '../../../types/api/cluster';
|
1
5
|
import type { TTabletStateInfo } from '../../../types/api/tablet';
|
6
|
+
import type { VersionToColorMap, VersionValue } from '../../../types/versions';
|
2
7
|
export declare const compareTablets: (tablet1: TTabletStateInfo, tablet2: TTabletStateInfo) => 0 | 1 | -1;
|
8
|
+
export declare const getInfo: (cluster: TClusterInfo, versionsValues: VersionValue[], groupsStats: ClusterGroupsStats, additionalInfo: InfoViewerItem[], links: ClusterLink[]) => InfoViewerItem[];
|
9
|
+
export declare const useGetVersionValues: (cluster?: TClusterInfo, versionToColor?: VersionToColorMap) => {
|
10
|
+
title: string;
|
11
|
+
version: string;
|
12
|
+
color: string | undefined;
|
13
|
+
value: number;
|
14
|
+
}[];
|
@@ -1,4 +1,28 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { skipToken } from '@reduxjs/toolkit/query';
|
4
|
+
import { LinkWithIcon } from '../../../components/LinkWithIcon/LinkWithIcon';
|
5
|
+
import { ProgressViewer } from '../../../components/ProgressViewer/ProgressViewer';
|
6
|
+
import { Tablet } from '../../../components/Tablet';
|
7
|
+
import { Tags } from '../../../components/Tags';
|
8
|
+
import { nodesApi } from '../../../store/reducers/nodes/nodes';
|
9
|
+
import { isClusterInfoV2 } from '../../../types/api/cluster';
|
1
10
|
import { EType } from '../../../types/api/tablet';
|
11
|
+
import { formatStorageValues } from '../../../utils/dataFormatters/dataFormatters';
|
12
|
+
import { parseNodeGroupsToVersionsValues, parseNodesToVersionsValues } from '../../../utils/versions';
|
13
|
+
import { VersionsBar } from '../VersionsBar/VersionsBar';
|
14
|
+
import i18n from '../i18n';
|
15
|
+
import { DiskGroupsStatsBars } from './components/DiskGroupsStatsBars/DiskGroupsStatsBars';
|
16
|
+
import { NodesState } from './components/NodesState/NodesState';
|
17
|
+
import { b } from './shared';
|
18
|
+
const COLORS_PRIORITY = {
|
19
|
+
Green: 5,
|
20
|
+
Blue: 4,
|
21
|
+
Yellow: 3,
|
22
|
+
Orange: 2,
|
23
|
+
Red: 1,
|
24
|
+
Grey: 0,
|
25
|
+
};
|
2
26
|
export const compareTablets = (tablet1, tablet2) => {
|
3
27
|
if (tablet1.Type === EType.TxAllocator) {
|
4
28
|
return 1;
|
@@ -8,4 +32,125 @@ export const compareTablets = (tablet1, tablet2) => {
|
|
8
32
|
}
|
9
33
|
return 0;
|
10
34
|
};
|
35
|
+
const getGroupsStatsFields = (groupsStats) => {
|
36
|
+
return Object.keys(groupsStats).map((diskType) => {
|
37
|
+
return {
|
38
|
+
label: i18n('storage-groups', { diskType }),
|
39
|
+
value: _jsx(DiskGroupsStatsBars, { stats: groupsStats[diskType] }),
|
40
|
+
};
|
41
|
+
});
|
42
|
+
};
|
43
|
+
const getDCInfo = (cluster) => {
|
44
|
+
var _a;
|
45
|
+
if (isClusterInfoV2(cluster) && cluster.MapDataCenters) {
|
46
|
+
return Object.entries(cluster.MapDataCenters).map(([dc, count]) => (_jsxs(React.Fragment, { children: [dc, ": ", _jsx("span", { className: b('dc-count'), children: i18n('quantity', { count }) })] }, dc)));
|
47
|
+
}
|
48
|
+
return (_a = cluster.DataCenters) === null || _a === void 0 ? void 0 : _a.filter(Boolean);
|
49
|
+
};
|
50
|
+
const getStorageStats = (cluster) => {
|
51
|
+
if (isClusterInfoV2(cluster) && cluster.MapDataCenters) {
|
52
|
+
const { MapStorageTotal, MapStorageUsed } = cluster;
|
53
|
+
const storageTypesSet = new Set(Object.keys(MapStorageTotal !== null && MapStorageTotal !== void 0 ? MapStorageTotal : []).concat(Object.keys(MapStorageUsed !== null && MapStorageUsed !== void 0 ? MapStorageUsed : [])));
|
54
|
+
if (storageTypesSet.size > 0) {
|
55
|
+
return Array.from(storageTypesSet).reduce((acc, storageType) => {
|
56
|
+
acc[storageType] = {
|
57
|
+
used: MapStorageUsed === null || MapStorageUsed === void 0 ? void 0 : MapStorageUsed[storageType],
|
58
|
+
total: MapStorageTotal === null || MapStorageTotal === void 0 ? void 0 : MapStorageTotal[storageType],
|
59
|
+
};
|
60
|
+
return acc;
|
61
|
+
}, {});
|
62
|
+
}
|
63
|
+
}
|
64
|
+
return { _default: { used: cluster === null || cluster === void 0 ? void 0 : cluster.StorageUsed, total: cluster === null || cluster === void 0 ? void 0 : cluster.StorageTotal } };
|
65
|
+
};
|
66
|
+
export const getInfo = (cluster, versionsValues, groupsStats, additionalInfo, links) => {
|
67
|
+
const info = [];
|
68
|
+
const dataCenters = getDCInfo(cluster);
|
69
|
+
if (dataCenters === null || dataCenters === void 0 ? void 0 : dataCenters.length) {
|
70
|
+
info.push({
|
71
|
+
label: i18n('dc'),
|
72
|
+
value: _jsx(Tags, { tags: dataCenters }),
|
73
|
+
});
|
74
|
+
}
|
75
|
+
if (cluster.SystemTablets) {
|
76
|
+
const tablets = cluster.SystemTablets.slice(0).sort(compareTablets);
|
77
|
+
info.push({
|
78
|
+
label: i18n('tablets'),
|
79
|
+
value: (_jsx("div", { className: b('system-tablets'), children: tablets.map((tablet, tabletIndex) => (_jsx(Tablet, { tablet: tablet }, tabletIndex))) })),
|
80
|
+
});
|
81
|
+
}
|
82
|
+
if (cluster.Tenants) {
|
83
|
+
info.push({
|
84
|
+
label: i18n('databases'),
|
85
|
+
value: cluster.Tenants,
|
86
|
+
});
|
87
|
+
}
|
88
|
+
info.push({
|
89
|
+
label: i18n('nodes'),
|
90
|
+
value: _jsx(ProgressViewer, { value: cluster === null || cluster === void 0 ? void 0 : cluster.NodesAlive, capacity: cluster === null || cluster === void 0 ? void 0 : cluster.NodesTotal }),
|
91
|
+
});
|
92
|
+
if (isClusterInfoV2(cluster) && cluster.MapNodeStates) {
|
93
|
+
const arrayNodesStates = Object.entries(cluster.MapNodeStates);
|
94
|
+
// sort stack to achieve order "green, orange, yellow, red, blue, grey"
|
95
|
+
arrayNodesStates.sort((a, b) => COLORS_PRIORITY[b[0]] - COLORS_PRIORITY[a[0]]);
|
96
|
+
const nodesStates = arrayNodesStates.map(([state, count]) => {
|
97
|
+
return (_jsx(NodesState, { state: state, children: count }, state));
|
98
|
+
});
|
99
|
+
info.push({
|
100
|
+
label: i18n('nodes-state'),
|
101
|
+
value: _jsx("div", { className: b('nodes-states'), children: nodesStates }),
|
102
|
+
});
|
103
|
+
}
|
104
|
+
info.push({
|
105
|
+
label: i18n('load'),
|
106
|
+
value: _jsx(ProgressViewer, { value: cluster === null || cluster === void 0 ? void 0 : cluster.LoadAverage, capacity: cluster === null || cluster === void 0 ? void 0 : cluster.NumberOfCpus }),
|
107
|
+
});
|
108
|
+
const storageStats = getStorageStats(cluster);
|
109
|
+
Object.entries(storageStats).forEach(([type, stats]) => {
|
110
|
+
let label = i18n('storage-size');
|
111
|
+
if (type !== '_default') {
|
112
|
+
label += `, ${type}`;
|
113
|
+
}
|
114
|
+
info.push({
|
115
|
+
label: label,
|
116
|
+
value: (_jsx(ProgressViewer, { value: stats.used, capacity: stats.total, formatValues: formatStorageValues })),
|
117
|
+
});
|
118
|
+
});
|
119
|
+
if (Object.keys(groupsStats).length) {
|
120
|
+
info.push(...getGroupsStatsFields(groupsStats));
|
121
|
+
}
|
122
|
+
info.push(...additionalInfo, {
|
123
|
+
label: i18n('links'),
|
124
|
+
value: (_jsx("div", { className: b('links'), children: links.map(({ title, url }) => (_jsx(LinkWithIcon, { title: title, url: url }, title))) })),
|
125
|
+
}, {
|
126
|
+
label: i18n('versions'),
|
127
|
+
value: (_jsx(VersionsBar, { versionsValues: versionsValues.filter((el) => el.title !== 'unknown') })),
|
128
|
+
});
|
129
|
+
return info;
|
130
|
+
};
|
131
|
+
export const useGetVersionValues = (cluster, versionToColor) => {
|
132
|
+
const { currentData } = nodesApi.useGetNodesQuery(isClusterInfoV2(cluster)
|
133
|
+
? skipToken
|
134
|
+
: {
|
135
|
+
tablets: false,
|
136
|
+
group: 'Version',
|
137
|
+
});
|
138
|
+
const versionsValues = React.useMemo(() => {
|
139
|
+
if (isClusterInfoV2(cluster) && cluster.MapVersions) {
|
140
|
+
const groups = Object.entries(cluster.MapVersions).map(([version, count]) => ({
|
141
|
+
name: version,
|
142
|
+
count,
|
143
|
+
}));
|
144
|
+
return parseNodeGroupsToVersionsValues(groups, versionToColor, cluster.NodesTotal);
|
145
|
+
}
|
146
|
+
if (!currentData) {
|
147
|
+
return [];
|
148
|
+
}
|
149
|
+
if (Array.isArray(currentData.NodeGroups)) {
|
150
|
+
return parseNodeGroupsToVersionsValues(currentData.NodeGroups, versionToColor, cluster === null || cluster === void 0 ? void 0 : cluster.NodesTotal);
|
151
|
+
}
|
152
|
+
return parseNodesToVersionsValues(currentData.Nodes, versionToColor);
|
153
|
+
}, [currentData, versionToColor, cluster]);
|
154
|
+
return versionsValues;
|
155
|
+
};
|
11
156
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterInfo/utils.
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterInfo/utils.tsx"],"names":[],"mappings":"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"}
|