ydb-embedded-ui 5.3.0 → 5.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. package/dist/components/DiskPageTitle/DiskPageTitle.d.ts +11 -0
  2. package/dist/components/DiskPageTitle/DiskPageTitle.js +8 -0
  3. package/dist/components/DiskPageTitle/DiskPageTitle.scss +17 -0
  4. package/dist/{containers/Storage → components}/DiskStateProgressBar/DiskStateProgressBar.js +3 -3
  5. package/dist/components/ErrorBoundary/ErrorBoundary.d.ts +1 -1
  6. package/dist/components/GroupInfo/GroupInfo.d.ts +8 -0
  7. package/dist/components/GroupInfo/GroupInfo.js +28 -0
  8. package/dist/components/GroupInfo/i18n/en.json +6 -0
  9. package/dist/components/GroupInfo/i18n/index.d.ts +1 -0
  10. package/dist/components/GroupInfo/i18n/index.js +4 -0
  11. package/dist/components/MetricChart/MetricChart.js +12 -5
  12. package/dist/components/MetricChart/colors.d.ts +2 -0
  13. package/dist/components/MetricChart/colors.js +21 -0
  14. package/dist/components/MetricChart/getDefaultDataFormatter.js +9 -0
  15. package/dist/components/MetricChart/types.d.ts +11 -2
  16. package/dist/components/MonacoEditor/MonacoEditor.d.ts +2 -0
  17. package/dist/components/MonacoEditor/MonacoEditor.js +7 -0
  18. package/dist/{containers/Storage → components}/PDiskPopup/PDiskPopup.d.ts +3 -3
  19. package/dist/{containers/Storage → components}/PDiskPopup/PDiskPopup.js +6 -5
  20. package/dist/components/PageMeta/PageMeta.d.ts +2 -1
  21. package/dist/components/PageMeta/PageMeta.js +9 -2
  22. package/dist/components/PageMeta/PageMeta.scss +9 -0
  23. package/dist/components/Stack/Stack.scss +2 -0
  24. package/dist/{containers/Storage → components}/VDisk/VDisk.d.ts +2 -2
  25. package/dist/{containers/Storage → components}/VDisk/VDisk.js +8 -8
  26. package/dist/{containers/Storage → components}/VDisk/VDisk.scss +1 -1
  27. package/dist/components/VDisk/VDiskWithDonorsStack.d.ts +12 -0
  28. package/dist/components/VDisk/VDiskWithDonorsStack.js +14 -0
  29. package/dist/components/VDiskInfo/VDiskInfo.d.ts +10 -0
  30. package/dist/components/VDiskInfo/VDiskInfo.js +113 -0
  31. package/dist/components/VDiskInfo/VDiskInfo.scss +8 -0
  32. package/dist/components/VDiskInfo/i18n/en.json +23 -0
  33. package/dist/components/VDiskInfo/i18n/index.d.ts +1 -0
  34. package/dist/components/VDiskInfo/i18n/index.js +4 -0
  35. package/dist/{containers/Storage → components}/VDiskPopup/VDiskPopup.d.ts +3 -3
  36. package/dist/{containers/Storage → components}/VDiskPopup/VDiskPopup.js +8 -7
  37. package/dist/components/VirtualTable/TableHead.d.ts +2 -1
  38. package/dist/components/VirtualTable/TableHead.js +6 -6
  39. package/dist/components/VirtualTable/constants.d.ts +1 -0
  40. package/dist/components/VirtualTable/constants.js +1 -0
  41. package/dist/containers/App/App.js +0 -2
  42. package/dist/containers/App/App.scss +3 -0
  43. package/dist/containers/App/Content.js +19 -5
  44. package/dist/containers/App/appSlots.d.ts +9 -3
  45. package/dist/containers/App/appSlots.js +2 -1
  46. package/dist/containers/Header/breadcrumbs.js +12 -0
  47. package/dist/containers/Header/i18n/en.json +1 -0
  48. package/dist/containers/Header/i18n/index.d.ts +1 -1
  49. package/dist/containers/Heatmap/HeatmapCanvas/HeatmapCanvas.js +2 -2
  50. package/dist/containers/Node/NodeStructure/NodeStructure.js +1 -1
  51. package/dist/containers/Node/NodeStructure/Pdisk.js +2 -2
  52. package/dist/containers/Node/NodeStructure/Vdisk.d.ts +6 -2
  53. package/dist/containers/Node/NodeStructure/Vdisk.js +5 -78
  54. package/dist/containers/Nodes/getNodesColumns.js +0 -1
  55. package/dist/containers/PDiskPage/PDiskPage.d.ts +3 -0
  56. package/dist/containers/{PDisk/PDisk.js → PDiskPage/PDiskPage.js} +30 -14
  57. package/dist/containers/{PDisk/PDisk.scss → PDiskPage/PDiskPage.scss} +1 -14
  58. package/dist/containers/PDiskPage/i18n/en.json +8 -0
  59. package/dist/containers/PDiskPage/i18n/index.d.ts +1 -0
  60. package/dist/containers/Storage/PDisk/PDisk.js +4 -10
  61. package/dist/containers/Storage/PDisk/PDisk.scss +0 -2
  62. package/dist/containers/Storage/Storage.js +1 -2
  63. package/dist/containers/Storage/StorageGroups/StorageGroups.scss +1 -7
  64. package/dist/containers/Storage/StorageGroups/getStorageGroupsColumns.d.ts +1 -1
  65. package/dist/containers/Storage/StorageGroups/getStorageGroupsColumns.js +9 -17
  66. package/dist/containers/Storage/VirtualStorage.js +3 -7
  67. package/dist/containers/Tablet/TabletControls/TabletControls.js +2 -1
  68. package/dist/containers/TabletsFilters/TabletsFilters.d.ts +2 -2
  69. package/dist/containers/TabletsFilters/TabletsFilters.js +7 -6
  70. package/dist/containers/Tenant/Diagnostics/Consumers/Consumers.js +1 -1
  71. package/dist/containers/Tenant/Diagnostics/Network/Network.js +2 -2
  72. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +1 -2
  73. package/dist/containers/Tenant/Diagnostics/Partitions/PartitionsControls/PartitionsControls.js +1 -1
  74. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/cpuDashboardConfig.js +14 -5
  75. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +1 -1
  76. package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.js +5 -3
  77. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +6 -4
  78. package/dist/containers/Tenant/Query/SaveQuery/SaveQuery.js +2 -2
  79. package/dist/containers/Tenant/Tenant.js +10 -5
  80. package/dist/containers/Tenants/Tenants.js +3 -2
  81. package/dist/containers/VDiskPage/VDiskPage.d.ts +3 -0
  82. package/dist/containers/VDiskPage/VDiskPage.js +109 -0
  83. package/dist/containers/VDiskPage/VDiskPage.scss +32 -0
  84. package/dist/containers/VDiskPage/i18n/en.json +9 -0
  85. package/dist/containers/VDiskPage/i18n/index.d.ts +1 -0
  86. package/dist/containers/VDiskPage/i18n/index.js +4 -0
  87. package/dist/containers/Versions/groupNodes.js +1 -1
  88. package/dist/routes.d.ts +3 -0
  89. package/dist/routes.js +5 -0
  90. package/dist/services/api.d.ts +12 -4
  91. package/dist/services/api.js +39 -4
  92. package/dist/store/configureStore.d.ts +4 -0
  93. package/dist/store/defaultStore.d.ts +2 -0
  94. package/dist/store/reducers/authentication/authentication.d.ts +3 -0
  95. package/dist/store/reducers/cluster/cluster.d.ts +1 -0
  96. package/dist/store/reducers/clusterNodes/clusterNodes.d.ts +1 -0
  97. package/dist/store/reducers/clusters/clusters.d.ts +1 -0
  98. package/dist/store/reducers/clusters/selectors.js +1 -1
  99. package/dist/store/reducers/describe.d.ts +2 -0
  100. package/dist/store/reducers/executeQuery.d.ts +1 -0
  101. package/dist/store/reducers/explainQuery.d.ts +2 -0
  102. package/dist/store/reducers/header/types.d.ts +4 -1
  103. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +1 -0
  104. package/dist/store/reducers/heatmap.d.ts +1 -0
  105. package/dist/store/reducers/host.d.ts +1 -0
  106. package/dist/store/reducers/index.d.ts +3 -0
  107. package/dist/store/reducers/index.js +2 -0
  108. package/dist/store/reducers/network/network.d.ts +1 -0
  109. package/dist/store/reducers/node/node.d.ts +2 -0
  110. package/dist/store/reducers/node/selectors.js +1 -1
  111. package/dist/store/reducers/nodes/nodes.d.ts +2 -0
  112. package/dist/store/reducers/nodesList.d.ts +1 -0
  113. package/dist/store/reducers/olapStats.d.ts +1 -0
  114. package/dist/store/reducers/overview/overview.d.ts +2 -0
  115. package/dist/store/reducers/partitions/partitions.d.ts +1 -0
  116. package/dist/store/reducers/pdisk/pdisk.d.ts +2 -0
  117. package/dist/store/reducers/pdisk/utils.js +1 -1
  118. package/dist/store/reducers/preview.d.ts +1 -0
  119. package/dist/store/reducers/schema/schema.d.ts +1 -0
  120. package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +1 -0
  121. package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +1 -0
  122. package/dist/store/reducers/storage/storage.d.ts +2 -0
  123. package/dist/store/reducers/storage/types.d.ts +3 -1
  124. package/dist/store/reducers/storage/utils.d.ts +1 -1
  125. package/dist/store/reducers/storage/utils.js +8 -9
  126. package/dist/store/reducers/tablet.d.ts +2 -0
  127. package/dist/store/reducers/tablets.d.ts +1 -0
  128. package/dist/store/reducers/tabletsFilters.d.ts +1 -0
  129. package/dist/store/reducers/tenant/tenant.d.ts +1 -0
  130. package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +1 -0
  131. package/dist/store/reducers/tenantOverview/topNodesByCpu/topNodesByCpu.d.ts +1 -0
  132. package/dist/store/reducers/tenantOverview/topNodesByLoad/topNodesByLoad.d.ts +1 -0
  133. package/dist/store/reducers/tenantOverview/topNodesByMemory/topNodesByMemory.d.ts +1 -0
  134. package/dist/store/reducers/tenantOverview/topQueries/tenantOverviewTopQueries.d.ts +1 -0
  135. package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +1 -0
  136. package/dist/store/reducers/tenantOverview/topStorageGroups/topStorageGroups.d.ts +1 -0
  137. package/dist/store/reducers/tenants/selectors.js +1 -1
  138. package/dist/store/reducers/tenants/tenants.d.ts +1 -0
  139. package/dist/store/reducers/topic.d.ts +1 -0
  140. package/dist/store/reducers/vdisk/types.d.ts +25 -0
  141. package/dist/store/reducers/vdisk/utils.d.ts +11 -0
  142. package/dist/store/reducers/vdisk/utils.js +33 -0
  143. package/dist/store/reducers/vdisk/vdisk.d.ts +100 -0
  144. package/dist/store/reducers/vdisk/vdisk.js +64 -0
  145. package/dist/store/state-url-mapping.js +6 -4
  146. package/dist/types/api/storage.d.ts +2 -0
  147. package/dist/utils/bytesParsers/__test__/formatBytes.test.js +7 -7
  148. package/dist/utils/clusterVersionColors.js +1 -1
  149. package/dist/utils/dataFormatters/dataFormatters.js +1 -0
  150. package/dist/utils/disks/constants.js +2 -2
  151. package/dist/utils/disks/types.d.ts +5 -1
  152. package/dist/utils/filters.js +1 -1
  153. package/dist/utils/hooks/useTableResize.d.ts +1 -1
  154. package/dist/utils/hooks/useTableResize.js +5 -3
  155. package/dist/utils/lazyComponent.d.ts +4 -0
  156. package/dist/utils/lazyComponent.js +25 -0
  157. package/dist/utils/monaco/index.d.ts +1 -0
  158. package/dist/utils/monaco/index.js +4 -0
  159. package/dist/utils/monaco/s-expression/constants.d.ts +1 -0
  160. package/dist/utils/monaco/s-expression/constants.js +1 -0
  161. package/dist/utils/monaco/s-expression/registerLanguage.d.ts +1 -0
  162. package/dist/utils/{monaco.js → monaco/s-expression/registerLanguage.js} +2 -19
  163. package/dist/utils/{yqlSuggestions → monaco/yqlSuggestions}/generateSuggestions.d.ts +2 -2
  164. package/dist/utils/{yqlSuggestions → monaco/yqlSuggestions}/generateSuggestions.js +40 -11
  165. package/dist/utils/monaco/yqlSuggestions/registerCompletionItemProvider.d.ts +1 -0
  166. package/dist/utils/monaco/yqlSuggestions/registerCompletionItemProvider.js +15 -0
  167. package/dist/utils/{yqlSuggestions → monaco/yqlSuggestions}/yqlSuggestions.js +1 -1
  168. package/dist/utils/numeral.js +7 -1
  169. package/dist/utils/storage.d.ts +1 -0
  170. package/dist/utils/storage.js +1 -0
  171. package/dist/utils/timeParsers/parsers.js +1 -1
  172. package/package.json +5 -2
  173. package/dist/containers/PDisk/PDisk.d.ts +0 -3
  174. package/dist/containers/PDisk/i18n/en.json +0 -6
  175. package/dist/containers/PDisk/i18n/index.d.ts +0 -1
  176. package/dist/containers/Storage/DiskStateProgressBar/index.d.ts +0 -1
  177. package/dist/containers/Storage/DiskStateProgressBar/index.js +0 -1
  178. package/dist/containers/Storage/PDiskPopup/index.d.ts +0 -1
  179. package/dist/containers/Storage/PDiskPopup/index.js +0 -1
  180. package/dist/containers/Storage/VDisk/index.d.ts +0 -1
  181. package/dist/containers/Storage/VDisk/index.js +0 -1
  182. package/dist/containers/Storage/VDiskPopup/index.d.ts +0 -1
  183. package/dist/containers/Storage/VDiskPopup/index.js +0 -1
  184. package/dist/containers/Storage/utils/types.d.ts +0 -5
  185. package/dist/utils/monaco.d.ts +0 -3
  186. /package/dist/{containers/Storage → components}/DiskStateProgressBar/DiskStateProgressBar.d.ts +0 -0
  187. /package/dist/{containers/Storage → components}/DiskStateProgressBar/DiskStateProgressBar.scss +0 -0
  188. /package/dist/{containers/Storage → components}/PDiskPopup/PDiskPopup.scss +0 -0
  189. /package/dist/{containers/Storage → components}/VDiskPopup/VDiskPopup.scss +0 -0
  190. /package/dist/containers/{PDisk → PDiskPage}/PDiskGroups.d.ts +0 -0
  191. /package/dist/containers/{PDisk → PDiskPage}/PDiskGroups.js +0 -0
  192. /package/dist/containers/{PDisk → PDiskPage}/i18n/index.js +0 -0
  193. /package/dist/containers/{PDisk → PDiskPage}/shared.d.ts +0 -0
  194. /package/dist/containers/{PDisk → PDiskPage}/shared.js +0 -0
  195. /package/dist/{containers/Storage/utils → store/reducers/vdisk}/types.js +0 -0
  196. /package/dist/utils/{yqlSuggestions → monaco/yqlSuggestions}/constants.d.ts +0 -0
  197. /package/dist/utils/{yqlSuggestions → monaco/yqlSuggestions}/constants.js +0 -0
  198. /package/dist/utils/{yqlSuggestions → monaco/yqlSuggestions}/yqlSuggestions.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { groupBy } from 'lodash';
