From 31000cbd5a2a472446e919c04e6ceaff3fa0bdac Mon Sep 17 00:00:00 2001 From: Valeriy Sidorenko Date: Thu, 18 Jan 2024 16:31:34 +0100 Subject: [PATCH 01/10] feat: add support for multi clusters --- package.json | 2 + public/index.html | 1 + .../ComponentProvider/ComponentsProvider.tsx | 24 ++ src/components/ComponentProvider/registry.ts | 33 +++ .../ydbComponentsRegistry.ts | 12 + .../MonitoringButton/MonitoringButton.scss | 11 + .../MonitoringButton/MonitoringButton.tsx | 28 ++ src/components/User/StaffCard.tsx | 12 + src/components/User/User.scss | 16 ++ src/components/User/User.tsx | 22 ++ src/components/slots/SlotMap.ts | 82 ++++++ src/components/slots/createSlot.ts | 10 + src/components/slots/index.ts | 2 + src/components/slots/types.ts | 20 ++ src/components/slots/useSlots.ts | 19 ++ src/components/slots/utils.ts | 15 + src/containers/App/App.js | 68 ----- src/containers/App/App.tsx | 53 ++++ src/containers/App/Content.js | 118 -------- src/containers/App/Content.tsx | 197 +++++++++++++ src/containers/App/Providers.tsx | 48 ++++ src/containers/App/appSlots.tsx | 31 ++ src/containers/App/i18n/en.json | 3 + src/containers/App/i18n/index.ts | 11 + src/containers/App/i18n/ru.json | 3 + src/containers/App/index.ts | 3 + src/containers/AppIcons/AppIcons.js | 6 +- .../AppWithClusters/AppWithClusters.tsx | 77 +++++ .../InternalCluster/InternalCluster.scss | 14 + .../InternalCluster/InternalCluster.tsx | 150 ++++++++++ .../InternalNode/InternalNode.tsx | 9 + .../InternalTenant/InternalTenant.tsx | 41 +++ src/containers/AppWithClusters/i18n/en.json | 4 + src/containers/AppWithClusters/i18n/index.ts | 11 + src/containers/AppWithClusters/i18n/ru.json | 4 + .../AppWithClusters/useClusterData.ts | 38 +++ .../AsideNavigation/AsideNavigation.tsx | 167 ++--------- src/containers/AsideNavigation/Navigation.tsx | 26 ++ .../YdbInternalUser/YdbInternalUser.scss | 24 ++ .../YdbInternalUser/YdbInternalUser.tsx | 56 ++++ .../AsideNavigation/useNavigationMenuItems.ts | 85 ++++++ src/containers/Clusters/Clusters.scss | 176 ++++++++++++ src/containers/Clusters/Clusters.tsx | 183 ++++++++++++ .../Clusters/ClustersStatistics.tsx | 71 +++++ src/containers/Clusters/columns.tsx | 272 ++++++++++++++++++ src/containers/Clusters/constants.ts | 68 +++++ src/containers/Clusters/i18n/en.json | 17 ++ src/containers/Clusters/i18n/index.ts | 11 + src/containers/Clusters/i18n/ru.json | 17 ++ src/containers/Clusters/shared.ts | 3 + src/containers/Clusters/useClustersList.ts | 11 + src/containers/Clusters/useSelectedColumns.ts | 44 +++ src/containers/Tablet/Tablet.tsx | 1 - .../TabletsFilters/TabletsFilters.js | 2 +- .../TenantOverview/TenantOverview.scss | 1 + src/containers/Tenants/Tenants.scss | 1 + src/contexts/HistoryContext.ts | 6 - src/index.tsx | 13 +- src/lib.ts | 27 ++ src/routes.ts | 4 +- src/services/api.ts | 38 ++- src/services/parsers/parseMetaCluster.ts | 17 ++ src/services/parsers/parseMetaTenants.ts | 9 + src/services/settings.ts | 2 + src/setupProxy.js | 16 ++ src/store/getUrlData.ts | 14 +- src/store/index.js | 44 ++- .../reducers/authentication/authentication.ts | 1 - src/store/reducers/cluster/cluster.ts | 1 - .../reducers/clusterNodes/clusterNodes.tsx | 1 - src/store/reducers/clusters/clusters.ts | 71 +++++ src/store/reducers/clusters/selectors.ts | 164 +++++++++++ src/store/reducers/clusters/types.ts | 42 +++ src/store/reducers/clusters/utils.ts | 28 ++ src/store/reducers/describe.ts | 1 - src/store/reducers/executeQuery.ts | 1 - .../executeTopQueries/executeTopQueries.ts | 1 - src/store/reducers/explainQuery.ts | 1 - src/store/reducers/healthcheckInfo.ts | 1 - src/store/reducers/heatmap.ts | 1 - src/store/reducers/host.ts | 1 - src/store/reducers/hotKeys.js | 1 - src/store/reducers/index.ts | 2 + src/store/reducers/network/network.ts | 1 - src/store/reducers/node/node.ts | 1 - src/store/reducers/nodes/nodes.ts | 1 - src/store/reducers/nodesList.ts | 1 - src/store/reducers/olapStats.ts | 1 - src/store/reducers/overview/overview.ts | 1 - src/store/reducers/partitions/partitions.ts | 2 - src/store/reducers/preview.ts | 2 - src/store/reducers/schema/schema.ts | 1 - src/store/reducers/schemaAcl/schemaAcl.ts | 1 - src/store/reducers/settings/settings.ts | 1 - .../reducers/shardsWorkload/shardsWorkload.ts | 1 - src/store/reducers/storage/storage.ts | 1 - src/store/reducers/tablet.ts | 1 - src/store/reducers/tablets.ts | 1 - src/store/reducers/tabletsFilters.js | 1 - src/store/reducers/tenant/tenant.ts | 1 - .../topQueries/tenantOverviewTopQueries.ts | 1 - .../topShards/tenantOverviewTopShards.ts | 1 - src/store/reducers/tenants/tenants.ts | 1 - src/store/reducers/topic.ts | 1 - src/types/api/clusters.ts | 54 ++++ src/types/api/tenant.ts | 12 +- src/types/bem-cn-lite.d.ts | 26 ++ src/utils/__test__/monitoring.test.ts | 54 ++++ src/utils/__test__/parseBalancer.test.ts | 94 ++++++ src/utils/__test__/prepareBackend.test.ts | 49 ++++ src/utils/additionalProps.ts | 14 + src/utils/clusterVersionColors.ts | 77 +++++ src/utils/constants.ts | 2 + src/utils/monitoring.ts | 80 ++++++ src/utils/parseBalancer.ts | 49 ++++ src/utils/prepareBackend.ts | 50 ++++ src/utils/tests/providers.tsx | 2 +- 117 files changed, 3117 insertions(+), 411 deletions(-) create mode 100644 src/components/ComponentProvider/ComponentsProvider.tsx create mode 100644 src/components/ComponentProvider/registry.ts create mode 100644 src/components/ComponentProvider/ydbComponentsRegistry.ts create mode 100644 src/components/MonitoringButton/MonitoringButton.scss create mode 100644 src/components/MonitoringButton/MonitoringButton.tsx create mode 100644 src/components/User/StaffCard.tsx create mode 100644 src/components/User/User.scss create mode 100644 src/components/User/User.tsx create mode 100644 src/components/slots/SlotMap.ts create mode 100644 src/components/slots/createSlot.ts create mode 100644 src/components/slots/index.ts create mode 100644 src/components/slots/types.ts create mode 100644 src/components/slots/useSlots.ts create mode 100644 src/components/slots/utils.ts delete mode 100644 src/containers/App/App.js create mode 100644 src/containers/App/App.tsx delete mode 100644 src/containers/App/Content.js create mode 100644 src/containers/App/Content.tsx create mode 100644 src/containers/App/Providers.tsx create mode 100644 src/containers/App/appSlots.tsx create mode 100644 src/containers/App/i18n/en.json create mode 100644 src/containers/App/i18n/index.ts create mode 100644 src/containers/App/i18n/ru.json create mode 100644 src/containers/App/index.ts create mode 100644 src/containers/AppWithClusters/AppWithClusters.tsx create mode 100644 src/containers/AppWithClusters/InternalCluster/InternalCluster.scss create mode 100644 src/containers/AppWithClusters/InternalCluster/InternalCluster.tsx create mode 100644 src/containers/AppWithClusters/InternalNode/InternalNode.tsx create mode 100644 src/containers/AppWithClusters/InternalTenant/InternalTenant.tsx create mode 100644 src/containers/AppWithClusters/i18n/en.json create mode 100644 src/containers/AppWithClusters/i18n/index.ts create mode 100644 src/containers/AppWithClusters/i18n/ru.json create mode 100644 src/containers/AppWithClusters/useClusterData.ts create mode 100644 src/containers/AsideNavigation/Navigation.tsx create mode 100644 src/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.scss create mode 100644 src/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.tsx create mode 100644 src/containers/AsideNavigation/useNavigationMenuItems.ts create mode 100644 src/containers/Clusters/Clusters.scss create mode 100644 src/containers/Clusters/Clusters.tsx create mode 100644 src/containers/Clusters/ClustersStatistics.tsx create mode 100644 src/containers/Clusters/columns.tsx create mode 100644 src/containers/Clusters/constants.ts create mode 100644 src/containers/Clusters/i18n/en.json create mode 100644 src/containers/Clusters/i18n/index.ts create mode 100644 src/containers/Clusters/i18n/ru.json create mode 100644 src/containers/Clusters/shared.ts create mode 100644 src/containers/Clusters/useClustersList.ts create mode 100644 src/containers/Clusters/useSelectedColumns.ts delete mode 100644 src/contexts/HistoryContext.ts create mode 100644 src/lib.ts create mode 100644 src/services/parsers/parseMetaCluster.ts create mode 100644 src/services/parsers/parseMetaTenants.ts create mode 100644 src/setupProxy.js create mode 100644 src/store/reducers/clusters/clusters.ts create mode 100644 src/store/reducers/clusters/selectors.ts create mode 100644 src/store/reducers/clusters/types.ts create mode 100644 src/store/reducers/clusters/utils.ts create mode 100644 src/types/api/clusters.ts create mode 100644 src/types/bem-cn-lite.d.ts create mode 100644 src/utils/__test__/monitoring.test.ts create mode 100644 src/utils/__test__/parseBalancer.test.ts create mode 100644 src/utils/__test__/prepareBackend.test.ts create mode 100644 src/utils/additionalProps.ts create mode 100644 src/utils/clusterVersionColors.ts create mode 100644 src/utils/monitoring.ts create mode 100644 src/utils/parseBalancer.ts create mode 100644 src/utils/prepareBackend.ts diff --git a/package.json b/package.json index 2b2b017ad6..4f6d54223e 100644 --- a/package.json +++ b/package.json @@ -144,6 +144,8 @@ "typescript": "^4.5.5" }, "peerDependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2", "@gravity-ui/uikit": "^5.24.0" } } diff --git a/public/index.html b/public/index.html index 384fde047b..107680406e 100644 --- a/public/index.html +++ b/public/index.html @@ -8,6 +8,7 @@ +