@ytsaurus/ui 1.14.3 → 1.15.0
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/@types/core.d.ts +3 -2
- package/build/cjs/server/configs/local.js +1 -0
- package/build/cjs/server/configs/local.js.map +1 -1
- package/build/cjs/shared/ui-settings.d.ts +1 -0
- package/build/cjs/shared/ui-settings.js.map +1 -1
- package/build/cjs/ui/UIFactory.d.ts +4 -1
- package/build/cjs/ui/UIFactory.js +9 -2
- package/build/cjs/ui/UIFactory.js.map +1 -1
- package/build/cjs/ui/components/Support/Support.js +6 -4
- package/build/cjs/ui/components/Support/Support.js.map +1 -1
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +50 -5
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/cjs/ui/containers/SupportComponent/SupportComponent.d.ts +5 -0
- package/build/cjs/ui/containers/SupportComponent/SupportComponent.js +24 -0
- package/build/cjs/ui/containers/SupportComponent/SupportComponent.js.map +1 -0
- package/build/cjs/ui/pages/operations/OperationDetail/tabs/details/Details/Details.css +6 -1
- package/build/cjs/ui/pages/operations/OperationDetail/tabs/details/Details/Details.css.map +1 -1
- package/build/cjs/ui/store/actions/scheduling/expanded-pools.js +1 -1
- package/build/cjs/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
- package/build/cjs/ui/utils/scheduling/pool-child.js +1 -1
- package/build/cjs/ui/utils/scheduling/pool-child.js.map +1 -1
- package/build/esm/@types/core.d.ts +3 -2
- package/build/esm/server/configs/local.js +2 -1
- package/build/esm/server/configs/local.js.map +1 -1
- package/build/esm/shared/ui-settings.d.ts +1 -0
- package/build/esm/shared/ui-settings.js.map +1 -1
- package/build/esm/ui/UIFactory.d.ts +4 -1
- package/build/esm/ui/UIFactory.js +9 -2
- package/build/esm/ui/UIFactory.js.map +1 -1
- package/build/esm/ui/components/Support/Support.js +6 -4
- package/build/esm/ui/components/Support/Support.js.map +1 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +50 -5
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/esm/ui/containers/SupportComponent/SupportComponent.d.ts +5 -0
- package/build/esm/ui/containers/SupportComponent/SupportComponent.js +18 -0
- package/build/esm/ui/containers/SupportComponent/SupportComponent.js.map +1 -0
- package/build/esm/ui/pages/operations/OperationDetail/tabs/details/Details/Details.css +6 -1
- package/build/esm/ui/pages/operations/OperationDetail/tabs/details/Details/Details.css.map +1 -1
- package/build/esm/ui/pages/operations/OperationDetail/tabs/details/Details/Details.scss +6 -1
- package/build/esm/ui/store/actions/scheduling/expanded-pools.js +1 -1
- package/build/esm/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
- package/build/esm/ui/utils/scheduling/pool-child.js +1 -1
- package/build/esm/ui/utils/scheduling/pool-child.js.map +1 -1
- package/dist/public/build/assets-manifest.json +16 -16
- package/dist/public/build/css/{89.3546950a.chunk.css → 861.c5a67589.chunk.css} +1 -1
- package/dist/public/build/css/861.c5a67589.chunk.css.map +1 -0
- package/dist/public/build/css/{main.e919e247.css → main.675cb8c4.css} +2 -2
- package/dist/public/build/css/main.675cb8c4.css.map +1 -0
- package/dist/public/build/js/861.9703a31c.chunk.js +2 -0
- package/dist/public/build/js/861.9703a31c.chunk.js.map +1 -0
- package/dist/public/build/js/{943.f6342dd5.chunk.js → 943.40ff6440.chunk.js} +2 -2
- package/dist/public/build/js/{943.f6342dd5.chunk.js.map → 943.40ff6440.chunk.js.map} +1 -1
- package/dist/public/build/js/main.fb68ce2c.js +3 -0
- package/dist/public/build/js/{main.b8adf234.js.map → main.fb68ce2c.js.map} +1 -1
- package/dist/public/build/js/runtime.ac9a4336.js +2 -0
- package/dist/public/build/js/{runtime.fd8cf219.js.map → runtime.ac9a4336.js.map} +1 -1
- package/dist/public/build/manifest.json +12 -12
- package/dist/server/configs/local.js +1 -0
- package/dist/shared/ui-settings.d.ts +1 -0
- package/package.json +2 -2
- package/dist/public/build/css/89.3546950a.chunk.css.map +0 -1
- package/dist/public/build/css/main.e919e247.css.map +0 -1
- package/dist/public/build/js/89.07445d46.chunk.js +0 -2
- package/dist/public/build/js/89.07445d46.chunk.js.map +0 -1
- package/dist/public/build/js/main.b8adf234.js +0 -3
- package/dist/public/build/js/runtime.fd8cf219.js +0 -2
- /package/dist/public/build/js/{main.b8adf234.js.LICENSE.txt → main.fb68ce2c.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_uikit","require","_rumWrapApi","_utils","_batch","_scheduling","_scheduling2","_expandedPools","_empty","_schedulingPools","_support","_cancelHelper","_interopRequireWildcard","_scheduling3","_uiError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_interopRequireDefault","obj","cancelHelper","CancelHelper","POOL_FIELDS_TO_LOAD","POOL_TREE_GET_ATTRS","EmptyFullPath","_Error","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","_wrapNativeSuper","Error","loadExpandedPools","tree","dispatch","getState","pool","getPool","undefined","ROOT_POOL_NAME","loadExpandedOperationsAndPools","ytApiV3Id","executeBatch","YTApiId","schedulingPoolFullPath","requests","command","parameters","path","concat","fields","then","_ref","_ref2","_slicedToArray","output","_ref3","full_path","is_ephemeral","addFullPathToExpandedPoolsNoLoad","type","CHANGE_POOL","data","Toaster","add","name","title","_getSchedulingOperati","state","loadAll","getExpandedPoolsLoadAll","expandedPools","Map","getSchedulingOperationsExpandedPools","expandedPoolNames","_toConsumableArray","keys","operationsExpandedPools","operationsRequests","push","makeGet","prefix","forEach","item","loadAllPools","isSupportedSchedulingChildrenByPool","poolsRequests","poolsChildrenRequests","poolsCypressDataRequests","poolsExpandedPools","indexOf","attributes","_expandedPools$get","_ref4","parentPoolPath","isEphemeral","cypressDataPath","makeList","removeAllRequests","SCHEDULING_EXPANDED_POOLS_REQUEST","Promise","all","length","schedulingLoadOperationsPerPool","cancellation","saveCancelToken","resolve","schedulingLoadPoolsAll","schedulingLoadPoolsPerPool","schedulingLoadChildrenPerPool","schedulingLoadCypressDataPerPool","_ref5","_error$inner_errors","_ref6","operationsResults","poolsResults","poolsChildrenResults","poolsCypressData","error","UIBatchError","_splitBatchResults","splitBatchResults","operations","results","rawOperations","_reduce","acc","assign","rawPools","cypressData","_splitBatchResults2","pools","_ref7","_ref8","_ref8$","value","_splitBatchResults3","_splitBatchResults3$r","flattenAttributes","_splitBatchResults4","_pools","resultIndices","poolInfo","index","_splitBatchResults5","poolChildren","children","_splitBatchResults6","cypressDataChildrenPerPool","poolChildrenCypressData","$value","SCHEDULING_EXPANDED_POOLS_SUCCESS","expandedPoolsTree","EMPTY_OBJECT","flattenCypressData","inner_errors","isCancelled","SCHEDULING_EXPANDED_POOLS_FAILURE","setExpandedPool","poolName","expanded","getTree","poolsByName","getSchedulingPoolsMapByName","treeExpandedPools","expandedPoolInfo","calcExpandedPoolInfo","updateExpandedPoolNoLoad","fullPath","oldExpandedPools","parts","split","slice","join","_objectSpread","_defineProperty","SCHEDULING_EXPANDED_POOLS_PARTITION","resetExpandedPools","_getSchedulingOperati2","old","rest","_objectWithoutProperties","map","_toPropertyKey","size","getSchedulingOperationsCount","_dispatch","root","operationCount","getPoolPathsByName","getPools","calculatePoolPath","orchidPath","setLoadAllOperations","_data","res","_data2","parent"],"sources":["expanded-pools.tsx"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../reducers';\nimport _ from 'lodash';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\nimport {\n ExpandedPoolInfo,\n ExpandedPoolsAction,\n PoolCypressData,\n} from '../../reducers/scheduling/expanded-pools';\n\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {splitBatchResults} from '../../../utils/utils';\nimport {makeGet, makeList} from '../../../utils/batch';\nimport {\n CHANGE_POOL,\n ROOT_POOL_NAME,\n SCHEDULING_EXPANDED_POOLS_FAILURE,\n SCHEDULING_EXPANDED_POOLS_PARTITION,\n SCHEDULING_EXPANDED_POOLS_REQUEST,\n SCHEDULING_EXPANDED_POOLS_SUCCESS,\n} from '../../../constants/scheduling';\nimport {calculatePoolPath, getPool, getPools, getTree} from '../../selectors/scheduling/scheduling';\nimport {\n getExpandedPoolsLoadAll,\n getSchedulingOperationsExpandedPools,\n} from '../../selectors/scheduling/expanded-pools';\nimport {EMPTY_OBJECT} from '../../../constants/empty';\nimport {PoolInfo, getSchedulingPoolsMapByName} from '../../selectors/scheduling/scheduling-pools';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\nimport {SchedulingAction} from '../../../store/reducers/scheduling/scheduling';\nimport {isSupportedSchedulingChildrenByPool} from '../../../store/selectors/thor/support';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {flattenAttributes} from '../../../utils/scheduling/scheduling';\nimport {UIBatchError} from '../../../utils/errors/ui-error';\n\ntype ExpandedPoolsThunkAction = ThunkAction<\n any,\n RootState,\n any,\n ExpandedPoolsAction | SchedulingAction\n>;\n\nconst cancelHelper = new CancelHelper();\n\nconst POOL_FIELDS_TO_LOAD = [\n 'accumulated_resource_ratio_volume',\n 'accumulated_resource_volume',\n 'demand_ratio',\n 'detailed_fair_share',\n 'dominant_resource',\n 'estimated_burst_usage_duration_sec',\n 'fair_share_ratio',\n 'fifo_index',\n 'integral_guarantee_type',\n 'is_ephemeral',\n 'max_operation_count',\n 'max_running_operation_count',\n 'max_share_ratio',\n 'min_share_ratio',\n 'mode',\n 'operation_count',\n 'parent',\n 'pool_operation_count',\n 'child_pool_count',\n 'resource_demand',\n 'resource_limits',\n 'resource_usage',\n 'promised_fair_share_resources',\n 'running_operation_count',\n 'specified_burst_guarantee_resources',\n 'specified_resource_flow',\n 'starvation_status',\n 'starving',\n 'strong_guarantee_resources',\n 'usage_ratio',\n 'weight',\n 'abc',\n];\n\nconst POOL_TREE_GET_ATTRS = [\n 'integral_guarantees',\n 'weight',\n 'max_operation_count',\n 'max_running_operation_count',\n 'strong_guarantee_resources',\n 'resource_limits',\n 'forbid_immediate_operations',\n 'create_ephemeral_subpools',\n 'fifo_sort_parameters',\n 'config',\n 'folder_id',\n];\n\nclass EmptyFullPath extends Error {}\n\nexport function loadExpandedPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const pool = getPool(getState());\n\n if (!tree) {\n return undefined;\n }\n\n if (pool === ROOT_POOL_NAME) {\n return dispatch(loadExpandedOperationsAndPools(tree));\n } else {\n return ytApiV3Id\n .executeBatch<{full_path: string; is_ephemeral?: boolean}>(\n YTApiId.schedulingPoolFullPath,\n {\n requests: [\n {\n command: 'get' as const,\n parameters: {\n path: `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}`,\n fields: ['is_ephemeral', 'full_path'],\n },\n },\n ],\n },\n )\n .then(([{output}]) => {\n const {full_path, is_ephemeral} = output ?? {};\n if (!full_path) {\n throw new EmptyFullPath();\n } else {\n dispatch(addFullPathToExpandedPoolsNoLoad(tree, full_path, is_ephemeral));\n dispatch(loadExpandedOperationsAndPools(tree));\n }\n })\n .catch((e) => {\n if (e instanceof EmptyFullPath) {\n dispatch({type: CHANGE_POOL, data: {pool: ROOT_POOL_NAME}});\n /**\n * We don't need to call `dispatch(loadExpandedOperationsAndPools(tree))` after `CHANGE_POOL`.\n * The call will be triggered by SchedulingExpandedPoolsUpdater.\n */\n // dispatch(loadExpandedOperationsAndPools(tree));\n } else {\n new Toaster().add({\n name: 'schedulingPoolFullPath',\n type: 'error',\n title: '',\n });\n }\n });\n }\n };\n}\n\nfunction loadExpandedOperationsAndPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n\n const loadAll = getExpandedPoolsLoadAll(state);\n const expandedPools: Map<string, ExpandedPoolInfo> = loadAll\n ? new Map()\n : getSchedulingOperationsExpandedPools(state)[tree] ?? new Map();\n const expandedPoolNames: Array<string> = [...expandedPools.keys()];\n\n const operationsExpandedPools: Array<string> = [...expandedPoolNames];\n\n const operationsRequests: Array<BatchSubRequest> = [];\n if (loadAll) {\n operationsRequests.push(\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/fair_share_info/operations`,\n ),\n );\n } else {\n const prefix = `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/operations_by_pool`;\n operationsExpandedPools.forEach((item) => {\n operationsRequests.push(makeGet(`${prefix}/${item}`));\n });\n }\n\n const loadAllPools = loadAll || !isSupportedSchedulingChildrenByPool(state);\n const poolsRequests: Array<BatchSubRequest> = [];\n const poolsChildrenRequests: Array<BatchSubRequest> = [];\n const poolsCypressDataRequests: Array<BatchSubRequest> = [];\n\n const poolsExpandedPools: Array<string> =\n -1 !== expandedPoolNames.indexOf(ROOT_POOL_NAME)\n ? expandedPoolNames\n : [ROOT_POOL_NAME, ...expandedPoolNames];\n\n if (loadAllPools) {\n poolsRequests.push(\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools`, {\n fields: POOL_FIELDS_TO_LOAD,\n }),\n );\n poolsCypressDataRequests.push(\n makeGet(`//sys/pool_trees/${tree}`, {attributes: POOL_TREE_GET_ATTRS}),\n );\n } else {\n poolsExpandedPools.forEach((pool) => {\n poolsRequests.push(\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}`, {\n fields: POOL_FIELDS_TO_LOAD,\n }),\n );\n poolsChildrenRequests.push(\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/child_pools_by_pool/${pool}`,\n {\n fields: POOL_FIELDS_TO_LOAD,\n },\n ),\n );\n const {parentPoolPath, isEphemeral} = expandedPools.get(pool) ?? {};\n const cypressDataPath = parentPoolPath\n ? `//sys/pool_trees/${tree}/${parentPoolPath}/${pool}`\n : `//sys/pool_trees/${tree}/${pool}`;\n if (pool === ROOT_POOL_NAME || !isEphemeral) {\n poolsCypressDataRequests.push(\n makeList(\n pool === ROOT_POOL_NAME ? `//sys/pool_trees/${tree}` : cypressDataPath,\n {\n attributes: POOL_TREE_GET_ATTRS,\n },\n ),\n );\n }\n });\n }\n\n cancelHelper.removeAllRequests();\n\n dispatch({type: SCHEDULING_EXPANDED_POOLS_REQUEST});\n return Promise.all([\n operationsRequests.length\n ? ytApiV3Id.executeBatch(YTApiId.schedulingLoadOperationsPerPool, {\n parameters: {requests: operationsRequests},\n cancellation: cancelHelper.saveCancelToken,\n })\n : Promise.resolve([]),\n loadAllPools\n ? ytApiV3Id.executeBatch(YTApiId.schedulingLoadPoolsAll, {\n parameters: {requests: poolsRequests},\n cancellation: cancelHelper.saveCancelToken,\n })\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadPoolsPerPool, {\n parameters: {requests: poolsRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n loadAllPools\n ? Promise.resolve([])\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadChildrenPerPool, {\n parameters: {requests: poolsChildrenRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n !poolsCypressDataRequests.length\n ? Promise.resolve([])\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadCypressDataPerPool, {\n parameters: {requests: poolsCypressDataRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n ])\n .then(([operationsResults, poolsResults, poolsChildrenResults, poolsCypressData]) => {\n const error = new UIBatchError('Failed to load expanded pools');\n const {results: operations} = splitBatchResults(operationsResults, error);\n const rawOperations = _.reduce(\n operations,\n (acc, data) => {\n return Object.assign(acc, data);\n },\n {},\n );\n\n const rawPools: Record<string, PoolInfo> = {};\n const cypressData: Record<string, PoolCypressData> = {};\n\n if (loadAllPools) {\n const {results: pools} = splitBatchResults<Record<string, PoolInfo>>(\n poolsResults,\n error,\n );\n const [value = {}] = pools ?? [];\n Object.assign(rawPools, value);\n\n const {\n results: [data],\n } = splitBatchResults(poolsCypressData, error);\n Object.assign(cypressData, flattenAttributes(data));\n } else {\n const {results: pools, resultIndices} = splitBatchResults<PoolInfo>(\n poolsResults,\n error,\n );\n pools.forEach((poolInfo, index) => {\n const name = poolsExpandedPools[resultIndices[index]];\n rawPools[name] = poolInfo;\n });\n\n const {results: poolChildren} = splitBatchResults<Record<string, PoolInfo>>(\n poolsChildrenResults,\n error,\n );\n poolChildren.forEach((children) => {\n Object.assign(rawPools, children);\n });\n\n const {results: cypressDataChildrenPerPool} = splitBatchResults<\n Array<PoolCypressData>\n >(poolsCypressData, error);\n cypressDataChildrenPerPool.forEach((poolChildrenCypressData) => {\n poolChildrenCypressData.forEach((item) => {\n cypressData[item.$value] = item;\n });\n });\n }\n\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_SUCCESS,\n data: {\n expandedPoolsTree: tree,\n rawOperations: Object.keys(rawOperations).length\n ? rawOperations\n : EMPTY_OBJECT,\n rawPools: Object.keys(rawPools).length ? rawPools : EMPTY_OBJECT,\n flattenCypressData: Object.keys(cypressData).length\n ? cypressData\n : EMPTY_OBJECT,\n },\n });\n\n if (error.inner_errors?.length) {\n throw error;\n }\n })\n .catch((error) => {\n if (!isCancelled(error)) {\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function setExpandedPool(poolName: string, expanded: boolean): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const tree = getTree(getState());\n const expandedPools = getSchedulingOperationsExpandedPools(state);\n\n const poolsByName = getSchedulingPoolsMapByName(state);\n\n const treeExpandedPools = new Map(expandedPools[tree]);\n if (expanded) {\n const expandedPoolInfo = calcExpandedPoolInfo(poolName, poolsByName);\n treeExpandedPools.set(poolName, expandedPoolInfo);\n } else {\n treeExpandedPools.delete(poolName);\n }\n\n dispatch(updateExpandedPoolNoLoad(tree, treeExpandedPools));\n dispatch(loadExpandedPools(tree));\n };\n}\n\nfunction addFullPathToExpandedPoolsNoLoad(\n tree: string,\n /**\n * elements of the array should have the same format as `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}/full_path`\n */\n fullPath: string,\n isEphemeral?: boolean,\n): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const oldExpandedPools = getSchedulingOperationsExpandedPools(state);\n const treeExpandedPools = new Map(oldExpandedPools[tree]);\n\n /**\n * `fullPath` value starts from `/`, example: `/mypool/child/subchild`\n * so we have to use `.slice(1)` to remove first empty string\n */\n const parts = fullPath.split('/').slice(1);\n\n for (let i = 0; i < parts.length; ++i) {\n const poolName = parts[i];\n const parentPoolPath = parts.slice(0, i).join('/');\n treeExpandedPools.set(poolName, {parentPoolPath, isEphemeral});\n }\n\n dispatch(updateExpandedPoolNoLoad(tree, treeExpandedPools));\n };\n}\n\nfunction updateExpandedPoolNoLoad(\n tree: string,\n treeExpandedPools: Map<string, ExpandedPoolInfo>,\n): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const oldExpandedPools = getSchedulingOperationsExpandedPools(getState());\n\n const expandedPools = {\n ...oldExpandedPools,\n [tree]: treeExpandedPools,\n };\n\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {expandedPools},\n });\n };\n}\n\nexport function resetExpandedPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n if (!tree) {\n return;\n }\n\n const state = getState();\n const {[tree]: old, ...rest} = getSchedulingOperationsExpandedPools(state);\n\n if (old?.size) {\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {\n expandedPools: {\n ...rest,\n [tree]: new Map<string, ExpandedPoolInfo>(),\n },\n },\n });\n }\n };\n}\n\nexport function getSchedulingOperationsCount(): ThunkAction<number, RootState, any, any> {\n return (_dispatch, getState) => {\n const state = getState();\n\n const tree = getSchedulingPoolsMapByName(state);\n const root = tree[ROOT_POOL_NAME];\n return root?.operationCount || 0;\n };\n}\n\nexport function getPoolPathsByName(\n poolName: string,\n): ThunkAction<{fullPath: string; orchidPath: string}, RootState, unknown, any> {\n return (_dispatch, getState) => {\n const state = getState();\n const pools = getPools(state);\n const tree = getTree(state);\n\n return {\n fullPath: calculatePoolPath(poolName, pools, tree),\n orchidPath: `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/fair_share_info/pools/${poolName}`,\n };\n };\n}\n\nexport function setLoadAllOperations(loadAll: boolean): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {loadAll},\n });\n\n const tree = getTree(state);\n dispatch(loadExpandedPools(tree));\n };\n}\n\nfunction calcExpandedPoolInfo(\n poolName: string,\n poolsByName: Record<string, PoolInfo>,\n): ExpandedPoolInfo {\n let data = poolsByName[poolName];\n const isEphemeral = data?.isEphemeral;\n let res = '';\n while (data?.parent && data.parent !== ROOT_POOL_NAME) {\n res = res ? `${data.parent}/${res}` : data.parent;\n data = poolsByName[data.parent];\n }\n return {parentPoolPath: res, isEphemeral};\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_uikit","require","_rumWrapApi","_utils","_batch","_scheduling","_scheduling2","_expandedPools","_empty","_schedulingPools","_support","_cancelHelper","_interopRequireWildcard","_scheduling3","_uiError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_interopRequireDefault","obj","cancelHelper","CancelHelper","POOL_FIELDS_TO_LOAD","POOL_TREE_GET_ATTRS","EmptyFullPath","_Error","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","_wrapNativeSuper","Error","loadExpandedPools","tree","dispatch","getState","pool","getPool","undefined","ROOT_POOL_NAME","loadExpandedOperationsAndPools","ytApiV3Id","executeBatch","YTApiId","schedulingPoolFullPath","requests","command","parameters","path","concat","fields","then","_ref","_ref2","_slicedToArray","output","_ref3","full_path","is_ephemeral","addFullPathToExpandedPoolsNoLoad","type","CHANGE_POOL","data","Toaster","add","name","title","_getSchedulingOperati","state","loadAll","getExpandedPoolsLoadAll","expandedPools","Map","getSchedulingOperationsExpandedPools","expandedPoolNames","_toConsumableArray","keys","operationsExpandedPools","operationsRequests","push","makeGet","prefix","forEach","item","loadAllPools","isSupportedSchedulingChildrenByPool","poolsRequests","poolsChildrenRequests","poolsCypressDataRequests","poolsExpandedPools","indexOf","attributes","_expandedPools$get","_ref4","parentPoolPath","isEphemeral","cypressDataPath","makeList","removeAllRequests","SCHEDULING_EXPANDED_POOLS_REQUEST","Promise","all","length","schedulingLoadOperationsPerPool","cancellation","saveCancelToken","resolve","schedulingLoadPoolsAll","schedulingLoadPoolsPerPool","schedulingLoadChildrenPerPool","schedulingLoadCypressDataPerPool","_ref5","_error$inner_errors","_ref6","operationsResults","poolsResults","poolsChildrenResults","poolsCypressData","error","UIBatchError","_splitBatchResults","splitBatchResults","operations","results","rawOperations","_reduce","acc","assign","rawPools","cypressData","_splitBatchResults2","pools","_ref7","_ref8","_ref8$","value","_splitBatchResults3","_splitBatchResults3$r","flattenAttributes","_splitBatchResults4","_pools","resultIndices","poolInfo","index","_splitBatchResults5","poolChildren","children","_splitBatchResults6","cypressDataChildrenPerPool","poolChildrenCypressData","$value","SCHEDULING_EXPANDED_POOLS_SUCCESS","expandedPoolsTree","EMPTY_OBJECT","flattenCypressData","inner_errors","isCancelled","SCHEDULING_EXPANDED_POOLS_FAILURE","setExpandedPool","poolName","expanded","getTree","poolsByName","getSchedulingPoolsMapByName","treeExpandedPools","expandedPoolInfo","calcExpandedPoolInfo","updateExpandedPoolNoLoad","fullPath","oldExpandedPools","parts","split","slice","join","_objectSpread","_defineProperty","SCHEDULING_EXPANDED_POOLS_PARTITION","resetExpandedPools","_getSchedulingOperati2","old","rest","_objectWithoutProperties","map","_toPropertyKey","size","getSchedulingOperationsCount","_dispatch","root","operationCount","getPoolPathsByName","getPools","calculatePoolPath","orchidPath","setLoadAllOperations","_data","res","_data2","parent"],"sources":["expanded-pools.tsx"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../reducers';\nimport _ from 'lodash';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\nimport {\n ExpandedPoolInfo,\n ExpandedPoolsAction,\n PoolCypressData,\n} from '../../reducers/scheduling/expanded-pools';\n\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {splitBatchResults} from '../../../utils/utils';\nimport {makeGet, makeList} from '../../../utils/batch';\nimport {\n CHANGE_POOL,\n ROOT_POOL_NAME,\n SCHEDULING_EXPANDED_POOLS_FAILURE,\n SCHEDULING_EXPANDED_POOLS_PARTITION,\n SCHEDULING_EXPANDED_POOLS_REQUEST,\n SCHEDULING_EXPANDED_POOLS_SUCCESS,\n} from '../../../constants/scheduling';\nimport {calculatePoolPath, getPool, getPools, getTree} from '../../selectors/scheduling/scheduling';\nimport {\n getExpandedPoolsLoadAll,\n getSchedulingOperationsExpandedPools,\n} from '../../selectors/scheduling/expanded-pools';\nimport {EMPTY_OBJECT} from '../../../constants/empty';\nimport {PoolInfo, getSchedulingPoolsMapByName} from '../../selectors/scheduling/scheduling-pools';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\nimport {SchedulingAction} from '../../../store/reducers/scheduling/scheduling';\nimport {isSupportedSchedulingChildrenByPool} from '../../../store/selectors/thor/support';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {flattenAttributes} from '../../../utils/scheduling/scheduling';\nimport {UIBatchError} from '../../../utils/errors/ui-error';\n\ntype ExpandedPoolsThunkAction = ThunkAction<\n any,\n RootState,\n any,\n ExpandedPoolsAction | SchedulingAction\n>;\n\nconst cancelHelper = new CancelHelper();\n\nconst POOL_FIELDS_TO_LOAD = [\n 'accumulated_resource_ratio_volume',\n 'accumulated_resource_volume',\n 'demand_ratio',\n 'detailed_fair_share',\n 'dominant_resource',\n 'estimated_burst_usage_duration_sec',\n 'fair_share_ratio',\n 'fifo_index',\n 'fifo_sort_parameters',\n 'integral_guarantee_type',\n 'is_ephemeral',\n 'max_operation_count',\n 'max_running_operation_count',\n 'max_share_ratio',\n 'min_share_ratio',\n 'mode',\n 'operation_count',\n 'parent',\n 'pool_operation_count',\n 'child_pool_count',\n 'resource_demand',\n 'resource_limits',\n 'resource_usage',\n 'promised_fair_share_resources',\n 'running_operation_count',\n 'specified_burst_guarantee_resources',\n 'specified_resource_flow',\n 'starvation_status',\n 'starving',\n 'strong_guarantee_resources',\n 'usage_ratio',\n 'weight',\n 'abc',\n];\n\nconst POOL_TREE_GET_ATTRS = [\n 'integral_guarantees',\n 'weight',\n 'max_operation_count',\n 'max_running_operation_count',\n 'strong_guarantee_resources',\n 'resource_limits',\n 'forbid_immediate_operations',\n 'create_ephemeral_subpools',\n 'fifo_sort_parameters',\n 'config',\n 'folder_id',\n];\n\nclass EmptyFullPath extends Error {}\n\nexport function loadExpandedPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const pool = getPool(getState());\n\n if (!tree) {\n return undefined;\n }\n\n if (pool === ROOT_POOL_NAME) {\n return dispatch(loadExpandedOperationsAndPools(tree));\n } else {\n return ytApiV3Id\n .executeBatch<{full_path: string; is_ephemeral?: boolean}>(\n YTApiId.schedulingPoolFullPath,\n {\n requests: [\n {\n command: 'get' as const,\n parameters: {\n path: `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}`,\n fields: ['is_ephemeral', 'full_path'],\n },\n },\n ],\n },\n )\n .then(([{output}]) => {\n const {full_path, is_ephemeral} = output ?? {};\n if (!full_path) {\n throw new EmptyFullPath();\n } else {\n dispatch(addFullPathToExpandedPoolsNoLoad(tree, full_path, is_ephemeral));\n dispatch(loadExpandedOperationsAndPools(tree));\n }\n })\n .catch((e) => {\n if (e instanceof EmptyFullPath) {\n dispatch({type: CHANGE_POOL, data: {pool: ROOT_POOL_NAME}});\n /**\n * We don't need to call `dispatch(loadExpandedOperationsAndPools(tree))` after `CHANGE_POOL`.\n * The call will be triggered by SchedulingExpandedPoolsUpdater.\n */\n // dispatch(loadExpandedOperationsAndPools(tree));\n } else {\n new Toaster().add({\n name: 'schedulingPoolFullPath',\n type: 'error',\n title: '',\n });\n }\n });\n }\n };\n}\n\nfunction loadExpandedOperationsAndPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n\n const loadAll = getExpandedPoolsLoadAll(state);\n const expandedPools: Map<string, ExpandedPoolInfo> = loadAll\n ? new Map()\n : getSchedulingOperationsExpandedPools(state)[tree] ?? new Map();\n const expandedPoolNames: Array<string> = [...expandedPools.keys()];\n\n const operationsExpandedPools: Array<string> = [...expandedPoolNames];\n\n const operationsRequests: Array<BatchSubRequest> = [];\n if (loadAll) {\n operationsRequests.push(\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/fair_share_info/operations`,\n ),\n );\n } else {\n const prefix = `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/operations_by_pool`;\n operationsExpandedPools.forEach((item) => {\n operationsRequests.push(makeGet(`${prefix}/${item}`));\n });\n }\n\n const loadAllPools = loadAll || !isSupportedSchedulingChildrenByPool(state);\n const poolsRequests: Array<BatchSubRequest> = [];\n const poolsChildrenRequests: Array<BatchSubRequest> = [];\n const poolsCypressDataRequests: Array<BatchSubRequest> = [];\n\n const poolsExpandedPools: Array<string> =\n -1 !== expandedPoolNames.indexOf(ROOT_POOL_NAME)\n ? expandedPoolNames\n : [ROOT_POOL_NAME, ...expandedPoolNames];\n\n if (loadAllPools) {\n poolsRequests.push(\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools`, {\n fields: POOL_FIELDS_TO_LOAD,\n }),\n );\n poolsCypressDataRequests.push(\n makeGet(`//sys/pool_trees/${tree}`, {attributes: POOL_TREE_GET_ATTRS}),\n );\n } else {\n poolsExpandedPools.forEach((pool) => {\n poolsRequests.push(\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}`, {\n fields: POOL_FIELDS_TO_LOAD,\n }),\n );\n poolsChildrenRequests.push(\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/child_pools_by_pool/${pool}`,\n {\n fields: POOL_FIELDS_TO_LOAD,\n },\n ),\n );\n const {parentPoolPath, isEphemeral} = expandedPools.get(pool) ?? {};\n const cypressDataPath = parentPoolPath\n ? `//sys/pool_trees/${tree}/${parentPoolPath}/${pool}`\n : `//sys/pool_trees/${tree}/${pool}`;\n if (pool === ROOT_POOL_NAME || !isEphemeral) {\n poolsCypressDataRequests.push(\n makeList(\n pool === ROOT_POOL_NAME ? `//sys/pool_trees/${tree}` : cypressDataPath,\n {\n attributes: POOL_TREE_GET_ATTRS,\n },\n ),\n );\n }\n });\n }\n\n cancelHelper.removeAllRequests();\n\n dispatch({type: SCHEDULING_EXPANDED_POOLS_REQUEST});\n return Promise.all([\n operationsRequests.length\n ? ytApiV3Id.executeBatch(YTApiId.schedulingLoadOperationsPerPool, {\n parameters: {requests: operationsRequests},\n cancellation: cancelHelper.saveCancelToken,\n })\n : Promise.resolve([]),\n loadAllPools\n ? ytApiV3Id.executeBatch(YTApiId.schedulingLoadPoolsAll, {\n parameters: {requests: poolsRequests},\n cancellation: cancelHelper.saveCancelToken,\n })\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadPoolsPerPool, {\n parameters: {requests: poolsRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n loadAllPools\n ? Promise.resolve([])\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadChildrenPerPool, {\n parameters: {requests: poolsChildrenRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n !poolsCypressDataRequests.length\n ? Promise.resolve([])\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadCypressDataPerPool, {\n parameters: {requests: poolsCypressDataRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n ])\n .then(([operationsResults, poolsResults, poolsChildrenResults, poolsCypressData]) => {\n const error = new UIBatchError('Failed to load expanded pools');\n const {results: operations} = splitBatchResults(operationsResults, error);\n const rawOperations = _.reduce(\n operations,\n (acc, data) => {\n return Object.assign(acc, data);\n },\n {},\n );\n\n const rawPools: Record<string, PoolInfo> = {};\n const cypressData: Record<string, PoolCypressData> = {};\n\n if (loadAllPools) {\n const {results: pools} = splitBatchResults<Record<string, PoolInfo>>(\n poolsResults,\n error,\n );\n const [value = {}] = pools ?? [];\n Object.assign(rawPools, value);\n\n const {\n results: [data],\n } = splitBatchResults(poolsCypressData, error);\n Object.assign(cypressData, flattenAttributes(data));\n } else {\n const {results: pools, resultIndices} = splitBatchResults<PoolInfo>(\n poolsResults,\n error,\n );\n pools.forEach((poolInfo, index) => {\n const name = poolsExpandedPools[resultIndices[index]];\n rawPools[name] = poolInfo;\n });\n\n const {results: poolChildren} = splitBatchResults<Record<string, PoolInfo>>(\n poolsChildrenResults,\n error,\n );\n poolChildren.forEach((children) => {\n Object.assign(rawPools, children);\n });\n\n const {results: cypressDataChildrenPerPool} = splitBatchResults<\n Array<PoolCypressData>\n >(poolsCypressData, error);\n cypressDataChildrenPerPool.forEach((poolChildrenCypressData) => {\n poolChildrenCypressData.forEach((item) => {\n cypressData[item.$value] = item;\n });\n });\n }\n\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_SUCCESS,\n data: {\n expandedPoolsTree: tree,\n rawOperations: Object.keys(rawOperations).length\n ? rawOperations\n : EMPTY_OBJECT,\n rawPools: Object.keys(rawPools).length ? rawPools : EMPTY_OBJECT,\n flattenCypressData: Object.keys(cypressData).length\n ? cypressData\n : EMPTY_OBJECT,\n },\n });\n\n if (error.inner_errors?.length) {\n throw error;\n }\n })\n .catch((error) => {\n if (!isCancelled(error)) {\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function setExpandedPool(poolName: string, expanded: boolean): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const tree = getTree(getState());\n const expandedPools = getSchedulingOperationsExpandedPools(state);\n\n const poolsByName = getSchedulingPoolsMapByName(state);\n\n const treeExpandedPools = new Map(expandedPools[tree]);\n if (expanded) {\n const expandedPoolInfo = calcExpandedPoolInfo(poolName, poolsByName);\n treeExpandedPools.set(poolName, expandedPoolInfo);\n } else {\n treeExpandedPools.delete(poolName);\n }\n\n dispatch(updateExpandedPoolNoLoad(tree, treeExpandedPools));\n dispatch(loadExpandedPools(tree));\n };\n}\n\nfunction addFullPathToExpandedPoolsNoLoad(\n tree: string,\n /**\n * elements of the array should have the same format as `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}/full_path`\n */\n fullPath: string,\n isEphemeral?: boolean,\n): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const oldExpandedPools = getSchedulingOperationsExpandedPools(state);\n const treeExpandedPools = new Map(oldExpandedPools[tree]);\n\n /**\n * `fullPath` value starts from `/`, example: `/mypool/child/subchild`\n * so we have to use `.slice(1)` to remove first empty string\n */\n const parts = fullPath.split('/').slice(1);\n\n for (let i = 0; i < parts.length; ++i) {\n const poolName = parts[i];\n const parentPoolPath = parts.slice(0, i).join('/');\n treeExpandedPools.set(poolName, {parentPoolPath, isEphemeral});\n }\n\n dispatch(updateExpandedPoolNoLoad(tree, treeExpandedPools));\n };\n}\n\nfunction updateExpandedPoolNoLoad(\n tree: string,\n treeExpandedPools: Map<string, ExpandedPoolInfo>,\n): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const oldExpandedPools = getSchedulingOperationsExpandedPools(getState());\n\n const expandedPools = {\n ...oldExpandedPools,\n [tree]: treeExpandedPools,\n };\n\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {expandedPools},\n });\n };\n}\n\nexport function resetExpandedPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n if (!tree) {\n return;\n }\n\n const state = getState();\n const {[tree]: old, ...rest} = getSchedulingOperationsExpandedPools(state);\n\n if (old?.size) {\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {\n expandedPools: {\n ...rest,\n [tree]: new Map<string, ExpandedPoolInfo>(),\n },\n },\n });\n }\n };\n}\n\nexport function getSchedulingOperationsCount(): ThunkAction<number, RootState, any, any> {\n return (_dispatch, getState) => {\n const state = getState();\n\n const tree = getSchedulingPoolsMapByName(state);\n const root = tree[ROOT_POOL_NAME];\n return root?.operationCount || 0;\n };\n}\n\nexport function getPoolPathsByName(\n poolName: string,\n): ThunkAction<{fullPath: string; orchidPath: string}, RootState, unknown, any> {\n return (_dispatch, getState) => {\n const state = getState();\n const pools = getPools(state);\n const tree = getTree(state);\n\n return {\n fullPath: calculatePoolPath(poolName, pools, tree),\n orchidPath: `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/fair_share_info/pools/${poolName}`,\n };\n };\n}\n\nexport function setLoadAllOperations(loadAll: boolean): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {loadAll},\n });\n\n const tree = getTree(state);\n dispatch(loadExpandedPools(tree));\n };\n}\n\nfunction calcExpandedPoolInfo(\n poolName: string,\n poolsByName: Record<string, PoolInfo>,\n): ExpandedPoolInfo {\n let data = poolsByName[poolName];\n const isEphemeral = data?.isEphemeral;\n let res = '';\n while (data?.parent && data.parent !== ROOT_POOL_NAME) {\n res = res ? `${data.parent}/${res}` : data.parent;\n data = poolsByName[data.parent];\n }\n return {parentPoolPath: res, isEphemeral};\n}\n"],"mappings":"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"}
|
@@ -114,7 +114,7 @@ function updatePoolChild(data, cypressData, type, treeResources) {
|
|
114
114
|
data.accumulated = _ypath.default.getValue(attributes, '/accumulated_resource_ratio_volume');
|
115
115
|
data.accumulatedCpu = _ypath.default.getValue(attributes, '/accumulated_resource_volume/cpu');
|
116
116
|
data.burstDuration = _ypath.default.getValue(attributes, '/estimated_burst_usage_duration_sec');
|
117
|
-
var fifoSortParams = (0, _map2.default)(_ypath.default.getValue(cypressAttributes, '/fifo_sort_parameters'), function (param) {
|
117
|
+
var fifoSortParams = (0, _map2.default)(_ypath.default.getValue(attributes, '/fifo_sort_parameters') || _ypath.default.getValue(cypressAttributes, '/fifo_sort_parameters'), function (param) {
|
118
118
|
return _ypath.default.getValue(param);
|
119
119
|
});
|
120
120
|
data.fifoSortParams = fifoSortParams.length > 0 ? fifoSortParams : ['start_time', 'weight', 'pending_job_count'];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ypath","_interopRequireDefault","require","_scheduling","_errors","obj","__esModule","default","RESOURCE_LIMIT_MAPPER","user_memory","preparePoolChildResource","data","type","treeResources","resource","attributes","name","ROOT_POOL_NAME","resources","guaranteed","ypath","getNumber","usage","min","demand","limitResource","limit","cypressAttributes","treeLimit","detailed","updatePoolChild","cypressData","getAttributes","_data$leaves","parent","console","error","_initedBy","mode","getValue","leaves","_map","leaf","child_pool_count","children","length","i","push","concat","incomplete","pool_operation_count","NaN","emptyOp","_i","_objectSpread","operationCount","maxOperationCount","maxOperationCountEdited","runningOperationCount","maxRunningOperationCount","maxRunningOperationCountEdited","id","starvation_status","weight","weightEdited","minShareRatio","maxShareRatio","fairShareRatio","fifoIndex","usageRatio","demandRatio","isEphemeral","getBoolean","integralType","userDefinedBurstCPU","burstCPU","userDefinedFlowCPU","flowCPU","userDefinedFlowGPU","flowGPU","accumulated","accumulatedCpu","burstDuration","fifoSortParams","param","abc","forbidImmediateOperations","createEphemeralSubpools","dominantResource","e","appendInnerErrors","message"],"sources":["pool-child.js"],"sourcesContent":["import _ from 'lodash';\nimport ypath from '../../common/thor/ypath';\nimport {ROOT_POOL_NAME} from '../../constants/scheduling';\nimport {appendInnerErrors} from '../errors';\n\nconst RESOURCE_LIMIT_MAPPER = {\n user_memory: 'memory',\n};\n\nfunction preparePoolChildResource(data, type, treeResources, resource) {\n const attributes = data.attributes;\n\n if (data.name === ROOT_POOL_NAME) {\n data.resources[resource] = {\n guaranteed: ypath.getNumber(treeResources, '/resource_limits/' + resource),\n usage: ypath.getNumber(treeResources, '/resource_usage/' + resource),\n };\n } else {\n const min = ypath.getNumber(attributes, '/strong_guarantee_resources/' + resource);\n const usage = ypath.getNumber(attributes, '/resource_usage/' + resource);\n const demand = ypath.getNumber(attributes, '/resource_demand/' + resource);\n const guaranteed = ypath.getNumber(\n attributes,\n '/promised_fair_share_resources/' + resource,\n );\n\n const limitResource = RESOURCE_LIMIT_MAPPER[resource] || resource;\n const limit = ypath.getNumber(data.cypressAttributes, '/resource_limits/' + limitResource);\n\n const treeLimit = ypath.getNumber(treeResources, '/resource_limits/' + resource);\n const detailed =\n treeLimit * ypath.getNumber(attributes, '/detailed_fair_share/total/' + limitResource);\n\n data.resources[resource] = {\n min,\n guaranteed,\n usage,\n demand,\n limit,\n detailed,\n };\n }\n\n return data;\n}\n\nexport function updatePoolChild(data, cypressData, type, treeResources) {\n try {\n const attributes = data.attributes;\n const cypressAttributes = ypath.getAttributes(cypressData);\n\n data.cypressAttributes = cypressAttributes;\n data.type = type;\n\n if (data.type === 'pool') {\n if (typeof attributes === 'undefined' && data.parent) {\n console.error(\n 'Pool \"%s\" without attributes inited by \"%s\"',\n data.name,\n data._initedBy,\n );\n }\n\n data.mode = ypath.getValue(attributes, '/mode');\n\n data.leaves = _.map(data.leaves, (leaf) => {\n return updatePoolChild(leaf, {}, 'operation', treeResources);\n });\n\n const child_pool_count = ypath.getNumber(attributes, '/child_pool_count');\n if (child_pool_count > 0 && !data.children.length) {\n for (let i = 0; i < child_pool_count; ++i) {\n data.children.push({\n parent: data.name,\n type: 'pool',\n name: `#key_${data.name}_${i}`,\n attributes: {},\n leaves: [],\n incomplete: true,\n });\n }\n }\n\n if (!data.leaves?.length) {\n data.pool_operation_count = ypath.getNumber(\n attributes,\n '/pool_operation_count',\n NaN,\n );\n if (data.pool_operation_count > 0) {\n const emptyOp = updatePoolChild(\n {attributes: {}},\n {},\n 'operation',\n treeResources,\n );\n data.leaves = [];\n for (let i = 0; i < data.pool_operation_count; ++i) {\n data.leaves.push({\n ...emptyOp,\n name: `##fake_operation_${data.name}_${i}`,\n });\n }\n }\n }\n\n // Operations\n data.operationCount = ypath.getNumber(attributes, '/operation_count');\n data.maxOperationCount = ypath.getNumber(attributes, '/max_operation_count');\n data.maxOperationCountEdited = ypath.getNumber(\n cypressAttributes,\n '/max_operation_count',\n );\n data.runningOperationCount = ypath.getNumber(attributes, '/running_operation_count');\n data.maxRunningOperationCount = ypath.getNumber(\n attributes,\n '/max_running_operation_count',\n );\n data.maxRunningOperationCountEdited = ypath.getNumber(\n cypressAttributes,\n '/max_running_operation_count',\n );\n }\n\n data.id = data.name;\n data.starvation_status = ypath.getValue(attributes, '/starvation_status');\n\n // General\n data.weight = ypath.getNumber(attributes, '/weight');\n data.weightEdited = ypath.getNumber(cypressAttributes, '/weight');\n data.minShareRatio = ypath.getNumber(attributes, '/min_share_ratio');\n data.maxShareRatio = ypath.getNumber(attributes, '/max_share_ratio');\n data.fairShareRatio = ypath.getNumber(attributes, '/fair_share_ratio');\n data.fifoIndex = ypath.getNumber(attributes, '/fifo_index');\n data.usageRatio = ypath.getNumber(attributes, '/usage_ratio');\n data.demandRatio = ypath.getNumber(attributes, '/demand_ratio');\n data.isEphemeral = ypath.getBoolean(attributes, '/is_ephemeral');\n\n data.integralType = ypath.getValue(attributes, '/integral_guarantee_type');\n const userDefinedBurstCPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/burst_guarantee_resources/cpu',\n NaN,\n );\n data.burstCPU = ypath.getNumber(\n attributes,\n '/specified_burst_guarantee_resources/cpu',\n userDefinedBurstCPU,\n );\n const userDefinedFlowCPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/resource_flow/cpu',\n NaN,\n );\n data.flowCPU = ypath.getNumber(\n attributes,\n '/specified_resource_flow/cpu',\n userDefinedFlowCPU,\n );\n const userDefinedFlowGPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/resource_flow/gpu',\n NaN,\n );\n data.flowGPU = ypath.getNumber(\n attributes,\n '/specified_resource_flow/gpu',\n userDefinedFlowGPU,\n );\n\n data.accumulated = ypath.getValue(attributes, '/accumulated_resource_ratio_volume');\n data.accumulatedCpu = ypath.getValue(attributes, '/accumulated_resource_volume/cpu');\n data.burstDuration = ypath.getValue(attributes, '/estimated_burst_usage_duration_sec');\n\n const fifoSortParams = _.map(\n ypath.getValue(cypressAttributes, '/fifo_sort_parameters'),\n (param) => ypath.getValue(param),\n );\n data.fifoSortParams =\n fifoSortParams.length > 0\n ? fifoSortParams\n : ['start_time', 'weight', 'pending_job_count'];\n data.abc = ypath.getValue(attributes, '/abc') || {};\n data.forbidImmediateOperations =\n ypath.getBoolean(cypressAttributes, '/forbid_immediate_operations') || false;\n data.createEphemeralSubpools =\n ypath.getBoolean(cypressAttributes, '/create_ephemeral_subpools') || false;\n\n // Resources\n data.dominantResource = ypath.getValue(attributes, '/dominant_resource');\n\n data.resources = {};\n\n preparePoolChildResource(data, type, treeResources, 'cpu');\n preparePoolChildResource(data, type, treeResources, 'user_memory');\n preparePoolChildResource(data, type, treeResources, 'gpu');\n preparePoolChildResource(data, type, treeResources, 'user_slots');\n\n return data;\n } catch (e) {\n throw appendInnerErrors(e, {\n message: `An error occured while parsing pool \"${data.name}\" data.`,\n });\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_ypath","_interopRequireDefault","require","_scheduling","_errors","obj","__esModule","default","RESOURCE_LIMIT_MAPPER","user_memory","preparePoolChildResource","data","type","treeResources","resource","attributes","name","ROOT_POOL_NAME","resources","guaranteed","ypath","getNumber","usage","min","demand","limitResource","limit","cypressAttributes","treeLimit","detailed","updatePoolChild","cypressData","getAttributes","_data$leaves","parent","console","error","_initedBy","mode","getValue","leaves","_map","leaf","child_pool_count","children","length","i","push","concat","incomplete","pool_operation_count","NaN","emptyOp","_i","_objectSpread","operationCount","maxOperationCount","maxOperationCountEdited","runningOperationCount","maxRunningOperationCount","maxRunningOperationCountEdited","id","starvation_status","weight","weightEdited","minShareRatio","maxShareRatio","fairShareRatio","fifoIndex","usageRatio","demandRatio","isEphemeral","getBoolean","integralType","userDefinedBurstCPU","burstCPU","userDefinedFlowCPU","flowCPU","userDefinedFlowGPU","flowGPU","accumulated","accumulatedCpu","burstDuration","fifoSortParams","param","abc","forbidImmediateOperations","createEphemeralSubpools","dominantResource","e","appendInnerErrors","message"],"sources":["pool-child.js"],"sourcesContent":["import _ from 'lodash';\nimport ypath from '../../common/thor/ypath';\nimport {ROOT_POOL_NAME} from '../../constants/scheduling';\nimport {appendInnerErrors} from '../errors';\n\nconst RESOURCE_LIMIT_MAPPER = {\n user_memory: 'memory',\n};\n\nfunction preparePoolChildResource(data, type, treeResources, resource) {\n const attributes = data.attributes;\n\n if (data.name === ROOT_POOL_NAME) {\n data.resources[resource] = {\n guaranteed: ypath.getNumber(treeResources, '/resource_limits/' + resource),\n usage: ypath.getNumber(treeResources, '/resource_usage/' + resource),\n };\n } else {\n const min = ypath.getNumber(attributes, '/strong_guarantee_resources/' + resource);\n const usage = ypath.getNumber(attributes, '/resource_usage/' + resource);\n const demand = ypath.getNumber(attributes, '/resource_demand/' + resource);\n const guaranteed = ypath.getNumber(\n attributes,\n '/promised_fair_share_resources/' + resource,\n );\n\n const limitResource = RESOURCE_LIMIT_MAPPER[resource] || resource;\n const limit = ypath.getNumber(data.cypressAttributes, '/resource_limits/' + limitResource);\n\n const treeLimit = ypath.getNumber(treeResources, '/resource_limits/' + resource);\n const detailed =\n treeLimit * ypath.getNumber(attributes, '/detailed_fair_share/total/' + limitResource);\n\n data.resources[resource] = {\n min,\n guaranteed,\n usage,\n demand,\n limit,\n detailed,\n };\n }\n\n return data;\n}\n\nexport function updatePoolChild(data, cypressData, type, treeResources) {\n try {\n const attributes = data.attributes;\n const cypressAttributes = ypath.getAttributes(cypressData);\n\n data.cypressAttributes = cypressAttributes;\n data.type = type;\n\n if (data.type === 'pool') {\n if (typeof attributes === 'undefined' && data.parent) {\n console.error(\n 'Pool \"%s\" without attributes inited by \"%s\"',\n data.name,\n data._initedBy,\n );\n }\n\n data.mode = ypath.getValue(attributes, '/mode');\n\n data.leaves = _.map(data.leaves, (leaf) => {\n return updatePoolChild(leaf, {}, 'operation', treeResources);\n });\n\n const child_pool_count = ypath.getNumber(attributes, '/child_pool_count');\n if (child_pool_count > 0 && !data.children.length) {\n for (let i = 0; i < child_pool_count; ++i) {\n data.children.push({\n parent: data.name,\n type: 'pool',\n name: `#key_${data.name}_${i}`,\n attributes: {},\n leaves: [],\n incomplete: true,\n });\n }\n }\n\n if (!data.leaves?.length) {\n data.pool_operation_count = ypath.getNumber(\n attributes,\n '/pool_operation_count',\n NaN,\n );\n if (data.pool_operation_count > 0) {\n const emptyOp = updatePoolChild(\n {attributes: {}},\n {},\n 'operation',\n treeResources,\n );\n data.leaves = [];\n for (let i = 0; i < data.pool_operation_count; ++i) {\n data.leaves.push({\n ...emptyOp,\n name: `##fake_operation_${data.name}_${i}`,\n });\n }\n }\n }\n\n // Operations\n data.operationCount = ypath.getNumber(attributes, '/operation_count');\n data.maxOperationCount = ypath.getNumber(attributes, '/max_operation_count');\n data.maxOperationCountEdited = ypath.getNumber(\n cypressAttributes,\n '/max_operation_count',\n );\n data.runningOperationCount = ypath.getNumber(attributes, '/running_operation_count');\n data.maxRunningOperationCount = ypath.getNumber(\n attributes,\n '/max_running_operation_count',\n );\n data.maxRunningOperationCountEdited = ypath.getNumber(\n cypressAttributes,\n '/max_running_operation_count',\n );\n }\n\n data.id = data.name;\n data.starvation_status = ypath.getValue(attributes, '/starvation_status');\n\n // General\n data.weight = ypath.getNumber(attributes, '/weight');\n data.weightEdited = ypath.getNumber(cypressAttributes, '/weight');\n data.minShareRatio = ypath.getNumber(attributes, '/min_share_ratio');\n data.maxShareRatio = ypath.getNumber(attributes, '/max_share_ratio');\n data.fairShareRatio = ypath.getNumber(attributes, '/fair_share_ratio');\n data.fifoIndex = ypath.getNumber(attributes, '/fifo_index');\n data.usageRatio = ypath.getNumber(attributes, '/usage_ratio');\n data.demandRatio = ypath.getNumber(attributes, '/demand_ratio');\n data.isEphemeral = ypath.getBoolean(attributes, '/is_ephemeral');\n\n data.integralType = ypath.getValue(attributes, '/integral_guarantee_type');\n const userDefinedBurstCPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/burst_guarantee_resources/cpu',\n NaN,\n );\n data.burstCPU = ypath.getNumber(\n attributes,\n '/specified_burst_guarantee_resources/cpu',\n userDefinedBurstCPU,\n );\n const userDefinedFlowCPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/resource_flow/cpu',\n NaN,\n );\n data.flowCPU = ypath.getNumber(\n attributes,\n '/specified_resource_flow/cpu',\n userDefinedFlowCPU,\n );\n const userDefinedFlowGPU = ypath.getNumber(\n cypressAttributes,\n '/integral_guarantees/resource_flow/gpu',\n NaN,\n );\n data.flowGPU = ypath.getNumber(\n attributes,\n '/specified_resource_flow/gpu',\n userDefinedFlowGPU,\n );\n\n data.accumulated = ypath.getValue(attributes, '/accumulated_resource_ratio_volume');\n data.accumulatedCpu = ypath.getValue(attributes, '/accumulated_resource_volume/cpu');\n data.burstDuration = ypath.getValue(attributes, '/estimated_burst_usage_duration_sec');\n\n const fifoSortParams = _.map(\n ypath.getValue(attributes, '/fifo_sort_parameters') ||\n ypath.getValue(cypressAttributes, '/fifo_sort_parameters'),\n (param) => ypath.getValue(param),\n );\n data.fifoSortParams =\n fifoSortParams.length > 0\n ? fifoSortParams\n : ['start_time', 'weight', 'pending_job_count'];\n data.abc = ypath.getValue(attributes, '/abc') || {};\n data.forbidImmediateOperations =\n ypath.getBoolean(cypressAttributes, '/forbid_immediate_operations') || false;\n data.createEphemeralSubpools =\n ypath.getBoolean(cypressAttributes, '/create_ephemeral_subpools') || false;\n\n // Resources\n data.dominantResource = ypath.getValue(attributes, '/dominant_resource');\n\n data.resources = {};\n\n preparePoolChildResource(data, type, treeResources, 'cpu');\n preparePoolChildResource(data, type, treeResources, 'user_memory');\n preparePoolChildResource(data, type, treeResources, 'gpu');\n preparePoolChildResource(data, type, treeResources, 'user_slots');\n\n return data;\n } catch (e) {\n throw appendInnerErrors(e, {\n message: `An error occured while parsing pool \"${data.name}\" data.`,\n });\n }\n}\n"],"mappings":"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"}
|
@@ -2,12 +2,13 @@ import {AppConfig, AppContext} from '@gravity-ui/nodekit';
|
|
2
2
|
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
3
3
|
import {Request, Response} from '@gravity-ui/expresskit';
|
4
4
|
import {MetrikaCounter} from '@gravity-ui/app-layout';
|
5
|
-
import {UISettings} from 'shared/ui-settings';
|
6
|
-
import {Settings} from '../shared/constants/settings-types';
|
7
5
|
import type {NodeKit} from '@gravity-ui/nodekit';
|
8
6
|
|
9
7
|
import {ClusterConfig} from '@ytsaurus/ui/build/cjs/shared/yt-types';
|
10
8
|
|
9
|
+
import {UISettings} from '../../shared/ui-settings';
|
10
|
+
import {Settings} from '../shared/constants/settings-types';
|
11
|
+
|
11
12
|
export interface YTCoreConfig {
|
12
13
|
/**
|
13
14
|
* Path to the file with OAuth-token of special-user ("the OAuthRobot" below) in format: {"oauthToken": "******"}
|
@@ -21,7 +21,8 @@ var localModeConfig = {
|
|
21
21
|
uploadTableMaxSize: 50 * 1024 * 1024,
|
22
22
|
uploadTableUseLocalmode: true,
|
23
23
|
queryTrackerStage: 'testing',
|
24
|
-
directDownload: false
|
24
|
+
directDownload: false,
|
25
|
+
reportBugUrl: 'https://github.com/ytsaurus/ytsaurus-ui/issues/new'
|
25
26
|
},
|
26
27
|
userSettingsConfig: {
|
27
28
|
cluster: YT_LOCAL_CLUSTER_ID,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["typeis","AuthPolicy","YT_LOCAL_CLUSTER_ID","localModeConfig","appAuthPolicy","disabled","ytInterfaceSecret","undefined","expressBodyParserJSONConfig","limit","type","req","_req$url","_req$url2","url","startsWith","Boolean","uiSettings","newTableReplicasCount","uploadTableMaxSize","uploadTableUseLocalmode","queryTrackerStage","directDownload","userSettingsConfig","cluster","mapNodePath"],"sources":["local.ts"],"sourcesContent":["import typeis from 'type-is';\n\nimport {AuthPolicy} from '@gravity-ui/expresskit';\nimport {AppConfig} from '@gravity-ui/nodekit';\nimport {YT_LOCAL_CLUSTER_ID} from '../../shared/constants';\n\nconst localModeConfig: Partial<AppConfig> = {\n appAuthPolicy: AuthPolicy.disabled,\n ytInterfaceSecret: undefined,\n\n expressBodyParserJSONConfig: {\n limit: '51mb',\n type(req) {\n // Enable raw parser for all content-types on yt-api for piping requests\n if (req.url?.startsWith('/api/yt/')) return false;\n if (req.url?.startsWith('/localmode/api/yt/')) return false;\n\n // Simulate default logic given that 'type' option is 'application/json'\n return Boolean(typeis(req, 'application/json'));\n },\n },\n\n uiSettings: {\n newTableReplicasCount: 1,\n uploadTableMaxSize: 50 * 1024 * 1024,\n uploadTableUseLocalmode: true,\n queryTrackerStage: 'testing',\n\n directDownload: false,\n },\n\n userSettingsConfig: {\n cluster: YT_LOCAL_CLUSTER_ID,\n mapNodePath: '//tmp',\n },\n};\n\nexport default localModeConfig;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,SAAS;AAE5B,SAAQC,UAAU,QAAO,wBAAwB;AAEjD,SAAQC,mBAAmB,QAAO,wBAAwB;AAE1D,IAAMC,eAAmC,GAAG;EACxCC,aAAa,EAAEH,UAAU,CAACI,QAAQ;EAClCC,iBAAiB,EAAEC,SAAS;EAE5BC,2BAA2B,EAAE;IACzBC,KAAK,EAAE,MAAM;IACbC,IAAI,WAAAA,KAACC,GAAG,EAAE;MAAA,IAAAC,QAAA,EAAAC,SAAA;MACN;MACA,KAAAD,QAAA,GAAID,GAAG,CAACG,GAAG,cAAAF,QAAA,eAAPA,QAAA,CAASG,UAAU,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK;MACjD,KAAAF,SAAA,GAAIF,GAAG,CAACG,GAAG,cAAAD,SAAA,eAAPA,SAAA,CAASE,UAAU,CAAC,oBAAoB,CAAC,EAAE,OAAO,KAAK;;MAE3D;MACA,OAAOC,OAAO,CAAChB,MAAM,CAACW,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACnD;EACJ,CAAC;EAEDM,UAAU,EAAE;IACRC,qBAAqB,EAAE,CAAC;IACxBC,kBAAkB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACpCC,uBAAuB,EAAE,IAAI;IAC7BC,iBAAiB,EAAE,SAAS;IAE5BC,cAAc,EAAE;
|
1
|
+
{"version":3,"names":["typeis","AuthPolicy","YT_LOCAL_CLUSTER_ID","localModeConfig","appAuthPolicy","disabled","ytInterfaceSecret","undefined","expressBodyParserJSONConfig","limit","type","req","_req$url","_req$url2","url","startsWith","Boolean","uiSettings","newTableReplicasCount","uploadTableMaxSize","uploadTableUseLocalmode","queryTrackerStage","directDownload","reportBugUrl","userSettingsConfig","cluster","mapNodePath"],"sources":["local.ts"],"sourcesContent":["import typeis from 'type-is';\n\nimport {AuthPolicy} from '@gravity-ui/expresskit';\nimport {AppConfig} from '@gravity-ui/nodekit';\nimport {YT_LOCAL_CLUSTER_ID} from '../../shared/constants';\n\nconst localModeConfig: Partial<AppConfig> = {\n appAuthPolicy: AuthPolicy.disabled,\n ytInterfaceSecret: undefined,\n\n expressBodyParserJSONConfig: {\n limit: '51mb',\n type(req) {\n // Enable raw parser for all content-types on yt-api for piping requests\n if (req.url?.startsWith('/api/yt/')) return false;\n if (req.url?.startsWith('/localmode/api/yt/')) return false;\n\n // Simulate default logic given that 'type' option is 'application/json'\n return Boolean(typeis(req, 'application/json'));\n },\n },\n\n uiSettings: {\n newTableReplicasCount: 1,\n uploadTableMaxSize: 50 * 1024 * 1024,\n uploadTableUseLocalmode: true,\n queryTrackerStage: 'testing',\n\n directDownload: false,\n\n reportBugUrl: 'https://github.com/ytsaurus/ytsaurus-ui/issues/new',\n },\n\n userSettingsConfig: {\n cluster: YT_LOCAL_CLUSTER_ID,\n mapNodePath: '//tmp',\n },\n};\n\nexport default localModeConfig;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,SAAS;AAE5B,SAAQC,UAAU,QAAO,wBAAwB;AAEjD,SAAQC,mBAAmB,QAAO,wBAAwB;AAE1D,IAAMC,eAAmC,GAAG;EACxCC,aAAa,EAAEH,UAAU,CAACI,QAAQ;EAClCC,iBAAiB,EAAEC,SAAS;EAE5BC,2BAA2B,EAAE;IACzBC,KAAK,EAAE,MAAM;IACbC,IAAI,WAAAA,KAACC,GAAG,EAAE;MAAA,IAAAC,QAAA,EAAAC,SAAA;MACN;MACA,KAAAD,QAAA,GAAID,GAAG,CAACG,GAAG,cAAAF,QAAA,eAAPA,QAAA,CAASG,UAAU,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK;MACjD,KAAAF,SAAA,GAAIF,GAAG,CAACG,GAAG,cAAAD,SAAA,eAAPA,SAAA,CAASE,UAAU,CAAC,oBAAoB,CAAC,EAAE,OAAO,KAAK;;MAE3D;MACA,OAAOC,OAAO,CAAChB,MAAM,CAACW,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACnD;EACJ,CAAC;EAEDM,UAAU,EAAE;IACRC,qBAAqB,EAAE,CAAC;IACxBC,kBAAkB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACpCC,uBAAuB,EAAE,IAAI;IAC7BC,iBAAiB,EAAE,SAAS;IAE5BC,cAAc,EAAE,KAAK;IAErBC,YAAY,EAAE;EAClB,CAAC;EAEDC,kBAAkB,EAAE;IAChBC,OAAO,EAAEvB,mBAAmB;IAC5BwB,WAAW,EAAE;EACjB;AACJ,CAAC;AAED,eAAevB,eAAe"}
|
@@ -12,6 +12,7 @@ export interface UISettings {
|
|
12
12
|
trackerBaseUrl?: string;
|
13
13
|
trackerQuoteRequestQueue?: string;
|
14
14
|
trackerAdminRequestQueue?: string;
|
15
|
+
reportBugUrl?: string;
|
15
16
|
datalensBaseUrl?: string;
|
16
17
|
datalensAllowedCluster?: Array<string>;
|
17
18
|
announcesMailListUrl?: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["uiSettingFromEnv","uploadTableExcelBaseUrl","process","env","YTFRONT_UPLOAD_EXCEL_BASE_URL","exportTableBaseUrl","YTFRONT_EXPORT_EXCEL_BASE_URL","jupyterBasePath","YTFRONT_JUPYTER_BASE_URL"],"sources":["ui-settings.ts"],"sourcesContent":["export interface UISettings {\n accessLogBasePath?: string;\n accountsUsageBasePath?: string;\n docsBaseUrl?: string;\n jupyterBasePath?: string;\n\n newTableReplicasCount: number;\n\n uploadTableMaxSize: number;\n uploadTableUseLocalmode?: boolean;\n\n uploadTableExcelBaseUrl?: string;\n exportTableBaseUrl?: string;\n\n directDownload?: boolean;\n\n trackerBaseUrl?: string;\n trackerQuoteRequestQueue?: string;\n trackerAdminRequestQueue?: string;\n\n datalensBaseUrl?: string;\n datalensAllowedCluster?: Array<string>;\n\n announcesMailListUrl?: string;\n\n sslCertFixUrl?: string;\n queryTrackerStage?: string;\n queryTrackerCluster?: string;\n\n oauthTokenUrl?: string;\n\n defaultFontType?: keyof Required<UISettings>['fontTypes'];\n\n fontTypes?: Record<string, {regular: string; monospace: string}>;\n\n /**\n * schedulingMonitoring.urlTemplate supports following parameters: {ytCluster}, {ytPool}, {ytPoolTree}.\n * All the parameters are optional and they are replaced with corresponding values.\n * @example {urlTemplate: 'https://my.monitoring.service/scheduling?cluster={ytCluster}&pool={ytPool}&poolTree={ytPoolTree}'}\n */\n schedulingMonitoring?: UISettingsMonitoring;\n\n /**\n * accountsMonitoring.urlTemplate supports following parameters: {ytCluster}, {ytAccount}\n * All the parameters are optional and they are replaced with corresponding values.\n * @example {urlTemplate: 'https://my.monitoring.service/accounts?cluster={ytCluster}&account={ytAccount}'}\n */\n accountsMonitoring?: UISettingsMonitoring;\n\n /**\n * bundlesMonitoring.urlTemplate supports following parameters: {ytCluster}, {ytTabletCellBundle}\n * All the parameters are optional and they are replaced with corresponding values.\n * @example {urlTemplate: 'https://my.monitoring.service/bundles?cluster={ytCluster}&account={ytTabletCellBundle}'}\n */\n bundlesMonitoring?: UISettingsMonitoring;\n\n /**\n * operationsMonitoring.urlTemplate supports following parameters:\n * {ytCluster}, {ytOperationId}, {ytPool}, {ytPoolTree}, {ytSlotIndex}, {fromTimeMs}, {toTimeMs}\n * All the parameters are optional and they are replaced with corresponding values.\n * @example {\n * urlTemplate:\n * 'https://my.monitoring.service/operations?cluster={ytCluster}&operationId={ytOperationId}&pool={ytPool}&tree={ytPoolTree}&slot={ytSlotIndex}&from={fromTimeMs}&to={toTimeMs}'\n * }\n */\n operationsMonitoring?: UISettingsMonitoring;\n\n /**\n * chytMonitoring.urlTemplate supports following parameters:\n * - {ytCluster}\n * - {chytAlias}\n * All the parameters are optional and the are replaced with corresponding values\n * @example {\n * urlTemplate: `https://my.monitoring.service/chyt?cluster={ytCluster}&alias={chytAlias}`\n * }\n */\n chytMonitoring?: UISettingsMonitoring;\n\n /**\n * Allows to define regular expression to extract hash-part from version of node by named group 'hash'\n * @example reHashFromNodeVersion: '[^~]+(?<hash>[^+]+)'\n */\n reHashFromNodeVersion?: string;\n\n /**\n * Allows to define regular expression to extract short-name from full address of host by named group 'shortname'.\n * Also it supports optional named group 'suffix' that will pe appended to shortname as is.\n * @example reShortNameFromAddress: '(?<shortname>.*)((\\\\.msk\\\\.my-domain\\\\.ru)|(\\\\.vla\\\\.my-domain\\\\.net))'\n * @example reShortNameFromAddress: '(?<shortname>.*)((\\\\.msk\\\\.my-domain\\\\.ru)|(\\\\.vla\\\\.my-domain\\\\.net))'\n */\n reShortNameFromAddress?: string;\n\n /**\n * Allows to override behavior of `reShortNameFromAddress` for tablet/bundles/cells specific parts of UI.\n * @example reShortNameFromTabletNodeAddress: '(?<shortname>[^-]+-[^-]+).*'\n */\n reShortNameFromTabletNodeAddress?: string;\n\n /**\n * Allows to define array of regexps for allowed urls of TaggedType of unipika to display media-content (audio/video/images).\n * If there are no matched items in the array the TaggedType-item will be displayed as a json-object.\n * @expamle\n * reUnipikaAllowTaggedSources: [\n * \"https:\\\\/\\\\/image\\\\.bank\\\\.my\\\\/fruits\\\\/\",\n * \"https:\\\\/\\\\/image\\\\.bank\\\\.my\\\\/vegetables\\\\/\"\n * ]\n */\n reUnipikaAllowTaggedSources: Array<string>;\n\n /**\n * Allows to define service for removing 'Referer' header for url-s on a page.\n *\n * See `@gravity-ui/unipika v3.0.0` details in [CHANGELOG.md](https://github.com/gravity-ui/unipika/blob/main/CHANGELOG.md).\n */\n hideReferrerUrl?: string;\n}\n\nexport interface UISettingsMonitoring {\n urlTemplate: string;\n title?: string;\n}\n\nexport const uiSettingFromEnv: Partial<UISettings> = {\n uploadTableExcelBaseUrl: process.env.YTFRONT_UPLOAD_EXCEL_BASE_URL,\n exportTableBaseUrl: process.env.YTFRONT_EXPORT_EXCEL_BASE_URL,\n jupyterBasePath: process.env.YTFRONT_JUPYTER_BASE_URL,\n};\n"],"mappings":"
|
1
|
+
{"version":3,"names":["uiSettingFromEnv","uploadTableExcelBaseUrl","process","env","YTFRONT_UPLOAD_EXCEL_BASE_URL","exportTableBaseUrl","YTFRONT_EXPORT_EXCEL_BASE_URL","jupyterBasePath","YTFRONT_JUPYTER_BASE_URL"],"sources":["ui-settings.ts"],"sourcesContent":["export interface UISettings {\n accessLogBasePath?: string;\n accountsUsageBasePath?: string;\n docsBaseUrl?: string;\n jupyterBasePath?: string;\n\n newTableReplicasCount: number;\n\n uploadTableMaxSize: number;\n uploadTableUseLocalmode?: boolean;\n\n uploadTableExcelBaseUrl?: string;\n exportTableBaseUrl?: string;\n\n directDownload?: boolean;\n\n trackerBaseUrl?: string;\n trackerQuoteRequestQueue?: string;\n trackerAdminRequestQueue?: string;\n\n reportBugUrl?: string;\n\n datalensBaseUrl?: string;\n datalensAllowedCluster?: Array<string>;\n\n announcesMailListUrl?: string;\n\n sslCertFixUrl?: string;\n queryTrackerStage?: string;\n queryTrackerCluster?: string;\n\n oauthTokenUrl?: string;\n\n defaultFontType?: keyof Required<UISettings>['fontTypes'];\n\n fontTypes?: Record<string, {regular: string; monospace: string}>;\n\n /**\n * schedulingMonitoring.urlTemplate supports following parameters: {ytCluster}, {ytPool}, {ytPoolTree}.\n * All the parameters are optional and they are replaced with corresponding values.\n * @example {urlTemplate: 'https://my.monitoring.service/scheduling?cluster={ytCluster}&pool={ytPool}&poolTree={ytPoolTree}'}\n */\n schedulingMonitoring?: UISettingsMonitoring;\n\n /**\n * accountsMonitoring.urlTemplate supports following parameters: {ytCluster}, {ytAccount}\n * All the parameters are optional and they are replaced with corresponding values.\n * @example {urlTemplate: 'https://my.monitoring.service/accounts?cluster={ytCluster}&account={ytAccount}'}\n */\n accountsMonitoring?: UISettingsMonitoring;\n\n /**\n * bundlesMonitoring.urlTemplate supports following parameters: {ytCluster}, {ytTabletCellBundle}\n * All the parameters are optional and they are replaced with corresponding values.\n * @example {urlTemplate: 'https://my.monitoring.service/bundles?cluster={ytCluster}&account={ytTabletCellBundle}'}\n */\n bundlesMonitoring?: UISettingsMonitoring;\n\n /**\n * operationsMonitoring.urlTemplate supports following parameters:\n * {ytCluster}, {ytOperationId}, {ytPool}, {ytPoolTree}, {ytSlotIndex}, {fromTimeMs}, {toTimeMs}\n * All the parameters are optional and they are replaced with corresponding values.\n * @example {\n * urlTemplate:\n * 'https://my.monitoring.service/operations?cluster={ytCluster}&operationId={ytOperationId}&pool={ytPool}&tree={ytPoolTree}&slot={ytSlotIndex}&from={fromTimeMs}&to={toTimeMs}'\n * }\n */\n operationsMonitoring?: UISettingsMonitoring;\n\n /**\n * chytMonitoring.urlTemplate supports following parameters:\n * - {ytCluster}\n * - {chytAlias}\n * All the parameters are optional and the are replaced with corresponding values\n * @example {\n * urlTemplate: `https://my.monitoring.service/chyt?cluster={ytCluster}&alias={chytAlias}`\n * }\n */\n chytMonitoring?: UISettingsMonitoring;\n\n /**\n * Allows to define regular expression to extract hash-part from version of node by named group 'hash'\n * @example reHashFromNodeVersion: '[^~]+(?<hash>[^+]+)'\n */\n reHashFromNodeVersion?: string;\n\n /**\n * Allows to define regular expression to extract short-name from full address of host by named group 'shortname'.\n * Also it supports optional named group 'suffix' that will pe appended to shortname as is.\n * @example reShortNameFromAddress: '(?<shortname>.*)((\\\\.msk\\\\.my-domain\\\\.ru)|(\\\\.vla\\\\.my-domain\\\\.net))'\n * @example reShortNameFromAddress: '(?<shortname>.*)((\\\\.msk\\\\.my-domain\\\\.ru)|(\\\\.vla\\\\.my-domain\\\\.net))'\n */\n reShortNameFromAddress?: string;\n\n /**\n * Allows to override behavior of `reShortNameFromAddress` for tablet/bundles/cells specific parts of UI.\n * @example reShortNameFromTabletNodeAddress: '(?<shortname>[^-]+-[^-]+).*'\n */\n reShortNameFromTabletNodeAddress?: string;\n\n /**\n * Allows to define array of regexps for allowed urls of TaggedType of unipika to display media-content (audio/video/images).\n * If there are no matched items in the array the TaggedType-item will be displayed as a json-object.\n * @expamle\n * reUnipikaAllowTaggedSources: [\n * \"https:\\\\/\\\\/image\\\\.bank\\\\.my\\\\/fruits\\\\/\",\n * \"https:\\\\/\\\\/image\\\\.bank\\\\.my\\\\/vegetables\\\\/\"\n * ]\n */\n reUnipikaAllowTaggedSources: Array<string>;\n\n /**\n * Allows to define service for removing 'Referer' header for url-s on a page.\n *\n * See `@gravity-ui/unipika v3.0.0` details in [CHANGELOG.md](https://github.com/gravity-ui/unipika/blob/main/CHANGELOG.md).\n */\n hideReferrerUrl?: string;\n}\n\nexport interface UISettingsMonitoring {\n urlTemplate: string;\n title?: string;\n}\n\nexport const uiSettingFromEnv: Partial<UISettings> = {\n uploadTableExcelBaseUrl: process.env.YTFRONT_UPLOAD_EXCEL_BASE_URL,\n exportTableBaseUrl: process.env.YTFRONT_EXPORT_EXCEL_BASE_URL,\n jupyterBasePath: process.env.YTFRONT_JUPYTER_BASE_URL,\n};\n"],"mappings":"AA4HA,OAAO,IAAMA,gBAAqC,GAAG;EACjDC,uBAAuB,EAAEC,OAAO,CAACC,GAAG,CAACC,6BAA6B;EAClEC,kBAAkB,EAAEH,OAAO,CAACC,GAAG,CAACG,6BAA6B;EAC7DC,eAAe,EAAEL,OAAO,CAACC,GAAG,CAACK;AACjC,CAAC"}
|
@@ -266,7 +266,10 @@ export interface UIFactory {
|
|
266
266
|
login: string;
|
267
267
|
cluster?: string;
|
268
268
|
buttonToWrap?: React.ReactNode;
|
269
|
-
}, makeContent: (
|
269
|
+
}, makeContent: (params: {
|
270
|
+
supportContent?: React.ReactNode;
|
271
|
+
onSupportClick: () => void;
|
272
|
+
}) => React.ReactNode): React.ReactNode;
|
270
273
|
getComponentForConsumerMetrics(): undefined | React.ComponentType<{
|
271
274
|
cluster: string;
|
272
275
|
path: string;
|
@@ -3,6 +3,7 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
3
3
|
import React from 'react';
|
4
4
|
import AppNavigationPageLayout from './containers/AppNavigation/AppNavigationPageLayout';
|
5
5
|
import { defaultAclApi } from './utils/acl/external-acl-api';
|
6
|
+
import { SupportComponent } from './containers/SupportComponent/SupportComponent';
|
6
7
|
import { YTUserSuggest } from './containers/UserSuggest/YTUserSuggest';
|
7
8
|
import { docsUrls } from './constants/docsUrls';
|
8
9
|
import { YTSubjectSuggest } from './components/ACL/SubjectsControl/YTSubjectSuggest';
|
@@ -180,8 +181,14 @@ var uiFactory = {
|
|
180
181
|
renderControlAbcService: function renderControlAbcService() {
|
181
182
|
return undefined;
|
182
183
|
},
|
183
|
-
makeSupportContent: function makeSupportContent() {
|
184
|
-
|
184
|
+
makeSupportContent: function makeSupportContent(_x, makeContent) {
|
185
|
+
var reportBugUrl = uiSettings.reportBugUrl;
|
186
|
+
if (!reportBugUrl) {
|
187
|
+
return undefined;
|
188
|
+
}
|
189
|
+
return /*#__PURE__*/_jsx(SupportComponent, {
|
190
|
+
makeContent: makeContent
|
191
|
+
});
|
185
192
|
},
|
186
193
|
getComponentForConsumerMetrics: function getComponentForConsumerMetrics() {
|
187
194
|
return undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","AppNavigationPageLayout","defaultAclApi","YTUserSuggest","docsUrls","YTSubjectSuggest","RoleActions","OperationDetailMonitorLinks","PERMISSIONS_SETTINGS","uiSettings","YT","jsx","_jsx","experimentalPages","uiFactory","getClusterAppearance","cluster","_YT$clusters","clusters","urls","isWatchMen","makeUrlForUserName","_ref","login","concat","makeUrlForTransferTask","undefined","makeUrlForNodeIO","makeUrlForTabletCellBundleDashboard","makeUrlForMonitoringDescriptor","makeUrlForUserDashboard","getExtaClusterPages","getExtraRootPages","getExtraReducersAndUrlMapping","getSchedulingExtraTabs","_uiSettings$schedulin","schedulingMonitoring","urlTemplate","_uiSettings$schedulin2","_uiSettings$schedulin3","title","name","getMonitoringForAccounts","_uiSettings$accountsM","accountsMonitoring","_uiSettings$accountsM2","getMonitoringForBundle","_uiSettings$bundlesMo","bundlesMonitoring","_uiSettings$bundlesMo2","getMonitoringForOperation","params","_uiSettings$operation","_params$pools","operationsMonitoring","_uiSettings$operation2","hasPoolParameter","indexOf","pools","length","component","getMonitorComponentForJob","getMonitoringComponentForChyt","_uiSettings$chytMonit","_ref2","chytMonitoring","getStatisticsComponentForAccount","getStatisticsComponentForBundle","renderNavigationExtraActions","renderSchedulingLastDayMaximum","renderComponentsNodeCardTop","getExtraMetaTableItemsForComponentsNode","getExtraMetaTableItemsForPool","getExtraMetaTableItemsForBundle","getComponentsNodeDashboardUrl","renderTransferQuotaNoticeForPool","renderTransferQuotaNoticeForAccount","renderTopRowExtraControlsForAccount","renderTopRowExtraControlsForPool","renderTopRowExtraControlsForBundle","renderAccountsTableItemExtraControls","renderSchedulingTableItemExtraControls","renderBundlesTableItemExtraControls","renderControlAbcService","makeSupportContent","getComponentForConsumerMetrics","getComonentForQueueMetrics","renderTableCellBundleEditorNotice","getNodeDeployUrl","getNodeNannyUrl","renderAppNavigation","props","_objectSpread","createNotificationUrl","wrapApp","app","externalSchemaDescriptionSetup","load","_cluster","_path","Promise","resolve","getAclApi","renderAclSubjectsSuggestControl","renderRolesLink","getExternalSettings","renderUserSuggest","getExperimentalPages","getAllowedExperimentalPages","getComponentForAclRoleActions","getAclPermissionsSettings","onChytAliasSqlClick","configureUIFactoryItem","k","redefinition","configureUIFactory","overrides","_forEach","_v","key","Proxy","set","Error","isAbcAllowed","abc","onChange","value","id","slug","Boolean"],"sources":["UIFactory.tsx"],"sourcesContent":["import {SVGIconData} from '@gravity-ui/uikit/build/esm/components/Icon/types';\nimport {MetaTableItem} from './components/MetaTable/MetaTable';\nimport _ from 'lodash';\nimport React from 'react';\nimport {Reducer} from 'redux';\nimport {PathParameters} from './store/location';\nimport {TabletBundle} from './store/reducers/tablet_cell_bundles';\nimport {PoolInfo} from './store/selectors/scheduling/scheduling-pools';\nimport {ClusterConfig, ClusterUiConfig} from '../shared/yt-types';\nimport {ClusterAppearance} from './appearance';\nimport AppNavigationPageLayout, {\n AppNavigationProps,\n} from './containers/AppNavigation/AppNavigationPageLayout';\nimport {ExternalSchemaDescription} from './pages/navigation/tabs/Schema/ExternalDescription/ExternalDescription';\nimport {AclApi, defaultAclApi} from './utils/acl/external-acl-api';\nimport {SubjectsControlProps} from './components/ACL/SubjectsControl/SubjectsControl';\nimport {SettingsPage} from './containers/SettingsPanel/settings-description';\nimport {UserSuggestProps} from './containers/UserSuggest/UserSuggest';\nimport {YTUserSuggest} from './containers/UserSuggest/YTUserSuggest';\nimport {DocsUrls, docsUrls} from './constants/docsUrls';\nimport {YTSubjectSuggest} from './components/ACL/SubjectsControl/YTSubjectSuggest';\nimport RoleActions, {Props as RoleActionsProps} from './components/ACL/RoleActions';\nimport OperationDetailMonitorLinks from './pages/operations/OperationDetail/tabs/monitor/OperationDetailsMonitorLinks';\nimport {PERMISSIONS_SETTINGS} from './constants/acl';\nimport {uiSettings} from './config/ui-settings';\nimport YT from './config/yt-config';\n\ntype HeaderItemOrPage =\n | {\n href: string;\n\n pageId?: undefined;\n reactComponent?: undefined;\n reducers?: undefined;\n urlMapping?: undefined;\n }\n | {\n pageId?: string;\n reactComponent?: React.ComponentType<any>; // used as component for <Route ... component={reactComponent} />\n reducers?: Record<string, Reducer>;\n urlMapping?: Record<string, PathParameters>;\n\n href?: undefined;\n };\n\nexport type UIFactoryRootPageInfo = HeaderItemOrPage & {\n title: string;\n getVisible?: () => Promise<boolean>;\n};\n\nexport interface UIFactoryClusterPageInfo {\n title: string;\n pageId: string; // also used as urlMatch for <Route path={`/:cluster/${pageId}`} ... />\n svgIcon?: SVGIconData;\n reducers?: Record<string, Reducer>;\n reactComponent: React.ComponentType<any>; // used as component for <Route ... component={reactComponent} />\n topRowComponent?: React.ComponentType<any>; // used as component for <Route ... component={topRowComponent} />\n urlMapping?: Record<string, PathParameters>;\n}\n\nexport interface ExternalSchemaDescriptionResponse {\n url?: string;\n externalSchema?: Map<string, ExternalSchemaDescription>;\n}\n\nexport interface ReducersAndUrlMapping {\n reducers?: Record<string, Reducer>;\n urlMapping?: Record<string, PathParameters>;\n}\n\nexport interface SchedulingExtraTab {\n name: string;\n title?: string;\n component?: React.ComponentType<any>;\n /**\n * Allows to redefine link of corresponding tab\n * Example: https://grafana.mydomain.com?var-pool={ytPool}&var-tree={ytPoolTree}&var-cluster={ytCluster}\n */\n urlTemplate?: string;\n}\n\nexport interface OperationMonitoringTabProps {\n cluster: string;\n operation: {\n id: string;\n startTime?: string;\n finishTime?: string;\n pools?: Array<{pool: string; tree: string; slotIndex?: number}>;\n };\n}\n\nexport interface UIFactory {\n getClusterAppearance(cluster?: string): undefined | ClusterAppearance;\n\n isWatchMen(login: string): boolean;\n\n makeUrlForUserName({cluster, login}: {cluster: string; login: string}): string | undefined;\n makeUrlForTransferTask(operation: unknown): string | undefined;\n makeUrlForNodeIO(cluster: string, host?: string): string | undefined;\n makeUrlForTabletCellBundleDashboard(cluster: string, bundle: string): string | undefined;\n makeUrlForMonitoringDescriptor(\n cluster: string,\n timeRange: {from: string; to?: string},\n monitoring_descriptor?: string,\n ): string | undefined;\n makeUrlForUserDashboard(cluster: string, user: string): string | undefined;\n\n getExtaClusterPages(): Array<UIFactoryClusterPageInfo>;\n getExtraRootPages(): Array<UIFactoryRootPageInfo>;\n\n getExtraReducersAndUrlMapping(): undefined | ReducersAndUrlMapping;\n getSchedulingExtraTabs(params: {\n cluster: string;\n pool: string;\n tree: string;\n extraOptions: {\n isRoot?: boolean;\n isEphemeral?: boolean | undefined;\n };\n }): Array<SchedulingExtraTab>;\n\n getMonitoringForAccounts():\n | undefined\n | {\n component: React.ComponentType<{cluster: string; account: string}>;\n urlTemplate?: undefined;\n title?: undefined;\n }\n | {urlTemplate: string; title?: string; component?: undefined};\n getMonitoringForBundle():\n | undefined\n | {\n component: React.ComponentType<{\n cluster: string;\n tablet_cell_bundle: string;\n bundleData: any;\n }>;\n urlTemplate?: undefined;\n title?: undefined;\n }\n | {urlTemplate: string; title?: string; component?: undefined};\n getMonitoringForOperation(params: OperationMonitoringTabProps['operation']):\n | undefined\n | {\n component: React.ComponentType<OperationMonitoringTabProps>;\n urlTemplate?: undefined;\n title?: undefined;\n }\n | {urlTemplate: string; title?: string; component?: undefined};\n getMonitorComponentForJob():\n | undefined\n | React.ComponentType<{\n cluster: string;\n job_descriptor: string;\n from?: number;\n to?: number;\n }>;\n\n getMonitoringComponentForChyt():\n | undefined\n | {\n component?: React.ComponentType<{cluster: string; alias: string}>;\n urlTemplate?: string;\n title?: string;\n };\n\n getStatisticsComponentForAccount():\n | undefined\n | React.ComponentType<{\n cluster: string;\n account: string;\n accountSubtreeAllNames: Array<string>;\n theme: string;\n }>;\n\n getStatisticsComponentForBundle():\n | undefined\n | React.ComponentType<{cluster: string; bundle: string; theme: string}>;\n\n renderNavigationExtraActions(params: {\n className?: string;\n cluster: string;\n path: string;\n type: string;\n attributes: unknown;\n }): React.ReactNode;\n\n renderSchedulingLastDayMaximum(props: {\n className?: string;\n cluster: string;\n tree: string;\n title?: string;\n sensor: 'max_operation_count' | 'max_running_operation_count';\n format?(sensorValue?: number): string;\n current?: {value: string; title: string};\n showHint?: boolean;\n showAsLink?: boolean;\n }): React.ReactNode;\n\n renderComponentsNodeCardTop(props: {\n className?: string;\n clusterConfig: ClusterConfig;\n host: string;\n physicalHost: string;\n }): React.ReactNode;\n\n getComponentsNodeDashboardUrl(props: {cluster: string; host: string}): {\n url?: string;\n title?: string;\n };\n\n renderTransferQuotaNoticeForPool(props: {\n className?: string;\n pool?: PoolInfo;\n parentPool?: PoolInfo;\n clusterUiConfig?: ClusterUiConfig;\n isTopLevel?: boolean;\n }): React.ReactNode;\n\n renderTransferQuotaNoticeForAccount(props: {\n className?: string;\n isTopLevel?: boolean;\n accountAttributes?: unknown;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderTopRowExtraControlsForAccount(props: {\n className?: string;\n accountAttributes?: unknown;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderTopRowExtraControlsForPool(props: {\n itemClassName?: string;\n pool?: unknown;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderTopRowExtraControlsForBundle(props: {\n itemClassName?: string;\n bundle?: TabletBundle;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n getExtraMetaTableItemsForComponentsNode(props: {\n clusterConfig: ClusterConfig;\n host: string;\n physicalHost: string;\n }): undefined | Array<MetaTableItem>;\n\n getExtraMetaTableItemsForPool(props: {\n pool: PoolInfo;\n clusterUiConfig?: ClusterUiConfig;\n }): undefined | Array<MetaTableItem>;\n\n getExtraMetaTableItemsForBundle(props: {\n bundle: TabletBundle;\n clusterUiConfig: ClusterUiConfig;\n }): undefined | Array<MetaTableItem>;\n\n renderAccountsTableItemExtraControls(props: {\n itemClassName?: string;\n cluster: string;\n account: string;\n accountAttributes?: unknown;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderSchedulingTableItemExtraControls(props: {\n itemClassName?: string;\n cluster: string;\n pool: unknown;\n clusterUiConfig: ClusterUiConfig;\n }): React.ReactNode;\n\n renderBundlesTableItemExtraControls(props: {\n itemClassName?: string;\n bundle?: TabletBundle;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderControlAbcService<T extends {slug: string; id?: number}>(props: {\n className?: string;\n value?: T;\n onChange: (v?: T) => void;\n placeholder?: string;\n disabled?: boolean;\n }): React.ReactNode;\n\n makeSupportContent(\n params: {login: string; cluster?: string; buttonToWrap?: React.ReactNode},\n makeContent: (onSupportClick: () => void) => React.ReactNode,\n ): React.ReactNode;\n\n getComponentForConsumerMetrics():\n | undefined\n | React.ComponentType<{\n cluster: string;\n path: string;\n targetQueue?: string;\n }>;\n\n getComonentForQueueMetrics(): undefined | React.ComponentType<{cluster: string; path: string}>;\n\n renderTableCellBundleEditorNotice(props: {\n bundleData?: {$attributes: unknown};\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n getNodeDeployUrl(ypCluster?: string, podId?: string): string | undefined;\n getNodeNannyUrl(params: {\n pod_id?: string;\n nanny_service?: string;\n yp_cluster?: string;\n }): string | undefined;\n\n renderAppNavigation(props: AppNavigationProps): React.ReactElement;\n\n createNotificationUrl(clusterConfig?: ClusterConfig): string | undefined;\n\n wrapApp(app: React.ReactElement): React.ReactElement;\n\n externalSchemaDescriptionSetup: {\n columns?: Record<keyof ExternalSchemaDescription['glossaryEntity'], string>;\n load(cluster: string, path: string): Promise<ExternalSchemaDescriptionResponse>;\n };\n\n getAclApi(): AclApi;\n\n renderAclSubjectsSuggestControl(props: SubjectsControlProps): React.ReactNode;\n\n renderRolesLink(params: {cluster: string; login: string; className?: string}): React.ReactNode;\n\n getExternalSettings(params: {\n cluster: string;\n login: string;\n isAdmin: boolean;\n }): Array<SettingsPage>;\n\n renderUserSuggest(props: UserSuggestProps): React.ReactNode;\n\n yqlWidgetSetup?: {\n renderButton(props: {className?: string; isSplit?: string}): React.ReactNode;\n renderWidget(props: {cluster: string; path: string; attributes: unknown}): React.ReactNode;\n renderYqlOperationLink(yqlOperationId: string): React.ReactNode;\n };\n\n getExperimentalPages(): string[];\n getAllowedExperimentalPages(login: string): Promise<Array<string>>;\n\n docsUrls: DocsUrls;\n\n getComponentForAclRoleActions(): undefined | React.ComponentType<RoleActionsProps>;\n\n getAclPermissionsSettings(): typeof PERMISSIONS_SETTINGS;\n\n onChytAliasSqlClick(params: {alias: string; cluster: string}): void;\n}\n\nconst experimentalPages: string[] = [];\n\nconst uiFactory: UIFactory = {\n getClusterAppearance(cluster) {\n return YT.clusters[cluster!]?.urls;\n },\n isWatchMen() {\n return false;\n },\n makeUrlForUserName({cluster, login}: {cluster?: string; login: string}) {\n return `/${cluster}/users?filter=${login}`;\n },\n makeUrlForTransferTask() {\n return undefined;\n },\n makeUrlForNodeIO() {\n return undefined;\n },\n makeUrlForTabletCellBundleDashboard() {\n return undefined;\n },\n makeUrlForMonitoringDescriptor() {\n return undefined;\n },\n makeUrlForUserDashboard() {\n return undefined;\n },\n\n getExtaClusterPages() {\n return [];\n },\n getExtraRootPages() {\n return [];\n },\n\n getExtraReducersAndUrlMapping() {\n return undefined;\n },\n\n getSchedulingExtraTabs() {\n if (!uiSettings.schedulingMonitoring?.urlTemplate) {\n return [];\n }\n\n const {urlTemplate, title = 'Monitoring'} = uiSettings.schedulingMonitoring;\n\n return [\n {\n name: 'monitoring',\n title,\n urlTemplate,\n },\n ];\n },\n getMonitoringForAccounts() {\n if (!uiSettings?.accountsMonitoring?.urlTemplate) {\n return undefined;\n }\n\n const {urlTemplate, title} = uiSettings.accountsMonitoring;\n return {urlTemplate, title};\n },\n getMonitoringForBundle() {\n if (!uiSettings.bundlesMonitoring?.urlTemplate) {\n return undefined;\n }\n\n const {urlTemplate, title} = uiSettings.bundlesMonitoring;\n return {urlTemplate, title};\n },\n getMonitoringForOperation(params) {\n if (!uiSettings.operationsMonitoring?.urlTemplate) {\n return undefined;\n }\n\n const {urlTemplate, title} = uiSettings.operationsMonitoring;\n\n const hasPoolParameter =\n urlTemplate.indexOf('{ytPool}') !== -1 || urlTemplate.indexOf('{ytPoolTree}') !== -1;\n\n if (hasPoolParameter && params.pools?.length! > 1) {\n return {component: OperationDetailMonitorLinks};\n }\n\n return {urlTemplate, title};\n },\n getMonitorComponentForJob() {\n return undefined;\n },\n getMonitoringComponentForChyt() {\n const {urlTemplate, title} = uiSettings.chytMonitoring ?? {};\n if (!urlTemplate) {\n return undefined;\n }\n\n return {urlTemplate, title};\n },\n getStatisticsComponentForAccount() {\n return undefined;\n },\n getStatisticsComponentForBundle() {\n return undefined;\n },\n\n renderNavigationExtraActions() {\n return null;\n },\n\n renderSchedulingLastDayMaximum() {\n return undefined;\n },\n\n renderComponentsNodeCardTop() {\n return undefined;\n },\n\n getExtraMetaTableItemsForComponentsNode() {\n return undefined;\n },\n\n getExtraMetaTableItemsForPool() {\n return undefined;\n },\n\n getExtraMetaTableItemsForBundle() {\n return undefined;\n },\n\n getComponentsNodeDashboardUrl() {\n return {};\n },\n\n renderTransferQuotaNoticeForPool() {\n return undefined;\n },\n\n renderTransferQuotaNoticeForAccount() {\n return undefined;\n },\n\n renderTopRowExtraControlsForAccount() {\n return undefined;\n },\n\n renderTopRowExtraControlsForPool() {\n return undefined;\n },\n\n renderTopRowExtraControlsForBundle() {\n return undefined;\n },\n\n renderAccountsTableItemExtraControls() {\n return undefined;\n },\n\n renderSchedulingTableItemExtraControls() {\n return undefined;\n },\n\n renderBundlesTableItemExtraControls() {\n return undefined;\n },\n\n renderControlAbcService() {\n return undefined;\n },\n\n makeSupportContent() {\n return undefined;\n },\n\n getComponentForConsumerMetrics() {\n return undefined;\n },\n\n getComonentForQueueMetrics() {\n return undefined;\n },\n\n renderTableCellBundleEditorNotice() {\n return undefined;\n },\n\n getNodeDeployUrl() {\n return undefined;\n },\n\n getNodeNannyUrl() {\n return undefined;\n },\n\n renderAppNavigation(props) {\n return <AppNavigationPageLayout {...props} />;\n },\n\n createNotificationUrl() {\n return undefined;\n },\n\n wrapApp(app) {\n return app;\n },\n\n externalSchemaDescriptionSetup: {\n load(_cluster: string, _path: string) {\n return Promise.resolve({});\n },\n },\n\n getAclApi() {\n return defaultAclApi;\n },\n\n renderAclSubjectsSuggestControl(props) {\n return <YTSubjectSuggest {...props} />;\n },\n\n renderRolesLink() {\n return undefined;\n },\n\n getExternalSettings() {\n return [];\n },\n\n renderUserSuggest(props) {\n return <YTUserSuggest {...props} />;\n },\n\n getExperimentalPages() {\n return experimentalPages;\n },\n\n getAllowedExperimentalPages() {\n return Promise.resolve([]);\n },\n\n docsUrls: docsUrls,\n\n getComponentForAclRoleActions() {\n return RoleActions;\n },\n\n getAclPermissionsSettings() {\n return PERMISSIONS_SETTINGS;\n },\n\n onChytAliasSqlClick() {},\n};\n\nfunction configureUIFactoryItem<K extends keyof UIFactory>(k: K, redefinition: UIFactory[K]) {\n uiFactory[k] = redefinition;\n}\n\nexport function configureUIFactory(overrides: Partial<UIFactory>) {\n _.forEach(overrides, (_v, k) => {\n const key = k as keyof UIFactory;\n configureUIFactoryItem(key, overrides[key]!);\n });\n}\n\nexport default new Proxy(uiFactory, {\n set: () => {\n throw new Error('Use configureUIFactory(...) method instead of direct modifications');\n },\n});\n\nexport function isAbcAllowed() {\n const abc = uiFactory.renderControlAbcService({\n onChange: () => {},\n value: {id: 123, slug: '123'},\n });\n return Boolean(abc);\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["React","AppNavigationPageLayout","defaultAclApi","SupportComponent","YTUserSuggest","docsUrls","YTSubjectSuggest","RoleActions","OperationDetailMonitorLinks","PERMISSIONS_SETTINGS","uiSettings","YT","jsx","_jsx","experimentalPages","uiFactory","getClusterAppearance","cluster","_YT$clusters","clusters","urls","isWatchMen","makeUrlForUserName","_ref","login","concat","makeUrlForTransferTask","undefined","makeUrlForNodeIO","makeUrlForTabletCellBundleDashboard","makeUrlForMonitoringDescriptor","makeUrlForUserDashboard","getExtaClusterPages","getExtraRootPages","getExtraReducersAndUrlMapping","getSchedulingExtraTabs","_uiSettings$schedulin","schedulingMonitoring","urlTemplate","_uiSettings$schedulin2","_uiSettings$schedulin3","title","name","getMonitoringForAccounts","_uiSettings$accountsM","accountsMonitoring","_uiSettings$accountsM2","getMonitoringForBundle","_uiSettings$bundlesMo","bundlesMonitoring","_uiSettings$bundlesMo2","getMonitoringForOperation","params","_uiSettings$operation","_params$pools","operationsMonitoring","_uiSettings$operation2","hasPoolParameter","indexOf","pools","length","component","getMonitorComponentForJob","getMonitoringComponentForChyt","_uiSettings$chytMonit","_ref2","chytMonitoring","getStatisticsComponentForAccount","getStatisticsComponentForBundle","renderNavigationExtraActions","renderSchedulingLastDayMaximum","renderComponentsNodeCardTop","getExtraMetaTableItemsForComponentsNode","getExtraMetaTableItemsForPool","getExtraMetaTableItemsForBundle","getComponentsNodeDashboardUrl","renderTransferQuotaNoticeForPool","renderTransferQuotaNoticeForAccount","renderTopRowExtraControlsForAccount","renderTopRowExtraControlsForPool","renderTopRowExtraControlsForBundle","renderAccountsTableItemExtraControls","renderSchedulingTableItemExtraControls","renderBundlesTableItemExtraControls","renderControlAbcService","makeSupportContent","_x","makeContent","reportBugUrl","getComponentForConsumerMetrics","getComonentForQueueMetrics","renderTableCellBundleEditorNotice","getNodeDeployUrl","getNodeNannyUrl","renderAppNavigation","props","_objectSpread","createNotificationUrl","wrapApp","app","externalSchemaDescriptionSetup","load","_cluster","_path","Promise","resolve","getAclApi","renderAclSubjectsSuggestControl","renderRolesLink","getExternalSettings","renderUserSuggest","getExperimentalPages","getAllowedExperimentalPages","getComponentForAclRoleActions","getAclPermissionsSettings","onChytAliasSqlClick","configureUIFactoryItem","k","redefinition","configureUIFactory","overrides","_forEach","_v","key","Proxy","set","Error","isAbcAllowed","abc","onChange","value","id","slug","Boolean"],"sources":["UIFactory.tsx"],"sourcesContent":["import {SVGIconData} from '@gravity-ui/uikit/build/esm/components/Icon/types';\nimport {MetaTableItem} from './components/MetaTable/MetaTable';\nimport _ from 'lodash';\nimport React from 'react';\nimport {Reducer} from 'redux';\nimport {PathParameters} from './store/location';\nimport {TabletBundle} from './store/reducers/tablet_cell_bundles';\nimport {PoolInfo} from './store/selectors/scheduling/scheduling-pools';\nimport {ClusterConfig, ClusterUiConfig} from '../shared/yt-types';\nimport {ClusterAppearance} from './appearance';\nimport AppNavigationPageLayout, {\n AppNavigationProps,\n} from './containers/AppNavigation/AppNavigationPageLayout';\nimport {ExternalSchemaDescription} from './pages/navigation/tabs/Schema/ExternalDescription/ExternalDescription';\nimport {AclApi, defaultAclApi} from './utils/acl/external-acl-api';\nimport {SubjectsControlProps} from './components/ACL/SubjectsControl/SubjectsControl';\nimport {SettingsPage} from './containers/SettingsPanel/settings-description';\nimport {SupportComponent} from './containers/SupportComponent/SupportComponent';\nimport {UserSuggestProps} from './containers/UserSuggest/UserSuggest';\nimport {YTUserSuggest} from './containers/UserSuggest/YTUserSuggest';\nimport {DocsUrls, docsUrls} from './constants/docsUrls';\nimport {YTSubjectSuggest} from './components/ACL/SubjectsControl/YTSubjectSuggest';\nimport RoleActions, {Props as RoleActionsProps} from './components/ACL/RoleActions';\nimport OperationDetailMonitorLinks from './pages/operations/OperationDetail/tabs/monitor/OperationDetailsMonitorLinks';\nimport {PERMISSIONS_SETTINGS} from './constants/acl';\nimport {uiSettings} from './config/ui-settings';\nimport YT from './config/yt-config';\n\ntype HeaderItemOrPage =\n | {\n href: string;\n\n pageId?: undefined;\n reactComponent?: undefined;\n reducers?: undefined;\n urlMapping?: undefined;\n }\n | {\n pageId?: string;\n reactComponent?: React.ComponentType<any>; // used as component for <Route ... component={reactComponent} />\n reducers?: Record<string, Reducer>;\n urlMapping?: Record<string, PathParameters>;\n\n href?: undefined;\n };\n\nexport type UIFactoryRootPageInfo = HeaderItemOrPage & {\n title: string;\n getVisible?: () => Promise<boolean>;\n};\n\nexport interface UIFactoryClusterPageInfo {\n title: string;\n pageId: string; // also used as urlMatch for <Route path={`/:cluster/${pageId}`} ... />\n svgIcon?: SVGIconData;\n reducers?: Record<string, Reducer>;\n reactComponent: React.ComponentType<any>; // used as component for <Route ... component={reactComponent} />\n topRowComponent?: React.ComponentType<any>; // used as component for <Route ... component={topRowComponent} />\n urlMapping?: Record<string, PathParameters>;\n}\n\nexport interface ExternalSchemaDescriptionResponse {\n url?: string;\n externalSchema?: Map<string, ExternalSchemaDescription>;\n}\n\nexport interface ReducersAndUrlMapping {\n reducers?: Record<string, Reducer>;\n urlMapping?: Record<string, PathParameters>;\n}\n\nexport interface SchedulingExtraTab {\n name: string;\n title?: string;\n component?: React.ComponentType<any>;\n /**\n * Allows to redefine link of corresponding tab\n * Example: https://grafana.mydomain.com?var-pool={ytPool}&var-tree={ytPoolTree}&var-cluster={ytCluster}\n */\n urlTemplate?: string;\n}\n\nexport interface OperationMonitoringTabProps {\n cluster: string;\n operation: {\n id: string;\n startTime?: string;\n finishTime?: string;\n pools?: Array<{pool: string; tree: string; slotIndex?: number}>;\n };\n}\n\nexport interface UIFactory {\n getClusterAppearance(cluster?: string): undefined | ClusterAppearance;\n\n isWatchMen(login: string): boolean;\n\n makeUrlForUserName({cluster, login}: {cluster: string; login: string}): string | undefined;\n makeUrlForTransferTask(operation: unknown): string | undefined;\n makeUrlForNodeIO(cluster: string, host?: string): string | undefined;\n makeUrlForTabletCellBundleDashboard(cluster: string, bundle: string): string | undefined;\n makeUrlForMonitoringDescriptor(\n cluster: string,\n timeRange: {from: string; to?: string},\n monitoring_descriptor?: string,\n ): string | undefined;\n makeUrlForUserDashboard(cluster: string, user: string): string | undefined;\n\n getExtaClusterPages(): Array<UIFactoryClusterPageInfo>;\n getExtraRootPages(): Array<UIFactoryRootPageInfo>;\n\n getExtraReducersAndUrlMapping(): undefined | ReducersAndUrlMapping;\n getSchedulingExtraTabs(params: {\n cluster: string;\n pool: string;\n tree: string;\n extraOptions: {\n isRoot?: boolean;\n isEphemeral?: boolean | undefined;\n };\n }): Array<SchedulingExtraTab>;\n\n getMonitoringForAccounts():\n | undefined\n | {\n component: React.ComponentType<{cluster: string; account: string}>;\n urlTemplate?: undefined;\n title?: undefined;\n }\n | {urlTemplate: string; title?: string; component?: undefined};\n getMonitoringForBundle():\n | undefined\n | {\n component: React.ComponentType<{\n cluster: string;\n tablet_cell_bundle: string;\n bundleData: any;\n }>;\n urlTemplate?: undefined;\n title?: undefined;\n }\n | {urlTemplate: string; title?: string; component?: undefined};\n getMonitoringForOperation(params: OperationMonitoringTabProps['operation']):\n | undefined\n | {\n component: React.ComponentType<OperationMonitoringTabProps>;\n urlTemplate?: undefined;\n title?: undefined;\n }\n | {urlTemplate: string; title?: string; component?: undefined};\n getMonitorComponentForJob():\n | undefined\n | React.ComponentType<{\n cluster: string;\n job_descriptor: string;\n from?: number;\n to?: number;\n }>;\n\n getMonitoringComponentForChyt():\n | undefined\n | {\n component?: React.ComponentType<{cluster: string; alias: string}>;\n urlTemplate?: string;\n title?: string;\n };\n\n getStatisticsComponentForAccount():\n | undefined\n | React.ComponentType<{\n cluster: string;\n account: string;\n accountSubtreeAllNames: Array<string>;\n theme: string;\n }>;\n\n getStatisticsComponentForBundle():\n | undefined\n | React.ComponentType<{cluster: string; bundle: string; theme: string}>;\n\n renderNavigationExtraActions(params: {\n className?: string;\n cluster: string;\n path: string;\n type: string;\n attributes: unknown;\n }): React.ReactNode;\n\n renderSchedulingLastDayMaximum(props: {\n className?: string;\n cluster: string;\n tree: string;\n title?: string;\n sensor: 'max_operation_count' | 'max_running_operation_count';\n format?(sensorValue?: number): string;\n current?: {value: string; title: string};\n showHint?: boolean;\n showAsLink?: boolean;\n }): React.ReactNode;\n\n renderComponentsNodeCardTop(props: {\n className?: string;\n clusterConfig: ClusterConfig;\n host: string;\n physicalHost: string;\n }): React.ReactNode;\n\n getComponentsNodeDashboardUrl(props: {cluster: string; host: string}): {\n url?: string;\n title?: string;\n };\n\n renderTransferQuotaNoticeForPool(props: {\n className?: string;\n pool?: PoolInfo;\n parentPool?: PoolInfo;\n clusterUiConfig?: ClusterUiConfig;\n isTopLevel?: boolean;\n }): React.ReactNode;\n\n renderTransferQuotaNoticeForAccount(props: {\n className?: string;\n isTopLevel?: boolean;\n accountAttributes?: unknown;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderTopRowExtraControlsForAccount(props: {\n className?: string;\n accountAttributes?: unknown;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderTopRowExtraControlsForPool(props: {\n itemClassName?: string;\n pool?: unknown;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderTopRowExtraControlsForBundle(props: {\n itemClassName?: string;\n bundle?: TabletBundle;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n getExtraMetaTableItemsForComponentsNode(props: {\n clusterConfig: ClusterConfig;\n host: string;\n physicalHost: string;\n }): undefined | Array<MetaTableItem>;\n\n getExtraMetaTableItemsForPool(props: {\n pool: PoolInfo;\n clusterUiConfig?: ClusterUiConfig;\n }): undefined | Array<MetaTableItem>;\n\n getExtraMetaTableItemsForBundle(props: {\n bundle: TabletBundle;\n clusterUiConfig: ClusterUiConfig;\n }): undefined | Array<MetaTableItem>;\n\n renderAccountsTableItemExtraControls(props: {\n itemClassName?: string;\n cluster: string;\n account: string;\n accountAttributes?: unknown;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderSchedulingTableItemExtraControls(props: {\n itemClassName?: string;\n cluster: string;\n pool: unknown;\n clusterUiConfig: ClusterUiConfig;\n }): React.ReactNode;\n\n renderBundlesTableItemExtraControls(props: {\n itemClassName?: string;\n bundle?: TabletBundle;\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n renderControlAbcService<T extends {slug: string; id?: number}>(props: {\n className?: string;\n value?: T;\n onChange: (v?: T) => void;\n placeholder?: string;\n disabled?: boolean;\n }): React.ReactNode;\n\n makeSupportContent(\n params: {login: string; cluster?: string; buttonToWrap?: React.ReactNode},\n makeContent: (params: {\n supportContent?: React.ReactNode;\n onSupportClick: () => void;\n }) => React.ReactNode,\n ): React.ReactNode;\n\n getComponentForConsumerMetrics():\n | undefined\n | React.ComponentType<{\n cluster: string;\n path: string;\n targetQueue?: string;\n }>;\n\n getComonentForQueueMetrics(): undefined | React.ComponentType<{cluster: string; path: string}>;\n\n renderTableCellBundleEditorNotice(props: {\n bundleData?: {$attributes: unknown};\n clusterUiConfig?: ClusterUiConfig;\n }): React.ReactNode;\n\n getNodeDeployUrl(ypCluster?: string, podId?: string): string | undefined;\n getNodeNannyUrl(params: {\n pod_id?: string;\n nanny_service?: string;\n yp_cluster?: string;\n }): string | undefined;\n\n renderAppNavigation(props: AppNavigationProps): React.ReactElement;\n\n createNotificationUrl(clusterConfig?: ClusterConfig): string | undefined;\n\n wrapApp(app: React.ReactElement): React.ReactElement;\n\n externalSchemaDescriptionSetup: {\n columns?: Record<keyof ExternalSchemaDescription['glossaryEntity'], string>;\n load(cluster: string, path: string): Promise<ExternalSchemaDescriptionResponse>;\n };\n\n getAclApi(): AclApi;\n\n renderAclSubjectsSuggestControl(props: SubjectsControlProps): React.ReactNode;\n\n renderRolesLink(params: {cluster: string; login: string; className?: string}): React.ReactNode;\n\n getExternalSettings(params: {\n cluster: string;\n login: string;\n isAdmin: boolean;\n }): Array<SettingsPage>;\n\n renderUserSuggest(props: UserSuggestProps): React.ReactNode;\n\n yqlWidgetSetup?: {\n renderButton(props: {className?: string; isSplit?: string}): React.ReactNode;\n renderWidget(props: {cluster: string; path: string; attributes: unknown}): React.ReactNode;\n renderYqlOperationLink(yqlOperationId: string): React.ReactNode;\n };\n\n getExperimentalPages(): string[];\n getAllowedExperimentalPages(login: string): Promise<Array<string>>;\n\n docsUrls: DocsUrls;\n\n getComponentForAclRoleActions(): undefined | React.ComponentType<RoleActionsProps>;\n\n getAclPermissionsSettings(): typeof PERMISSIONS_SETTINGS;\n\n onChytAliasSqlClick(params: {alias: string; cluster: string}): void;\n}\n\nconst experimentalPages: string[] = [];\n\nconst uiFactory: UIFactory = {\n getClusterAppearance(cluster) {\n return YT.clusters[cluster!]?.urls;\n },\n isWatchMen() {\n return false;\n },\n makeUrlForUserName({cluster, login}: {cluster?: string; login: string}) {\n return `/${cluster}/users?filter=${login}`;\n },\n makeUrlForTransferTask() {\n return undefined;\n },\n makeUrlForNodeIO() {\n return undefined;\n },\n makeUrlForTabletCellBundleDashboard() {\n return undefined;\n },\n makeUrlForMonitoringDescriptor() {\n return undefined;\n },\n makeUrlForUserDashboard() {\n return undefined;\n },\n\n getExtaClusterPages() {\n return [];\n },\n getExtraRootPages() {\n return [];\n },\n\n getExtraReducersAndUrlMapping() {\n return undefined;\n },\n\n getSchedulingExtraTabs() {\n if (!uiSettings.schedulingMonitoring?.urlTemplate) {\n return [];\n }\n\n const {urlTemplate, title = 'Monitoring'} = uiSettings.schedulingMonitoring;\n\n return [\n {\n name: 'monitoring',\n title,\n urlTemplate,\n },\n ];\n },\n getMonitoringForAccounts() {\n if (!uiSettings?.accountsMonitoring?.urlTemplate) {\n return undefined;\n }\n\n const {urlTemplate, title} = uiSettings.accountsMonitoring;\n return {urlTemplate, title};\n },\n getMonitoringForBundle() {\n if (!uiSettings.bundlesMonitoring?.urlTemplate) {\n return undefined;\n }\n\n const {urlTemplate, title} = uiSettings.bundlesMonitoring;\n return {urlTemplate, title};\n },\n getMonitoringForOperation(params) {\n if (!uiSettings.operationsMonitoring?.urlTemplate) {\n return undefined;\n }\n\n const {urlTemplate, title} = uiSettings.operationsMonitoring;\n\n const hasPoolParameter =\n urlTemplate.indexOf('{ytPool}') !== -1 || urlTemplate.indexOf('{ytPoolTree}') !== -1;\n\n if (hasPoolParameter && params.pools?.length! > 1) {\n return {component: OperationDetailMonitorLinks};\n }\n\n return {urlTemplate, title};\n },\n getMonitorComponentForJob() {\n return undefined;\n },\n getMonitoringComponentForChyt() {\n const {urlTemplate, title} = uiSettings.chytMonitoring ?? {};\n if (!urlTemplate) {\n return undefined;\n }\n\n return {urlTemplate, title};\n },\n getStatisticsComponentForAccount() {\n return undefined;\n },\n getStatisticsComponentForBundle() {\n return undefined;\n },\n\n renderNavigationExtraActions() {\n return null;\n },\n\n renderSchedulingLastDayMaximum() {\n return undefined;\n },\n\n renderComponentsNodeCardTop() {\n return undefined;\n },\n\n getExtraMetaTableItemsForComponentsNode() {\n return undefined;\n },\n\n getExtraMetaTableItemsForPool() {\n return undefined;\n },\n\n getExtraMetaTableItemsForBundle() {\n return undefined;\n },\n\n getComponentsNodeDashboardUrl() {\n return {};\n },\n\n renderTransferQuotaNoticeForPool() {\n return undefined;\n },\n\n renderTransferQuotaNoticeForAccount() {\n return undefined;\n },\n\n renderTopRowExtraControlsForAccount() {\n return undefined;\n },\n\n renderTopRowExtraControlsForPool() {\n return undefined;\n },\n\n renderTopRowExtraControlsForBundle() {\n return undefined;\n },\n\n renderAccountsTableItemExtraControls() {\n return undefined;\n },\n\n renderSchedulingTableItemExtraControls() {\n return undefined;\n },\n\n renderBundlesTableItemExtraControls() {\n return undefined;\n },\n\n renderControlAbcService() {\n return undefined;\n },\n\n makeSupportContent(_x, makeContent) {\n const {reportBugUrl} = uiSettings;\n if (!reportBugUrl) {\n return undefined;\n }\n\n return <SupportComponent makeContent={makeContent} />;\n },\n\n getComponentForConsumerMetrics() {\n return undefined;\n },\n\n getComonentForQueueMetrics() {\n return undefined;\n },\n\n renderTableCellBundleEditorNotice() {\n return undefined;\n },\n\n getNodeDeployUrl() {\n return undefined;\n },\n\n getNodeNannyUrl() {\n return undefined;\n },\n\n renderAppNavigation(props) {\n return <AppNavigationPageLayout {...props} />;\n },\n\n createNotificationUrl() {\n return undefined;\n },\n\n wrapApp(app) {\n return app;\n },\n\n externalSchemaDescriptionSetup: {\n load(_cluster: string, _path: string) {\n return Promise.resolve({});\n },\n },\n\n getAclApi() {\n return defaultAclApi;\n },\n\n renderAclSubjectsSuggestControl(props) {\n return <YTSubjectSuggest {...props} />;\n },\n\n renderRolesLink() {\n return undefined;\n },\n\n getExternalSettings() {\n return [];\n },\n\n renderUserSuggest(props) {\n return <YTUserSuggest {...props} />;\n },\n\n getExperimentalPages() {\n return experimentalPages;\n },\n\n getAllowedExperimentalPages() {\n return Promise.resolve([]);\n },\n\n docsUrls: docsUrls,\n\n getComponentForAclRoleActions() {\n return RoleActions;\n },\n\n getAclPermissionsSettings() {\n return PERMISSIONS_SETTINGS;\n },\n\n onChytAliasSqlClick() {},\n};\n\nfunction configureUIFactoryItem<K extends keyof UIFactory>(k: K, redefinition: UIFactory[K]) {\n uiFactory[k] = redefinition;\n}\n\nexport function configureUIFactory(overrides: Partial<UIFactory>) {\n _.forEach(overrides, (_v, k) => {\n const key = k as keyof UIFactory;\n configureUIFactoryItem(key, overrides[key]!);\n });\n}\n\nexport default new Proxy(uiFactory, {\n set: () => {\n throw new Error('Use configureUIFactory(...) method instead of direct modifications');\n },\n});\n\nexport function isAbcAllowed() {\n const abc = uiFactory.renderControlAbcService({\n onChange: () => {},\n value: {id: 123, slug: '123'},\n });\n return Boolean(abc);\n}\n"],"mappings":"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"}
|
@@ -11,11 +11,13 @@ export function Support(_ref) {
|
|
11
11
|
var children = _ref.children;
|
12
12
|
var login = useSelector(getCurrentUserName);
|
13
13
|
var cluster = useSelector(getCluster);
|
14
|
-
var makeContent = React.useCallback(function (
|
15
|
-
|
14
|
+
var makeContent = React.useCallback(function (_ref2) {
|
15
|
+
var supportContent = _ref2.supportContent,
|
16
|
+
onSupportClick = _ref2.onSupportClick;
|
17
|
+
return /*#__PURE__*/_jsxs("div", {
|
16
18
|
className: b(),
|
17
19
|
onClick: onSupportClick,
|
18
|
-
children: children || /*#__PURE__*/_jsxs("div", {
|
20
|
+
children: [supportContent, children || /*#__PURE__*/_jsxs("div", {
|
19
21
|
className: b('toggler'),
|
20
22
|
children: [/*#__PURE__*/_jsxs("svg", {
|
21
23
|
xmlns: "http://www.w3.org/2000/svg",
|
@@ -49,7 +51,7 @@ export function Support(_ref) {
|
|
49
51
|
}), /*#__PURE__*/_jsx("span", {
|
50
52
|
className: b('toggler-moo')
|
51
53
|
})]
|
52
|
-
})
|
54
|
+
})]
|
53
55
|
});
|
54
56
|
}, [children]);
|
55
57
|
return UIFactory.makeSupportContent({
|