ydb-embedded-ui 3.4.3 → 3.4.4
Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [3.4.4](https://github.com/ydb-platform/ydb-embedded-ui/compare/v3.4.3...v3.4.4) (2023-03-22)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* **Diagnostics:** display nodes tab for not db entities ([a542dbc](https://github.com/ydb-platform/ydb-embedded-ui/commit/a542dbc23d01138a5c1a4126cfc1836a1543b68c))
|
9
|
+
|
3
10
|
## [3.4.3](https://github.com/ydb-platform/ydb-embedded-ui/compare/v3.4.2...v3.4.3) (2023-03-17)
|
4
11
|
|
5
12
|
|
@@ -4,10 +4,11 @@ import {useDispatch} from 'react-redux';
|
|
4
4
|
|
5
5
|
import DataTable from '@gravity-ui/react-data-table';
|
6
6
|
|
7
|
+
import type {EPathType} from '../../types/api/schema';
|
8
|
+
|
7
9
|
import {AccessDenied} from '../../components/Errors/403';
|
8
10
|
import {Illustration} from '../../components/Illustration';
|
9
11
|
import {Loader} from '../../components/Loader';
|
10
|
-
|
11
12
|
import {Search} from '../../components/Search';
|
12
13
|
import {ProblemFilter} from '../../components/ProblemFilter';
|
13
14
|
import {UptimeFilter} from '../../components/UptimeFIlter';
|
@@ -35,6 +36,8 @@ import {
|
|
35
36
|
import {changeFilter, getSettingValue} from '../../store/reducers/settings';
|
36
37
|
import {hideTooltip, showTooltip} from '../../store/reducers/tooltip';
|
37
38
|
|
39
|
+
import {isDatabaseEntityType} from '../Tenant/utils/schema';
|
40
|
+
|
38
41
|
import {getNodesColumns} from './getNodesColumns';
|
39
42
|
|
40
43
|
import './Nodes.scss';
|
@@ -48,22 +51,23 @@ interface IAdditionalNodesInfo extends Record<string, unknown> {
|
|
48
51
|
}
|
49
52
|
|
50
53
|
interface NodesProps {
|
51
|
-
|
54
|
+
path?: string;
|
55
|
+
type?: EPathType;
|
52
56
|
className?: string;
|
53
57
|
additionalNodesInfo?: IAdditionalNodesInfo;
|
54
58
|
}
|
55
59
|
|
56
|
-
export const Nodes = ({
|
60
|
+
export const Nodes = ({path, type, className, additionalNodesInfo = {}}: NodesProps) => {
|
57
61
|
const dispatch = useDispatch();
|
58
62
|
|
59
|
-
const isClusterNodes = !
|
63
|
+
const isClusterNodes = !path;
|
60
64
|
|
61
65
|
// Since Nodes component is used in several places,
|
62
66
|
// we need to reset filters, searchValue and loading state
|
63
67
|
// in nodes reducer when path changes
|
64
68
|
useEffect(() => {
|
65
69
|
dispatch(resetNodesState());
|
66
|
-
}, [dispatch,
|
70
|
+
}, [dispatch, path]);
|
67
71
|
|
68
72
|
const {wasLoaded, loading, error, nodesUptimeFilter, searchValue, totalNodes} =
|
69
73
|
useTypedSelector((state) => state.nodes);
|
@@ -77,12 +81,14 @@ export const Nodes = ({tenantPath, className, additionalNodesInfo = {}}: NodesPr
|
|
77
81
|
);
|
78
82
|
|
79
83
|
const fetchNodes = useCallback(() => {
|
80
|
-
|
81
|
-
|
84
|
+
// For not DB entities we always use /compute endpoint instead of /nodes
|
85
|
+
// since /nodes can return data only for tenants
|
86
|
+
if (path && (!JSON.parse(useNodesEndpoint) || !isDatabaseEntityType(type))) {
|
87
|
+
dispatch(getComputeNodes(path));
|
82
88
|
} else {
|
83
|
-
dispatch(getNodes({tenant:
|
89
|
+
dispatch(getNodes({tenant: path}));
|
84
90
|
}
|
85
|
-
}, [dispatch,
|
91
|
+
}, [dispatch, path, type, useNodesEndpoint]);
|
86
92
|
|
87
93
|
useAutofetcher(fetchNodes, [fetchNodes], isClusterNodes ? true : autorefresh);
|
88
94
|
|
@@ -131,7 +131,8 @@ function Diagnostics(props: DiagnosticsProps) {
|
|
131
131
|
case GeneralPagesIds.nodes: {
|
132
132
|
return (
|
133
133
|
<Nodes
|
134
|
-
|
134
|
+
path={currentSchemaPath}
|
135
|
+
type={type}
|
135
136
|
additionalNodesInfo={props.additionalNodesInfo}
|
136
137
|
/>
|
137
138
|
);
|
@@ -89,12 +89,12 @@ export const DATABASE_PAGES = [
|
|
89
89
|
describe,
|
90
90
|
];
|
91
91
|
|
92
|
-
export const TABLE_PAGES = [overview, topShards, graph, tablets, hotKeys, describe];
|
92
|
+
export const TABLE_PAGES = [overview, topShards, nodes, graph, tablets, hotKeys, describe];
|
93
93
|
|
94
|
-
export const DIR_PAGES = [overview, topShards, describe];
|
94
|
+
export const DIR_PAGES = [overview, topShards, nodes, describe];
|
95
95
|
|
96
|
-
export const CDC_STREAM_PAGES = [overview, consumers, partitions, describe];
|
97
|
-
export const TOPIC_PAGES = [overview, consumers, partitions, describe];
|
96
|
+
export const CDC_STREAM_PAGES = [overview, consumers, partitions, nodes, describe];
|
97
|
+
export const TOPIC_PAGES = [overview, consumers, partitions, nodes, describe];
|
98
98
|
|
99
99
|
// verbose mapping to guarantee correct tabs for new path types
|
100
100
|
// TS will error when a new type is added but not mapped here
|