@ytsaurus/ui 1.12.1 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/server/controllers/login.js +1 -1
- package/build/cjs/server/controllers/login.js.map +1 -1
- package/build/cjs/ui/constants/docsUrls.d.ts +1 -0
- package/build/cjs/ui/constants/docsUrls.js +1 -0
- package/build/cjs/ui/constants/docsUrls.js.map +1 -1
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +11 -7
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
- package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js +1 -1
- package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/tablet_cell_bundles/index.d.ts +8 -0
- package/build/cjs/ui/store/reducers/tablet_cell_bundles/index.js.map +1 -1
- package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.d.ts +2 -1
- package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +16 -1
- package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
- package/build/esm/server/controllers/login.js +1 -1
- package/build/esm/server/controllers/login.js.map +1 -1
- package/build/esm/ui/constants/docsUrls.d.ts +1 -0
- package/build/esm/ui/constants/docsUrls.js +1 -0
- package/build/esm/ui/constants/docsUrls.js.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +12 -8
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
- package/build/esm/ui/store/actions/tablet_cell_bundles/index.js +1 -1
- package/build/esm/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
- package/build/esm/ui/store/reducers/tablet_cell_bundles/index.d.ts +8 -0
- package/build/esm/ui/store/reducers/tablet_cell_bundles/index.js.map +1 -1
- package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.d.ts +2 -1
- package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +15 -0
- package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
- package/dist/public/build/assets-manifest.json +4 -4
- package/dist/public/build/js/main.f91e3651.js +3 -0
- package/dist/public/build/js/{main.69fdeec5.js.map → main.f91e3651.js.map} +1 -1
- package/dist/public/build/manifest.json +2 -2
- package/dist/server/controllers/login.js +1 -1
- package/package.json +2 -2
- package/dist/public/build/js/main.69fdeec5.js +0 -3
- /package/dist/public/build/js/{main.69fdeec5.js.LICENSE.txt → main.f91e3651.js.LICENSE.txt} +0 -0
@@ -79,7 +79,7 @@ async function handleLogout(req, res) {
|
|
79
79
|
return throwAuthDisabled();
|
80
80
|
}
|
81
81
|
res.setHeader('set-cookie', `${constants_1.YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`);
|
82
|
-
res.
|
82
|
+
res.status(401).send('Logout');
|
83
83
|
}
|
84
84
|
catch (e) {
|
85
85
|
(0, utils_1.sendAndLogError)(req.ctx, res, 500, e);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_axios","_interopRequireDefault","require","_constants","_requestsSetup","_utils","_crypto","_javascriptWrapper","_clusterQueries","obj","__esModule","default","yt","ytLib","throwAuthDisabled","Error","handleLogin","_x","_x2","_handleLogin","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","req","res","ytAuthCluster","_ref","username","password","_getYTApiClusterSetup","proxyBaseUrl","requestUrl","basicAuth","wrap","_callee2$","_context2","prev","next","ctx","config","abrupt","JSON","parse","body","getYTApiClusterSetup","concat","Buffer","from","toString","axios","request","url","method","headers","_objectSpread","getMetadata","Authorization","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","pipeAxiosResponse","undefined","removeSecureFlagIfOriginInsecure","sent","UNEXPECTED_PIPE_AXIOS_RESPONSE","stop","_x7","t0","sendAndLogError","ytAuthAllowInsecure","origin","startsWith","_reduce","acc","v","k","tmp","_map","item","YT_CYPRESS_COOKIE_NAME","replace","handleLogout","_x3","_x4","_handleLogout","_callee3","_callee3$","_context3","setHeader","sendStatus","send","handleChangePassword","_x5","_x6","_handleChangePassword","_callee4","_ref3","newPassword","currentPassword","new_password_sha256","current_password_sha256","cfg","_cfg","setup","_yield$getXSRFToken","login","csrf_token","_callee4$","_context4","crypto","createHash","update","digest","getUserYTApiSetup","getXSRFToken","createOption","v4","setUserPassword","parameters","user","result","status","err","t1"],"sources":["login.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport axios from 'axios';\nimport _ from 'lodash';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\nimport {getUserYTApiSetup, getYTApiClusterSetup} from '../components/requestsSetup';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport crypto from 'crypto';\n\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getXSRFToken} from '../components/cluster-queries';\n\nconst yt = ytLib();\n\nfunction throwAuthDisabled() {\n throw new Error(\n 'Cluster for password authentication is disabled. You have to define ytAuthCluster to use it.',\n );\n}\n\nexport async function handleLogin(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n\n const {username, password} = JSON.parse(req.body) || {};\n if (!username || !password) {\n throw new Error('Username and password must not be empty');\n }\n\n const {proxyBaseUrl} = getYTApiClusterSetup(ytAuthCluster);\n const requestUrl = `${proxyBaseUrl}/login`;\n\n const basicAuth = Buffer.from(`${username}:${password}`).toString('base64');\n\n await axios\n .request({\n url: requestUrl,\n method: req.method as any,\n headers: {...req.ctx.getMetadata(), Authorization: `Basic ${basicAuth}`},\n timeout: 10000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(\n req.ctx,\n res,\n response,\n undefined,\n (headers) => removeSecureFlagIfOriginInsecure(req, headers),\n );\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nfunction removeSecureFlagIfOriginInsecure(\n req: Request,\n headers: Record<string, string | Array<string>>,\n) {\n const {ytAuthAllowInsecure} = req.ctx.config;\n const {origin} = req.headers;\n\n if (!ytAuthAllowInsecure || 'string' !== typeof origin || !origin.startsWith('http://')) {\n return headers;\n }\n\n return _.reduce(\n headers,\n (acc, v, k) => {\n if (k !== 'set-cookie') {\n acc[k] = v;\n } else {\n const tmp = _.map(v as Array<string>, (item) => {\n if (item.startsWith(YT_CYPRESS_COOKIE_NAME)) {\n return item.replace(/\\s*Secure;/, '');\n }\n return item;\n });\n acc[k] = tmp;\n }\n return acc;\n },\n {} as typeof headers,\n );\n}\n\nexport async function handleLogout(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n res.setHeader('set-cookie', `${YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`);\n res.sendStatus(401).send('Logout');\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nexport async function handleChangePassword(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n\n const {newPassword, currentPassword} = JSON.parse(req.body) || {};\n if (!newPassword || !currentPassword) {\n throw new Error('New and current password must not be empty');\n }\n\n const new_password_sha256 = crypto.createHash('sha256').update(newPassword).digest('hex');\n const current_password_sha256 = crypto\n .createHash('sha256')\n .update(currentPassword)\n .digest('hex');\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(ytAuthCluster, req);\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 400, e);\n return;\n }\n\n const {setup} = cfg;\n const {login, csrf_token} = await getXSRFToken(req, cfg);\n\n yt.setup.createOption('requestHeaders', 'object', {\n 'X-Csrf-Token': csrf_token,\n });\n\n await yt.v4\n .setUserPassword({\n setup,\n parameters: {user: login, new_password_sha256, current_password_sha256},\n })\n .then((result: unknown) => {\n res.status(200).send({result});\n })\n .catch((err: any) => {\n sendAndLogError(req.ctx, res, 500, err);\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_axios","_interopRequireDefault","require","_constants","_requestsSetup","_utils","_crypto","_javascriptWrapper","_clusterQueries","obj","__esModule","default","yt","ytLib","throwAuthDisabled","Error","handleLogin","_x","_x2","_handleLogin","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","req","res","ytAuthCluster","_ref","username","password","_getYTApiClusterSetup","proxyBaseUrl","requestUrl","basicAuth","wrap","_callee2$","_context2","prev","next","ctx","config","abrupt","JSON","parse","body","getYTApiClusterSetup","concat","Buffer","from","toString","axios","request","url","method","headers","_objectSpread","getMetadata","Authorization","timeout","responseType","then","_ref2","_callee","response","pipedSize","_callee$","_context","pipeAxiosResponse","undefined","removeSecureFlagIfOriginInsecure","sent","UNEXPECTED_PIPE_AXIOS_RESPONSE","stop","_x7","t0","sendAndLogError","ytAuthAllowInsecure","origin","startsWith","_reduce","acc","v","k","tmp","_map","item","YT_CYPRESS_COOKIE_NAME","replace","handleLogout","_x3","_x4","_handleLogout","_callee3","_callee3$","_context3","setHeader","status","send","handleChangePassword","_x5","_x6","_handleChangePassword","_callee4","_ref3","newPassword","currentPassword","new_password_sha256","current_password_sha256","cfg","_cfg","setup","_yield$getXSRFToken","login","csrf_token","_callee4$","_context4","crypto","createHash","update","digest","getUserYTApiSetup","getXSRFToken","createOption","v4","setUserPassword","parameters","user","result","err","t1"],"sources":["login.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport axios from 'axios';\nimport _ from 'lodash';\nimport {YT_CYPRESS_COOKIE_NAME} from '../../shared/constants';\nimport {getUserYTApiSetup, getYTApiClusterSetup} from '../components/requestsSetup';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport crypto from 'crypto';\n\n// @ts-ignore\nimport ytLib from '@ytsaurus/javascript-wrapper';\nimport {getXSRFToken} from '../components/cluster-queries';\n\nconst yt = ytLib();\n\nfunction throwAuthDisabled() {\n throw new Error(\n 'Cluster for password authentication is disabled. You have to define ytAuthCluster to use it.',\n );\n}\n\nexport async function handleLogin(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n\n const {username, password} = JSON.parse(req.body) || {};\n if (!username || !password) {\n throw new Error('Username and password must not be empty');\n }\n\n const {proxyBaseUrl} = getYTApiClusterSetup(ytAuthCluster);\n const requestUrl = `${proxyBaseUrl}/login`;\n\n const basicAuth = Buffer.from(`${username}:${password}`).toString('base64');\n\n await axios\n .request({\n url: requestUrl,\n method: req.method as any,\n headers: {...req.ctx.getMetadata(), Authorization: `Basic ${basicAuth}`},\n timeout: 10000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(\n req.ctx,\n res,\n response,\n undefined,\n (headers) => removeSecureFlagIfOriginInsecure(req, headers),\n );\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nfunction removeSecureFlagIfOriginInsecure(\n req: Request,\n headers: Record<string, string | Array<string>>,\n) {\n const {ytAuthAllowInsecure} = req.ctx.config;\n const {origin} = req.headers;\n\n if (!ytAuthAllowInsecure || 'string' !== typeof origin || !origin.startsWith('http://')) {\n return headers;\n }\n\n return _.reduce(\n headers,\n (acc, v, k) => {\n if (k !== 'set-cookie') {\n acc[k] = v;\n } else {\n const tmp = _.map(v as Array<string>, (item) => {\n if (item.startsWith(YT_CYPRESS_COOKIE_NAME)) {\n return item.replace(/\\s*Secure;/, '');\n }\n return item;\n });\n acc[k] = tmp;\n }\n return acc;\n },\n {} as typeof headers,\n );\n}\n\nexport async function handleLogout(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n res.setHeader('set-cookie', `${YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`);\n res.status(401).send('Logout');\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n\nexport async function handleChangePassword(req: Request, res: Response) {\n try {\n const {ytAuthCluster} = req.ctx.config;\n if (!ytAuthCluster) {\n return throwAuthDisabled();\n }\n\n const {newPassword, currentPassword} = JSON.parse(req.body) || {};\n if (!newPassword || !currentPassword) {\n throw new Error('New and current password must not be empty');\n }\n\n const new_password_sha256 = crypto.createHash('sha256').update(newPassword).digest('hex');\n const current_password_sha256 = crypto\n .createHash('sha256')\n .update(currentPassword)\n .digest('hex');\n\n let cfg;\n try {\n cfg = getUserYTApiSetup(ytAuthCluster, req);\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 400, e);\n return;\n }\n\n const {setup} = cfg;\n const {login, csrf_token} = await getXSRFToken(req, cfg);\n\n yt.setup.createOption('requestHeaders', 'object', {\n 'X-Csrf-Token': csrf_token,\n });\n\n await yt.v4\n .setUserPassword({\n setup,\n parameters: {user: login, new_password_sha256, current_password_sha256},\n })\n .then((result: unknown) => {\n res.status(200).send({result});\n })\n .catch((err: any) => {\n sendAndLogError(req.ctx, res, 500, err);\n });\n } catch (e: any) {\n sendAndLogError(req.ctx, res, 500, e);\n }\n}\n"],"mappings":"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"}
|
@@ -8,6 +8,7 @@ export declare const docsUrls: {
|
|
8
8
|
'faq:enablepathautocorrection': string;
|
9
9
|
'storage:static_tables': string;
|
10
10
|
'dynamic-tables:overview': string;
|
11
|
+
'dynamic-tables:cross-dc': string;
|
11
12
|
'storage:compression#compression_codecs': string;
|
12
13
|
'storage:replication#replication': string;
|
13
14
|
'storage:replication#erasure': string;
|
@@ -16,6 +16,7 @@ var docsUrls = exports.docsUrls = {
|
|
16
16
|
'faq:enablepathautocorrection': "".concat(baseUrl, "/faq/faq#enablepathautocorrection"),
|
17
17
|
'storage:static_tables': "".concat(baseUrl, "/user-guide/storage/static-tables"),
|
18
18
|
'dynamic-tables:overview': "".concat(baseUrl, "/user-guide/dynamic-tables/overview"),
|
19
|
+
'dynamic-tables:cross-dc': "".concat(baseUrl, "/user-guide/dynamic-tables/dynamic-tables-resources#georaspredelyonnye-klastery-cross-dc"),
|
19
20
|
'storage:compression#compression_codecs': "".concat(baseUrl, "/user-guide/storage/compression#compression_codecs"),
|
20
21
|
'storage:replication#replication': "".concat(baseUrl, "/user-guide/storage/replication#replication"),
|
21
22
|
'storage:replication#erasure': "".concat(baseUrl, "/user-guide/storage/replication#erasure"),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_config","require","baseUrl","getDocsBaseUrl","docsUrls","exports","concat"],"sources":["docsUrls.ts"],"sourcesContent":["import {getDocsBaseUrl} from '../config';\n\nconst baseUrl = getDocsBaseUrl() || '';\n\nexport const docsUrls = {\n 'bundle-controller:reserved-memory': ``,\n 'cypress:ttl': `${baseUrl}/user-guide/storage/cypress#TTL`,\n 'storage:compression': `${baseUrl}/user-guide/storage/compression`,\n 'operations:recommendations#slishkom-melkie-chanki': `${baseUrl}/user-guide/data-processing/operations/recommendations#slishkom-melkie-chanki`,\n 'scheduler:integral_guarantees': `${baseUrl}/user-guide/data-processing/scheduler/integral-guarantees`,\n 'overview:quickstart': `${baseUrl}/overview/try-yt`,\n 'faq:enablepathautocorrection': `${baseUrl}/faq/faq#enablepathautocorrection`,\n 'storage:static_tables': `${baseUrl}/user-guide/storage/static-tables`,\n 'dynamic-tables:overview': `${baseUrl}/user-guide/dynamic-tables/overview`,\n 'storage:compression#compression_codecs': `${baseUrl}/user-guide/storage/compression#compression_codecs`,\n 'storage:replication#replication': `${baseUrl}/user-guide/storage/replication#replication`,\n 'storage:replication#erasure': `${baseUrl}/user-guide/storage/replication#erasure`,\n 'storage:static_schema': `${baseUrl}/user-guide/storage/static-schema`,\n 'storage:data_types#schema': `${baseUrl}/user-guide/storage/data-types#schema`,\n 'storage:data_types#schema_optional': `${baseUrl}/user-guide/storage/data-types#schema_optional`,\n 'storage:static_schema#overview': `${baseUrl}/user-guide/storage/static-schema`,\n 'dynamic-tables:transactions#conflicts': `${baseUrl}/user-guide/dynamic-tables/transactions#conflicts`,\n 'dynamic-tables:sorted_dynamic_tables#aggr_columns': `${baseUrl}/user-guide/dynamic-tables/sorted-dynamic-tables#aggr_columns`,\n 'problems:jobstatistics': `${baseUrl}/user-guide/problems/jobstatistics`,\n 'storage:formats': `${baseUrl}/user-guide/storage/formats`,\n 'storage:excel#skachivanie': `${baseUrl}/user-guide/storage/excel#skachivanie`,\n 'storage:excel': `${baseUrl}/user-guide/storage/excel`,\n 'faq:web_interface_table_download': `${baseUrl}/faq/faq#web_interface_table_download`,\n 'dynamic-tables:overview#in_memory': `${baseUrl}/user-guide/dynamic-tables/overview#in_memory`,\n 'storage:chunks#optimize_for': `${baseUrl}/user-guide/storage/chunks#optimize_for`,\n 'storage:accounts': `${baseUrl}/user-guide/storage/accounts`,\n 'storage:media#primary': `${baseUrl}/user-guide/storage/media#primary`,\n 'dynamic-tables:concepts#tablet_cell_bundles': `${baseUrl}/user-guide/dynamic-tables/concepts#tablet_cell_bundles`,\n 'operations:operations_options#obshie-opcii-dlya-vseh-tipov-operacij': `${baseUrl}/user-guide/data-processing/operations/operations-options#common_options`,\n 'operations:erase': `${baseUrl}/user-guide/data-processing/operations/erase`,\n 'operations:merge': `${baseUrl}/user-guide/data-processing/operations/merge`,\n 'operations:overview#aborted_jobs': `${baseUrl}/user-guide/data-processing/operations/overview#aborted_jobs`,\n 'operations:overview#completed_jobs': `${baseUrl}/user-guide/data-processing/operations/overview#completed_jobs`,\n 'operations:operations_options': `${baseUrl}/user-guide/data-processing/operations/operations-options`,\n 'operations:remote_copy': `${baseUrl}/user-guide/data-processing/operations/remote-copy`,\n 'scheduler:scheduler_and_pools': `${baseUrl}/user-guide/data-processing/scheduler/scheduler-and-pools`,\n 'faq:alert_type': `${baseUrl}/faq/faq#`,\n 'common:quotas#request_quota': '',\n 'common:quota_request': '',\n 'api:cli': `${baseUrl}/api/cli/cli`,\n 'chyt:yt_tables#dynamic': `${baseUrl}/user-guide/data-processing/chyt/yt-tables#dynamic`,\n 'common:regular_system_processes': '',\n 'acl:permissions': `${baseUrl}/user-guide/storage/access-control#authorization`,\n};\n\nexport type DocsUrls = typeof docsUrls;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAMC,OAAO,GAAG,IAAAC,sBAAc,EAAC,CAAC,IAAI,EAAE;AAE/B,IAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACpB,mCAAmC,IAAI;EACvC,aAAa,KAAAE,MAAA,CAAKJ,OAAO,oCAAiC;EAC1D,qBAAqB,KAAAI,MAAA,CAAKJ,OAAO,oCAAiC;EAClE,mDAAmD,KAAAI,MAAA,CAAKJ,OAAO,kFAA+E;EAC9I,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,qBAAqB,KAAAI,MAAA,CAAKJ,OAAO,qBAAkB;EACnD,8BAA8B,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EAC7E,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,yBAAyB,KAAAI,MAAA,CAAKJ,OAAO,wCAAqC;EAC1E,wCAAwC,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxG,iCAAiC,KAAAI,MAAA,CAAKJ,OAAO,gDAA6C;EAC1F,6BAA6B,KAAAI,MAAA,CAAKJ,OAAO,4CAAyC;EAClF,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,2BAA2B,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EAC9E,oCAAoC,KAAAI,MAAA,CAAKJ,OAAO,mDAAgD;EAChG,gCAAgC,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EAC/E,uCAAuC,KAAAI,MAAA,CAAKJ,OAAO,sDAAmD;EACtG,mDAAmD,KAAAI,MAAA,CAAKJ,OAAO,kEAA+D;EAC9H,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uCAAoC;EACxE,iBAAiB,KAAAI,MAAA,CAAKJ,OAAO,gCAA6B;EAC1D,2BAA2B,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EAC9E,eAAe,KAAAI,MAAA,CAAKJ,OAAO,8BAA2B;EACtD,kCAAkC,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EACrF,mCAAmC,KAAAI,MAAA,CAAKJ,OAAO,kDAA+C;EAC9F,6BAA6B,KAAAI,MAAA,CAAKJ,OAAO,4CAAyC;EAClF,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iCAA8B;EAC5D,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,6CAA6C,KAAAI,MAAA,CAAKJ,OAAO,4DAAyD;EAClH,qEAAqE,KAAAI,MAAA,CAAKJ,OAAO,6EAA0E;EAC3J,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iDAA8C;EAC5E,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iDAA8C;EAC5E,kCAAkC,KAAAI,MAAA,CAAKJ,OAAO,iEAA8D;EAC5G,oCAAoC,KAAAI,MAAA,CAAKJ,OAAO,mEAAgE;EAChH,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxF,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,gBAAgB,KAAAI,MAAA,CAAKJ,OAAO,cAAW;EACvC,6BAA6B,EAAE,EAAE;EACjC,sBAAsB,EAAE,EAAE;EAC1B,SAAS,KAAAI,MAAA,CAAKJ,OAAO,iBAAc;EACnC,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxF,iCAAiC,EAAE,EAAE;EACrC,iBAAiB,KAAAI,MAAA,CAAKJ,OAAO;AACjC,CAAC"}
|
1
|
+
{"version":3,"names":["_config","require","baseUrl","getDocsBaseUrl","docsUrls","exports","concat"],"sources":["docsUrls.ts"],"sourcesContent":["import {getDocsBaseUrl} from '../config';\n\nconst baseUrl = getDocsBaseUrl() || '';\n\nexport const docsUrls = {\n 'bundle-controller:reserved-memory': ``,\n 'cypress:ttl': `${baseUrl}/user-guide/storage/cypress#TTL`,\n 'storage:compression': `${baseUrl}/user-guide/storage/compression`,\n 'operations:recommendations#slishkom-melkie-chanki': `${baseUrl}/user-guide/data-processing/operations/recommendations#slishkom-melkie-chanki`,\n 'scheduler:integral_guarantees': `${baseUrl}/user-guide/data-processing/scheduler/integral-guarantees`,\n 'overview:quickstart': `${baseUrl}/overview/try-yt`,\n 'faq:enablepathautocorrection': `${baseUrl}/faq/faq#enablepathautocorrection`,\n 'storage:static_tables': `${baseUrl}/user-guide/storage/static-tables`,\n 'dynamic-tables:overview': `${baseUrl}/user-guide/dynamic-tables/overview`,\n 'dynamic-tables:cross-dc': `${baseUrl}/user-guide/dynamic-tables/dynamic-tables-resources#georaspredelyonnye-klastery-cross-dc`,\n 'storage:compression#compression_codecs': `${baseUrl}/user-guide/storage/compression#compression_codecs`,\n 'storage:replication#replication': `${baseUrl}/user-guide/storage/replication#replication`,\n 'storage:replication#erasure': `${baseUrl}/user-guide/storage/replication#erasure`,\n 'storage:static_schema': `${baseUrl}/user-guide/storage/static-schema`,\n 'storage:data_types#schema': `${baseUrl}/user-guide/storage/data-types#schema`,\n 'storage:data_types#schema_optional': `${baseUrl}/user-guide/storage/data-types#schema_optional`,\n 'storage:static_schema#overview': `${baseUrl}/user-guide/storage/static-schema`,\n 'dynamic-tables:transactions#conflicts': `${baseUrl}/user-guide/dynamic-tables/transactions#conflicts`,\n 'dynamic-tables:sorted_dynamic_tables#aggr_columns': `${baseUrl}/user-guide/dynamic-tables/sorted-dynamic-tables#aggr_columns`,\n 'problems:jobstatistics': `${baseUrl}/user-guide/problems/jobstatistics`,\n 'storage:formats': `${baseUrl}/user-guide/storage/formats`,\n 'storage:excel#skachivanie': `${baseUrl}/user-guide/storage/excel#skachivanie`,\n 'storage:excel': `${baseUrl}/user-guide/storage/excel`,\n 'faq:web_interface_table_download': `${baseUrl}/faq/faq#web_interface_table_download`,\n 'dynamic-tables:overview#in_memory': `${baseUrl}/user-guide/dynamic-tables/overview#in_memory`,\n 'storage:chunks#optimize_for': `${baseUrl}/user-guide/storage/chunks#optimize_for`,\n 'storage:accounts': `${baseUrl}/user-guide/storage/accounts`,\n 'storage:media#primary': `${baseUrl}/user-guide/storage/media#primary`,\n 'dynamic-tables:concepts#tablet_cell_bundles': `${baseUrl}/user-guide/dynamic-tables/concepts#tablet_cell_bundles`,\n 'operations:operations_options#obshie-opcii-dlya-vseh-tipov-operacij': `${baseUrl}/user-guide/data-processing/operations/operations-options#common_options`,\n 'operations:erase': `${baseUrl}/user-guide/data-processing/operations/erase`,\n 'operations:merge': `${baseUrl}/user-guide/data-processing/operations/merge`,\n 'operations:overview#aborted_jobs': `${baseUrl}/user-guide/data-processing/operations/overview#aborted_jobs`,\n 'operations:overview#completed_jobs': `${baseUrl}/user-guide/data-processing/operations/overview#completed_jobs`,\n 'operations:operations_options': `${baseUrl}/user-guide/data-processing/operations/operations-options`,\n 'operations:remote_copy': `${baseUrl}/user-guide/data-processing/operations/remote-copy`,\n 'scheduler:scheduler_and_pools': `${baseUrl}/user-guide/data-processing/scheduler/scheduler-and-pools`,\n 'faq:alert_type': `${baseUrl}/faq/faq#`,\n 'common:quotas#request_quota': '',\n 'common:quota_request': '',\n 'api:cli': `${baseUrl}/api/cli/cli`,\n 'chyt:yt_tables#dynamic': `${baseUrl}/user-guide/data-processing/chyt/yt-tables#dynamic`,\n 'common:regular_system_processes': '',\n 'acl:permissions': `${baseUrl}/user-guide/storage/access-control#authorization`,\n};\n\nexport type DocsUrls = typeof docsUrls;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAMC,OAAO,GAAG,IAAAC,sBAAc,EAAC,CAAC,IAAI,EAAE;AAE/B,IAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACpB,mCAAmC,IAAI;EACvC,aAAa,KAAAE,MAAA,CAAKJ,OAAO,oCAAiC;EAC1D,qBAAqB,KAAAI,MAAA,CAAKJ,OAAO,oCAAiC;EAClE,mDAAmD,KAAAI,MAAA,CAAKJ,OAAO,kFAA+E;EAC9I,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,qBAAqB,KAAAI,MAAA,CAAKJ,OAAO,qBAAkB;EACnD,8BAA8B,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EAC7E,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,yBAAyB,KAAAI,MAAA,CAAKJ,OAAO,wCAAqC;EAC1E,yBAAyB,KAAAI,MAAA,CAAKJ,OAAO,6FAA0F;EAC/H,wCAAwC,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxG,iCAAiC,KAAAI,MAAA,CAAKJ,OAAO,gDAA6C;EAC1F,6BAA6B,KAAAI,MAAA,CAAKJ,OAAO,4CAAyC;EAClF,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,2BAA2B,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EAC9E,oCAAoC,KAAAI,MAAA,CAAKJ,OAAO,mDAAgD;EAChG,gCAAgC,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EAC/E,uCAAuC,KAAAI,MAAA,CAAKJ,OAAO,sDAAmD;EACtG,mDAAmD,KAAAI,MAAA,CAAKJ,OAAO,kEAA+D;EAC9H,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uCAAoC;EACxE,iBAAiB,KAAAI,MAAA,CAAKJ,OAAO,gCAA6B;EAC1D,2BAA2B,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EAC9E,eAAe,KAAAI,MAAA,CAAKJ,OAAO,8BAA2B;EACtD,kCAAkC,KAAAI,MAAA,CAAKJ,OAAO,0CAAuC;EACrF,mCAAmC,KAAAI,MAAA,CAAKJ,OAAO,kDAA+C;EAC9F,6BAA6B,KAAAI,MAAA,CAAKJ,OAAO,4CAAyC;EAClF,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iCAA8B;EAC5D,uBAAuB,KAAAI,MAAA,CAAKJ,OAAO,sCAAmC;EACtE,6CAA6C,KAAAI,MAAA,CAAKJ,OAAO,4DAAyD;EAClH,qEAAqE,KAAAI,MAAA,CAAKJ,OAAO,6EAA0E;EAC3J,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iDAA8C;EAC5E,kBAAkB,KAAAI,MAAA,CAAKJ,OAAO,iDAA8C;EAC5E,kCAAkC,KAAAI,MAAA,CAAKJ,OAAO,iEAA8D;EAC5G,oCAAoC,KAAAI,MAAA,CAAKJ,OAAO,mEAAgE;EAChH,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxF,+BAA+B,KAAAI,MAAA,CAAKJ,OAAO,8DAA2D;EACtG,gBAAgB,KAAAI,MAAA,CAAKJ,OAAO,cAAW;EACvC,6BAA6B,EAAE,EAAE;EACjC,sBAAsB,EAAE,EAAE;EAC1B,SAAS,KAAAI,MAAA,CAAKJ,OAAO,iBAAc;EACnC,wBAAwB,KAAAI,MAAA,CAAKJ,OAAO,uDAAoD;EACxF,iCAAiC,EAAE,EAAE;EACrC,iBAAiB,KAAAI,MAAA,CAAKJ,OAAO;AACjC,CAAC"}
|
package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js
CHANGED
@@ -64,15 +64,17 @@ function BundleEditorDialog() {
|
|
64
64
|
}();
|
65
65
|
var _ref = function () {
|
66
66
|
if (!bundleDefaultConfig) {
|
67
|
-
return [[], []];
|
67
|
+
return [[], [], []];
|
68
68
|
}
|
69
69
|
var rpc_proxy_sizes = bundleDefaultConfig.rpc_proxy_sizes,
|
70
|
-
tablet_node_sizes = bundleDefaultConfig.tablet_node_sizes
|
71
|
-
|
70
|
+
tablet_node_sizes = bundleDefaultConfig.tablet_node_sizes,
|
71
|
+
data_centers = bundleDefaultConfig.data_centers;
|
72
|
+
return [(0, _bundleEditorDialog.createConfigurationList)(rpc_proxy_sizes), (0, _bundleEditorDialog.createConfigurationList)(tablet_node_sizes), data_centers ? (0, _toConsumableArray2.default)(Object.values(data_centers)) : []];
|
72
73
|
}(),
|
73
|
-
_ref2 = (0, _slicedToArray2.default)(_ref,
|
74
|
+
_ref2 = (0, _slicedToArray2.default)(_ref, 3),
|
74
75
|
rpcConfigurations = _ref2[0],
|
75
|
-
nodeConfigurations = _ref2[1]
|
76
|
+
nodeConfigurations = _ref2[1],
|
77
|
+
dcConfigurations = _ref2[2];
|
76
78
|
var renderGeneralTabs = {
|
77
79
|
name: 'general',
|
78
80
|
title: 'General',
|
@@ -157,7 +159,8 @@ function BundleEditorDialog() {
|
|
157
159
|
withoutDetailedBar: true,
|
158
160
|
hasClear: true
|
159
161
|
},
|
160
|
-
|
162
|
+
tooltip: (0, _config.docsUrl)((0, _utils.makeLink)(_UIFactory.default.docsUrls['dynamic-tables:cross-dc'], 'Help')),
|
163
|
+
validator: (0, _bundleEditorDialog.instanceCountValidate)(dcConfigurations)
|
161
164
|
}, {
|
162
165
|
type: 'bundle-table-field',
|
163
166
|
name: 'rpc_proxy_resource_guarantee',
|
@@ -177,7 +180,8 @@ function BundleEditorDialog() {
|
|
177
180
|
withoutDetailedBar: true,
|
178
181
|
hasClear: true
|
179
182
|
},
|
180
|
-
|
183
|
+
tooltip: (0, _config.docsUrl)((0, _utils.makeLink)(_UIFactory.default.docsUrls['dynamic-tables:cross-dc'], 'Help')),
|
184
|
+
validator: (0, _bundleEditorDialog.instanceCountValidate)(dcConfigurations)
|
181
185
|
}, {
|
182
186
|
type: 'bundle-table-field',
|
183
187
|
name: 'tablet_node_resource_guarantee',
|
package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactRedux","_bemCnLite","_Info","_BundleParamsList","_Dialog","_hammer","_global","_tabletCellBundleEditor","_tablet_cell_bundles","_tabletCellBundleEditor2","_bundleEditorDialog","_UIFactory","_interopRequireWildcard","_utils","_config","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","block","cn","BundleEditorDialog","_initialValues$resour","_useSelector","useSelector","getTabletCellBundleEditorState","visibleEditor","bundleName","bundleData","data","orchidData","bundleControllerData","clusterUiConfig","getClusterUiConfig","_useSelector2","getBundleEditorData","bundleDefaultConfig","defaultConfig","bundleControllerConfig","bundle_controller_target_config","enableBundleController","enable_bundle_controller","_getResourceData","getResourceData","tabletCountUsage","usage","_getResourceData2","tabletStaticMemoryUsage","writeableByName","getTabletBundlesWriteableByName","allowTabletCount","allowEdit","isDeveloper","initialValues","getInitialFormValues","_ref","rpc_proxy_sizes","tablet_node_sizes","createConfigurationList","_ref2","_slicedToArray","rpcConfigurations","nodeConfigurations","renderGeneralTabs","name","title","type","size","fields","concat","_toConsumableArray","isAbcAllowed","caption","extras","placeholder","disabled","allowRootAccount","renderResourceTab","fullWidth","children","_jsxs","Info","className","UIFactory","renderTableCellBundleEditorNotice","_jsx","BundleParamsList","params","value","hammer","format","resource_quota","memory","vcpu","Number","resources","tablet_count","withoutDetailedBar","progress","validator","simpleBundleValidate","section","hasClear","values","_ref3","form","onRadioClick","nodeConfigurationType","defaultMemory","default_config","memory_limits","defaultThreadPool","cpu_limits","resultMemory","getBundleControllerResource","resultThreadPool","change","_objectSpread","bundleEditorDict","defaults","renderSimpleResourceTab","tooltip","renderMemoryTab","visibilityCondition","when","isActive","v","allValues","_ref4","_allValues$resources","tablet_node_resource_guarantee","onReset","used","keys","reduce","sum","k","_allValues$memory_lim","isNaN","createParams","docsUrl","makeLink","docsUrls","undefined","_ref5","hasError","_get","errorText","validateMemoryLimits","DialogError","header","message","renderThreadPoolTab","_ref6","_allValues$resources2","postfix","push","dispatch","useDispatch","onClose","hideTabletCellBundleEditor","onSubmit","_ref7","_asyncToGenerator","_regeneratorRuntime","mark","_callee","preparedData","wrap","_callee$","_context","prev","next","abrupt","prepareSubmitBundle","setBundleEditorController","t0","validationErrors","_defineProperty","FORM_ERROR","error","stop","_x","apply","arguments","_isEmpty","YTDFDialog","headerProps","visible","onAdd","_values$resources","_values$resources$tab","memoryLimits","currentAccLimit","acc"],"sources":["BundleEditorDialog.tsx"],"sourcesContent":["import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport {Info} from '../../../../components/Info/Info';\nimport {BundleParamsList} from './components/BundleParamsList/BundleParamsList';\nimport {\n DialogError,\n DialogField,\n DialogTabField,\n FORM_ERROR,\n FormApi,\n YTDFDialog,\n} from '../../../../components/Dialog/Dialog';\nimport hammer from '../../../../common/hammer';\n\nimport {getClusterUiConfig, isDeveloper} from '../../../../store/selectors/global';\nimport {\n hideTabletCellBundleEditor,\n setBundleEditorController,\n} from '../../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor';\nimport {\n getBundleEditorData,\n getTabletBundlesWriteableByName,\n} from '../../../../store/selectors/tablet_cell_bundles';\nimport {BundleResourceGuarantee} from '../../../../store/reducers/tablet_cell_bundles';\nimport {getTabletCellBundleEditorState} from '../../../../store/selectors/tablet_cell_bundles/tablet-cell-bundle-editor';\n\nimport {\n bundleEditorDict,\n createConfigurationList,\n createParams,\n getBundleControllerResource,\n getInitialFormValues,\n getResourceData,\n prepareSubmitBundle,\n simpleBundleValidate,\n} from '../../../../utils/tablet_cell_bundles/bundles/bundle-editor-dialog';\nimport UIFactory, {isAbcAllowed} from '../../../../UIFactory';\nimport {makeLink} from '../../../../utils/utils';\nimport {docsUrl} from '../../../../config';\n\nimport './BundleEditorDialog.scss';\n\nconst block = cn('bundle-editor');\n\nexport interface BundleEditorDialogFormValues {\n general: {\n abc?: {slug: string; id?: number};\n changelog_account?: string;\n snapshot_account?: string;\n };\n resources: {\n info?: string; // system\n rpc_proxy_count?: number; // todo\n rpc_proxy_resource_guarantee?: BundleResourceGuarantee;\n tablet_node_count?: number;\n tablet_node_resource_guarantee?: BundleResourceGuarantee;\n tablet_count?: number; // old\n tablet_static_memory?: number; // pld\n };\n memory_limits: {\n error?: boolean; // system\n memory_reset: boolean; // system\n reserved?: number;\n tablet_static?: number;\n tablet_dynamic?: number;\n compressed_block_cache?: number;\n uncompressed_block_cache?: number;\n versioned_chunk_meta?: number;\n lookup_row_cache?: number;\n key_filter_block_cache?: number;\n };\n cpu_limits: {\n threadPool_reset?: boolean; //system\n lookup_thread_pool_size?: number;\n query_thread_pool_size?: number;\n write_thread_pool_size?: number;\n };\n}\n\nexport function BundleEditorDialog() {\n const {\n visibleEditor,\n bundleName,\n bundleData,\n data,\n bundleControllerData: orchidData,\n } = useSelector(getTabletCellBundleEditorState);\n\n const clusterUiConfig = useSelector(getClusterUiConfig);\n\n const {defaultConfig: bundleDefaultConfig} = useSelector(getBundleEditorData);\n\n const bundleControllerConfig = bundleData?.bundle_controller_target_config;\n const enableBundleController = bundleData?.enable_bundle_controller || false;\n\n const {usage: tabletCountUsage} = getResourceData(data, 'tablet_count');\n const {usage: tabletStaticMemoryUsage} = getResourceData(data, 'tablet_static_memory');\n\n const writeableByName = useSelector(getTabletBundlesWriteableByName);\n const allowTabletCount = writeableByName.get(bundleName ?? '');\n const allowEdit = useSelector(isDeveloper);\n\n const initialValues: Partial<BundleEditorDialogFormValues> = (() => {\n if (!enableBundleController) {\n return getInitialFormValues(data);\n }\n if (!bundleControllerConfig) {\n return {};\n }\n return getInitialFormValues(data, bundleControllerConfig);\n })();\n\n const [rpcConfigurations, nodeConfigurations] = (() => {\n if (!bundleDefaultConfig) {\n return [[], []];\n }\n const {rpc_proxy_sizes, tablet_node_sizes} = bundleDefaultConfig;\n\n return [\n createConfigurationList(rpc_proxy_sizes),\n createConfigurationList(tablet_node_sizes),\n ];\n })();\n\n const renderGeneralTabs: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'general',\n title: 'General',\n type: 'tab-vertical',\n size: 's',\n fields: [\n ...(!isAbcAllowed()\n ? []\n : [\n {\n name: 'abc',\n type: 'abc-control' as const,\n caption: 'ABC Service',\n extras: {\n placeholder: 'Select ABC service...',\n disabled: !allowEdit,\n },\n },\n ]),\n {\n name: 'changelog_account',\n type: 'accounts-suggest-with-loading',\n caption: 'Changelog account',\n extras: {\n allowRootAccount: true,\n disabled: !allowEdit,\n },\n },\n {\n name: 'snapshot_account',\n type: 'accounts-suggest-with-loading',\n caption: 'Snapshot account',\n extras: {\n allowRootAccount: true,\n disabled: !allowEdit,\n },\n },\n ],\n };\n\n const renderResourceTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'resources',\n title: 'Resources',\n type: 'tab-vertical',\n size: 's',\n fields: [\n {\n name: 'info',\n type: 'block',\n fullWidth: true,\n extras: {\n children: (\n <Info className={block('info')}>\n {UIFactory.renderTableCellBundleEditorNotice({\n bundleData,\n clusterUiConfig,\n })}\n <BundleParamsList\n className={block('params')}\n params={[\n {\n title: 'Memory',\n value: hammer.format['Bytes'](\n orchidData?.resource_quota.memory || '0',\n ),\n },\n {\n title: 'vCPU',\n value: hammer.format['vCores'](\n orchidData?.resource_quota.vcpu || '0',\n ),\n },\n {\n title: 'Tablet count',\n value: hammer.format.Number(\n initialValues.resources?.tablet_count,\n ),\n },\n ]}\n />\n </Info>\n ),\n },\n },\n ...(!allowTabletCount\n ? []\n : [\n {\n name: 'tablet_count',\n type: 'bundle-input',\n caption: 'Tablet count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n progress: {\n usage: tabletCountUsage,\n },\n },\n validator: simpleBundleValidate,\n } as const,\n ]),\n {section: 'RPC proxy'},\n {\n type: 'bundle-input',\n name: 'rpc_proxy_count',\n caption: 'RPC proxy count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n type: 'bundle-table-field',\n name: 'rpc_proxy_resource_guarantee',\n caption: 'Instance configuration',\n fullWidth: true,\n extras: {\n data: rpcConfigurations,\n },\n },\n {section: 'Tablet node'},\n {\n type: 'bundle-input',\n name: 'tablet_node_count',\n caption: 'Tablet node count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n type: 'bundle-table-field',\n name: 'tablet_node_resource_guarantee',\n caption: 'Instance configuration',\n fullWidth: true,\n extras: function (values, {form}) {\n const onRadioClick = (value: BundleResourceGuarantee) => {\n const nodeConfigurationType = value.type || '';\n\n const defaultMemory =\n bundleDefaultConfig?.tablet_node_sizes[nodeConfigurationType]\n .default_config.memory_limits || {};\n const defaultThreadPool =\n bundleDefaultConfig?.tablet_node_sizes[nodeConfigurationType]\n .default_config.cpu_limits || {};\n\n const resultMemory = getBundleControllerResource(\n values.memory_limits,\n defaultMemory,\n 'memory_limits',\n );\n const resultThreadPool = getBundleControllerResource(\n values.cpu_limits,\n defaultThreadPool,\n 'cpu_limits',\n );\n\n form.change('memory_limits', {\n ...bundleEditorDict.defaults.memory_limits,\n ...resultMemory,\n });\n form.change('cpu_limits', {\n ...bundleEditorDict.defaults.cpu_limits,\n ...resultThreadPool,\n });\n };\n\n return {\n data: nodeConfigurations,\n onRadioClick,\n };\n },\n },\n ],\n };\n\n const renderSimpleResourceTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'resources',\n title: 'Resources',\n type: 'tab-vertical',\n size: 's',\n fields: [\n {\n name: 'tablet_count',\n type: 'bundle-input',\n caption: 'Tablet count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n progress: {\n usage: tabletCountUsage,\n },\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'tablet_static_memory',\n type: 'bundle-input',\n caption: 'Tablet static memory',\n extras: {\n format: 'Bytes',\n progress: {\n usage: tabletStaticMemoryUsage,\n },\n },\n validator: simpleBundleValidate,\n tooltip: (\n <span>\n Tablet static memory limit is based on hardware resources. Do not increase\n it unless you fully understand what you are doing. In case of emergency\n consider adding new tablet cells to the bundle, consulting with\n Components/Nodes page and increasing the limit only when new nodes are added\n to the bundle.\n </span>\n ),\n },\n ],\n };\n\n const renderMemoryTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'memory_limits',\n title: 'Memory',\n type: 'tab-vertical',\n size: 's',\n visibilityCondition: {\n when: 'resources.tablet_node_resource_guarantee',\n isActive: (v) => typeof v !== 'undefined',\n },\n fields: [\n {\n name: 'memory_reset',\n type: 'bundle-title',\n caption: 'Memory',\n extras: (allValues, {form}) => {\n const tablet_node_resource_guarantee =\n allValues.resources?.tablet_node_resource_guarantee;\n\n const onReset = () => {\n if (\n !tablet_node_resource_guarantee ||\n !tablet_node_resource_guarantee.type ||\n !bundleDefaultConfig\n ) {\n return;\n }\n const type = tablet_node_resource_guarantee.type;\n const {tablet_node_sizes} = bundleDefaultConfig;\n const {memory_limits} = tablet_node_sizes[type].default_config;\n\n form.change('memory_limits', {\n ...bundleEditorDict.defaults.memory_limits,\n ...memory_limits,\n });\n };\n\n if (!tablet_node_resource_guarantee) {\n return {\n params: [],\n onReset,\n };\n }\n const {memory} = tablet_node_resource_guarantee;\n\n const used = bundleEditorDict.keys.memory_limits.reduce((sum, k) => {\n const v = allValues?.memory_limits?.[k];\n return typeof v !== 'number' || isNaN(v) ? sum : sum + v;\n }, 0);\n\n return {\n params: createParams('Bytes', memory, used),\n onReset,\n };\n },\n },\n {\n name: 'reserved',\n type: 'bundle-input',\n caption: 'Reserved',\n extras: {\n format: 'Bytes',\n disabled: true,\n },\n tooltip: docsUrl(\n makeLink(UIFactory.docsUrls['bundle-controller:reserved-memory'], 'Help'),\n ),\n },\n {\n name: 'tablet_static',\n type: 'bundle-input',\n caption: 'Tablet static',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'tablet_dynamic',\n type: 'bundle-input',\n caption: 'Tablet dynamic',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'compressed_block_cache',\n type: 'bundle-input',\n caption: 'Compressed block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'uncompressed_block_cache',\n type: 'bundle-input',\n caption: 'Uncompressed block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'versioned_chunk_meta',\n type: 'bundle-input',\n caption: 'Versioned chunk meta',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'lookup_row_cache',\n type: 'bundle-input',\n caption: 'Lookup row cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'key_filter_block_cache',\n type: 'bundle-input',\n caption: 'Key filter block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n type: 'block',\n name: 'error',\n validator: (v: any) => (v ? v : undefined),\n fullWidth: true,\n extras(allValues, {form}) {\n const hasError = _.get(allValues, 'memory_limits.error');\n const errorText = validateMemoryLimits(allValues);\n\n if (errorText && !hasError) {\n form.change('memory_limits.error', true);\n } else if (!errorText && hasError) {\n form.change('memory_limits.error', false);\n }\n\n return {\n children: !errorText ? null : (\n <DialogError header={'Error'} message={<span>{errorText}</span>} />\n ),\n };\n },\n },\n ],\n };\n\n const renderThreadPoolTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'cpu_limits',\n title: 'Thread pools',\n type: 'tab-vertical',\n size: 's',\n visibilityCondition: {\n when: 'resources.tablet_node_resource_guarantee',\n isActive: (v) => typeof v !== 'undefined',\n },\n fields: [\n {\n name: 'threadPool_reset',\n type: 'bundle-title',\n caption: 'vCPU',\n extras: (allValues, {form}) => {\n const tablet_node_resource_guarantee =\n allValues.resources?.tablet_node_resource_guarantee;\n\n if (\n !tablet_node_resource_guarantee ||\n !tablet_node_resource_guarantee.type ||\n !bundleDefaultConfig\n ) {\n return {\n params: [],\n onReset: () => {},\n };\n }\n\n const onReset = () => {\n const type = tablet_node_resource_guarantee.type;\n if (!type) {\n return;\n }\n\n const {tablet_node_sizes} = bundleDefaultConfig;\n const {cpu_limits} = tablet_node_sizes[type].default_config;\n\n form.change('cpu_limits', {\n ...bundleEditorDict.defaults.cpu_limits,\n ...cpu_limits,\n });\n };\n\n const {vcpu} = tablet_node_resource_guarantee;\n\n return {\n params: createParams('vCores', vcpu),\n onReset,\n };\n },\n },\n {\n name: 'lookup_thread_pool_size',\n type: 'bundle-input',\n caption: 'Lookup thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'query_thread_pool_size',\n type: 'bundle-input',\n caption: 'Query thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'write_thread_pool_size',\n type: 'bundle-input',\n caption: 'Write thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n ],\n };\n\n const fields = [renderGeneralTabs];\n if (enableBundleController) {\n fields.push(renderResourceTab, renderMemoryTab, renderThreadPoolTab);\n } else {\n fields.push(renderSimpleResourceTab);\n }\n\n const dispatch = useDispatch();\n const onClose = () => {\n dispatch(hideTabletCellBundleEditor());\n };\n\n const onSubmit = async (form: FormApi<BundleEditorDialogFormValues>) => {\n if (!bundleName) {\n return {};\n }\n\n const preparedData = prepareSubmitBundle(form);\n\n try {\n await dispatch(\n setBundleEditorController({\n bundleName,\n data: preparedData,\n }),\n );\n return undefined;\n } catch (error) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n }\n };\n\n if (_.isEmpty(data)) {\n return null;\n }\n\n return (\n <YTDFDialog<BundleEditorDialogFormValues>\n className={block('dialog')}\n headerProps={{\n title: bundleName,\n }}\n size=\"l\"\n initialValues={initialValues}\n visible={visibleEditor}\n onAdd={onSubmit}\n onClose={onClose}\n fields={fields}\n />\n );\n}\n\nfunction validateMemoryLimits(values: BundleEditorDialogFormValues) {\n if (values.resources?.tablet_node_resource_guarantee) {\n const memoryLimits = values.resources.tablet_node_resource_guarantee?.memory || 0;\n const currentAccLimit =\n Object.values(values.memory_limits || {}).reduce((acc: number, v: number | boolean) => {\n if (typeof v !== 'number') {\n return acc;\n }\n return acc + v;\n }, 0) || 0;\n\n if (currentAccLimit > memoryLimits) {\n return 'The sum of the memory limits exceeds the allowed values';\n }\n }\n\n return '';\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAGA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAQA,IAAAM,OAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,uBAAA,GAAAR,OAAA;AAIA,IAAAS,oBAAA,GAAAT,OAAA;AAKA,IAAAU,wBAAA,GAAAV,OAAA;AAEA,IAAAW,mBAAA,GAAAX,OAAA;AAUA,IAAAY,UAAA,GAAAC,uBAAA,CAAAb,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AACA,IAAAe,OAAA,GAAAf,OAAA;AAEAA,OAAA;AAAmC,IAAAgB,WAAA,GAAAhB,OAAA;AAAA,SAAAiB,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAA3B,uBAAAuC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAEnC,IAAMC,KAAK,GAAG,IAAAC,kBAAE,EAAC,eAAe,CAAC;AAqC1B,SAASC,kBAAkBA,CAAA,EAAG;EAAA,IAAAC,qBAAA;EACjC,IAAAC,YAAA,GAMI,IAAAC,uBAAW,EAACC,uDAA8B,CAAC;IAL3CC,aAAa,GAAAH,YAAA,CAAbG,aAAa;IACbC,UAAU,GAAAJ,YAAA,CAAVI,UAAU;IACVC,UAAU,GAAAL,YAAA,CAAVK,UAAU;IACVC,IAAI,GAAAN,YAAA,CAAJM,IAAI;IACkBC,UAAU,GAAAP,YAAA,CAAhCQ,oBAAoB;EAGxB,IAAMC,eAAe,GAAG,IAAAR,uBAAW,EAACS,0BAAkB,CAAC;EAEvD,IAAAC,aAAA,GAA6C,IAAAV,uBAAW,EAACW,wCAAmB,CAAC;IAAvDC,mBAAmB,GAAAF,aAAA,CAAlCG,aAAa;EAEpB,IAAMC,sBAAsB,GAAGV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEW,+BAA+B;EAC1E,IAAMC,sBAAsB,GAAG,CAAAZ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEa,wBAAwB,KAAI,KAAK;EAE5E,IAAAC,gBAAA,GAAkC,IAAAC,mCAAe,EAACd,IAAI,EAAE,cAAc,CAAC;IAAzDe,gBAAgB,GAAAF,gBAAA,CAAvBG,KAAK;EACZ,IAAAC,iBAAA,GAAyC,IAAAH,mCAAe,EAACd,IAAI,EAAE,sBAAsB,CAAC;IAAxEkB,uBAAuB,GAAAD,iBAAA,CAA9BD,KAAK;EAEZ,IAAMG,eAAe,GAAG,IAAAxB,uBAAW,EAACyB,oDAA+B,CAAC;EACpE,IAAMC,gBAAgB,GAAGF,eAAe,CAAC3C,GAAG,CAACsB,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,EAAE,CAAC;EAC9D,IAAMwB,SAAS,GAAG,IAAA3B,uBAAW,EAAC4B,mBAAW,CAAC;EAE1C,IAAMC,aAAoD,GAAI,YAAM;IAChE,IAAI,CAACb,sBAAsB,EAAE;MACzB,OAAO,IAAAc,wCAAoB,EAACzB,IAAI,CAAC;IACrC;IACA,IAAI,CAACS,sBAAsB,EAAE;MACzB,OAAO,CAAC,CAAC;IACb;IACA,OAAO,IAAAgB,wCAAoB,EAACzB,IAAI,EAAES,sBAAsB,CAAC;EAC7D,CAAC,CAAE,CAAC;EAEJ,IAAAiB,IAAA,GAAiD,YAAM;MACnD,IAAI,CAACnB,mBAAmB,EAAE;QACtB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;MACnB;MACA,IAAOoB,eAAe,GAAuBpB,mBAAmB,CAAzDoB,eAAe;QAAEC,iBAAiB,GAAIrB,mBAAmB,CAAxCqB,iBAAiB;MAEzC,OAAO,CACH,IAAAC,2CAAuB,EAACF,eAAe,CAAC,EACxC,IAAAE,2CAAuB,EAACD,iBAAiB,CAAC,CAC7C;IACL,CAAC,CAAE,CAAC;IAAAE,KAAA,OAAAC,uBAAA,EAAAL,IAAA;IAVGM,iBAAiB,GAAAF,KAAA;IAAEG,kBAAkB,GAAAH,KAAA;EAY5C,IAAMI,iBAA4E,GAAG;IACjFC,IAAI,EAAE,SAAS;IACfC,KAAK,EAAE,SAAS;IAChBC,IAAI,EAAE,cAAc;IACpBC,IAAI,EAAE,GAAG;IACTC,MAAM,KAAAC,MAAA,KAAAC,2BAAA,EACE,CAAC,IAAAC,uBAAY,EAAC,CAAC,GACb,EAAE,GACF,CACI;MACIP,IAAI,EAAE,KAAK;MACXE,IAAI,EAAE,aAAsB;MAC5BM,OAAO,EAAE,aAAa;MACtBC,MAAM,EAAE;QACJC,WAAW,EAAE,uBAAuB;QACpCC,QAAQ,EAAE,CAACxB;MACf;IACJ,CAAC,CACJ,IACP;MACIa,IAAI,EAAE,mBAAmB;MACzBE,IAAI,EAAE,+BAA+B;MACrCM,OAAO,EAAE,mBAAmB;MAC5BC,MAAM,EAAE;QACJG,gBAAgB,EAAE,IAAI;QACtBD,QAAQ,EAAE,CAACxB;MACf;IACJ,CAAC,EACD;MACIa,IAAI,EAAE,kBAAkB;MACxBE,IAAI,EAAE,+BAA+B;MACrCM,OAAO,EAAE,kBAAkB;MAC3BC,MAAM,EAAE;QACJG,gBAAgB,EAAE,IAAI;QACtBD,QAAQ,EAAE,CAACxB;MACf;IACJ,CAAC;EAET,CAAC;EAED,IAAM0B,iBAA4E,GAAG;IACjFb,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAE,WAAW;IAClBC,IAAI,EAAE,cAAc;IACpBC,IAAI,EAAE,GAAG;IACTC,MAAM,GACF;MACIJ,IAAI,EAAE,MAAM;MACZE,IAAI,EAAE,OAAO;MACbY,SAAS,EAAE,IAAI;MACfL,MAAM,EAAE;QACJM,QAAQ,eACJ,IAAAC,gBAAA,EAACC,UAAI;UAACC,SAAS,EAAE/D,KAAK,CAAC,MAAM,CAAE;UAAA4D,QAAA,GAC1BI,kBAAS,CAACC,iCAAiC,CAAC;YACzCxD,UAAU,EAAVA,UAAU;YACVI,eAAe,EAAfA;UACJ,CAAC,CAAC,eACF,IAAAqD,eAAA,EAACC,kCAAgB;YACbJ,SAAS,EAAE/D,KAAK,CAAC,QAAQ,CAAE;YAC3BoE,MAAM,EAAE,CACJ;cACItB,KAAK,EAAE,QAAQ;cACfuB,KAAK,EAAEC,eAAM,CAACC,MAAM,CAAC,OAAO,CAAC,CACzB,CAAA5D,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE6D,cAAc,CAACC,MAAM,KAAI,GACzC;YACJ,CAAC,EACD;cACI3B,KAAK,EAAE,MAAM;cACbuB,KAAK,EAAEC,eAAM,CAACC,MAAM,CAAC,QAAQ,CAAC,CAC1B,CAAA5D,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE6D,cAAc,CAACE,IAAI,KAAI,GACvC;YACJ,CAAC,EACD;cACI5B,KAAK,EAAE,cAAc;cACrBuB,KAAK,EAAEC,eAAM,CAACC,MAAM,CAACI,MAAM,EAAAxE,qBAAA,GACvB+B,aAAa,CAAC0C,SAAS,cAAAzE,qBAAA,uBAAvBA,qBAAA,CAAyB0E,YAC7B;YACJ,CAAC;UACH,CACL,CAAC;QAAA,CACA;MAEd;IACJ,CAAC,EAAA3B,MAAA,KAAAC,2BAAA,EACG,CAACpB,gBAAgB,GACf,EAAE,GACF,CACI;MACIc,IAAI,EAAE,cAAc;MACpBE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,cAAc;MACvBC,MAAM,EAAE;QACJiB,MAAM,EAAE,QAAQ;QAChBO,kBAAkB,EAAE,IAAI;QACxBC,QAAQ,EAAE;UACNrD,KAAK,EAAED;QACX;MACJ,CAAC;MACDuD,SAAS,EAAEC;IACf,CAAC,CACJ,IACP;MAACC,OAAO,EAAE;IAAW,CAAC,EACtB;MACInC,IAAI,EAAE,cAAc;MACpBF,IAAI,EAAE,iBAAiB;MACvBQ,OAAO,EAAE,iBAAiB;MAC1BC,MAAM,EAAE;QACJiB,MAAM,EAAE,QAAQ;QAChBO,kBAAkB,EAAE,IAAI;QACxBK,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIlC,IAAI,EAAE,oBAAoB;MAC1BF,IAAI,EAAE,8BAA8B;MACpCQ,OAAO,EAAE,wBAAwB;MACjCM,SAAS,EAAE,IAAI;MACfL,MAAM,EAAE;QACJ5C,IAAI,EAAEgC;MACV;IACJ,CAAC,EACD;MAACwC,OAAO,EAAE;IAAa,CAAC,EACxB;MACInC,IAAI,EAAE,cAAc;MACpBF,IAAI,EAAE,mBAAmB;MACzBQ,OAAO,EAAE,mBAAmB;MAC5BC,MAAM,EAAE;QACJiB,MAAM,EAAE,QAAQ;QAChBO,kBAAkB,EAAE,IAAI;QACxBK,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIlC,IAAI,EAAE,oBAAoB;MAC1BF,IAAI,EAAE,gCAAgC;MACtCQ,OAAO,EAAE,wBAAwB;MACjCM,SAAS,EAAE,IAAI;MACfL,MAAM,EAAE,SAAAA,OAAU8B,MAAM,EAAAC,KAAA,EAAU;QAAA,IAAPC,IAAI,GAAAD,KAAA,CAAJC,IAAI;QAC3B,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIlB,KAA8B,EAAK;UACrD,IAAMmB,qBAAqB,GAAGnB,KAAK,CAACtB,IAAI,IAAI,EAAE;UAE9C,IAAM0C,aAAa,GACf,CAAAxE,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEqB,iBAAiB,CAACkD,qBAAqB,CAAC,CACxDE,cAAc,CAACC,aAAa,KAAI,CAAC,CAAC;UAC3C,IAAMC,iBAAiB,GACnB,CAAA3E,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEqB,iBAAiB,CAACkD,qBAAqB,CAAC,CACxDE,cAAc,CAACG,UAAU,KAAI,CAAC,CAAC;UAExC,IAAMC,YAAY,GAAG,IAAAC,+CAA2B,EAC5CX,MAAM,CAACO,aAAa,EACpBF,aAAa,EACb,eACJ,CAAC;UACD,IAAMO,gBAAgB,GAAG,IAAAD,+CAA2B,EAChDX,MAAM,CAACS,UAAU,EACjBD,iBAAiB,EACjB,YACJ,CAAC;UAEDN,IAAI,CAACW,MAAM,CAAC,eAAe,MAAAC,sBAAA,MAAAA,sBAAA,MACpBC,oCAAgB,CAACC,QAAQ,CAACT,aAAa,GACvCG,YAAY,CAClB,CAAC;UACFR,IAAI,CAACW,MAAM,CAAC,YAAY,MAAAC,sBAAA,MAAAA,sBAAA,MACjBC,oCAAgB,CAACC,QAAQ,CAACP,UAAU,GACpCG,gBAAgB,CACtB,CAAC;QACN,CAAC;QAED,OAAO;UACHtF,IAAI,EAAEiC,kBAAkB;UACxB4C,YAAY,EAAZA;QACJ,CAAC;MACL;IACJ,CAAC;EAET,CAAC;EAED,IAAMc,uBAAkF,GAAG;IACvFxD,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAE,WAAW;IAClBC,IAAI,EAAE,cAAc;IACpBC,IAAI,EAAE,GAAG;IACTC,MAAM,EAAE,CACJ;MACIJ,IAAI,EAAE,cAAc;MACpBE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,cAAc;MACvBC,MAAM,EAAE;QACJiB,MAAM,EAAE,QAAQ;QAChBO,kBAAkB,EAAE,IAAI;QACxBC,QAAQ,EAAE;UACNrD,KAAK,EAAED;QACX;MACJ,CAAC;MACDuD,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,sBAAsB;MAC5BE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,sBAAsB;MAC/BC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACfQ,QAAQ,EAAE;UACNrD,KAAK,EAAEE;QACX;MACJ,CAAC;MACDoD,SAAS,EAAEC,wCAAoB;MAC/BqB,OAAO,eACH,IAAApC,eAAA;QAAAN,QAAA,EAAM;MAMN,CAAM;IAEd,CAAC;EAET,CAAC;EAED,IAAM2C,eAA0E,GAAG;IAC/E1D,IAAI,EAAE,eAAe;IACrBC,KAAK,EAAE,QAAQ;IACfC,IAAI,EAAE,cAAc;IACpBC,IAAI,EAAE,GAAG;IACTwD,mBAAmB,EAAE;MACjBC,IAAI,EAAE,0CAA0C;MAChDC,QAAQ,EAAE,SAAAA,SAACC,CAAC;QAAA,OAAK,OAAOA,CAAC,KAAK,WAAW;MAAA;IAC7C,CAAC;IACD1D,MAAM,EAAE,CACJ;MACIJ,IAAI,EAAE,cAAc;MACpBE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,QAAQ;MACjBC,MAAM,EAAE,SAAAA,OAACsD,SAAS,EAAAC,KAAA,EAAa;QAAA,IAAAC,oBAAA;QAAA,IAAVxB,IAAI,GAAAuB,KAAA,CAAJvB,IAAI;QACrB,IAAMyB,8BAA8B,IAAAD,oBAAA,GAChCF,SAAS,CAAChC,SAAS,cAAAkC,oBAAA,uBAAnBA,oBAAA,CAAqBC,8BAA8B;QAEvD,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;UAClB,IACI,CAACD,8BAA8B,IAC/B,CAACA,8BAA8B,CAAChE,IAAI,IACpC,CAAC9B,mBAAmB,EACtB;YACE;UACJ;UACA,IAAM8B,IAAI,GAAGgE,8BAA8B,CAAChE,IAAI;UAChD,IAAOT,iBAAiB,GAAIrB,mBAAmB,CAAxCqB,iBAAiB;UACxB,IAAOqD,aAAa,GAAIrD,iBAAiB,CAACS,IAAI,CAAC,CAAC2C,cAAc,CAAvDC,aAAa;UAEpBL,IAAI,CAACW,MAAM,CAAC,eAAe,MAAAC,sBAAA,MAAAA,sBAAA,MACpBC,oCAAgB,CAACC,QAAQ,CAACT,aAAa,GACvCA,aAAa,CACnB,CAAC;QACN,CAAC;QAED,IAAI,CAACoB,8BAA8B,EAAE;UACjC,OAAO;YACH3C,MAAM,EAAE,EAAE;YACV4C,OAAO,EAAPA;UACJ,CAAC;QACL;QACA,IAAOvC,MAAM,GAAIsC,8BAA8B,CAAxCtC,MAAM;QAEb,IAAMwC,IAAI,GAAGd,oCAAgB,CAACe,IAAI,CAACvB,aAAa,CAACwB,MAAM,CAAC,UAACC,GAAG,EAAEC,CAAC,EAAK;UAAA,IAAAC,qBAAA;UAChE,IAAMX,CAAC,GAAGC,SAAS,aAATA,SAAS,gBAAAU,qBAAA,GAATV,SAAS,CAAEjB,aAAa,cAAA2B,qBAAA,uBAAxBA,qBAAA,CAA2BD,CAAC,CAAC;UACvC,OAAO,OAAOV,CAAC,KAAK,QAAQ,IAAIY,KAAK,CAACZ,CAAC,CAAC,GAAGS,GAAG,GAAGA,GAAG,GAAGT,CAAC;QAC5D,CAAC,EAAE,CAAC,CAAC;QAEL,OAAO;UACHvC,MAAM,EAAE,IAAAoD,gCAAY,EAAC,OAAO,EAAE/C,MAAM,EAAEwC,IAAI,CAAC;UAC3CD,OAAO,EAAPA;QACJ,CAAC;MACL;IACJ,CAAC,EACD;MACInE,IAAI,EAAE,UAAU;MAChBE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,UAAU;MACnBC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACff,QAAQ,EAAE;MACd,CAAC;MACD8C,OAAO,EAAE,IAAAmB,eAAO,EACZ,IAAAC,eAAQ,EAAC1D,kBAAS,CAAC2D,QAAQ,CAAC,mCAAmC,CAAC,EAAE,MAAM,CAC5E;IACJ,CAAC,EACD;MACI9E,IAAI,EAAE,eAAe;MACrBE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,eAAe;MACxBC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACfY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,gBAAgB;MACtBE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,gBAAgB;MACzBC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACfY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,wBAAwB;MAC9BE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,wBAAwB;MACjCC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACfY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,0BAA0B;MAChCE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,0BAA0B;MACnCC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACfY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,sBAAsB;MAC5BE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,sBAAsB;MAC/BC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACfY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,kBAAkB;MACxBE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,kBAAkB;MAC3BC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACfY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,wBAAwB;MAC9BE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,wBAAwB;MACjCC,MAAM,EAAE;QACJiB,MAAM,EAAE,OAAO;QACfY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIlC,IAAI,EAAE,OAAO;MACbF,IAAI,EAAE,OAAO;MACbmC,SAAS,EAAE,SAAAA,UAAC2B,CAAM;QAAA,OAAMA,CAAC,GAAGA,CAAC,GAAGiB,SAAS;MAAA,CAAC;MAC1CjE,SAAS,EAAE,IAAI;MACfL,MAAM,WAAAA,OAACsD,SAAS,EAAAiB,KAAA,EAAU;QAAA,IAAPvC,IAAI,GAAAuC,KAAA,CAAJvC,IAAI;QACnB,IAAMwC,QAAQ,GAAG,IAAAC,aAAA,EAAMnB,SAAS,EAAE,qBAAqB,CAAC;QACxD,IAAMoB,SAAS,GAAGC,oBAAoB,CAACrB,SAAS,CAAC;QAEjD,IAAIoB,SAAS,IAAI,CAACF,QAAQ,EAAE;UACxBxC,IAAI,CAACW,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC;QAC5C,CAAC,MAAM,IAAI,CAAC+B,SAAS,IAAIF,QAAQ,EAAE;UAC/BxC,IAAI,CAACW,MAAM,CAAC,qBAAqB,EAAE,KAAK,CAAC;QAC7C;QAEA,OAAO;UACHrC,QAAQ,EAAE,CAACoE,SAAS,GAAG,IAAI,gBACvB,IAAA9D,eAAA,EAACgE,mBAAW;YAACC,MAAM,EAAE,OAAQ;YAACC,OAAO,eAAE,IAAAlE,eAAA;cAAAN,QAAA,EAAOoE;YAAS,CAAO;UAAE,CAAE;QAE1E,CAAC;MACL;IACJ,CAAC;EAET,CAAC;EAED,IAAMK,mBAA8E,GAAG;IACnFxF,IAAI,EAAE,YAAY;IAClBC,KAAK,EAAE,cAAc;IACrBC,IAAI,EAAE,cAAc;IACpBC,IAAI,EAAE,GAAG;IACTwD,mBAAmB,EAAE;MACjBC,IAAI,EAAE,0CAA0C;MAChDC,QAAQ,EAAE,SAAAA,SAACC,CAAC;QAAA,OAAK,OAAOA,CAAC,KAAK,WAAW;MAAA;IAC7C,CAAC;IACD1D,MAAM,EAAE,CACJ;MACIJ,IAAI,EAAE,kBAAkB;MACxBE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,MAAM;MACfC,MAAM,EAAE,SAAAA,OAACsD,SAAS,EAAA0B,KAAA,EAAa;QAAA,IAAAC,qBAAA;QAAA,IAAVjD,IAAI,GAAAgD,KAAA,CAAJhD,IAAI;QACrB,IAAMyB,8BAA8B,IAAAwB,qBAAA,GAChC3B,SAAS,CAAChC,SAAS,cAAA2D,qBAAA,uBAAnBA,qBAAA,CAAqBxB,8BAA8B;QAEvD,IACI,CAACA,8BAA8B,IAC/B,CAACA,8BAA8B,CAAChE,IAAI,IACpC,CAAC9B,mBAAmB,EACtB;UACE,OAAO;YACHmD,MAAM,EAAE,EAAE;YACV4C,OAAO,EAAE,SAAAA,QAAA,EAAM,CAAC;UACpB,CAAC;QACL;QAEA,IAAMA,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;UAClB,IAAMjE,IAAI,GAAGgE,8BAA8B,CAAChE,IAAI;UAChD,IAAI,CAACA,IAAI,EAAE;YACP;UACJ;UAEA,IAAOT,iBAAiB,GAAIrB,mBAAmB,CAAxCqB,iBAAiB;UACxB,IAAOuD,UAAU,GAAIvD,iBAAiB,CAACS,IAAI,CAAC,CAAC2C,cAAc,CAApDG,UAAU;UAEjBP,IAAI,CAACW,MAAM,CAAC,YAAY,MAAAC,sBAAA,MAAAA,sBAAA,MACjBC,oCAAgB,CAACC,QAAQ,CAACP,UAAU,GACpCA,UAAU,CAChB,CAAC;QACN,CAAC;QAED,IAAOnB,IAAI,GAAIqC,8BAA8B,CAAtCrC,IAAI;QAEX,OAAO;UACHN,MAAM,EAAE,IAAAoD,gCAAY,EAAC,QAAQ,EAAE9C,IAAI,CAAC;UACpCsC,OAAO,EAAPA;QACJ,CAAC;MACL;IACJ,CAAC,EACD;MACInE,IAAI,EAAE,yBAAyB;MAC/BE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,yBAAyB;MAClCC,MAAM,EAAE;QACJkF,OAAO,EAAE,SAAS;QAClBjE,MAAM,EAAE,QAAQ;QAChBY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,wBAAwB;MAC9BE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,wBAAwB;MACjCC,MAAM,EAAE;QACJkF,OAAO,EAAE,SAAS;QAClBjE,MAAM,EAAE,QAAQ;QAChBY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC,EACD;MACIpC,IAAI,EAAE,wBAAwB;MAC9BE,IAAI,EAAE,cAAc;MACpBM,OAAO,EAAE,wBAAwB;MACjCC,MAAM,EAAE;QACJkF,OAAO,EAAE,SAAS;QAClBjE,MAAM,EAAE,QAAQ;QAChBY,QAAQ,EAAE;MACd,CAAC;MACDH,SAAS,EAAEC;IACf,CAAC;EAET,CAAC;EAED,IAAMhC,MAAM,GAAG,CAACL,iBAAiB,CAAC;EAClC,IAAIvB,sBAAsB,EAAE;IACxB4B,MAAM,CAACwF,IAAI,CAAC/E,iBAAiB,EAAE6C,eAAe,EAAE8B,mBAAmB,CAAC;EACxE,CAAC,MAAM;IACHpF,MAAM,CAACwF,IAAI,CAACpC,uBAAuB,CAAC;EACxC;EAEA,IAAMqC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;IAClBF,QAAQ,CAAC,IAAAG,kDAA0B,EAAC,CAAC,CAAC;EAC1C,CAAC;EAED,IAAMC,QAAQ;IAAA,IAAAC,KAAA,OAAAC,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,CAAG,SAAAC,QAAO7D,IAA2C;MAAA,IAAA8D,YAAA;MAAA,OAAAH,oBAAA,CAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,IAC1DjJ,UAAU;cAAA+I,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WACJ,CAAC,CAAC;UAAA;YAGPN,YAAY,GAAG,IAAAO,uCAAmB,EAACrE,IAAI,CAAC;YAAAiE,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAE,IAAA;YAAA,OAGpCf,QAAQ,CACV,IAAAkB,iDAAyB,EAAC;cACtBpJ,UAAU,EAAVA,UAAU;cACVE,IAAI,EAAE0I;YACV,CAAC,CACL,CAAC;UAAA;YAAA,OAAAG,QAAA,CAAAG,MAAA,WACM9B,SAAS;UAAA;YAAA2B,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAM,EAAA,GAAAN,QAAA;YAAA,OAAAA,QAAA,CAAAG,MAAA,WAET;cACHI,gBAAgB,MAAAC,wBAAA,MACXC,kBAAU,eAAG,IAAA9F,eAAA,EAACgE,mBAAW;gBAAC+B,KAAK,EAAAV,QAAA,CAAAM;cAAQ,CAAE,CAAC;YAEnD,CAAC;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAW,IAAA;QAAA;MAAA,GAAAf,OAAA;IAAA,CAER;IAAA,gBAtBKL,QAAQA,CAAAqB,EAAA;MAAA,OAAApB,KAAA,CAAAqB,KAAA,OAAAC,SAAA;IAAA;EAAA,GAsBb;EAED,IAAI,IAAAC,iBAAA,EAAU5J,IAAI,CAAC,EAAE;IACjB,OAAO,IAAI;EACf;EAEA,oBACI,IAAAwD,eAAA,EAACqG,kBAAU;IACPxG,SAAS,EAAE/D,KAAK,CAAC,QAAQ,CAAE;IAC3BwK,WAAW,EAAE;MACT1H,KAAK,EAAEtC;IACX,CAAE;IACFwC,IAAI,EAAC,GAAG;IACRd,aAAa,EAAEA,aAAc;IAC7BuI,OAAO,EAAElK,aAAc;IACvBmK,KAAK,EAAE5B,QAAS;IAChBF,OAAO,EAAEA,OAAQ;IACjB3F,MAAM,EAAEA;EAAO,CAClB,CAAC;AAEV;AAEA,SAASgF,oBAAoBA,CAAC7C,MAAoC,EAAE;EAAA,IAAAuF,iBAAA;EAChE,KAAAA,iBAAA,GAAIvF,MAAM,CAACR,SAAS,cAAA+F,iBAAA,eAAhBA,iBAAA,CAAkB5D,8BAA8B,EAAE;IAAA,IAAA6D,qBAAA;IAClD,IAAMC,YAAY,GAAG,EAAAD,qBAAA,GAAAxF,MAAM,CAACR,SAAS,CAACmC,8BAA8B,cAAA6D,qBAAA,uBAA/CA,qBAAA,CAAiDnG,MAAM,KAAI,CAAC;IACjF,IAAMqG,eAAe,GACjBxL,MAAM,CAAC8F,MAAM,CAACA,MAAM,CAACO,aAAa,IAAI,CAAC,CAAC,CAAC,CAACwB,MAAM,CAAC,UAAC4D,GAAW,EAAEpE,CAAmB,EAAK;MACnF,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;QACvB,OAAOoE,GAAG;MACd;MACA,OAAOA,GAAG,GAAGpE,CAAC;IAClB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAEd,IAAImE,eAAe,GAAGD,YAAY,EAAE;MAChC,OAAO,yDAAyD;IACpE;EACJ;EAEA,OAAO,EAAE;AACb"}
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactRedux","_bemCnLite","_Info","_BundleParamsList","_Dialog","_hammer","_global","_tabletCellBundleEditor","_tablet_cell_bundles","_tabletCellBundleEditor2","_bundleEditorDialog","_UIFactory","_interopRequireWildcard","_utils","_config","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","block","cn","BundleEditorDialog","_initialValues$resour","_useSelector","useSelector","getTabletCellBundleEditorState","visibleEditor","bundleName","bundleData","data","orchidData","bundleControllerData","clusterUiConfig","getClusterUiConfig","_useSelector2","getBundleEditorData","bundleDefaultConfig","defaultConfig","bundleControllerConfig","bundle_controller_target_config","enableBundleController","enable_bundle_controller","_getResourceData","getResourceData","tabletCountUsage","usage","_getResourceData2","tabletStaticMemoryUsage","writeableByName","getTabletBundlesWriteableByName","allowTabletCount","allowEdit","isDeveloper","initialValues","getInitialFormValues","_ref","rpc_proxy_sizes","tablet_node_sizes","data_centers","createConfigurationList","_toConsumableArray","values","_ref2","_slicedToArray","rpcConfigurations","nodeConfigurations","dcConfigurations","renderGeneralTabs","name","title","type","size","fields","concat","isAbcAllowed","caption","extras","placeholder","disabled","allowRootAccount","renderResourceTab","fullWidth","children","_jsxs","Info","className","UIFactory","renderTableCellBundleEditorNotice","_jsx","BundleParamsList","params","value","hammer","format","resource_quota","memory","vcpu","Number","resources","tablet_count","withoutDetailedBar","progress","validator","simpleBundleValidate","section","hasClear","tooltip","docsUrl","makeLink","docsUrls","instanceCountValidate","_ref3","form","onRadioClick","nodeConfigurationType","defaultMemory","default_config","memory_limits","defaultThreadPool","cpu_limits","resultMemory","getBundleControllerResource","resultThreadPool","change","_objectSpread","bundleEditorDict","defaults","renderSimpleResourceTab","renderMemoryTab","visibilityCondition","when","isActive","v","allValues","_ref4","_allValues$resources","tablet_node_resource_guarantee","onReset","used","keys","reduce","sum","k","_allValues$memory_lim","isNaN","createParams","undefined","_ref5","hasError","_get","errorText","validateMemoryLimits","DialogError","header","message","renderThreadPoolTab","_ref6","_allValues$resources2","postfix","push","dispatch","useDispatch","onClose","hideTabletCellBundleEditor","onSubmit","_ref7","_asyncToGenerator","_regeneratorRuntime","mark","_callee","preparedData","wrap","_callee$","_context","prev","next","abrupt","prepareSubmitBundle","setBundleEditorController","t0","validationErrors","_defineProperty","FORM_ERROR","error","stop","_x","apply","arguments","_isEmpty","YTDFDialog","headerProps","visible","onAdd","_values$resources","_values$resources$tab","memoryLimits","currentAccLimit","acc"],"sources":["BundleEditorDialog.tsx"],"sourcesContent":["import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport {Info} from '../../../../components/Info/Info';\nimport {BundleParamsList} from './components/BundleParamsList/BundleParamsList';\nimport {\n DialogError,\n DialogField,\n DialogTabField,\n FORM_ERROR,\n FormApi,\n YTDFDialog,\n} from '../../../../components/Dialog/Dialog';\nimport hammer from '../../../../common/hammer';\n\nimport {getClusterUiConfig, isDeveloper} from '../../../../store/selectors/global';\nimport {\n hideTabletCellBundleEditor,\n setBundleEditorController,\n} from '../../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor';\nimport {\n getBundleEditorData,\n getTabletBundlesWriteableByName,\n} from '../../../../store/selectors/tablet_cell_bundles';\nimport {BundleResourceGuarantee} from '../../../../store/reducers/tablet_cell_bundles';\nimport {getTabletCellBundleEditorState} from '../../../../store/selectors/tablet_cell_bundles/tablet-cell-bundle-editor';\n\nimport {\n bundleEditorDict,\n createConfigurationList,\n createParams,\n getBundleControllerResource,\n getInitialFormValues,\n getResourceData,\n instanceCountValidate,\n prepareSubmitBundle,\n simpleBundleValidate,\n} from '../../../../utils/tablet_cell_bundles/bundles/bundle-editor-dialog';\nimport UIFactory, {isAbcAllowed} from '../../../../UIFactory';\nimport {makeLink} from '../../../../utils/utils';\nimport {docsUrl} from '../../../../config';\n\nimport './BundleEditorDialog.scss';\n\nconst block = cn('bundle-editor');\n\nexport interface BundleEditorDialogFormValues {\n general: {\n abc?: {slug: string; id?: number};\n changelog_account?: string;\n snapshot_account?: string;\n };\n resources: {\n info?: string; // system\n rpc_proxy_count?: number; // todo\n rpc_proxy_resource_guarantee?: BundleResourceGuarantee;\n tablet_node_count?: number;\n tablet_node_resource_guarantee?: BundleResourceGuarantee;\n tablet_count?: number; // old\n tablet_static_memory?: number; // pld\n };\n memory_limits: {\n error?: boolean; // system\n memory_reset: boolean; // system\n reserved?: number;\n tablet_static?: number;\n tablet_dynamic?: number;\n compressed_block_cache?: number;\n uncompressed_block_cache?: number;\n versioned_chunk_meta?: number;\n lookup_row_cache?: number;\n key_filter_block_cache?: number;\n };\n cpu_limits: {\n threadPool_reset?: boolean; //system\n lookup_thread_pool_size?: number;\n query_thread_pool_size?: number;\n write_thread_pool_size?: number;\n };\n}\n\nexport function BundleEditorDialog() {\n const {\n visibleEditor,\n bundleName,\n bundleData,\n data,\n bundleControllerData: orchidData,\n } = useSelector(getTabletCellBundleEditorState);\n\n const clusterUiConfig = useSelector(getClusterUiConfig);\n\n const {defaultConfig: bundleDefaultConfig} = useSelector(getBundleEditorData);\n\n const bundleControllerConfig = bundleData?.bundle_controller_target_config;\n const enableBundleController = bundleData?.enable_bundle_controller || false;\n\n const {usage: tabletCountUsage} = getResourceData(data, 'tablet_count');\n const {usage: tabletStaticMemoryUsage} = getResourceData(data, 'tablet_static_memory');\n\n const writeableByName = useSelector(getTabletBundlesWriteableByName);\n const allowTabletCount = writeableByName.get(bundleName ?? '');\n const allowEdit = useSelector(isDeveloper);\n\n const initialValues: Partial<BundleEditorDialogFormValues> = (() => {\n if (!enableBundleController) {\n return getInitialFormValues(data);\n }\n if (!bundleControllerConfig) {\n return {};\n }\n return getInitialFormValues(data, bundleControllerConfig);\n })();\n\n const [rpcConfigurations, nodeConfigurations, dcConfigurations] = (() => {\n if (!bundleDefaultConfig) {\n return [[], [], []];\n }\n const {rpc_proxy_sizes, tablet_node_sizes, data_centers} = bundleDefaultConfig;\n\n return [\n createConfigurationList(rpc_proxy_sizes),\n createConfigurationList(tablet_node_sizes),\n data_centers ? [...Object.values(data_centers)] : [],\n ];\n })();\n\n const renderGeneralTabs: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'general',\n title: 'General',\n type: 'tab-vertical',\n size: 's',\n fields: [\n ...(!isAbcAllowed()\n ? []\n : [\n {\n name: 'abc',\n type: 'abc-control' as const,\n caption: 'ABC Service',\n extras: {\n placeholder: 'Select ABC service...',\n disabled: !allowEdit,\n },\n },\n ]),\n {\n name: 'changelog_account',\n type: 'accounts-suggest-with-loading',\n caption: 'Changelog account',\n extras: {\n allowRootAccount: true,\n disabled: !allowEdit,\n },\n },\n {\n name: 'snapshot_account',\n type: 'accounts-suggest-with-loading',\n caption: 'Snapshot account',\n extras: {\n allowRootAccount: true,\n disabled: !allowEdit,\n },\n },\n ],\n };\n\n const renderResourceTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'resources',\n title: 'Resources',\n type: 'tab-vertical',\n size: 's',\n fields: [\n {\n name: 'info',\n type: 'block',\n fullWidth: true,\n extras: {\n children: (\n <Info className={block('info')}>\n {UIFactory.renderTableCellBundleEditorNotice({\n bundleData,\n clusterUiConfig,\n })}\n <BundleParamsList\n className={block('params')}\n params={[\n {\n title: 'Memory',\n value: hammer.format['Bytes'](\n orchidData?.resource_quota.memory || '0',\n ),\n },\n {\n title: 'vCPU',\n value: hammer.format['vCores'](\n orchidData?.resource_quota.vcpu || '0',\n ),\n },\n {\n title: 'Tablet count',\n value: hammer.format.Number(\n initialValues.resources?.tablet_count,\n ),\n },\n ]}\n />\n </Info>\n ),\n },\n },\n ...(!allowTabletCount\n ? []\n : [\n {\n name: 'tablet_count',\n type: 'bundle-input',\n caption: 'Tablet count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n progress: {\n usage: tabletCountUsage,\n },\n },\n validator: simpleBundleValidate,\n } as const,\n ]),\n {section: 'RPC proxy'},\n {\n type: 'bundle-input',\n name: 'rpc_proxy_count',\n caption: 'RPC proxy count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n hasClear: true,\n },\n tooltip: docsUrl(makeLink(UIFactory.docsUrls['dynamic-tables:cross-dc'], 'Help')),\n validator: instanceCountValidate(dcConfigurations),\n },\n {\n type: 'bundle-table-field',\n name: 'rpc_proxy_resource_guarantee',\n caption: 'Instance configuration',\n fullWidth: true,\n extras: {\n data: rpcConfigurations,\n },\n },\n {section: 'Tablet node'},\n {\n type: 'bundle-input',\n name: 'tablet_node_count',\n caption: 'Tablet node count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n hasClear: true,\n },\n tooltip: docsUrl(makeLink(UIFactory.docsUrls['dynamic-tables:cross-dc'], 'Help')),\n validator: instanceCountValidate(dcConfigurations),\n },\n {\n type: 'bundle-table-field',\n name: 'tablet_node_resource_guarantee',\n caption: 'Instance configuration',\n fullWidth: true,\n extras: function (values, {form}) {\n const onRadioClick = (value: BundleResourceGuarantee) => {\n const nodeConfigurationType = value.type || '';\n\n const defaultMemory =\n bundleDefaultConfig?.tablet_node_sizes[nodeConfigurationType]\n .default_config.memory_limits || {};\n const defaultThreadPool =\n bundleDefaultConfig?.tablet_node_sizes[nodeConfigurationType]\n .default_config.cpu_limits || {};\n\n const resultMemory = getBundleControllerResource(\n values.memory_limits,\n defaultMemory,\n 'memory_limits',\n );\n const resultThreadPool = getBundleControllerResource(\n values.cpu_limits,\n defaultThreadPool,\n 'cpu_limits',\n );\n\n form.change('memory_limits', {\n ...bundleEditorDict.defaults.memory_limits,\n ...resultMemory,\n });\n form.change('cpu_limits', {\n ...bundleEditorDict.defaults.cpu_limits,\n ...resultThreadPool,\n });\n };\n\n return {\n data: nodeConfigurations,\n onRadioClick,\n };\n },\n },\n ],\n };\n\n const renderSimpleResourceTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'resources',\n title: 'Resources',\n type: 'tab-vertical',\n size: 's',\n fields: [\n {\n name: 'tablet_count',\n type: 'bundle-input',\n caption: 'Tablet count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n progress: {\n usage: tabletCountUsage,\n },\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'tablet_static_memory',\n type: 'bundle-input',\n caption: 'Tablet static memory',\n extras: {\n format: 'Bytes',\n progress: {\n usage: tabletStaticMemoryUsage,\n },\n },\n validator: simpleBundleValidate,\n tooltip: (\n <span>\n Tablet static memory limit is based on hardware resources. Do not increase\n it unless you fully understand what you are doing. In case of emergency\n consider adding new tablet cells to the bundle, consulting with\n Components/Nodes page and increasing the limit only when new nodes are added\n to the bundle.\n </span>\n ),\n },\n ],\n };\n\n const renderMemoryTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'memory_limits',\n title: 'Memory',\n type: 'tab-vertical',\n size: 's',\n visibilityCondition: {\n when: 'resources.tablet_node_resource_guarantee',\n isActive: (v) => typeof v !== 'undefined',\n },\n fields: [\n {\n name: 'memory_reset',\n type: 'bundle-title',\n caption: 'Memory',\n extras: (allValues, {form}) => {\n const tablet_node_resource_guarantee =\n allValues.resources?.tablet_node_resource_guarantee;\n\n const onReset = () => {\n if (\n !tablet_node_resource_guarantee ||\n !tablet_node_resource_guarantee.type ||\n !bundleDefaultConfig\n ) {\n return;\n }\n const type = tablet_node_resource_guarantee.type;\n const {tablet_node_sizes} = bundleDefaultConfig;\n const {memory_limits} = tablet_node_sizes[type].default_config;\n\n form.change('memory_limits', {\n ...bundleEditorDict.defaults.memory_limits,\n ...memory_limits,\n });\n };\n\n if (!tablet_node_resource_guarantee) {\n return {\n params: [],\n onReset,\n };\n }\n const {memory} = tablet_node_resource_guarantee;\n\n const used = bundleEditorDict.keys.memory_limits.reduce((sum, k) => {\n const v = allValues?.memory_limits?.[k];\n return typeof v !== 'number' || isNaN(v) ? sum : sum + v;\n }, 0);\n\n return {\n params: createParams('Bytes', memory, used),\n onReset,\n };\n },\n },\n {\n name: 'reserved',\n type: 'bundle-input',\n caption: 'Reserved',\n extras: {\n format: 'Bytes',\n disabled: true,\n },\n tooltip: docsUrl(\n makeLink(UIFactory.docsUrls['bundle-controller:reserved-memory'], 'Help'),\n ),\n },\n {\n name: 'tablet_static',\n type: 'bundle-input',\n caption: 'Tablet static',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'tablet_dynamic',\n type: 'bundle-input',\n caption: 'Tablet dynamic',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'compressed_block_cache',\n type: 'bundle-input',\n caption: 'Compressed block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'uncompressed_block_cache',\n type: 'bundle-input',\n caption: 'Uncompressed block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'versioned_chunk_meta',\n type: 'bundle-input',\n caption: 'Versioned chunk meta',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'lookup_row_cache',\n type: 'bundle-input',\n caption: 'Lookup row cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'key_filter_block_cache',\n type: 'bundle-input',\n caption: 'Key filter block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n type: 'block',\n name: 'error',\n validator: (v: any) => (v ? v : undefined),\n fullWidth: true,\n extras(allValues, {form}) {\n const hasError = _.get(allValues, 'memory_limits.error');\n const errorText = validateMemoryLimits(allValues);\n\n if (errorText && !hasError) {\n form.change('memory_limits.error', true);\n } else if (!errorText && hasError) {\n form.change('memory_limits.error', false);\n }\n\n return {\n children: !errorText ? null : (\n <DialogError header={'Error'} message={<span>{errorText}</span>} />\n ),\n };\n },\n },\n ],\n };\n\n const renderThreadPoolTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'cpu_limits',\n title: 'Thread pools',\n type: 'tab-vertical',\n size: 's',\n visibilityCondition: {\n when: 'resources.tablet_node_resource_guarantee',\n isActive: (v) => typeof v !== 'undefined',\n },\n fields: [\n {\n name: 'threadPool_reset',\n type: 'bundle-title',\n caption: 'vCPU',\n extras: (allValues, {form}) => {\n const tablet_node_resource_guarantee =\n allValues.resources?.tablet_node_resource_guarantee;\n\n if (\n !tablet_node_resource_guarantee ||\n !tablet_node_resource_guarantee.type ||\n !bundleDefaultConfig\n ) {\n return {\n params: [],\n onReset: () => {},\n };\n }\n\n const onReset = () => {\n const type = tablet_node_resource_guarantee.type;\n if (!type) {\n return;\n }\n\n const {tablet_node_sizes} = bundleDefaultConfig;\n const {cpu_limits} = tablet_node_sizes[type].default_config;\n\n form.change('cpu_limits', {\n ...bundleEditorDict.defaults.cpu_limits,\n ...cpu_limits,\n });\n };\n\n const {vcpu} = tablet_node_resource_guarantee;\n\n return {\n params: createParams('vCores', vcpu),\n onReset,\n };\n },\n },\n {\n name: 'lookup_thread_pool_size',\n type: 'bundle-input',\n caption: 'Lookup thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'query_thread_pool_size',\n type: 'bundle-input',\n caption: 'Query thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'write_thread_pool_size',\n type: 'bundle-input',\n caption: 'Write thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n ],\n };\n\n const fields = [renderGeneralTabs];\n if (enableBundleController) {\n fields.push(renderResourceTab, renderMemoryTab, renderThreadPoolTab);\n } else {\n fields.push(renderSimpleResourceTab);\n }\n\n const dispatch = useDispatch();\n const onClose = () => {\n dispatch(hideTabletCellBundleEditor());\n };\n\n const onSubmit = async (form: FormApi<BundleEditorDialogFormValues>) => {\n if (!bundleName) {\n return {};\n }\n\n const preparedData = prepareSubmitBundle(form);\n\n try {\n await dispatch(\n setBundleEditorController({\n bundleName,\n data: preparedData,\n }),\n );\n return undefined;\n } catch (error) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n }\n };\n\n if (_.isEmpty(data)) {\n return null;\n }\n\n return (\n <YTDFDialog<BundleEditorDialogFormValues>\n className={block('dialog')}\n headerProps={{\n title: bundleName,\n }}\n size=\"l\"\n initialValues={initialValues}\n visible={visibleEditor}\n onAdd={onSubmit}\n onClose={onClose}\n fields={fields}\n />\n );\n}\n\nfunction validateMemoryLimits(values: BundleEditorDialogFormValues) {\n if (values.resources?.tablet_node_resource_guarantee) {\n const memoryLimits = values.resources.tablet_node_resource_guarantee?.memory || 0;\n const currentAccLimit =\n Object.values(values.memory_limits || {}).reduce((acc: number, v: number | boolean) => {\n if (typeof v !== 'number') {\n return acc;\n }\n return acc + v;\n }, 0) || 0;\n\n if (currentAccLimit > memoryLimits) {\n return 'The sum of the memory limits exceeds the allowed values';\n }\n }\n\n return '';\n}\n"],"mappings":"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"}
|
@@ -112,7 +112,7 @@ function fetchTabletsBundles() {
|
|
112
112
|
_rumWrapApi.ytApiV3Id.get(_rumWrapApi.YTApiId.bundleControllerZones, {
|
113
113
|
parameters: {
|
114
114
|
path: "//sys/bundle_controller/controller/zones",
|
115
|
-
attributes: ['tablet_node_sizes', 'rpc_proxy_sizes']
|
115
|
+
attributes: ['tablet_node_sizes', 'rpc_proxy_sizes', 'data_centers']
|
116
116
|
},
|
117
117
|
cancellation: cancelHelper.saveCancelToken
|
118
118
|
}).then(function (result) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_map","_interopRequireDefault","require","_reduce","_ypath","_tablets","_tabletCells","_favourites","_tablet_cell_bundles","_copyToClipboard","_utils","_global","_rumWrapApi","_windowStore","_aclApi","_cancelHelper","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","getZones","allBundles","map","Map","forEach","_ref","bundle","_toConsumableArray","keys","prepareBundleDefaultConfig","result","entries","reduce","acc","_ref2","_ref3","_slicedToArray","k","v","ypath","getValue","create","cancelHelper","CancelHelper","fetchTabletsBundles","dispatch","type","TABLETS_BUNDLES_LOAD_REQUEST","requests","command","parameters","path","attributes","removeAllRequests","ytApiV3Id","executeBatch","YTApiId","tabletCellBundles","cancellation","saveCancelToken","then","results","_results","_toArray","isBundleControllerSupported","output","rest","slice","_rest","cells","bundles","error","getBatchError","allCells","prepareTabletCells","prepareBundles","zones","fetchWritePermissions","length","TABLETS_BUNDLES_LOAD_SUCCESS","data","bundleControllerZones","bundleDefaultConfig","isCancelled","TABLETS_BUNDLES_LOAD_FAILURE","arguments","undefined","getState","user","getCurrentUserName","map_","item","makeCheckPermissionBatchSubRequestUI","concat","permission","wrapApiPromiseByToaster","tabletBundlesCheckWrite","_splitBatchResults","splitBatchResults","outputs","writableByName","reduce_","index","action","name","TABLETS_BUNDLES_PARTIAL","Promise","reject","toasterName","skipSuccessToast","errorTitle","setTabletsBundlesSortState","bundlesSort","setTabletsBundlesNameFilter","bundlesNameFilter","setTabletsBundlesAccountFilter","bundlesAccountFilter","setTabletsBundlesTagNodeFilter","bundlesTagNodeFilter","setTabletsPartial","setTabletsActiveBundle","activeBundle","bundlesTrackVisit","TABLETS_BUNDLES_ACTIVE_ACCOUNT","setTabletsFirstBundleAsActive","state","getTabletsBundlesSorted","_bundles","first","cluster","getCluster","getAppBrowserHistory","push","tabletActiveBundleLink","copyHostListToClipboard","_dispatch","filterTabletCellsByBundle","getTabletsCells","hosts","prepareHostsFromCells","copy"],"sources":["index.ts"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\n// @ts-ignore\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport {RootState} from '../../reducers';\nimport {\n TabletBundle,\n TabletsBundlesAction,\n TabletsPartialAction,\n} from '../../reducers/tablet_cell_bundles';\nimport {\n TABLETS_BUNDLES_ACTIVE_ACCOUNT,\n TABLETS_BUNDLES_LOAD_FAILURE,\n TABLETS_BUNDLES_LOAD_REQUEST,\n TABLETS_BUNDLES_LOAD_SUCCESS,\n TABLETS_BUNDLES_PARTIAL,\n} from '../../../constants/tablets';\nimport {\n prepareBundles,\n prepareTabletCells,\n tabletActiveBundleLink,\n} from '../../../utils/components/tablet-cells';\nimport {SortState} from '../../../types';\nimport {bundlesTrackVisit} from '../favourites';\nimport {\n filterTabletCellsByBundle,\n getTabletsBundlesSorted,\n getTabletsCells,\n prepareHostsFromCells,\n} from '../../selectors/tablet_cell_bundles';\n\nimport copy from 'copy-to-clipboard';\nimport {getBatchError, splitBatchResults, wrapApiPromiseByToaster} from '../../../utils/utils';\nimport {getCluster, getCurrentUserName} from '../../selectors/global';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {getAppBrowserHistory} from '../../../store/window-store';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\nimport {\n CheckPermissionResult,\n makeCheckPermissionBatchSubRequestUI,\n} from '../../../utils/acl/acl-api';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\n\nfunction getZones(allBundles: TabletBundle[]) {\n const map = new Map<string, boolean>();\n allBundles.forEach(({bundle}) => {\n if (!map.has(bundle)) {\n map.set(bundle, true);\n }\n });\n\n return [...map.keys()];\n}\n\nfunction prepareBundleDefaultConfig(result: object) {\n return Object.entries(result).reduce((acc, [k, v]) => {\n acc[k] = ypath.getValue(v, '/@');\n return acc;\n }, Object.create(null));\n}\n\ntype TabletsBundlesThunkAction = ThunkAction<any, RootState, any, TabletsBundlesAction>;\n\nconst cancelHelper = new CancelHelper();\n\nexport function fetchTabletsBundles(): TabletsBundlesThunkAction {\n return (dispatch) => {\n dispatch({type: TABLETS_BUNDLES_LOAD_REQUEST});\n const requests = [\n {\n command: 'exists' as const,\n parameters: {\n path: '//sys/bundle_controller/orchid/bundle_controller/state/bundles',\n },\n },\n {\n command: 'list' as const,\n parameters: {\n path: '//sys/tablet_cells',\n attributes: ['peers', 'id', 'tablet_cell_bundle', 'total_statistics', 'status'],\n },\n },\n {\n command: 'get' as const,\n parameters: {\n path: '//sys/tablet_cell_bundles',\n attributes: [\n 'nodes',\n 'enable_bundle_balancer',\n 'health',\n 'options',\n 'node_tag_filter',\n 'resource_limits',\n 'resource_usage',\n 'folder_id',\n 'abc',\n 'dynamic_options',\n 'bundle_controller_target_config',\n 'enable_bundle_controller',\n 'zone',\n ],\n },\n },\n ];\n\n cancelHelper.removeAllRequests();\n\n return ytApiV3Id\n .executeBatch(YTApiId.tabletCellBundles, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((results: Array<any>) => {\n const [{output: isBundleControllerSupported}, ...rest] = results;\n\n const [{output: cells}, {output: bundles}] = rest;\n\n const error = getBatchError(rest, 'Tablet cell bundles cannot be loaded');\n if (error) {\n throw error;\n }\n\n const allCells = prepareTabletCells(cells);\n const allBundles = prepareBundles(allCells, bundles);\n\n const zones = getZones(allBundles);\n\n dispatch(fetchWritePermissions(allBundles));\n\n if (!zones.length || !isBundleControllerSupported) {\n dispatch({\n type: TABLETS_BUNDLES_LOAD_SUCCESS,\n data: {\n cells: allCells,\n bundles: allBundles,\n },\n });\n return;\n }\n\n ytApiV3Id\n .get(YTApiId.bundleControllerZones, {\n parameters: {\n path: `//sys/bundle_controller/controller/zones`,\n attributes: ['tablet_node_sizes', 'rpc_proxy_sizes'],\n },\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((result: object) => {\n const bundleDefaultConfig = prepareBundleDefaultConfig(result);\n dispatch({\n type: TABLETS_BUNDLES_LOAD_SUCCESS,\n data: {\n cells: allCells,\n bundles: allBundles,\n bundleDefaultConfig,\n },\n });\n })\n .catch((e: any) => {\n if (!isCancelled(e)) {\n dispatch({type: TABLETS_BUNDLES_LOAD_FAILURE, data: e});\n }\n });\n })\n .catch((e: any) => {\n if (!isCancelled(e)) {\n dispatch({type: TABLETS_BUNDLES_LOAD_FAILURE, data: e});\n }\n });\n };\n}\n\nexport function fetchWritePermissions(\n bundles: Array<{bundle: string}> = [],\n): TabletsBundlesThunkAction {\n return (dispatch, getState) => {\n const user = getCurrentUserName(getState());\n const requests: Array<BatchSubRequest> = map_(bundles, (item) => {\n return makeCheckPermissionBatchSubRequestUI({\n path: `//sys/tablet_cell_bundles/${item.bundle}`,\n user,\n permission: 'write',\n });\n });\n return wrapApiPromiseByToaster(\n ytApiV3Id\n .executeBatch(YTApiId.tabletBundlesCheckWrite, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((data) => {\n const {error, outputs} = splitBatchResults<CheckPermissionResult>(data);\n const writableByName = reduce_(\n outputs,\n (acc, item, index) => {\n if (item?.action === 'allow') {\n const name = bundles[index].bundle;\n acc.set(name, true);\n }\n return acc;\n },\n new Map<string, boolean>(),\n );\n\n dispatch({type: TABLETS_BUNDLES_PARTIAL, data: {writableByName}});\n\n return error ? Promise.reject(error) : undefined;\n }),\n {\n toasterName: 'bundleWritePermissions',\n skipSuccessToast: true,\n errorTitle: 'Fetch write permissions',\n },\n );\n };\n}\n\nexport function setTabletsBundlesSortState(\n bundlesSort: SortState<keyof TabletBundle>,\n): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesSort}};\n}\n\nexport function setTabletsBundlesNameFilter(bundlesNameFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesNameFilter}};\n}\n\nexport function setTabletsBundlesAccountFilter(bundlesAccountFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesAccountFilter}};\n}\n\nexport function setTabletsBundlesTagNodeFilter(bundlesTagNodeFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesTagNodeFilter}};\n}\n\nexport function setTabletsPartial(data: TabletsPartialAction['data']) {\n return {type: TABLETS_BUNDLES_PARTIAL, data};\n}\n\nexport function setTabletsActiveBundle(activeBundle: string): TabletsBundlesThunkAction {\n return (dispatch) => {\n dispatch(bundlesTrackVisit(activeBundle));\n dispatch({\n type: TABLETS_BUNDLES_ACTIVE_ACCOUNT,\n data: {activeBundle},\n });\n };\n}\n\nexport function setTabletsFirstBundleAsActive(): TabletsBundlesThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const bundles = getTabletsBundlesSorted(state);\n const [first] = bundles;\n if (!first) {\n return;\n }\n\n const cluster = getCluster(state);\n dispatch(setTabletsActiveBundle(first.bundle));\n getAppBrowserHistory().push(tabletActiveBundleLink(cluster, first.bundle));\n };\n}\n\nexport function copyHostListToClipboard(bundle: string): TabletsBundlesThunkAction {\n return (_dispatch, getState) => {\n const cells = filterTabletCellsByBundle(bundle, getTabletsCells(getState()));\n const hosts = prepareHostsFromCells(cells);\n copy(hosts || '');\n };\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_map","_interopRequireDefault","require","_reduce","_ypath","_tablets","_tabletCells","_favourites","_tablet_cell_bundles","_copyToClipboard","_utils","_global","_rumWrapApi","_windowStore","_aclApi","_cancelHelper","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","getZones","allBundles","map","Map","forEach","_ref","bundle","_toConsumableArray","keys","prepareBundleDefaultConfig","result","entries","reduce","acc","_ref2","_ref3","_slicedToArray","k","v","ypath","getValue","create","cancelHelper","CancelHelper","fetchTabletsBundles","dispatch","type","TABLETS_BUNDLES_LOAD_REQUEST","requests","command","parameters","path","attributes","removeAllRequests","ytApiV3Id","executeBatch","YTApiId","tabletCellBundles","cancellation","saveCancelToken","then","results","_results","_toArray","isBundleControllerSupported","output","rest","slice","_rest","cells","bundles","error","getBatchError","allCells","prepareTabletCells","prepareBundles","zones","fetchWritePermissions","length","TABLETS_BUNDLES_LOAD_SUCCESS","data","bundleControllerZones","bundleDefaultConfig","isCancelled","TABLETS_BUNDLES_LOAD_FAILURE","arguments","undefined","getState","user","getCurrentUserName","map_","item","makeCheckPermissionBatchSubRequestUI","concat","permission","wrapApiPromiseByToaster","tabletBundlesCheckWrite","_splitBatchResults","splitBatchResults","outputs","writableByName","reduce_","index","action","name","TABLETS_BUNDLES_PARTIAL","Promise","reject","toasterName","skipSuccessToast","errorTitle","setTabletsBundlesSortState","bundlesSort","setTabletsBundlesNameFilter","bundlesNameFilter","setTabletsBundlesAccountFilter","bundlesAccountFilter","setTabletsBundlesTagNodeFilter","bundlesTagNodeFilter","setTabletsPartial","setTabletsActiveBundle","activeBundle","bundlesTrackVisit","TABLETS_BUNDLES_ACTIVE_ACCOUNT","setTabletsFirstBundleAsActive","state","getTabletsBundlesSorted","_bundles","first","cluster","getCluster","getAppBrowserHistory","push","tabletActiveBundleLink","copyHostListToClipboard","_dispatch","filterTabletCellsByBundle","getTabletsCells","hosts","prepareHostsFromCells","copy"],"sources":["index.ts"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\n// @ts-ignore\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport {RootState} from '../../reducers';\nimport {\n TabletBundle,\n TabletsBundlesAction,\n TabletsPartialAction,\n} from '../../reducers/tablet_cell_bundles';\nimport {\n TABLETS_BUNDLES_ACTIVE_ACCOUNT,\n TABLETS_BUNDLES_LOAD_FAILURE,\n TABLETS_BUNDLES_LOAD_REQUEST,\n TABLETS_BUNDLES_LOAD_SUCCESS,\n TABLETS_BUNDLES_PARTIAL,\n} from '../../../constants/tablets';\nimport {\n prepareBundles,\n prepareTabletCells,\n tabletActiveBundleLink,\n} from '../../../utils/components/tablet-cells';\nimport {SortState} from '../../../types';\nimport {bundlesTrackVisit} from '../favourites';\nimport {\n filterTabletCellsByBundle,\n getTabletsBundlesSorted,\n getTabletsCells,\n prepareHostsFromCells,\n} from '../../selectors/tablet_cell_bundles';\n\nimport copy from 'copy-to-clipboard';\nimport {getBatchError, splitBatchResults, wrapApiPromiseByToaster} from '../../../utils/utils';\nimport {getCluster, getCurrentUserName} from '../../selectors/global';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {getAppBrowserHistory} from '../../../store/window-store';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\nimport {\n CheckPermissionResult,\n makeCheckPermissionBatchSubRequestUI,\n} from '../../../utils/acl/acl-api';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\n\nfunction getZones(allBundles: TabletBundle[]) {\n const map = new Map<string, boolean>();\n allBundles.forEach(({bundle}) => {\n if (!map.has(bundle)) {\n map.set(bundle, true);\n }\n });\n\n return [...map.keys()];\n}\n\nfunction prepareBundleDefaultConfig(result: object) {\n return Object.entries(result).reduce((acc, [k, v]) => {\n acc[k] = ypath.getValue(v, '/@');\n return acc;\n }, Object.create(null));\n}\n\ntype TabletsBundlesThunkAction = ThunkAction<any, RootState, any, TabletsBundlesAction>;\n\nconst cancelHelper = new CancelHelper();\n\nexport function fetchTabletsBundles(): TabletsBundlesThunkAction {\n return (dispatch) => {\n dispatch({type: TABLETS_BUNDLES_LOAD_REQUEST});\n const requests = [\n {\n command: 'exists' as const,\n parameters: {\n path: '//sys/bundle_controller/orchid/bundle_controller/state/bundles',\n },\n },\n {\n command: 'list' as const,\n parameters: {\n path: '//sys/tablet_cells',\n attributes: ['peers', 'id', 'tablet_cell_bundle', 'total_statistics', 'status'],\n },\n },\n {\n command: 'get' as const,\n parameters: {\n path: '//sys/tablet_cell_bundles',\n attributes: [\n 'nodes',\n 'enable_bundle_balancer',\n 'health',\n 'options',\n 'node_tag_filter',\n 'resource_limits',\n 'resource_usage',\n 'folder_id',\n 'abc',\n 'dynamic_options',\n 'bundle_controller_target_config',\n 'enable_bundle_controller',\n 'zone',\n ],\n },\n },\n ];\n\n cancelHelper.removeAllRequests();\n\n return ytApiV3Id\n .executeBatch(YTApiId.tabletCellBundles, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((results: Array<any>) => {\n const [{output: isBundleControllerSupported}, ...rest] = results;\n\n const [{output: cells}, {output: bundles}] = rest;\n\n const error = getBatchError(rest, 'Tablet cell bundles cannot be loaded');\n if (error) {\n throw error;\n }\n\n const allCells = prepareTabletCells(cells);\n const allBundles = prepareBundles(allCells, bundles);\n\n const zones = getZones(allBundles);\n\n dispatch(fetchWritePermissions(allBundles));\n\n if (!zones.length || !isBundleControllerSupported) {\n dispatch({\n type: TABLETS_BUNDLES_LOAD_SUCCESS,\n data: {\n cells: allCells,\n bundles: allBundles,\n },\n });\n return;\n }\n\n ytApiV3Id\n .get(YTApiId.bundleControllerZones, {\n parameters: {\n path: `//sys/bundle_controller/controller/zones`,\n attributes: ['tablet_node_sizes', 'rpc_proxy_sizes', 'data_centers'],\n },\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((result: object) => {\n const bundleDefaultConfig = prepareBundleDefaultConfig(result);\n dispatch({\n type: TABLETS_BUNDLES_LOAD_SUCCESS,\n data: {\n cells: allCells,\n bundles: allBundles,\n bundleDefaultConfig,\n },\n });\n })\n .catch((e: any) => {\n if (!isCancelled(e)) {\n dispatch({type: TABLETS_BUNDLES_LOAD_FAILURE, data: e});\n }\n });\n })\n .catch((e: any) => {\n if (!isCancelled(e)) {\n dispatch({type: TABLETS_BUNDLES_LOAD_FAILURE, data: e});\n }\n });\n };\n}\n\nexport function fetchWritePermissions(\n bundles: Array<{bundle: string}> = [],\n): TabletsBundlesThunkAction {\n return (dispatch, getState) => {\n const user = getCurrentUserName(getState());\n const requests: Array<BatchSubRequest> = map_(bundles, (item) => {\n return makeCheckPermissionBatchSubRequestUI({\n path: `//sys/tablet_cell_bundles/${item.bundle}`,\n user,\n permission: 'write',\n });\n });\n return wrapApiPromiseByToaster(\n ytApiV3Id\n .executeBatch(YTApiId.tabletBundlesCheckWrite, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((data) => {\n const {error, outputs} = splitBatchResults<CheckPermissionResult>(data);\n const writableByName = reduce_(\n outputs,\n (acc, item, index) => {\n if (item?.action === 'allow') {\n const name = bundles[index].bundle;\n acc.set(name, true);\n }\n return acc;\n },\n new Map<string, boolean>(),\n );\n\n dispatch({type: TABLETS_BUNDLES_PARTIAL, data: {writableByName}});\n\n return error ? Promise.reject(error) : undefined;\n }),\n {\n toasterName: 'bundleWritePermissions',\n skipSuccessToast: true,\n errorTitle: 'Fetch write permissions',\n },\n );\n };\n}\n\nexport function setTabletsBundlesSortState(\n bundlesSort: SortState<keyof TabletBundle>,\n): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesSort}};\n}\n\nexport function setTabletsBundlesNameFilter(bundlesNameFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesNameFilter}};\n}\n\nexport function setTabletsBundlesAccountFilter(bundlesAccountFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesAccountFilter}};\n}\n\nexport function setTabletsBundlesTagNodeFilter(bundlesTagNodeFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesTagNodeFilter}};\n}\n\nexport function setTabletsPartial(data: TabletsPartialAction['data']) {\n return {type: TABLETS_BUNDLES_PARTIAL, data};\n}\n\nexport function setTabletsActiveBundle(activeBundle: string): TabletsBundlesThunkAction {\n return (dispatch) => {\n dispatch(bundlesTrackVisit(activeBundle));\n dispatch({\n type: TABLETS_BUNDLES_ACTIVE_ACCOUNT,\n data: {activeBundle},\n });\n };\n}\n\nexport function setTabletsFirstBundleAsActive(): TabletsBundlesThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const bundles = getTabletsBundlesSorted(state);\n const [first] = bundles;\n if (!first) {\n return;\n }\n\n const cluster = getCluster(state);\n dispatch(setTabletsActiveBundle(first.bundle));\n getAppBrowserHistory().push(tabletActiveBundleLink(cluster, first.bundle));\n };\n}\n\nexport function copyHostListToClipboard(bundle: string): TabletsBundlesThunkAction {\n return (_dispatch, getState) => {\n const cells = filterTabletCellsByBundle(bundle, getTabletsCells(getState()));\n const hosts = prepareHostsFromCells(cells);\n copy(hosts || '');\n };\n}\n"],"mappings":"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"}
|
@@ -68,6 +68,11 @@ export interface CPULimits {
|
|
68
68
|
lookup_thread_pool_size?: number;
|
69
69
|
query_thread_pool_size?: number;
|
70
70
|
}
|
71
|
+
export interface BundleDataCenter {
|
72
|
+
rpc_proxy_nanny_service: string;
|
73
|
+
tablet_node_nanny_service: string;
|
74
|
+
yp_cluster: string;
|
75
|
+
}
|
71
76
|
export interface BundleDefaultConfigData {
|
72
77
|
tablet_node_sizes: {
|
73
78
|
[size: string]: {
|
@@ -85,6 +90,9 @@ export interface BundleDefaultConfigData {
|
|
85
90
|
resource_guarantee: BundleResourceGuarantee;
|
86
91
|
};
|
87
92
|
};
|
93
|
+
data_centers?: {
|
94
|
+
[name: string]: BundleDataCenter;
|
95
|
+
};
|
88
96
|
}
|
89
97
|
export interface BundleDefaultConfig {
|
90
98
|
[zoneName: string]: BundleDefaultConfigData;
|