From 38c8622addce42211c9ad03e97cc71aa07635f10 Mon Sep 17 00:00:00 2001 From: mufazalov Date: Mon, 16 Dec 2024 16:35:31 +0300 Subject: [PATCH] feat: remove /meta/cluster --- .../ExtendedCluster/ExtendedCluster.tsx | 16 ++++------ .../AppWithClusters/useClusterData.ts | 3 +- src/containers/Cluster/Cluster.tsx | 7 ++++- src/services/api/meta.ts | 12 -------- src/services/parsers/parseMetaCluster.ts | 29 ------------------- src/store/reducers/cluster/cluster.ts | 14 +++++---- src/types/api/cluster.ts | 8 ----- 7 files changed, 21 insertions(+), 68 deletions(-) diff --git a/src/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.tsx b/src/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.tsx index e2e00815e2..92c2fbdc81 100644 --- a/src/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.tsx +++ b/src/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.tsx @@ -1,5 +1,6 @@ import {ClipboardButton} from '@gravity-ui/uikit'; +import {useClusterBaseInfo} from '../../../store/reducers/cluster/cluster'; import type { AdditionalClusterProps, AdditionalTenantsProps, @@ -122,27 +123,22 @@ export function ExtendedCluster({ getMonitoringLink, getMonitoringClusterLink, }: ExtendedClusterProps) { - const { - monitoring, - balancer, - versions, - cluster, - useClusterBalancerAsBackend, - additionalNodesProps, - } = useClusterData(); + const {versions, useClusterBalancerAsBackend, additionalNodesProps} = useClusterData(); + + const {name, balancer, monitoring} = useClusterBaseInfo(); return (
cluster.name === clusterName); }, [data, clusterName]); - const {solomon: monitoring, balancer, versions, cluster} = info || {}; + const {solomon: monitoring, balancer, versions} = info || {}; return { monitoring, balancer, versions, - cluster, ...useAdditionalNodeProps({balancer}), }; } diff --git a/src/containers/Cluster/Cluster.tsx b/src/containers/Cluster/Cluster.tsx index d6d1d3adde..5ca09c9cbc 100644 --- a/src/containers/Cluster/Cluster.tsx +++ b/src/containers/Cluster/Cluster.tsx @@ -15,6 +15,7 @@ import { selectClusterTabletsWithFqdn, selectClusterTitle, updateDefaultClusterTab, + useClusterBaseInfo, } from '../../store/reducers/cluster/cluster'; import {setHeaderBreadcrumbs} from '../../store/reducers/header/header'; import type { @@ -66,10 +67,14 @@ export function Cluster({ backend: StringParam, }); - const clusterTitle = useTypedSelector((state) => + const viewerClusterTitle = useTypedSelector((state) => selectClusterTitle(state, clusterName ?? undefined), ); + const {title: metaClusterTitle} = useClusterBaseInfo(); + + const clusterTitle = metaClusterTitle ?? viewerClusterTitle; + const { data: {clusterData: cluster = {}, groupsStats} = {}, isLoading: infoLoading, diff --git a/src/services/api/meta.ts b/src/services/api/meta.ts index 006006a645..73a93a84bb 100644 --- a/src/services/api/meta.ts +++ b/src/services/api/meta.ts @@ -2,11 +2,9 @@ import {metaBackend as META_BACKEND} from '../../store'; import type { MetaBaseClusterInfo, MetaBaseClusters, - MetaCluster, MetaClusters, MetaTenants, } from '../../types/api/meta'; -import {parseMetaCluster} from '../parsers/parseMetaCluster'; import {parseMetaTenants} from '../parsers/parseMetaTenants'; import type {AxiosOptions} from './base'; @@ -23,16 +21,6 @@ export class MetaAPI extends BaseYdbAPI { }); } - getClusterInfo(clusterName?: string, {signal}: AxiosOptions = {}) { - return this.get( - this.getPath('/meta/cluster'), - { - name: clusterName, - }, - {concurrentId: `getCluster${clusterName}`, requestConfig: {signal}}, - ).then(parseMetaCluster); - } - getTenants(clusterName?: string, {signal}: AxiosOptions = {}) { return this.get( this.getPath('/meta/cp_databases'), diff --git a/src/services/parsers/parseMetaCluster.ts b/src/services/parsers/parseMetaCluster.ts index 5b4cbd09c8..58922f5fbb 100644 --- a/src/services/parsers/parseMetaCluster.ts +++ b/src/services/parsers/parseMetaCluster.ts @@ -1,34 +1,5 @@ -import type {TClusterInfo} from '../../types/api/cluster'; -import type {MetaCluster} from '../../types/api/meta'; import {traceCheckSchema, traceViewSchema} from '../../types/api/trace'; -export const parseMetaCluster = (data: MetaCluster): TClusterInfo => { - const {cluster = {}} = data; - - const { - cluster: generalClusterInfo, - balancer, - solomon, - trace_check: traceCheck, - trace_view: traceView, - } = cluster; - - const {traceCheck: TraceCheck, traceView: TraceView} = parseTraceFields({ - traceCheck, - traceView, - }); - - return { - ...generalClusterInfo, - Name: cluster.title || generalClusterInfo?.Name, - - Balancer: balancer, - Solomon: solomon, - TraceCheck, - TraceView, - }; -}; - export function parseTraceFields({ traceCheck, traceView, diff --git a/src/store/reducers/cluster/cluster.ts b/src/store/reducers/cluster/cluster.ts index f5b1aa4d69..a5daafafe1 100644 --- a/src/store/reducers/cluster/cluster.ts +++ b/src/store/reducers/cluster/cluster.ts @@ -67,9 +67,9 @@ export const clusterApi = api.injectEndpoints({ >({ queryFn: async (clusterName, {signal}) => { try { - const clusterData = window.api.meta - ? await window.api.meta.getClusterInfo(clusterName, {signal}) - : await window.api.viewer.getClusterInfo(clusterName, {signal}); + const clusterData = await window.api.viewer.getClusterInfo(clusterName, { + signal, + }); const clusterRoot = clusterData.Domain; // Without domain we cannot get stats from system tables @@ -171,9 +171,11 @@ export const selectClusterTitle = createSelector( (_state: RootState, clusterName?: string) => clusterName, (state: RootState, clusterName?: string) => selectClusterInfo(state, clusterName), (clusterName, clusterInfo) => { - const {Name, Domain} = clusterInfo?.clusterData || {}; - - return Name || clusterName || normalizeDomain(Domain) || CLUSTER_DEFAULT_TITLE; + return ( + clusterName || + normalizeDomain(clusterInfo?.clusterData?.Domain) || + CLUSTER_DEFAULT_TITLE + ); }, ); diff --git a/src/types/api/cluster.ts b/src/types/api/cluster.ts index 178d2f68df..a3102d01c4 100644 --- a/src/types/api/cluster.ts +++ b/src/types/api/cluster.ts @@ -1,6 +1,5 @@ import type {EFlag} from './enums'; import type {TTabletStateInfo} from './tablet'; -import type {TTraceCheck, TTraceView} from './trace'; /** * endpoint: viewer/json/cluster @@ -9,7 +8,6 @@ import type {TTraceCheck, TTraceView} from './trace'; */ export interface TClusterInfoV1 { error?: string; - Name?: string; Overall?: EFlag; NodesTotal?: number; NodesAlive?: number; @@ -36,12 +34,6 @@ export interface TClusterInfoV1 { /** Cluster root database */ Domain?: string; - - Balancer?: string; // additional - Solomon?: string; // additional - - TraceView?: TTraceView; - TraceCheck?: TTraceCheck; } export interface TStorageStats {