1
+ import groupBy from 'lodash/groupBy';
2
2
  import { getMinorVersion, parseNodesToVersionsValues } from '../../utils/versions';
3
3
  import { GroupByValue } from './types';
4
4
  const sortByTitle = (a, b) => { var _a; return ((_a = a.title) === null || _a === void 0 ? void 0 : _a.localeCompare(b.title || '')) || -1; };
package/dist/routes.d.ts CHANGED
@@ -5,6 +5,7 @@ export declare const CLUSTER = "cluster";
5
5
  export declare const TENANT = "tenant";
6
6
  export declare const NODE = "node";
7
7
  export declare const PDISK = "pDisk";
8
+ export declare const VDISK = "vDisk";
8
9
  export declare const TABLET = "tablet";
9
10
  declare const routes: {
10
11
  readonly clusters: "/clusters";
@@ -12,6 +13,7 @@ declare const routes: {
12
13
  readonly tenant: "/tenant";
13
14
  readonly node: "/node/:id/:activeTab?";
14
15
  readonly pDisk: "/pDisk";
16
+ readonly vDisk: "/vDisk";
15
17
  readonly tablet: "/tablet/:id";
16
18
  readonly tabletsFilters: "/tabletsFilters";
17
19
  readonly auth: "/auth";
@@ -27,3 +29,4 @@ export declare function getLocationObjectFromHref(href: string): {
27
29
  hash: string;
28
30
  };
29
31
  export declare function getPDiskPagePath(pDiskId: string | number, nodeId: string | number, query?: Query): string;
32
+ export declare function getVDiskPagePath(vDiskSlotId: string | number, pDiskId: string | number, nodeId: string | number, query?: Query): string;
package/dist/routes.js CHANGED
@@ -7,6 +7,7 @@ export const CLUSTER = 'cluster';
7
7
  export const TENANT = 'tenant';
8
8
  export const NODE = 'node';
9
9
  export const PDISK = 'pDisk';
10
+ export const VDISK = 'vDisk';
10
11
  export const TABLET = 'tablet';
11
12
  const routes = {
12
13
  clusters: `/${CLUSTERS}`,
@@ -14,6 +15,7 @@ const routes = {
14
15
  tenant: `/${TENANT}`,
15
16
  node: `/${NODE}/:id/:activeTab?`,
16
17
  pDisk: `/${PDISK}`,
18
+ vDisk: `/${VDISK}`,
17
19
  tablet: `/${TABLET}/:id`,
18
20
  tabletsFilters: `/tabletsFilters`,
19
21
  auth: `/auth`,
@@ -63,3 +65,6 @@ export function getLocationObjectFromHref(href) {
63
65
  export function getPDiskPagePath(pDiskId, nodeId, query = {}) {
64
66
  return createHref(routes.pDisk, undefined, Object.assign(Object.assign({}, query), { nodeId, pDiskId }));
65
67
  }
68
+ export function getVDiskPagePath(vDiskSlotId, pDiskId, nodeId, query = {}) {
69
+ return createHref(routes.vDisk, undefined, Object.assign(Object.assign({}, query), { nodeId, pDiskId, vDiskSlotId }));
70
+ }
@@ -39,11 +39,11 @@ export declare class YdbEmbeddedAPI extends AxiosWrapper {
39
39
  getNodes({ visibleEntities, type, tablets, sortOrder, sortValue, ...params }: NodesApiRequestParams, { concurrentId }?: AxiosOptions): Promise<TNodesInfo>;
40
40
  /** @deprecated use getNodes instead */
41
41
  getCompute({ sortOrder, sortValue, ...params }: ComputeApiRequestParams, { concurrentId }?: AxiosOptions): Promise<TComputeInfo>;
42
- getStorageInfo({ tenant, visibleEntities, nodeId, sortOrder, sortValue, ...params }: StorageApiRequestParams, { concurrentId }?: AxiosOptions): Promise<TStorageInfo>;
42
+ getStorageInfo({ tenant, visibleEntities, nodeId, poolName, groupId, sortOrder, sortValue, ...params }: StorageApiRequestParams, { concurrentId }?: AxiosOptions): Promise<TStorageInfo>;
43
43
  getPdiskInfo(nodeId: string | number, pdiskId: string | number): Promise<TEvPDiskStateResponse>;
44
- getVdiskInfo({ vdiskId, pdiskId, nodeId, }: {
45
- vdiskId: string | number;
46
- pdiskId: string | number;
44
+ getVdiskInfo({ vDiskSlotId, pDiskId, nodeId, }: {
45
+ vDiskSlotId: string | number;
46
+ pDiskId: string | number;
47
47
  nodeId: string | number;
48
48
  }): Promise<TEvVDiskStateResponse>;
49
49
  getGroupInfo(groupId: string | number): Promise<TStorageInfo>;
@@ -93,6 +93,14 @@ export declare class YdbEmbeddedAPI extends AxiosWrapper {
93
93
  getExplainQueryAst(query: string, database: string): Promise<import("../types/api/query").ExplainQueryResponse>;
94
94
  getHotKeys(path: string, enableSampling: boolean, { concurrentId }?: AxiosOptions): Promise<JsonHotKeysResponse>;
95
95
  getHealthcheckInfo(database: string, { concurrentId }?: AxiosOptions): Promise<HealthCheckAPIResponse>;
96
+ evictVDisk({ groupId, groupGeneration, failRealmIdx, failDomainIdx, vDiskIdx, }: {
97
+ groupId: string | number;
98
+ groupGeneration: string | number;
99
+ failRealmIdx: string | number;
100
+ failDomainIdx: string | number;
101
+ vDiskIdx: string | number;
102
+ }): Promise<any>;
103
+ restartPDisk(nodeId: number | string, pDiskId: number | string): Promise<any>;
96
104
  killTablet(id?: string): Promise<string>;
97
105
  stopTablet(id?: string, hiveId?: string): Promise<string>;
98
106
  resumeTablet(id?: string, hiveId?: string): Promise<string>;
@@ -2,6 +2,7 @@ import { __rest } from "tslib";
2
2
  import AxiosWrapper from '@gravity-ui/axios-wrapper';
3
3
  import { backend as BACKEND, metaBackend as META_BACKEND } from '../store';
4
4
  import { prepareSortValue } from '../utils/filters';
5
+ import { createPDiskDeveloperUILink } from '../utils/developerUI/developerUI';
5
6
  import { BINARY_DATA_IN_PLAIN_TEXT_DISPLAY } from '../utils/constants';
6
7
  import { parseMetaCluster } from './parsers/parseMetaCluster';
7
8
  import { parseMetaTenants } from './parsers/parseMetaTenants';
@@ -52,19 +53,20 @@ export class YdbEmbeddedAPI extends AxiosWrapper {
52
53
  return this.get(this.getPath('/viewer/json/compute?enums=true'), Object.assign({ sort }, params), { concurrentId });
53
54
  }
54
55
  getStorageInfo(_a, _b) {
55
- var { tenant, visibleEntities, nodeId, sortOrder, sortValue } = _a, params = __rest(_a, ["tenant", "visibleEntities", "nodeId", "sortOrder", "sortValue"]);
56
+ var { tenant, visibleEntities, nodeId, poolName, groupId, sortOrder, sortValue } = _a, params = __rest(_a, ["tenant", "visibleEntities", "nodeId", "poolName", "groupId", "sortOrder", "sortValue"]);
56
57
  var _c = _b === void 0 ? {} : _b, concurrentId = _c.concurrentId;
57
58
  const sort = prepareSortValue(sortValue, sortOrder);
58
- return this.get(this.getPath(`/viewer/json/storage?enums=true`), Object.assign({ tenant, node_id: nodeId, with: visibleEntities, sort }, params), { concurrentId });
59
+ return this.get(this.getPath(`/viewer/json/storage?enums=true`), Object.assign({ tenant, node_id: nodeId, pool: poolName, group_id: groupId, with: visibleEntities, sort }, params), { concurrentId });
59
60
  }
60
61
  getPdiskInfo(nodeId, pdiskId) {
61
62
  return this.get(this.getPath('/viewer/json/pdiskinfo?enums=true'), {
62
63
  filter: `(NodeId=${nodeId}${pdiskId ? `;PDiskId=${pdiskId}` : ''})`,
63
64
  });
64
65
  }
65
- getVdiskInfo({ vdiskId, pdiskId, nodeId, }) {
66
+ getVdiskInfo({ vDiskSlotId, pDiskId, nodeId, }) {
66
67
  return this.get(this.getPath('/viewer/json/vdiskinfo?enums=true'), {
67
- filter: `(VDiskId=${vdiskId !== null && vdiskId !== void 0 ? vdiskId : ''};PDiskId=${pdiskId !== null && pdiskId !== void 0 ? pdiskId : ''};NodeId=${nodeId !== null && nodeId !== void 0 ? nodeId : ''})`,
68
+ node_id: nodeId,
69
+ filter: `(PDiskId=${pDiskId};VDiskSlotId=${vDiskSlotId})`,
68
70
  });
69
71
  }
70
72
  getGroupInfo(groupId) {
@@ -207,6 +209,39 @@ export class YdbEmbeddedAPI extends AxiosWrapper {
207
209
  getHealthcheckInfo(database, { concurrentId } = {}) {
208
210
  return this.get(this.getPath('/viewer/json/healthcheck?merge_records=true'), { tenant: database }, { concurrentId });
209
211
  }
212
+ evictVDisk({ groupId, groupGeneration, failRealmIdx, failDomainIdx, vDiskIdx, }) {
213
+ // BSC Id is constant for all ydb clusters
214
+ const BSC_TABLET_ID = '72057594037932033';
215
+ return this.post(this.getPath(`/tablets/app?TabletID=${BSC_TABLET_ID}&exec=1`), {
216
+ Command: {
217
+ ReassignGroupDisk: {
218
+ GroupId: groupId,
219
+ GroupGeneration: groupGeneration,
220
+ FailRealmIdx: failRealmIdx,
221
+ FailDomainIdx: failDomainIdx,
222
+ VDiskIdx: vDiskIdx,
223
+ },
224
+ },
225
+ }, {}, {
226
+ headers: {
227
+ // This handler requires exactly this string
228
+ // Automatic headers may not suit
229
+ Accept: 'application/json',
230
+ },
231
+ });
232
+ }
233
+ restartPDisk(nodeId, pDiskId) {
234
+ const pDiskPath = createPDiskDeveloperUILink({
235
+ nodeId,
236
+ pDiskId,
237
+ host: this.getPath(''),
238
+ });
239
+ return this.post(pDiskPath, 'restartPDisk=', {}, {
240
+ headers: {
241
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
242
+ },
243
+ });
244
+ }
210
245
  killTablet(id) {
211
246
  return this.get(this.getPath(`/tablets?KillTabletID=${id}`), {});
212
247
  }
@@ -86,6 +86,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
86
86
  saveQuery: string | null;
87
87
  fullscreen: boolean;
88
88
  clusters: import("./reducers/clusters/types").ClustersState;
89
+ vDisk: import("./reducers/vdisk/types").VDiskState;
89
90
  }, any, Partial<{
90
91
  singleClusterMode: boolean | undefined;
91
92
  nodes: never;
@@ -137,6 +138,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
137
138
  saveQuery: never;
138
139
  fullscreen: never;
139
140
  clusters: never;
141
+ vDisk: never;
140
142
  }>> | undefined;
141
143
  singleClusterMode?: boolean | undefined;
142
144
  api?: import("../services/api").YdbEmbeddedAPI | undefined;
@@ -223,6 +225,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
223
225
  saveQuery: string | null;
224
226
  fullscreen: boolean;
225
227
  clusters: import("./reducers/clusters/types").ClustersState;
228
+ vDisk: import("./reducers/vdisk/types").VDiskState;
226
229
  }, any, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
227
230
  dispatch: import("redux-thunk").ThunkDispatch<{
228
231
  singleClusterMode: boolean;
@@ -305,6 +308,7 @@ export declare function configureStore({ aRootReducer, singleClusterMode, api, }
305
308
  saveQuery: string | null;
306
309
  fullscreen: boolean;
307
310
  clusters: import("./reducers/clusters/types").ClustersState;
311
+ vDisk: import("./reducers/vdisk/types").VDiskState;
308
312
  }, undefined, UnknownAction>;
309
313
  }, {}>, import("redux").StoreEnhancer<{}, {}>]>>;
310
314
  };
@@ -79,6 +79,7 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
79
79
  saveQuery: string | null;
80
80
  fullscreen: boolean;
81
81
  clusters: import("./reducers/clusters/types").ClustersState;
82
+ vDisk: import("./reducers/vdisk/types").VDiskState;
82
83
  }, any, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
83
84
  dispatch: import("redux-thunk").ThunkDispatch<{
84
85
  singleClusterMode: boolean;
@@ -161,6 +162,7 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
161
162
  saveQuery: string | null;
162
163
  fullscreen: boolean;
163
164
  clusters: import("./reducers/clusters/types").ClustersState;
165
+ vDisk: import("./reducers/vdisk/types").VDiskState;
164
166
  }, undefined, import("redux").UnknownAction>;
165
167
  }, {}>, import("redux").StoreEnhancer<{}, {}>]>>, history: import("history").History<unknown>;
166
168
  export type GetState = typeof store.getState;
@@ -97,6 +97,7 @@ export declare const authenticate: (user: string, password: string) => (dispatch
97
97
  saveQuery: string | null;
98
98
  fullscreen: boolean;
99
99
  clusters: import("../clusters/types").ClustersState;
100
+ vDisk: import("../vdisk/types").VDiskState;
100
101
  }) => Promise<unknown>;
101
102
  export declare const logout: () => (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => {
102
103
  singleClusterMode: boolean;
@@ -179,6 +180,7 @@ export declare const logout: () => (dispatch: import("redux").Dispatch<import("r
179
180
  saveQuery: string | null;
180
181
  fullscreen: boolean;
181
182
  clusters: import("../clusters/types").ClustersState;
183
+ vDisk: import("../vdisk/types").VDiskState;
182
184
  }) => Promise<unknown>;
183
185
  export declare const getUser: () => (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => {
184
186
  singleClusterMode: boolean;
@@ -261,5 +263,6 @@ export declare const getUser: () => (dispatch: import("redux").Dispatch<import("
261
263
  saveQuery: string | null;
262
264
  fullscreen: boolean;
263
265
  clusters: import("../clusters/types").ClustersState;
266
+ vDisk: import("../vdisk/types").VDiskState;
264
267
  }) => Promise<string | undefined>;
265
268
  export default authentication;
@@ -93,5 +93,6 @@ export declare function getClusterInfo(clusterName?: string): (dispatch: Dispatc
93
93
  saveQuery: string | null;
94
94
  fullscreen: boolean;
95
95
  clusters: import("../clusters/types").ClustersState;
96
+ vDisk: import("../vdisk/types").VDiskState;
96
97
  }) => Promise<unknown>;
97
98
  export default cluster;
@@ -87,5 +87,6 @@ export declare function getClusterNodes(): (dispatch: import("redux").Dispatch<i
87
87
  saveQuery: string | null;
88
88
  fullscreen: boolean;
89
89
  clusters: import("../clusters/types").ClustersState;
90
+ vDisk: import("../vdisk/types").VDiskState;
90
91
  }) => Promise<PreparedClusterNode[] | undefined>;
91
92
  export default clusterNodes;
@@ -87,6 +87,7 @@ export declare function fetchClustersList(): (dispatch: import("redux").Dispatch
87
87
  saveQuery: string | null;
88
88
  fullscreen: boolean;
89
89
  clusters: ClustersState;
90
+ vDisk: import("../vdisk/types").VDiskState;
90
91
  }) => Promise<import("./types").PreparedCluster[] | undefined>;
91
92
  export declare function changeClustersFilters(filters: Partial<ClustersFilters>): {
92
93
  readonly type: "clusters/CHANGE_FILTER";
@@ -1,5 +1,5 @@
1
1
  import { createSelector } from '@reduxjs/toolkit';
2
- import { escapeRegExp } from 'lodash/fp';
2
+ import escapeRegExp from 'lodash/escapeRegExp';
3
3
  import { getMinorVersion } from '../../../utils/versions';
4
4
  // ==== Filters ====
5
5
  const isMatchesByStatus = (clusterData, selectedStatuses) => {
@@ -96,6 +96,7 @@ export declare function getDescribe({ path }: {
96
96
  saveQuery: string | null;
97
97
  fullscreen: boolean;
98
98
  clusters: import("./clusters/types").ClustersState;
99
+ vDisk: import("./vdisk/types").VDiskState;
99
100
  }) => Promise<IDescribeHandledResponse | undefined>;
100
101
  export declare function getDescribeBatched(paths: string[]): (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => {
101
102
  singleClusterMode: boolean;
@@ -178,5 +179,6 @@ export declare function getDescribeBatched(paths: string[]): (dispatch: import("
178
179
  saveQuery: string | null;
179
180
  fullscreen: boolean;
180
181
  clusters: import("./clusters/types").ClustersState;
182
+ vDisk: import("./vdisk/types").VDiskState;
181
183
  }) => Promise<IDescribeHandledResponse | undefined>;
182
184
  export default describe;
@@ -93,6 +93,7 @@ export declare const sendExecuteQuery: ({ query, database, mode, schema }: SendQ
93
93
  saveQuery: string | null;
94
94
  fullscreen: boolean;
95
95
  clusters: import("./clusters/types").ClustersState;
96
+ vDisk: import("./vdisk/types").VDiskState;
96
97
  }) => Promise<import("../../types/store/query").IQueryResult | undefined>;
97
98
  export declare const saveQueryToHistory: (queryText: string, mode: QueryMode) => {
98
99
  readonly type: "query/SAVE_QUERY_TO_HISTORY";
@@ -93,6 +93,7 @@ export declare const getExplainQueryAst: ({ query, database }: QueryRequestParam
93
93
  saveQuery: string | null;
94
94
  fullscreen: boolean;
95
95
  clusters: import("./clusters/types").ClustersState;
96
+ vDisk: import("./vdisk/types").VDiskState;
96
97
  }) => Promise<import("../../types/store/query").IQueryResult | undefined>;
97
98
  export declare const explainVersions: {
98
99
  v2: string;
@@ -181,5 +182,6 @@ export declare const getExplainQuery: ({ query, database, mode }: ExplainQueryPa
181
182
  saveQuery: string | null;
182
183
  fullscreen: boolean;
183
184
  clusters: import("./clusters/types").ClustersState;
185
+ vDisk: import("./vdisk/types").VDiskState;
184
186
  }) => Promise<PreparedExplainResponse | undefined>;
185
187
  export default explainQuery;
@@ -1,7 +1,7 @@
1
1
  import type { ClusterTab } from '../../../containers/Cluster/utils';
2
2
  import type { EType } from '../../../types/api/tablet';
3
3
  import { setHeaderBreadcrumbs } from './header';
4
- export type Page = 'cluster' | 'tenant' | 'node' | 'pDisk' | 'tablets' | 'tablet' | undefined;
4
+ export type Page = 'cluster' | 'tenant' | 'node' | 'pDisk' | 'vDisk' | 'tablets' | 'tablet' | undefined;
5
5
  export interface ClusterBreadcrumbsOptions {
6
6
  clusterName?: string;
7
7
  clusterTab?: ClusterTab;
@@ -15,6 +15,9 @@ export interface NodeBreadcrumbsOptions extends TenantBreadcrumbsOptions {
15
15
  export interface PDiskBreadcrumbsOptions extends Omit<NodeBreadcrumbsOptions, 'tenantName'> {
16
16
  pDiskId?: string | number;
17
17
  }
18
+ export interface VDiskBreadcrumbsOptions extends PDiskBreadcrumbsOptions {
19
+ vDiskSlotId?: string | number;
20
+ }
18
21
  export interface TabletsBreadcrumbsOptions extends TenantBreadcrumbsOptions {
19
22
  nodeIds?: string[] | number[];
20
23
  }
@@ -94,6 +94,7 @@ export declare function getHealthcheckInfo(database: string): (dispatch: import(
94
94
  saveQuery: string | null;
95
95
  fullscreen: boolean;
96
96
  clusters: import("../clusters/types").ClustersState;
97
+ vDisk: import("../vdisk/types").VDiskState;
97
98
  }) => Promise<unknown>;
98
99
  export declare const setDataWasNotLoaded: () => {
99
100
  readonly type: "healthcheckInfo/SET_DATA_WAS_NOT_LOADED";
@@ -94,6 +94,7 @@ export declare function getTabletsInfo({ nodes, path }: IHeatmapApiRequestParams
94
94
  saveQuery: string | null;
95
95
  fullscreen: boolean;
96
96
  clusters: import("./clusters/types").ClustersState;
97
+ vDisk: import("./vdisk/types").VDiskState;
97
98
  }) => Promise<{
98
99
  data: IHeatmapTabletData[];
99
100
  metrics: {
@@ -87,5 +87,6 @@ export declare function getHostInfo(): (dispatch: import("redux").Dispatch<impor
87
87
  saveQuery: string | null;
88
88
  fullscreen: boolean;
89
89
  clusters: import("./clusters/types").ClustersState;
90
+ vDisk: import("./vdisk/types").VDiskState;
90
91
  }) => Promise<unknown>;
91
92
  export default host;
@@ -109,6 +109,7 @@ export declare const rootReducer: {
109
109
  readonly type: "DISABLE_FULLSCREEN_MODE";
110
110
  }) => boolean;
111
111
  clusters: import("redux").Reducer<import("./clusters/types").ClustersState, import("./clusters/types").ClustersAction, import("./clusters/types").ClustersState>;
112
+ vDisk: import("redux").Reducer<import("./vdisk/types").VDiskState, import("./vdisk/types").VDiskAction, import("./vdisk/types").VDiskState>;
112
113
  };
113
114
  declare const combinedReducer: import("redux").Reducer<{
114
115
  singleClusterMode: boolean;
@@ -191,6 +192,7 @@ declare const combinedReducer: import("redux").Reducer<{
191
192
  saveQuery: string | null;
192
193
  fullscreen: boolean;
193
194
  clusters: import("./clusters/types").ClustersState;
195
+ vDisk: import("./vdisk/types").VDiskState;
194
196
  }, any, Partial<{
195
197
  singleClusterMode: boolean | undefined;
196
198
  nodes: never;
@@ -242,5 +244,6 @@ declare const combinedReducer: import("redux").Reducer<{
242
244
  saveQuery: never;
243
245
  fullscreen: never;
244
246
  clusters: never;
247
+ vDisk: never;
245
248
  }>>;
246
249
  export default combinedReducer;
@@ -43,6 +43,7 @@ import saveQuery from './saveQuery';
43
43
  import fullscreen from './fullscreen';
44
44
  import singleClusterMode from './singleClusterMode';
45
45
  import clusters from './clusters/clusters';
46
+ import vDisk from './vdisk/vdisk';
46
47
  export const rootReducer = {
47
48
  singleClusterMode,
48
49
  nodes,
@@ -88,6 +89,7 @@ export const rootReducer = {
88
89
  saveQuery,
89
90
  fullscreen,
90
91
  clusters,
92
+ vDisk,
91
93
  };
92
94
  const combinedReducer = combineReducers(Object.assign({}, rootReducer));
93
95
  export default combinedReducer;
@@ -90,5 +90,6 @@ export declare const getNetworkInfo: (tenant: string) => (dispatch: import("redu
90
90
  saveQuery: string | null;
91
91
  fullscreen: boolean;
92
92
  clusters: import("../clusters/types").ClustersState;
93
+ vDisk: import("../vdisk/types").VDiskState;
93
94
  }) => Promise<unknown>;
94
95
  export default network;
@@ -92,6 +92,7 @@ export declare const getNodeInfo: (id: string) => (dispatch: import("redux").Dis
92
92
  saveQuery: string | null;
93
93
  fullscreen: boolean;
94
94
  clusters: import("../clusters/types").ClustersState;
95
+ vDisk: import("../vdisk/types").VDiskState;
95
96
  }) => Promise<import("./types").PreparedNode | undefined>;
96
97
  export declare const getNodeStructure: (nodeId: string) => (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => {
97
98
  singleClusterMode: boolean;
@@ -174,6 +175,7 @@ export declare const getNodeStructure: (nodeId: string) => (dispatch: import("re
174
175
  saveQuery: string | null;
175
176
  fullscreen: boolean;
176
177
  clusters: import("../clusters/types").ClustersState;
178
+ vDisk: import("../vdisk/types").VDiskState;
177
179
  }) => Promise<unknown>;
178
180
  export declare function resetNode(): {
179
181
  readonly type: "node/RESET_NODE";
@@ -18,7 +18,7 @@ export const selectNodeStructure = createSelector([selectNodeId, selectRawNodeSt
18
18
  if (!structure[String(pDiskId)]) {
19
19
  structure[String(pDiskId)] = Object.assign({ vDisks: {} }, preparedPDisk);
20
20
  }
21
- structure[String(pDiskId)].vDisks[vDiskId] = Object.assign(Object.assign({}, vd), {
21
+ structure[String(pDiskId)].vDisks[vDiskId] = Object.assign(Object.assign({}, vd), { PDiskId: pDiskId, NodeId: nodeId,
22
22
  // VDisk doesn't have its own StoragePoolName when located inside StoragePool data
23
23
  StoragePoolName: pool.Name });
24
24
  });
@@ -88,6 +88,7 @@ export declare function getNodes({ type, storage, ...params }: NodesApiRequestPa
88
88
  saveQuery: string | null;
89
89
  fullscreen: boolean;
90
90
  clusters: import("../clusters/types").ClustersState;
91
+ vDisk: import("../vdisk/types").VDiskState;
91
92
  }) => Promise<import("./types").NodesHandledResponse | undefined>;
92
93
  export declare function getComputeNodes({ version, ...params }: ComputeApiRequestParams): (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => {
93
94
  singleClusterMode: boolean;
@@ -170,6 +171,7 @@ export declare function getComputeNodes({ version, ...params }: ComputeApiReques
170
171
  saveQuery: string | null;
171
172
  fullscreen: boolean;
172
173
  clusters: import("../clusters/types").ClustersState;
174
+ vDisk: import("../vdisk/types").VDiskState;
173
175
  }) => Promise<import("./types").NodesHandledResponse | undefined>;
174
176
  export declare const resetNodesState: () => {
175
177
  readonly type: "nodes/RESET_NODES_STATE";
@@ -87,6 +87,7 @@ export declare function getNodesList(): (dispatch: import("redux").Dispatch<impo
87
87
  saveQuery: string | null;
88
88
  fullscreen: boolean;
89
89
  clusters: import("./clusters/types").ClustersState;
90
+ vDisk: import("./vdisk/types").VDiskState;
90
91
  }) => Promise<unknown>;
91
92
  export declare const selectNodesMap: (state: NodesListRootStateSlice) => import("../../types/store/nodesList").NodesMap | undefined;
92
93
  export default nodesList;
@@ -89,6 +89,7 @@ export declare const getOlapStats: ({ path }: {
89
89
  saveQuery: string | null;
90
90
  fullscreen: boolean;
91
91
  clusters: import("./clusters/types").ClustersState;
92
+ vDisk: import("./vdisk/types").VDiskState;
92
93
  }) => Promise<import("../../types/store/query").IQueryResult | undefined>;
93
94
  export declare function resetLoadingState(): {
94
95
  readonly type: "olapStats/RESET_LOADING_STATE";
@@ -93,6 +93,7 @@ export declare function getOverview({ path }: {
93
93
  saveQuery: string | null;
94
94
  fullscreen: boolean;
95
95
  clusters: import("../clusters/types").ClustersState;
96
+ vDisk: import("../vdisk/types").VDiskState;
96
97
  }) => Promise<OverviewHandledResponse | undefined>;
97
98
  export declare function getOverviewBatched(paths: string[]): (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => {
98
99
  singleClusterMode: boolean;
@@ -175,6 +176,7 @@ export declare function getOverviewBatched(paths: string[]): (dispatch: import("
175
176
  saveQuery: string | null;
176
177
  fullscreen: boolean;
177
178
  clusters: import("../clusters/types").ClustersState;
179
+ vDisk: import("../vdisk/types").VDiskState;
178
180
  }) => Promise<OverviewHandledResponse | undefined>;
179
181
  export declare function setDataWasNotLoaded(): {
180
182
  readonly type: "overview/SET_DATA_WAS_NOT_LOADED";
@@ -94,5 +94,6 @@ export declare function getPartitions(path: string, consumerName?: string): (dis
94
94
  saveQuery: string | null;
95
95
  fullscreen: boolean;
96
96
  clusters: import("../clusters/types").ClustersState;
97
+ vDisk: import("../vdisk/types").VDiskState;
97
98
  }) => Promise<import("./types").PreparedPartitionData[] | undefined>;
98
99
  export default partitions;
@@ -98,6 +98,7 @@ export declare const getPDiskData: ({ nodeId, pDiskId, }: {
98
98
  saveQuery: string | null;
99
99
  fullscreen: boolean;
100
100
  clusters: import("../clusters/types").ClustersState;
101
+ vDisk: import("../vdisk/types").VDiskState;
101
102
  }) => Promise<{
102
103
  NodeId: number | undefined;
103
104
  NodeHost: string | undefined;
@@ -206,5 +207,6 @@ export declare const getPDiskStorage: ({ nodeId, pDiskId, }: {
206
207
  saveQuery: string | null;
207
208
  fullscreen: boolean;
208
209
  clusters: import("../clusters/types").ClustersState;
210
+ vDisk: import("../vdisk/types").VDiskState;
209
211
  }) => Promise<import("../storage/types").PreparedStorageGroup[] | undefined>;
210
212
  export default pdisk;
@@ -24,7 +24,7 @@ export function preparePDiskStorageResponse(data, pDiskId, nodeId) {
24
24
  return groupPDiskId === Number(pDiskId) && groupNodeId === Number(nodeId);
25
25
  });
26
26
  if (groupHasPDiskVDisks) {
27
- preparedGroups.push(prepareStorageGroupData(group, pool.Name));
27
+ preparedGroups.push(prepareStorageGroupData(group, pool));
28
28
  }
29
29
  });
30
30
  });
@@ -96,6 +96,7 @@ export declare const sendQuery: ({ query, database, action }: SendQueryParams) =
96
96
  saveQuery: string | null;
97
97
  fullscreen: boolean;
98
98
  clusters: import("./clusters/types").ClustersState;
99
+ vDisk: import("./vdisk/types").VDiskState;
99
100
  }) => Promise<IQueryResult | undefined>;
100
101
  export declare function setQueryOptions(options: any): {
101
102
  readonly type: "preview/SET_QUERY_OPTIONS";
@@ -98,6 +98,7 @@ export declare function getSchema({ path }: {
98
98
  saveQuery: string | null;
99
99
  fullscreen: boolean;
100
100
  clusters: import("../clusters/types").ClustersState;
101
+ vDisk: import("../vdisk/types").VDiskState;
101
102
  }) => Promise<SchemaHandledResponse | undefined>;
102
103
  export declare function setCurrentSchemaPath(currentSchemaPath: string): {
103
104
  readonly type: "schema/SET_SCHEMA";
@@ -89,6 +89,7 @@ export declare function getSchemaAcl({ path }: {
89
89
  saveQuery: string | null;
90
90
  fullscreen: boolean;
91
91
  clusters: import("../clusters/types").ClustersState;
92
+ vDisk: import("../vdisk/types").VDiskState;
92
93
  }) => Promise<unknown>;
93
94
  export declare const setAclWasNotLoaded: () => {
94
95
  readonly type: "schemaAcl/SET_DATA_WAS_NOT_LOADED";
@@ -97,6 +97,7 @@ export declare const sendShardQuery: ({ database, path, sortOrder, filters }: Se
97
97
  saveQuery: string | null;
98
98
  fullscreen: boolean;
99
99
  clusters: import("../clusters/types").ClustersState;
100
+ vDisk: import("../vdisk/types").VDiskState;
100
101
  }) => Promise<import("../../../types/store/query").IQueryResult | undefined>) | {
101
102
  type: "query/SEND_SHARD_QUERY_FAILURE";
102
103
  error: unknown;
@@ -89,6 +89,7 @@ export declare const getStorageNodesInfo: ({ tenant, visibleEntities, ...params
89
89
  saveQuery: string | null;
90
90
  fullscreen: boolean;
91
91
  clusters: import("../clusters/types").ClustersState;
92
+ vDisk: import("../vdisk/types").VDiskState;
92
93
  }) => Promise<import("./types").PreparedStorageResponse | undefined>;
93
94
  export declare const getStorageGroupsInfo: ({ tenant, visibleEntities, nodeId, version, ...params }: StorageApiRequestParams) => (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => {
94
95
  singleClusterMode: boolean;
@@ -171,6 +172,7 @@ export declare const getStorageGroupsInfo: ({ tenant, visibleEntities, nodeId, v
171
172
  saveQuery: string | null;
172
173
  fullscreen: boolean;
173
174
  clusters: import("../clusters/types").ClustersState;
175
+ vDisk: import("../vdisk/types").VDiskState;
174
176
  }) => Promise<import("./types").PreparedStorageResponse | undefined>;
175
177
  export declare function setInitialState(): {
176
178
  readonly type: "storage/SET_INITIAL";
@@ -28,7 +28,7 @@ export interface PreparedStorageGroup extends TStorageGroupInfo {
28
28
  Used: number;
29
29
  Limit: number;
30
30
  Degraded: number;
31
- Kind?: string;
31
+ MediaType?: string;
32
32
  UsedSpaceFlag: number;
33
33
  VDisks?: PreparedVDisk[];
34
34
  }
@@ -48,6 +48,8 @@ export interface StorageSortAndFilterParams extends StorageSortParams {
48
48
  export interface StorageApiRequestParams extends StorageSortAndFilterParams {
49
49
  tenant?: string;
50
50
  nodeId?: string | number;
51
+ poolName?: string;
52
+ groupId?: string | number;
51
53
  visibleEntities?: VisibleEntities;
52
54
  version?: EVersion;
53
55
  }
@@ -1,7 +1,7 @@
1
1
  import type { TNodesInfo } from '../../../types/api/nodes';
2
2
  import type { TStorageGroupInfo, TStorageGroupInfoV2, TStorageInfo, TStoragePoolInfo } from '../../../types/api/storage';
3
3
  import type { PreparedStorageGroup, PreparedStorageResponse } from './types';
4
- export declare const prepareStorageGroupData: (group: TStorageGroupInfo, poolName?: string) => PreparedStorageGroup;
4
+ export declare const prepareStorageGroupData: (group: TStorageGroupInfo, pool: TStoragePoolInfo) => PreparedStorageGroup;
5
5
  export declare const prepareStorageGroupDataV2: (group: TStorageGroupInfoV2) => PreparedStorageGroup;
6
6
  export declare const prepareStorageGroups: (StorageGroups?: TStorageGroupInfoV2[], StoragePools?: TStoragePoolInfo[]) => PreparedStorageGroup[];
7
7
  export declare const prepareStorageNodesResponse: (data: TNodesInfo) => PreparedStorageResponse;