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 {