Skip to content

Commit 79d11f0

Browse files
authored
fix: tune databases handler call (#3221)
1 parent 0859c37 commit 79d11f0

File tree

8 files changed

+24
-13
lines changed

8 files changed

+24
-13
lines changed

src/components/ConnectToDB/ConnectToDBDialog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import NiceModal from '@ebay/nice-modal-react';
44
import {Dialog, Tab, TabList, TabProvider} from '@gravity-ui/uikit';
55
import {skipToken} from '@reduxjs/toolkit/query';
66

7-
import {useDatabasesAvailable} from '../../store/reducers/capabilities/hooks';
87
import {tenantApi} from '../../store/reducers/tenant/tenant';
98
import {cn} from '../../utils/cn';
109
import {useTypedSelector} from '../../utils/hooks';
1110
import {useClusterNameFromQuery} from '../../utils/hooks/useDatabaseFromQuery';
11+
import {useDatabasesV2} from '../../utils/hooks/useDatabasesV2';
1212
import {LinkWithIcon} from '../LinkWithIcon/LinkWithIcon';
1313
import {LoaderWrapper} from '../LoaderWrapper/LoaderWrapper';
1414
import {YDBSyntaxHighlighterLazy} from '../SyntaxHighlighter/lazy';
@@ -49,7 +49,7 @@ function ConnectToDBDialog({
4949
const clusterName = useClusterNameFromQuery();
5050
const singleClusterMode = useTypedSelector((state) => state.singleClusterMode);
5151

52-
const isMetaDatabasesAvailable = useDatabasesAvailable();
52+
const isMetaDatabasesAvailable = useDatabasesV2();
5353

5454
// If there is endpoint from props, we don't need to request tenant data
5555
// Also we should not request tenant data if we are in single cluster mode

src/components/TenantNameWrapper/TenantNameWrapper.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const getTenantBackend = (
3737

3838
export function TenantNameWrapper({tenant, additionalTenantsProps}: TenantNameWrapperProps) {
3939
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
40+
const {settings} = useClusterBaseInfo();
4041

4142
const backend = getTenantBackend(tenant, additionalTenantsProps);
4243
const isExternalLink = Boolean(backend);
@@ -60,7 +61,7 @@ export function TenantNameWrapper({tenant, additionalTenantsProps}: TenantNameWr
6061
</DefinitionList.Item>
6162
</DefinitionList>
6263
) : null;
63-
64+
const useDatabaseId = uiFactory.useDatabaseId && settings?.use_meta_proxy !== false;
6465
return (
6566
<EntityStatus
6667
externalLink={isExternalLink}
@@ -71,7 +72,7 @@ export function TenantNameWrapper({tenant, additionalTenantsProps}: TenantNameWr
7172
hasClipboardButton
7273
path={getTenantPath(
7374
{
74-
database: uiFactory.useDatabaseId ? tenant.Id : tenant.Name,
75+
database: useDatabaseId ? tenant.Id : tenant.Name,
7576
backend,
7677
},
7778
{withBasename: isExternalLink},

src/containers/Header/Header.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import {checkIsClustersPage, checkIsTenantPage, getClusterPath} from '../../rout
1919
import {environment} from '../../store';
2020
import {
2121
useAddClusterFeatureAvailable,
22-
useDatabasesAvailable,
2322
useDeleteDatabaseFeatureAvailable,
2423
useEditDatabaseFeatureAvailable,
2524
useMetaCapabilitiesLoaded,
@@ -36,6 +35,7 @@ import {
3635
useClusterNameFromQuery,
3736
useDatabaseFromQuery,
3837
} from '../../utils/hooks/useDatabaseFromQuery';
38+
import {useDatabasesV2} from '../../utils/hooks/useDatabasesV2';
3939
import {
4040
useIsUserAllowedToMakeChanges,
4141
useIsViewerUser,
@@ -57,7 +57,7 @@ function Header() {
5757
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
5858
const isViewerUser = useIsViewerUser();
5959

60-
const isMetaDatabasesAvailable = useDatabasesAvailable();
60+
const isMetaDatabasesAvailable = useDatabasesV2();
6161

6262
const {title: clusterTitle, monitoring} = useClusterBaseInfo();
6363

src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import {Button, Flex, HelpMark, Icon, Label} from '@gravity-ui/uikit';
44
import {EntityStatus} from '../../../../components/EntityStatus/EntityStatus';
55
import {LoaderWrapper} from '../../../../components/LoaderWrapper/LoaderWrapper';
66
import {QueriesActivityBar} from '../../../../components/QueriesActivityBar/QueriesActivityBar';
7-
import {useDatabasesAvailable} from '../../../../store/reducers/capabilities/hooks';
87
import {useClusterBaseInfo} from '../../../../store/reducers/cluster/cluster';
98
import {overviewApi} from '../../../../store/reducers/overview/overview';
109
import {
@@ -19,6 +18,7 @@ import {getInfoTabLinks} from '../../../../utils/additionalProps';
1918
import {TENANT_DEFAULT_TITLE} from '../../../../utils/constants';
2019
import {useAutoRefreshInterval, useTypedDispatch, useTypedSelector} from '../../../../utils/hooks';
2120
import {useClusterNameFromQuery} from '../../../../utils/hooks/useDatabaseFromQuery';
21+
import {useDatabasesV2} from '../../../../utils/hooks/useDatabasesV2';
2222
import {canShowTenantMonitoringTab} from '../../../../utils/monitoringVisibility';
2323
import {useTenantPage} from '../../TenantNavigation/useTenantNavigation';
2424
import {mapDatabaseTypeToDBName} from '../../utils/schema';
@@ -52,7 +52,7 @@ export function TenantOverview({
5252

5353
const {handleTenantPageChange} = useTenantPage();
5454

55-
const isMetaDatabasesAvailable = useDatabasesAvailable();
55+
const isMetaDatabasesAvailable = useDatabasesV2();
5656

5757
const {currentData: tenant, isFetching} = tenantApi.useGetTenantInfoQuery(
5858
{database, clusterName, isMetaDatabasesAvailable},

src/containers/Tenants/Tenants.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import {TableWithControlsLayout} from '../../components/TableWithControlsLayout/
1717
import {TenantNameWrapper} from '../../components/TenantNameWrapper/TenantNameWrapper';
1818
import {
1919
useCreateDatabaseFeatureAvailable,
20-
useDatabasesAvailable,
2120
useDeleteDatabaseFeatureAvailable,
2221
useEditDatabaseFeatureAvailable,
2322
} from '../../store/reducers/capabilities/hooks';
@@ -42,6 +41,7 @@ import {
4241
} from '../../utils/dataFormatters/dataFormatters';
4342
import {useAutoRefreshInterval, useSetting} from '../../utils/hooks';
4443
import {useClusterNameFromQuery} from '../../utils/hooks/useDatabaseFromQuery';
44+
import {useDatabasesV2} from '../../utils/hooks/useDatabasesV2';
4545
import {isNumeric} from '../../utils/utils';
4646

4747
import i18n from './i18n';
@@ -77,7 +77,7 @@ interface TenantsProps {
7777

7878
export const Tenants = ({additionalTenantsProps, scrollContainerRef}: TenantsProps) => {
7979
const clusterName = useClusterNameFromQuery();
80-
const isMetaDatabasesAvailable = useDatabasesAvailable();
80+
const isMetaDatabasesAvailable = useDatabasesV2();
8181
const [autoRefreshInterval] = useAutoRefreshInterval();
8282
const {currentData, isFetching, error} = tenantsApi.useGetTenantsInfoQuery(
8383
{clusterName, isMetaDatabasesAvailable},

src/services/api/meta.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ export class MetaAPI extends BaseMetaAPI {
4343
{signal}: AxiosOptions = {},
4444
) {
4545
return this.get<MetaTenants>(
46-
this.getPath('/meta/cp_databases', clusterName),
46+
// cp_databases never should be proxying to cluster
47+
this.getPath('/meta/cp_databases'),
4748
{
4849
cluster_name: clusterName,
4950
database_name: database,

src/store/reducers/tenant/tenant.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import type {PayloadAction} from '@reduxjs/toolkit';
33

44
import type {TTenantInfo} from '../../../types/api/tenant';
55
import {useClusterNameFromQuery} from '../../../utils/hooks/useDatabaseFromQuery';
6+
import {useDatabasesV2} from '../../../utils/hooks/useDatabasesV2';
67
import {api} from '../api';
7-
import {useDatabasesAvailable} from '../capabilities/hooks';
88
import {prepareTenants} from '../tenants/utils';
99

1010
import {TENANT_DIAGNOSTICS_TABS_IDS, TENANT_METRICS_TABS_IDS} from './constants';
@@ -101,7 +101,7 @@ export const tenantApi = api.injectEndpoints({
101101

102102
export function useTenantBaseInfo(database: string) {
103103
const clusterNameFromQuery = useClusterNameFromQuery();
104-
const isMetaDatabasesAvailable = useDatabasesAvailable();
104+
const isMetaDatabasesAvailable = useDatabasesV2();
105105

106106
const {currentData, isLoading, isError} = tenantApi.useGetTenantInfoQuery(
107107
{

src/utils/hooks/useDatabasesV2.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import {useDatabasesAvailable} from '../../store/reducers/capabilities/hooks';
2+
import {useClusterBaseInfo} from '../../store/reducers/cluster/cluster';
3+
4+
export function useDatabasesV2() {
5+
const {settings} = useClusterBaseInfo();
6+
const isMetaDatabasesAvailable = useDatabasesAvailable();
7+
8+
return settings?.use_meta_proxy !== false && isMetaDatabasesAvailable;
9+
}

0 commit comments

Comments
 (0)