ydb-embedded-ui 1.11.0 → 1.11.1
Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [1.11.1](https://github.com/ydb-platform/ydb-embedded-ui/compare/v1.11.0...v1.11.1) (2022-08-26)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* number type instead of string for uint32 ([e60799e](https://github.com/ydb-platform/ydb-embedded-ui/commit/e60799edec4ef831e8c0d51f4384cde83520541d))
|
9
|
+
* **Storage:** expect arbitrary donors data ([09f8e08](https://github.com/ydb-platform/ydb-embedded-ui/commit/09f8e085c94faacd9da502643355e932346502ac))
|
10
|
+
* vdisk data contains pdisk data, not id ([bd1ea7f](https://github.com/ydb-platform/ydb-embedded-ui/commit/bd1ea7f59e0461256bb12f146b50470d21ac1ace))
|
11
|
+
|
3
12
|
## [1.11.0](https://github.com/ydb-platform/ydb-embedded-ui/compare/v1.10.3...v1.11.0) (2022-08-23)
|
4
13
|
|
5
14
|
|
@@ -3,7 +3,6 @@ import cn from 'bem-cn-lite';
|
|
3
3
|
import DataTable, {Column, Settings, SortOrder} from '@yandex-cloud/react-data-table';
|
4
4
|
import {Popover, PopoverBehavior} from '@yandex-cloud/uikit';
|
5
5
|
|
6
|
-
import Vdisk from '../Vdisk/Vdisk';
|
7
6
|
import {Stack} from '../../../components/Stack/Stack';
|
8
7
|
//@ts-ignore
|
9
8
|
import EntityStatus from '../../../components/EntityStatus/EntityStatus';
|
@@ -16,6 +15,9 @@ import {bytesToGB, bytesToSpeed} from '../../../utils/utils';
|
|
16
15
|
//@ts-ignore
|
17
16
|
import {stringifyVdiskId} from '../../../utils';
|
18
17
|
|
18
|
+
import Vdisk from '../Vdisk/Vdisk';
|
19
|
+
import {isFullDonorData} from '../utils';
|
20
|
+
|
19
21
|
import './StorageGroups.scss';
|
20
22
|
|
21
23
|
enum TableColumnsIds {
|
@@ -197,34 +199,38 @@ function StorageGroups({data, tableSettings, visibleEntities, nodes}: StorageGro
|
|
197
199
|
header: tableColumnsNames[TableColumnsIds.VDisks],
|
198
200
|
render: ({value, row}) => (
|
199
201
|
<div className={b('vdisks-wrapper')}>
|
200
|
-
{_.map(value as TVDiskStateInfo[], (el) =>
|
201
|
-
Array.isArray(el.Donors)
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
202
|
+
{_.map(value as TVDiskStateInfo[], (el) => {
|
203
|
+
const donors = Array.isArray(el.Donors) ? el.Donors.filter(isFullDonorData) : [];
|
204
|
+
|
205
|
+
return (
|
206
|
+
donors.length > 0 ? (
|
207
|
+
<Stack className={b('vdisks-item')} key={stringifyVdiskId(el.VDiskId)}>
|
208
|
+
<Vdisk
|
209
|
+
{...el}
|
210
|
+
PoolName={row[TableColumnsIds.PoolName]}
|
211
|
+
nodes={nodes}
|
212
|
+
/>
|
213
|
+
{donors.map((donor) => (
|
214
|
+
<Vdisk
|
215
|
+
{...donor}
|
216
|
+
// donor and acceptor are always in the same group
|
217
|
+
PoolName={row[TableColumnsIds.PoolName]}
|
218
|
+
nodes={nodes}
|
219
|
+
key={stringifyVdiskId(donor.VDiskId)}
|
220
|
+
/>
|
221
|
+
))}
|
222
|
+
</Stack>
|
223
|
+
) : (
|
224
|
+
<div className={b('vdisks-item')} key={stringifyVdiskId(el.VDiskId)}>
|
209
225
|
<Vdisk
|
210
|
-
{...
|
211
|
-
// donor and acceptor are always in the same group
|
226
|
+
{...el}
|
212
227
|
PoolName={row[TableColumnsIds.PoolName]}
|
213
228
|
nodes={nodes}
|
214
|
-
key={stringifyVdiskId(donor.VDiskId)}
|
215
229
|
/>
|
216
|
-
|
217
|
-
|
218
|
-
)
|
219
|
-
|
220
|
-
<Vdisk
|
221
|
-
{...el}
|
222
|
-
PoolName={row[TableColumnsIds.PoolName]}
|
223
|
-
nodes={nodes}
|
224
|
-
/>
|
225
|
-
</div>
|
226
|
-
)
|
227
|
-
))}
|
230
|
+
</div>
|
231
|
+
)
|
232
|
+
);
|
233
|
+
})}
|
228
234
|
</div>
|
229
235
|
),
|
230
236
|
align: DataTable.CENTER,
|
package/dist/types/api/schema.ts
CHANGED
@@ -91,27 +91,19 @@ export interface TTableDescription {
|
|
91
91
|
export interface TPartitionConfig {
|
92
92
|
/** uint64 */
|
93
93
|
FollowerCount?: string;
|
94
|
-
/**
|
95
|
-
|
96
|
-
* @deprecated use FollowerGroups
|
97
|
-
*/
|
98
|
-
CrossDataCenterFollowerCount?: string;
|
94
|
+
/** @deprecated use FollowerGroups */
|
95
|
+
CrossDataCenterFollowerCount?: number;
|
99
96
|
/** 0 or 1 items */
|
100
97
|
FollowerGroups?: TFollowerGroup[];
|
101
98
|
}
|
102
99
|
|
103
100
|
export interface TFollowerGroup {
|
104
|
-
|
105
|
-
FollowerCount?: string;
|
101
|
+
FollowerCount?: number;
|
106
102
|
AllowLeaderPromotion?: boolean;
|
107
103
|
AllowClientRead?: boolean;
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
* uint32[]
|
112
|
-
* @deprecated use AllowedDataCenters
|
113
|
-
*/
|
114
|
-
AllowedDataCenterNumIDs?: string[];
|
104
|
+
AllowedNodeIDs?: number[];
|
105
|
+
/** @deprecated use AllowedDataCenters */
|
106
|
+
AllowedDataCenterNumIDs?: number[];
|
115
107
|
RequireAllDataCenters?: boolean;
|
116
108
|
LocalNodeOnly?: boolean;
|
117
109
|
RequireDifferentNodes?: boolean;
|
@@ -64,12 +64,11 @@ export enum EVDiskState {
|
|
64
64
|
|
65
65
|
interface TRank {
|
66
66
|
/**
|
67
|
-
* uint32
|
68
67
|
* Rank in percents; 0-100% is good; >100% is bad.
|
69
68
|
* Formula for rank calculation is the following:
|
70
69
|
* Rank = actual_value / max_allowed_value * 100
|
71
70
|
*/
|
72
|
-
RankPercent?:
|
71
|
+
RankPercent?: number;
|
73
72
|
|
74
73
|
/**
|
75
74
|
* Flag is the Rank transformed to something simple
|
@@ -84,16 +83,17 @@ interface TVDiskSatisfactionRank {
|
|
84
83
|
}
|
85
84
|
|
86
85
|
interface TVDiskID {
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
86
|
+
GroupID?: number;
|
87
|
+
GroupGeneration?: number;
|
88
|
+
Ring?: number;
|
89
|
+
Domain?: number;
|
90
|
+
VDisk?: number;
|
91
|
+
}
|
92
|
+
|
93
|
+
export interface TVSlotId {
|
94
|
+
NodeId?: number;
|
95
|
+
PDiskId?: number;
|
96
|
+
VSlotId?: number;
|
97
97
|
}
|
98
98
|
|
99
99
|
export interface TVDiskStateInfo {
|
@@ -102,18 +102,14 @@ export interface TVDiskStateInfo {
|
|
102
102
|
CreateTime?: string;
|
103
103
|
/** uint64 */
|
104
104
|
ChangeTime?: string;
|
105
|
-
|
106
|
-
|
107
|
-
/** uint32 */
|
108
|
-
VDiskSlotId?: string;
|
105
|
+
PDisk?: TPDiskStateInfo;
|
106
|
+
VDiskSlotId?: number;
|
109
107
|
/** uint64 */
|
110
108
|
Guid?: string;
|
111
109
|
/** uint64 */
|
112
110
|
Kind?: string;
|
113
|
-
|
114
|
-
|
115
|
-
/** uint32 */
|
116
|
-
Count?: string;
|
111
|
+
NodeId?: number;
|
112
|
+
Count?: number;
|
117
113
|
|
118
114
|
Overall?: EFlag;
|
119
115
|
|
@@ -154,7 +150,8 @@ export interface TVDiskStateInfo {
|
|
154
150
|
* VDisk actor instance guid
|
155
151
|
*/
|
156
152
|
InstanceGuid?: string;
|
157
|
-
Donors
|
153
|
+
// in reality it is `Donors: TVDiskStateInfo[] | TVSlotId[]`, but this way it is more error-proof
|
154
|
+
Donors?: Array<TVDiskStateInfo | TVSlotId>;
|
158
155
|
|
159
156
|
/** VDisk (Skeleton) Front Queue Status */
|
160
157
|
FrontQueues?: EFlag;
|