@ytsaurus/ui 1.20.0 → 1.22.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.
Files changed (64) hide show
  1. package/build/cjs/@types/core.d.ts +1 -1
  2. package/build/cjs/server/ServerFactory.d.ts +3 -0
  3. package/build/cjs/server/ServerFactory.js +3 -0
  4. package/build/cjs/server/ServerFactory.js.map +1 -1
  5. package/build/cjs/server/controllers/availability.js +36 -18
  6. package/build/cjs/server/controllers/availability.js.map +1 -1
  7. package/build/cjs/server/controllers/odin-proxy-api.js +3 -4
  8. package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
  9. package/build/cjs/ui/pages/navigation/Navigation/ContentViewer/helpers/getComponentByContentType.js +2 -0
  10. package/build/cjs/ui/pages/navigation/Navigation/ContentViewer/helpers/getComponentByContentType.js.map +1 -1
  11. package/build/cjs/ui/pages/odin/_actions/odin-overview.js +1 -1
  12. package/build/cjs/ui/pages/odin/_actions/odin-overview.js.map +1 -1
  13. package/build/cjs/ui/pages/odin/controls/OdinToolbar.js +2 -1
  14. package/build/cjs/ui/pages/odin/controls/OdinToolbar.js.map +1 -1
  15. package/build/cjs/ui/pages/odin/odin-utils.d.ts +1 -1
  16. package/build/cjs/ui/pages/odin/odin-utils.js +2 -2
  17. package/build/cjs/ui/pages/odin/odin-utils.js.map +1 -1
  18. package/build/cjs/ui/store/actions/operations/jobs-monitor.js +5 -3
  19. package/build/cjs/ui/store/actions/operations/jobs-monitor.js.map +1 -1
  20. package/build/cjs/ui/store/selectors/operations/operation.d.ts +8 -1676
  21. package/build/cjs/ui/store/selectors/operations/operation.js +9 -12
  22. package/build/cjs/ui/store/selectors/operations/operation.js.map +1 -1
  23. package/build/cjs/ui/utils/navigation/path-editor.js +1 -0
  24. package/build/cjs/ui/utils/navigation/path-editor.js.map +1 -1
  25. package/build/esm/@types/core.d.ts +1 -1
  26. package/build/esm/server/ServerFactory.d.ts +3 -0
  27. package/build/esm/server/ServerFactory.js +4 -0
  28. package/build/esm/server/ServerFactory.js.map +1 -1
  29. package/build/esm/server/controllers/availability.js +43 -23
  30. package/build/esm/server/controllers/availability.js.map +1 -1
  31. package/build/esm/server/controllers/odin-proxy-api.js +9 -10
  32. package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
  33. package/build/esm/ui/pages/navigation/Navigation/ContentViewer/helpers/getComponentByContentType.js +2 -0
  34. package/build/esm/ui/pages/navigation/Navigation/ContentViewer/helpers/getComponentByContentType.js.map +1 -1
  35. package/build/esm/ui/pages/odin/_actions/odin-overview.js +1 -1
  36. package/build/esm/ui/pages/odin/_actions/odin-overview.js.map +1 -1
  37. package/build/esm/ui/pages/odin/controls/OdinToolbar.js +3 -2
  38. package/build/esm/ui/pages/odin/controls/OdinToolbar.js.map +1 -1
  39. package/build/esm/ui/pages/odin/odin-utils.d.ts +1 -1
  40. package/build/esm/ui/pages/odin/odin-utils.js +2 -2
  41. package/build/esm/ui/pages/odin/odin-utils.js.map +1 -1
  42. package/build/esm/ui/store/actions/operations/jobs-monitor.js +6 -4
  43. package/build/esm/ui/store/actions/operations/jobs-monitor.js.map +1 -1
  44. package/build/esm/ui/store/selectors/operations/operation.d.ts +8 -1676
  45. package/build/esm/ui/store/selectors/operations/operation.js +8 -11
  46. package/build/esm/ui/store/selectors/operations/operation.js.map +1 -1
  47. package/build/esm/ui/utils/navigation/path-editor.js +1 -0
  48. package/build/esm/ui/utils/navigation/path-editor.js.map +1 -1
  49. package/dist/public/build/assets-manifest.json +8 -8
  50. package/dist/public/build/js/main.724df837.js +3 -0
  51. package/dist/public/build/js/{main.5ce7c259.js.map → main.724df837.js.map} +1 -1
  52. package/dist/public/build/js/vendors.e6a251eb.js +3 -0
  53. package/dist/public/build/js/vendors.e6a251eb.js.map +1 -0
  54. package/dist/public/build/manifest.json +4 -4
  55. package/dist/server/ServerFactory.d.ts +3 -0
  56. package/dist/server/ServerFactory.js +3 -0
  57. package/dist/server/controllers/availability.js +36 -18
  58. package/dist/server/controllers/odin-proxy-api.js +3 -4
  59. package/package.json +2 -2
  60. package/dist/public/build/js/main.5ce7c259.js +0 -3
  61. package/dist/public/build/js/vendors.3a95f920.js +0 -3
  62. package/dist/public/build/js/vendors.3a95f920.js.map +0 -1
  63. /package/dist/public/build/js/{main.5ce7c259.js.LICENSE.txt → main.724df837.js.LICENSE.txt} +0 -0
  64. /package/dist/public/build/js/{vendors.3a95f920.js.LICENSE.txt → vendors.e6a251eb.js.LICENSE.txt} +0 -0
@@ -3,8 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isOperationWithJobsMonitorTab = exports.isOperationWithExperiment_ytadmin_11194 = exports.getOperationsMonitorChartStatesFinishedCount = exports.getOperationTypedAttributes = exports.getOperationTasksNames = exports.getOperationTasks = exports.getOperationPools = exports.getOperationPoolNames = exports.getOperationMonitorChartStates = exports.getOperationJobsLoadingStatus = exports.getOperationJobsCount = exports.getOperationId = exports.getOperationExperimentAssignments = exports.getOperationErasedTrees = exports.getOperationDetailsLoadingStatus = exports.getOperationAlertEventsItems = exports.getOperation = void 0;
7
- var _some2 = _interopRequireDefault(require("lodash/some"));
6
+ exports.getOperationsMonitorChartStatesFinishedCount = exports.getOperationTypedAttributes = exports.getOperationTasksNames = exports.getOperationTasks = exports.getOperationPools = exports.getOperationPoolNames = exports.getOperationMonitorChartStates = exports.getOperationJobsMonitorTabSettings = exports.getOperationJobsLoadingStatus = exports.getOperationId = exports.getOperationExperimentAssignments = exports.getOperationErasedTrees = exports.getOperationDetailsLoadingStatus = exports.getOperationAlertEventsItems = exports.getOperation = void 0;
8
7
  var _map2 = _interopRequireDefault(require("lodash/map"));
9
8
  var _reduce2 = _interopRequireDefault(require("lodash/reduce"));
10
9
  var _reselect = require("reselect");
@@ -74,18 +73,16 @@ var getOperationJobsLoadingStatus = exports.getOperationJobsLoadingStatus = (0,
74
73
  var getOperationExperimentAssignments = exports.getOperationExperimentAssignments = (0, _reselect.createSelector)([getOperation], function (operation) {
75
74
  return _ypath.default.getValue(operation, '/@experiment_assignments');
76
75
  });
77
- var getOperationJobsCount = exports.getOperationJobsCount = (0, _reselect.createSelector)([getOperation], function (operation) {
78
- var res = _ypath.default.getNumberDeprecated(operation, '/@brief_progress/total_job_counter/total');
76
+ var getOperationMonitoredJobCount = (0, _reselect.createSelector)([getOperation], function (operation) {
77
+ var res = _ypath.default.getNumberDeprecated(operation, '/@brief_progress/registered_monitoring_descriptor_count');
79
78
  return res;
80
79
  });
81
- var isOperationWithExperiment_ytadmin_11194 = exports.isOperationWithExperiment_ytadmin_11194 = (0, _reselect.createSelector)([getOperationExperimentAssignments], function (effects) {
82
- return (0, _some2.default)(effects, function (_ref) {
83
- var experiment = _ref.experiment;
84
- return experiment === 'ytadmin_11194';
85
- });
86
- });
87
- var isOperationWithJobsMonitorTab = exports.isOperationWithJobsMonitorTab = (0, _reselect.createSelector)([getOperationJobsCount, isOperationWithExperiment_ytadmin_11194], function (jobsCount, hasRequiredExperiment) {
88
- return hasRequiredExperiment && jobsCount > 0 && jobsCount <= 200;
80
+ var getOperationJobsMonitorTabSettings = exports.getOperationJobsMonitorTabSettings = (0, _reselect.createSelector)([getOperationMonitoredJobCount], function (jobsCount) {
81
+ var maxJobCount = 200;
82
+ return {
83
+ visible: jobsCount > 0 && jobsCount <= maxJobCount,
84
+ maxJobCount: maxJobCount
85
+ };
89
86
  });
90
87
  var getOperationAlertEventsItems = exports.getOperationAlertEventsItems = (0, _reselect.createSelector)([getOperationAlertEvents], function (alertEvents) {
91
88
  return alertEvents;
@@ -1 +1 @@
1
- {"version":3,"names":["_reselect","require","_ypath","_interopRequireDefault","_utils","obj","__esModule","default","getOperationErasedTreesRaw","state","ypath","getValue","operations","detail","getOperationErasedTrees","exports","createSelector","rawTrees","_reduce","acc","item","poolTree","getOperationAlertEvents","details","alert_events","getOperation","operation","getOperationId","getOperationTasks","getOperationTasksNames","tasks","_map","sort","getOperationDetailsLoadingStatus","loading","loaded","error","calculateLoadingStatus","getOperationTypedAttributes","$typedAttributes","getOperationMonitorChartStates","monitorChartStates","getOperationPools","pools","getOperationPoolNames","getOperationsMonitorChartStatesFinishedCount","states","value","getOperationJobsLoadingStatus","jobs","getOperationExperimentAssignments","getOperationJobsCount","res","getNumberDeprecated","isOperationWithExperiment_ytadmin_11194","effects","_some","_ref","experiment","isOperationWithJobsMonitorTab","jobsCount","hasRequiredExperiment","getOperationAlertEventsItems","alertEvents"],"sources":["operation.ts"],"sourcesContent":["import _ from 'lodash';\nimport {createSelector} from 'reselect';\n\nimport {RootState} from '../../../store/reducers';\nimport ypath from '../../../common/thor/ypath';\nimport {calculateLoadingStatus} from '../../../utils/utils';\nimport {FIX_MY_TYPE} from '../../../types';\n\nconst getOperationErasedTreesRaw = (state: RootState) => {\n return ypath.getValue(state.operations.detail, '/operation/@runtime_parameters/erased_trees');\n};\n\nexport const getOperationErasedTrees = createSelector(\n [getOperationErasedTreesRaw],\n (rawTrees: Array<unknown>) => {\n return _.reduce(\n rawTrees,\n (acc, item) => {\n const poolTree = ypath.getValue(item);\n acc[poolTree] = true;\n return acc;\n },\n {} as {[poolTree: string]: boolean},\n );\n },\n);\n\ninterface OperationTask {\n task_name: string;\n}\n\nconst getOperationAlertEvents = (state: RootState) => state.operations.detail.details.alert_events;\n\nexport const getOperation = (state: RootState) => state.operations.detail.operation;\nexport const getOperationId = (state: RootState) =>\n ypath.getValue(state.operations.detail.operation);\nexport const getOperationTasks = createSelector(\n [getOperation],\n (operation): Array<OperationTask> | undefined => {\n return ypath.getValue(operation, '/@progress/tasks');\n },\n);\nexport const getOperationTasksNames = createSelector(\n [getOperationTasks],\n (tasks?: Array<{task_name: string}>) => {\n return _.map(tasks, 'task_name').sort();\n },\n);\n\nexport const getOperationDetailsLoadingStatus = createSelector(\n [\n (state: RootState) => (state.operations.detail as FIX_MY_TYPE).loading,\n (state: RootState) => (state.operations.detail as FIX_MY_TYPE).loaded,\n (state: RootState) => (state.operations.detail as FIX_MY_TYPE).error,\n ],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n\nexport const getOperationTypedAttributes = (state: RootState) =>\n (state.operations.detail.operation as FIX_MY_TYPE).$typedAttributes;\n\nexport const getOperationMonitorChartStates = (state: RootState) =>\n state.operations.detail.monitorChartStates;\n\nexport const getOperationPools = (state: RootState) =>\n (state.operations.detail.operation as FIX_MY_TYPE).pools;\n\nexport const getOperationPoolNames = createSelector([getOperationPools], (pools): Array<string> => {\n return _.map(pools, 'pool');\n});\n\nexport const getOperationsMonitorChartStatesFinishedCount = createSelector(\n [getOperationMonitorChartStates],\n (states) => {\n return _.reduce(\n states,\n (acc, value) => {\n return value ? acc + 1 : acc;\n },\n 0,\n );\n },\n);\n\nexport const getOperationJobsLoadingStatus = createSelector(\n [\n (state: RootState) => (state.operations.jobs as FIX_MY_TYPE).loading,\n (state: RootState) => (state.operations.jobs as FIX_MY_TYPE).loaded,\n (state: RootState) => (state.operations.jobs as FIX_MY_TYPE).error,\n ],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n\nexport interface OperationExperimentItem {\n experiment: string;\n group: string;\n ticket: string;\n dimension: string;\n effect: unknown;\n}\n\nexport const getOperationExperimentAssignments = createSelector(\n [getOperation],\n (operation): Array<OperationExperimentItem> => {\n return ypath.getValue(operation, '/@experiment_assignments');\n },\n);\n\nexport const getOperationJobsCount = createSelector([getOperation], (operation) => {\n const res = ypath.getNumberDeprecated(operation, '/@brief_progress/total_job_counter/total');\n return res;\n});\n\nexport const isOperationWithExperiment_ytadmin_11194 = createSelector(\n [getOperationExperimentAssignments],\n (effects) => {\n return _.some(effects, ({experiment}) => {\n return experiment === 'ytadmin_11194';\n });\n },\n);\n\nexport const isOperationWithJobsMonitorTab = createSelector(\n [getOperationJobsCount, isOperationWithExperiment_ytadmin_11194],\n (jobsCount, hasRequiredExperiment) => {\n return hasRequiredExperiment && jobsCount > 0 && jobsCount <= 200;\n },\n);\n\nexport const getOperationAlertEventsItems = createSelector(\n [getOperationAlertEvents],\n (alertEvents) => {\n return alertEvents;\n },\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reselect","require","_ypath","_interopRequireDefault","_utils","obj","__esModule","default","getOperationErasedTreesRaw","state","ypath","getValue","operations","detail","getOperationErasedTrees","exports","createSelector","rawTrees","_reduce","acc","item","poolTree","getOperationAlertEvents","details","alert_events","getOperation","operation","getOperationId","getOperationTasks","getOperationTasksNames","tasks","_map","sort","getOperationDetailsLoadingStatus","loading","loaded","error","calculateLoadingStatus","getOperationTypedAttributes","$typedAttributes","getOperationMonitorChartStates","monitorChartStates","getOperationPools","pools","getOperationPoolNames","getOperationsMonitorChartStatesFinishedCount","states","value","getOperationJobsLoadingStatus","jobs","getOperationExperimentAssignments","getOperationMonitoredJobCount","res","getNumberDeprecated","getOperationJobsMonitorTabSettings","jobsCount","maxJobCount","visible","getOperationAlertEventsItems","alertEvents"],"sources":["operation.ts"],"sourcesContent":["import _ from 'lodash';\nimport {createSelector} from 'reselect';\n\nimport {RootState} from '../../../store/reducers';\nimport ypath from '../../../common/thor/ypath';\nimport {calculateLoadingStatus} from '../../../utils/utils';\nimport {FIX_MY_TYPE} from '../../../types';\n\nconst getOperationErasedTreesRaw = (state: RootState) => {\n return ypath.getValue(state.operations.detail, '/operation/@runtime_parameters/erased_trees');\n};\n\nexport const getOperationErasedTrees = createSelector(\n [getOperationErasedTreesRaw],\n (rawTrees: Array<unknown>) => {\n return _.reduce(\n rawTrees,\n (acc, item) => {\n const poolTree = ypath.getValue(item);\n acc[poolTree] = true;\n return acc;\n },\n {} as {[poolTree: string]: boolean},\n );\n },\n);\n\ninterface OperationTask {\n task_name: string;\n}\n\nconst getOperationAlertEvents = (state: RootState) => state.operations.detail.details.alert_events;\n\nexport const getOperation = (state: RootState) => state.operations.detail.operation;\nexport const getOperationId = (state: RootState) =>\n ypath.getValue(state.operations.detail.operation);\nexport const getOperationTasks = createSelector(\n [getOperation],\n (operation): Array<OperationTask> | undefined => {\n return ypath.getValue(operation, '/@progress/tasks');\n },\n);\nexport const getOperationTasksNames = createSelector(\n [getOperationTasks],\n (tasks?: Array<{task_name: string}>) => {\n return _.map(tasks, 'task_name').sort();\n },\n);\n\nexport const getOperationDetailsLoadingStatus = createSelector(\n [\n (state: RootState) => (state.operations.detail as FIX_MY_TYPE).loading,\n (state: RootState) => (state.operations.detail as FIX_MY_TYPE).loaded,\n (state: RootState) => (state.operations.detail as FIX_MY_TYPE).error,\n ],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n\nexport const getOperationTypedAttributes = (state: RootState) =>\n (state.operations.detail.operation as FIX_MY_TYPE).$typedAttributes;\n\nexport const getOperationMonitorChartStates = (state: RootState) =>\n state.operations.detail.monitorChartStates;\n\nexport const getOperationPools = (state: RootState) =>\n (state.operations.detail.operation as FIX_MY_TYPE).pools;\n\nexport const getOperationPoolNames = createSelector([getOperationPools], (pools): Array<string> => {\n return _.map(pools, 'pool');\n});\n\nexport const getOperationsMonitorChartStatesFinishedCount = createSelector(\n [getOperationMonitorChartStates],\n (states) => {\n return _.reduce(\n states,\n (acc, value) => {\n return value ? acc + 1 : acc;\n },\n 0,\n );\n },\n);\n\nexport const getOperationJobsLoadingStatus = createSelector(\n [\n (state: RootState) => (state.operations.jobs as FIX_MY_TYPE).loading,\n (state: RootState) => (state.operations.jobs as FIX_MY_TYPE).loaded,\n (state: RootState) => (state.operations.jobs as FIX_MY_TYPE).error,\n ],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n\nexport interface OperationExperimentItem {\n experiment: string;\n group: string;\n ticket: string;\n dimension: string;\n effect: unknown;\n}\n\nexport const getOperationExperimentAssignments = createSelector(\n [getOperation],\n (operation): Array<OperationExperimentItem> => {\n return ypath.getValue(operation, '/@experiment_assignments');\n },\n);\n\nconst getOperationMonitoredJobCount = createSelector([getOperation], (operation) => {\n const res = ypath.getNumberDeprecated(\n operation,\n '/@brief_progress/registered_monitoring_descriptor_count',\n );\n return res;\n});\n\nexport const getOperationJobsMonitorTabSettings = createSelector(\n [getOperationMonitoredJobCount],\n (jobsCount) => {\n const maxJobCount = 200;\n return {visible: jobsCount > 0 && jobsCount <= maxJobCount, maxJobCount};\n },\n);\n\nexport const getOperationAlertEventsItems = createSelector(\n [getOperationAlertEvents],\n (alertEvents) => {\n return alertEvents;\n },\n);\n"],"mappings":"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"}
@@ -98,6 +98,7 @@ function getIconNameForType(type, targetPathBroken) {
98
98
  transaction: 'code-branch',
99
99
  nested_transaction: 'code-branch',
100
100
  link: _ypath.default.getBoolean(targetPathBroken) ? 'unlink' : 'link',
101
+ rootstock: 'link',
101
102
  portal_entrance: 'link',
102
103
  cell_node: 'circle',
103
104
  cell_node_map: 'far circle',
@@ -1 +1 @@
1
- {"version":3,"names":["_unipika","_interopRequireDefault","require","_ypath","_cancelHelper","_rumWrapApi","obj","__esModule","default","pathEditorRequests","exports","CancelHelper","prepareSuggestions","initialPath","parentPath","children","suggestions","_map","child","prepared","childPath","unipika","decode","ypath","getValue","path","type","dynamic","targetPathBroken","_sortBy","preparePath","currentPath","YPath","create","toSubpath","stringify","loadSuggestions","customFilter","ytApiV3Id","list","YTApiId","pathEditorLoadSuggestions","parameters","attributes","cancellation","saveCancelToken","then","nodes","filterByCurrentPath","toLowerCase","_filter","hasPartOfPath","startsWith","isShowCurrentChild","getNextSelectedIndex","suggestion","selectedIndex","length","getPrevSelectedIndex","getCompletedPath","getIconNameForType","icons","document","string_node","int64_node","uint64_node","double_node","boolean_node","map_node","scheduler_pool_tree_map","scheduler_pool","tablet_cell","journal","table","table_dynamic","replicated_table","chaos_replicated_table","replication_log_table","file","topmost_transaction_map","transaction_map","transaction","nested_transaction","link","getBoolean","portal_entrance","cell_node","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","icon"],"sources":["path-editor.js"],"sourcesContent":["import _ from 'lodash';\nimport unipika from '../../common/thor/unipika';\nimport ypath from '../../common/thor/ypath';\n\nimport CancelHelper from '../cancel-helper';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\nexport const pathEditorRequests = new CancelHelper();\n\nfunction prepareSuggestions(initialPath, parentPath, children) {\n let suggestions = _.map(children, (child) => {\n const prepared = {};\n\n prepared.parentPath = parentPath;\n prepared.childPath = '/' + unipika.decode(ypath.getValue(child));\n prepared.path = prepared.parentPath + prepared.childPath;\n prepared.type = ypath.getValue(child, '/@type');\n prepared.dynamic = ypath.getValue(child, '/@dynamic');\n prepared.targetPathBroken = ypath.getValue(child, '/@broken');\n\n return prepared;\n });\n\n suggestions = _.sortBy(suggestions, 'childPath');\n\n return suggestions;\n}\n\nexport function preparePath(currentPath) {\n return ypath.YPath.create(currentPath, 'absolute').toSubpath(-2).stringify();\n}\n\nexport function loadSuggestions(path, customFilter) {\n const parentPath = preparePath(path);\n\n return ytApiV3Id\n .list(YTApiId.pathEditorLoadSuggestions, {\n parameters: {path: parentPath, attributes: ['type', 'dynamic']},\n cancellation: pathEditorRequests.saveCancelToken,\n })\n .then(ypath.getValue)\n .then((nodes) => prepareSuggestions(path, parentPath, nodes))\n .then((suggestions) => (customFilter ? customFilter(suggestions) : suggestions));\n}\n\nexport function filterByCurrentPath(currentPath, suggestions) {\n const path = currentPath.toLowerCase();\n\n return _.filter(suggestions, (child) => {\n const hasPartOfPath = child.path.startsWith(path);\n const isShowCurrentChild = child.path !== path || child.type === 'map_node';\n\n return hasPartOfPath && isShowCurrentChild;\n });\n}\n\nexport function getNextSelectedIndex(suggestion, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === suggestion.length - 1) {\n return 0;\n }\n\n return selectedIndex + 1;\n}\n\nexport function getPrevSelectedIndex(suggestions, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === 0) {\n return suggestions.length - 1;\n }\n\n return selectedIndex - 1;\n}\n\nexport function getCompletedPath(suggestion) {\n return suggestion.type === 'map_node' ? suggestion.path + '/' : suggestion.path;\n}\n\nexport function getIconNameForType(type, targetPathBroken) {\n const icons = {\n document: 'file-alt',\n string_node: 'file-alt',\n int64_node: 'file-alt',\n uint64_node: 'file-alt',\n double_node: 'file-alt',\n boolean_node: 'file-alt',\n map_node: 'folder',\n scheduler_pool_tree_map: 'folder-tree',\n scheduler_pool: 'tasks',\n tablet_cell: 'th',\n journal: 'book',\n table: 'th',\n table_dynamic: 'dyn-th',\n replicated_table: 'th',\n chaos_replicated_table: 'chaos-replicated-table',\n replication_log_table: 'replication-log-table',\n file: 'file',\n topmost_transaction_map: 'folder',\n transaction_map: 'folder',\n transaction: 'code-branch',\n nested_transaction: 'code-branch',\n link: ypath.getBoolean(targetPathBroken) ? 'unlink' : 'link',\n portal_entrance: 'link',\n cell_node: 'circle',\n cell_node_map: 'far circle',\n sys_node: 'cog',\n access_control_object_namespace_map: 'acl-namespace-map',\n access_control_object_namespace: 'acl-namespace',\n access_control_object: 'acl-object',\n };\n\n const icon = type ? icons[type] || 'not-suported' : 'eye-slash';\n\n return icon;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_unipika","_interopRequireDefault","require","_ypath","_cancelHelper","_rumWrapApi","obj","__esModule","default","pathEditorRequests","exports","CancelHelper","prepareSuggestions","initialPath","parentPath","children","suggestions","_map","child","prepared","childPath","unipika","decode","ypath","getValue","path","type","dynamic","targetPathBroken","_sortBy","preparePath","currentPath","YPath","create","toSubpath","stringify","loadSuggestions","customFilter","ytApiV3Id","list","YTApiId","pathEditorLoadSuggestions","parameters","attributes","cancellation","saveCancelToken","then","nodes","filterByCurrentPath","toLowerCase","_filter","hasPartOfPath","startsWith","isShowCurrentChild","getNextSelectedIndex","suggestion","selectedIndex","length","getPrevSelectedIndex","getCompletedPath","getIconNameForType","icons","document","string_node","int64_node","uint64_node","double_node","boolean_node","map_node","scheduler_pool_tree_map","scheduler_pool","tablet_cell","journal","table","table_dynamic","replicated_table","chaos_replicated_table","replication_log_table","file","topmost_transaction_map","transaction_map","transaction","nested_transaction","link","getBoolean","rootstock","portal_entrance","cell_node","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","icon"],"sources":["path-editor.js"],"sourcesContent":["import _ from 'lodash';\nimport unipika from '../../common/thor/unipika';\nimport ypath from '../../common/thor/ypath';\n\nimport CancelHelper from '../cancel-helper';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\nexport const pathEditorRequests = new CancelHelper();\n\nfunction prepareSuggestions(initialPath, parentPath, children) {\n let suggestions = _.map(children, (child) => {\n const prepared = {};\n\n prepared.parentPath = parentPath;\n prepared.childPath = '/' + unipika.decode(ypath.getValue(child));\n prepared.path = prepared.parentPath + prepared.childPath;\n prepared.type = ypath.getValue(child, '/@type');\n prepared.dynamic = ypath.getValue(child, '/@dynamic');\n prepared.targetPathBroken = ypath.getValue(child, '/@broken');\n\n return prepared;\n });\n\n suggestions = _.sortBy(suggestions, 'childPath');\n\n return suggestions;\n}\n\nexport function preparePath(currentPath) {\n return ypath.YPath.create(currentPath, 'absolute').toSubpath(-2).stringify();\n}\n\nexport function loadSuggestions(path, customFilter) {\n const parentPath = preparePath(path);\n\n return ytApiV3Id\n .list(YTApiId.pathEditorLoadSuggestions, {\n parameters: {path: parentPath, attributes: ['type', 'dynamic']},\n cancellation: pathEditorRequests.saveCancelToken,\n })\n .then(ypath.getValue)\n .then((nodes) => prepareSuggestions(path, parentPath, nodes))\n .then((suggestions) => (customFilter ? customFilter(suggestions) : suggestions));\n}\n\nexport function filterByCurrentPath(currentPath, suggestions) {\n const path = currentPath.toLowerCase();\n\n return _.filter(suggestions, (child) => {\n const hasPartOfPath = child.path.startsWith(path);\n const isShowCurrentChild = child.path !== path || child.type === 'map_node';\n\n return hasPartOfPath && isShowCurrentChild;\n });\n}\n\nexport function getNextSelectedIndex(suggestion, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === suggestion.length - 1) {\n return 0;\n }\n\n return selectedIndex + 1;\n}\n\nexport function getPrevSelectedIndex(suggestions, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === 0) {\n return suggestions.length - 1;\n }\n\n return selectedIndex - 1;\n}\n\nexport function getCompletedPath(suggestion) {\n return suggestion.type === 'map_node' ? suggestion.path + '/' : suggestion.path;\n}\n\nexport function getIconNameForType(type, targetPathBroken) {\n const icons = {\n document: 'file-alt',\n string_node: 'file-alt',\n int64_node: 'file-alt',\n uint64_node: 'file-alt',\n double_node: 'file-alt',\n boolean_node: 'file-alt',\n map_node: 'folder',\n scheduler_pool_tree_map: 'folder-tree',\n scheduler_pool: 'tasks',\n tablet_cell: 'th',\n journal: 'book',\n table: 'th',\n table_dynamic: 'dyn-th',\n replicated_table: 'th',\n chaos_replicated_table: 'chaos-replicated-table',\n replication_log_table: 'replication-log-table',\n file: 'file',\n topmost_transaction_map: 'folder',\n transaction_map: 'folder',\n transaction: 'code-branch',\n nested_transaction: 'code-branch',\n link: ypath.getBoolean(targetPathBroken) ? 'unlink' : 'link',\n rootstock: 'link',\n portal_entrance: 'link',\n cell_node: 'circle',\n cell_node_map: 'far circle',\n sys_node: 'cog',\n access_control_object_namespace_map: 'acl-namespace-map',\n access_control_object_namespace: 'acl-namespace',\n access_control_object: 'acl-object',\n };\n\n const icon = type ? icons[type] || 'not-suported' : 'eye-slash';\n\n return icon;\n}\n"],"mappings":"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"}
@@ -51,7 +51,7 @@ export interface YTCoreConfig {
51
51
  * Odin is a service for monitoring the availability of YTsaurus clusters
52
52
  * This parameter sets service base url and enables UI page
53
53
  */
54
- odinBaseUrl?: string;
54
+ odinBaseUrl?: Record<string, string> | string;
55
55
 
56
56
  /**
57
57
  * The OAuthRobot should have read/write access to mapNodePath
@@ -8,6 +8,9 @@ export interface ServerFactory {
8
8
  renderLayout(params: AppLayoutConfig, req: Request, res: Response): Promise<string>;
9
9
  }
10
10
  export declare function rememberApp(v: ExpressKit): void;
11
+ /**
12
+ * @deprecated use req.ctx.config instead of App().config
13
+ */
11
14
  export declare function getApp(): ExpressKit;
12
15
  export declare function configureServerFactory(overrides: Partial<ServerFactory>): void;
13
16
  declare const _default: ServerFactory;
@@ -11,6 +11,10 @@ export function rememberApp(v) {
11
11
  }
12
12
  app = v;
13
13
  }
14
+
15
+ /**
16
+ * @deprecated use req.ctx.config instead of App().config
17
+ */
14
18
  export function getApp() {
15
19
  return app;
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"names":["isLocalClusterId","renderLayout","isLocalModeByEnvironment","app","rememberApp","v","Error","getApp","serverFactory","getExtraRootPages","cluster","getHomeRedirectedUrl","Promise","resolve","undefined","params","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","sent","stop","configureServerFactoryItem","k","redefinition","configureServerFactory","overrides","_forEach","_v","key","Proxy","set"],"sources":["ServerFactory.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport type {ExpressKit} from '@gravity-ui/expresskit';\nimport _ from 'lodash';\nimport {isLocalClusterId} from '../shared/utils';\nimport {ConfigData} from '../shared/yt-types';\nimport renderLayout, {AppLayoutConfig} from './render-layout';\nimport {isLocalModeByEnvironment} from './utils';\n\nexport interface ServerFactory {\n getExtraRootPages(): Array<string>;\n isLocalClusterId(cluster: string): boolean;\n getHomeRedirectedUrl(cluster: string | undefined, req: Request): Promise<string | undefined>;\n renderLayout(params: AppLayoutConfig, req: Request, res: Response): Promise<string>;\n}\n\nlet app: ExpressKit;\n\nexport function rememberApp(v: ExpressKit) {\n if (app) {\n throw new Error('The method must not be called more than once');\n }\n app = v;\n}\n\nexport function getApp() {\n return app!;\n}\n\nconst serverFactory: ServerFactory = {\n getExtraRootPages() {\n return [];\n },\n isLocalClusterId(cluster) {\n return isLocalModeByEnvironment() || isLocalClusterId(cluster);\n },\n getHomeRedirectedUrl() {\n return Promise.resolve(undefined);\n },\n async renderLayout(params) {\n return await renderLayout<ConfigData>(params);\n },\n};\n\nfunction configureServerFactoryItem<K extends keyof ServerFactory>(\n k: K,\n redefinition: ServerFactory[K],\n) {\n serverFactory[k] = redefinition;\n}\n\nexport function configureServerFactory(overrides: Partial<ServerFactory>) {\n _.forEach(overrides, (_v, k) => {\n const key = k as keyof ServerFactory;\n configureServerFactoryItem(key, overrides[key]!);\n });\n}\n\nexport default new Proxy(serverFactory, {\n set: () => {\n throw new Error('Use configureUIFactory(...) method instead of direct modifications');\n },\n});\n"],"mappings":";;;AAGA,SAAQA,gBAAgB,IAAhBA,iBAAgB,QAAO,iBAAiB;AAEhD,OAAOC,aAAY,MAAyB,iBAAiB;AAC7D,SAAQC,wBAAwB,QAAO,SAAS;AAShD,IAAIC,GAAe;AAEnB,OAAO,SAASC,WAAWA,CAACC,CAAa,EAAE;EACvC,IAAIF,GAAG,EAAE;IACL,MAAM,IAAIG,KAAK,CAAC,8CAA8C,CAAC;EACnE;EACAH,GAAG,GAAGE,CAAC;AACX;AAEA,OAAO,SAASE,MAAMA,CAAA,EAAG;EACrB,OAAOJ,GAAG;AACd;AAEA,IAAMK,aAA4B,GAAG;EACjCC,iBAAiB,WAAAA,kBAAA,EAAG;IAChB,OAAO,EAAE;EACb,CAAC;EACDT,gBAAgB,WAAAA,iBAACU,OAAO,EAAE;IACtB,OAAOR,wBAAwB,CAAC,CAAC,IAAIF,iBAAgB,CAACU,OAAO,CAAC;EAClE,CAAC;EACDC,oBAAoB,WAAAA,qBAAA,EAAG;IACnB,OAAOC,OAAO,CAACC,OAAO,CAACC,SAAS,CAAC;EACrC,CAAC;EACKb,YAAY,WAAAA,aAACc,MAAM,EAAE;IAAA,OAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,UAAAC,QAAA;MAAA,OAAAF,mBAAA,CAAAG,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACVvB,aAAY,CAAac,MAAM,CAAC;UAAA;YAAA,OAAAO,QAAA,CAAAG,MAAA,WAAAH,QAAA,CAAAI,IAAA;UAAA;UAAA;YAAA,OAAAJ,QAAA,CAAAK,IAAA;QAAA;MAAA,GAAAR,OAAA;IAAA;EACjD;AACJ,CAAC;AAED,SAASS,0BAA0BA,CAC/BC,CAAI,EACJC,YAA8B,EAChC;EACEtB,aAAa,CAACqB,CAAC,CAAC,GAAGC,YAAY;AACnC;AAEA,OAAO,SAASC,sBAAsBA,CAACC,SAAiC,EAAE;EACtEC,QAAA,CAAUD,SAAS,EAAE,UAACE,EAAE,EAAEL,CAAC,EAAK;IAC5B,IAAMM,GAAG,GAAGN,CAAwB;IACpCD,0BAA0B,CAACO,GAAG,EAAEH,SAAS,CAACG,GAAG,CAAE,CAAC;EACpD,CAAC,CAAC;AACN;AAEA,eAAe,IAAIC,KAAK,CAAC5B,aAAa,EAAE;EACpC6B,GAAG,EAAE,SAAAA,IAAA,EAAM;IACP,MAAM,IAAI/B,KAAK,CAAC,oEAAoE,CAAC;EACzF;AACJ,CAAC,CAAC"}
1
+ {"version":3,"names":["isLocalClusterId","renderLayout","isLocalModeByEnvironment","app","rememberApp","v","Error","getApp","serverFactory","getExtraRootPages","cluster","getHomeRedirectedUrl","Promise","resolve","undefined","params","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","sent","stop","configureServerFactoryItem","k","redefinition","configureServerFactory","overrides","_forEach","_v","key","Proxy","set"],"sources":["ServerFactory.ts"],"sourcesContent":["import type {Request, Response} from 'express';\nimport type {ExpressKit} from '@gravity-ui/expresskit';\nimport _ from 'lodash';\nimport {isLocalClusterId} from '../shared/utils';\nimport {ConfigData} from '../shared/yt-types';\nimport renderLayout, {AppLayoutConfig} from './render-layout';\nimport {isLocalModeByEnvironment} from './utils';\n\nexport interface ServerFactory {\n getExtraRootPages(): Array<string>;\n isLocalClusterId(cluster: string): boolean;\n getHomeRedirectedUrl(cluster: string | undefined, req: Request): Promise<string | undefined>;\n renderLayout(params: AppLayoutConfig, req: Request, res: Response): Promise<string>;\n}\n\nlet app: ExpressKit;\n\nexport function rememberApp(v: ExpressKit) {\n if (app) {\n throw new Error('The method must not be called more than once');\n }\n app = v;\n}\n\n/**\n * @deprecated use req.ctx.config instead of App().config\n */\nexport function getApp() {\n return app!;\n}\n\nconst serverFactory: ServerFactory = {\n getExtraRootPages() {\n return [];\n },\n isLocalClusterId(cluster) {\n return isLocalModeByEnvironment() || isLocalClusterId(cluster);\n },\n getHomeRedirectedUrl() {\n return Promise.resolve(undefined);\n },\n async renderLayout(params) {\n return await renderLayout<ConfigData>(params);\n },\n};\n\nfunction configureServerFactoryItem<K extends keyof ServerFactory>(\n k: K,\n redefinition: ServerFactory[K],\n) {\n serverFactory[k] = redefinition;\n}\n\nexport function configureServerFactory(overrides: Partial<ServerFactory>) {\n _.forEach(overrides, (_v, k) => {\n const key = k as keyof ServerFactory;\n configureServerFactoryItem(key, overrides[key]!);\n });\n}\n\nexport default new Proxy(serverFactory, {\n set: () => {\n throw new Error('Use configureUIFactory(...) method instead of direct modifications');\n },\n});\n"],"mappings":";;;AAGA,SAAQA,gBAAgB,IAAhBA,iBAAgB,QAAO,iBAAiB;AAEhD,OAAOC,aAAY,MAAyB,iBAAiB;AAC7D,SAAQC,wBAAwB,QAAO,SAAS;AAShD,IAAIC,GAAe;AAEnB,OAAO,SAASC,WAAWA,CAACC,CAAa,EAAE;EACvC,IAAIF,GAAG,EAAE;IACL,MAAM,IAAIG,KAAK,CAAC,8CAA8C,CAAC;EACnE;EACAH,GAAG,GAAGE,CAAC;AACX;;AAEA;AACA;AACA;AACA,OAAO,SAASE,MAAMA,CAAA,EAAG;EACrB,OAAOJ,GAAG;AACd;AAEA,IAAMK,aAA4B,GAAG;EACjCC,iBAAiB,WAAAA,kBAAA,EAAG;IAChB,OAAO,EAAE;EACb,CAAC;EACDT,gBAAgB,WAAAA,iBAACU,OAAO,EAAE;IACtB,OAAOR,wBAAwB,CAAC,CAAC,IAAIF,iBAAgB,CAACU,OAAO,CAAC;EAClE,CAAC;EACDC,oBAAoB,WAAAA,qBAAA,EAAG;IACnB,OAAOC,OAAO,CAACC,OAAO,CAACC,SAAS,CAAC;EACrC,CAAC;EACKb,YAAY,WAAAA,aAACc,MAAM,EAAE;IAAA,OAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,UAAAC,QAAA;MAAA,OAAAF,mBAAA,CAAAG,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACVvB,aAAY,CAAac,MAAM,CAAC;UAAA;YAAA,OAAAO,QAAA,CAAAG,MAAA,WAAAH,QAAA,CAAAI,IAAA;UAAA;UAAA;YAAA,OAAAJ,QAAA,CAAAK,IAAA;QAAA;MAAA,GAAAR,OAAA;IAAA;EACjD;AACJ,CAAC;AAED,SAASS,0BAA0BA,CAC/BC,CAAI,EACJC,YAA8B,EAChC;EACEtB,aAAa,CAACqB,CAAC,CAAC,GAAGC,YAAY;AACnC;AAEA,OAAO,SAASC,sBAAsBA,CAACC,SAAiC,EAAE;EACtEC,QAAA,CAAUD,SAAS,EAAE,UAACE,EAAE,EAAEL,CAAC,EAAK;IAC5B,IAAMM,GAAG,GAAGN,CAAwB;IACpCD,0BAA0B,CAACO,GAAG,EAAEH,SAAS,CAACG,GAAG,CAAE,CAAC;EACpD,CAAC,CAAC;AACN;AAEA,eAAe,IAAIC,KAAK,CAAC5B,aAAa,EAAE;EACpC6B,GAAG,EAAE,SAAAA,IAAA,EAAM;IACP,MAAM,IAAI/B,KAAK,CAAC,oEAAoE,CAAC;EACzF;AACJ,CAAC,CAAC"}
@@ -4,7 +4,6 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
  import axios from 'axios';
5
5
  import { getClustersFromConfig } from '../components/utils';
6
6
  import { sendAndLogError, sendError, sendResponse } from '../utils';
7
- import { getApp } from '../ServerFactory';
8
7
  function getClusterAvailability(clusterConfig, odinPath) {
9
8
  var ODIN_PERIOD = 5;
10
9
  var ODIN_METRIC = 'master';
@@ -22,31 +21,53 @@ function getClusterAvailability(clusterConfig, odinPath) {
22
21
  return response.data;
23
22
  });
24
23
  }
25
- function getAvailability(req, clusters, odinPath) {
26
- var url = "".concat(odinPath, "/is_alive");
27
- return axios.request({
28
- url: url,
29
- responseType: 'json'
30
- }).then(function (res) {
31
- if (res.data !== true) {
24
+ function getAvailability(req, clusters) {
25
+ var odinBaseUrl = req.ctx.config.odinBaseUrl;
26
+ var isMultiOdinBaseUrl = 'string' !== typeof odinBaseUrl;
27
+ var makeOdinIsAliveUrl = function makeOdinIsAliveUrl(odinBaseUrl) {
28
+ return "".concat(odinBaseUrl, "/is_alive");
29
+ };
30
+ var commonIsAlive = isMultiOdinBaseUrl ? Promise.resolve({
31
+ data: true
32
+ }) : axios.request({
33
+ url: makeOdinIsAliveUrl(odinBaseUrl)
34
+ });
35
+ return commonIsAlive.then(function (_ref) {
36
+ var commonAlive = _ref.data;
37
+ if (!commonAlive) {
32
38
  return [];
33
39
  }
34
40
  return Promise.all(_map(clusters, function (clusterConfig) {
35
- var id = clusterConfig.id;
36
- return getClusterAvailability(clusterConfig, odinPath).then(function (availability) {
37
- return {
38
- id: id,
39
- availability: availability
40
- };
41
- })["catch"](function (error) {
42
- req.ctx.logError('getAvailability error', error);
41
+ var odinPath = isMultiOdinBaseUrl ? odinBaseUrl === null || odinBaseUrl === void 0 ? void 0 : odinBaseUrl[clusterConfig.id] : odinBaseUrl;
42
+ if (!odinPath) {
43
+ return {};
44
+ }
45
+ var alive = isMultiOdinBaseUrl ? axios.get(makeOdinIsAliveUrl(odinPath))["catch"](function (e) {
46
+ req.ctx.logError("Error of getting ".concat(odinPath), e);
43
47
  return {
44
- id: id
48
+ data: false
45
49
  };
50
+ }) : Promise.resolve({
51
+ data: true
52
+ });
53
+ return alive.then(function (_ref2) {
54
+ var data = _ref2.data;
55
+ if (data != true) {
56
+ return {};
57
+ }
58
+ return getClusterAvailability(clusterConfig, odinPath).then(function (availability) {
59
+ return {
60
+ id: clusterConfig.id,
61
+ availability: availability
62
+ };
63
+ })["catch"](function (error) {
64
+ req.ctx.logError('getAvailability error', error);
65
+ return {};
66
+ });
46
67
  });
47
68
  }));
48
69
  })["catch"](function (e) {
49
- req.ctx.logError("Error of getting ".concat(url), e);
70
+ req.ctx.logError("Error of getting ".concat(odinBaseUrl), e);
50
71
  return [];
51
72
  });
52
73
  }
@@ -55,13 +76,12 @@ export function getClustersAvailability(_x, _x2) {
55
76
  }
56
77
  function _getClustersAvailability() {
57
78
  _getClustersAvailability = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, res) {
58
- var _getApp$config;
59
- var odinPath, clusters;
79
+ var odinBaseUrl, clusters;
60
80
  return _regeneratorRuntime.wrap(function _callee$(_context) {
61
81
  while (1) switch (_context.prev = _context.next) {
62
82
  case 0:
63
- odinPath = (_getApp$config = getApp().config) === null || _getApp$config === void 0 ? void 0 : _getApp$config.odinBaseUrl;
64
- if (odinPath) {
83
+ odinBaseUrl = req.ctx.config.odinBaseUrl;
84
+ if (odinBaseUrl) {
65
85
  _context.next = 4;
66
86
  break;
67
87
  }
@@ -70,7 +90,7 @@ function _getClustersAvailability() {
70
90
  case 4:
71
91
  clusters = getClustersFromConfig();
72
92
  _context.next = 7;
73
- return getAvailability(req, clusters, odinPath).then(function (data) {
93
+ return getAvailability(req, clusters).then(function (data) {
74
94
  return sendResponse(res, data);
75
95
  })["catch"](function (error) {
76
96
  return sendError(res, error);
@@ -1 +1 @@
1
- {"version":3,"names":["axios","getClustersFromConfig","sendAndLogError","sendError","sendResponse","getApp","getClusterAvailability","clusterConfig","odinPath","ODIN_PERIOD","ODIN_METRIC","TIMEOUT","request","url","id","params","period","target","method","timeout","responseType","then","response","data","getAvailability","req","clusters","concat","res","Promise","all","_map","availability","error","ctx","logError","e","getClustersAvailability","_x","_x2","_getClustersAvailability","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_getApp$config","wrap","_callee$","_context","prev","next","config","odinBaseUrl","Error","abrupt","stop"],"sources":["availability.ts"],"sourcesContent":["import axios, {AxiosResponse} from 'axios';\nimport _ from 'lodash';\nimport type {Request, Response} from '@gravity-ui/expresskit';\nimport {getClustersFromConfig} from '../components/utils';\nimport {sendAndLogError, sendError, sendResponse} from '../utils';\nimport {getApp} from '../ServerFactory';\n\nfunction getClusterAvailability(clusterConfig: {id: string}, odinPath: string) {\n const ODIN_PERIOD = 5;\n const ODIN_METRIC = 'master';\n const TIMEOUT = 15 * 1000;\n\n return axios\n .request({\n url: odinPath + '/availability_stat/' + clusterConfig.id,\n params: {\n period: ODIN_PERIOD,\n target: ODIN_METRIC,\n },\n method: 'GET',\n timeout: TIMEOUT,\n responseType: 'json',\n })\n .then((response: AxiosResponse<1 | undefined>) => {\n return response.data;\n });\n}\n\nfunction getAvailability(req: Request, clusters: Record<string, {id: string}>, odinPath: string) {\n const url = `${odinPath}/is_alive`;\n return axios\n .request({url, responseType: 'json'})\n .then((res) => {\n if (res.data !== true) {\n return [];\n }\n return Promise.all(\n _.map(clusters, (clusterConfig) => {\n const id = clusterConfig.id;\n return getClusterAvailability(clusterConfig, odinPath)\n .then((availability) => ({id, availability}))\n .catch((error) => {\n req.ctx.logError('getAvailability error', error);\n return {id};\n });\n }),\n );\n })\n .catch((e) => {\n req.ctx.logError(`Error of getting ${url}`, e);\n return [];\n });\n}\n\nexport async function getClustersAvailability(req: Request, res: Response) {\n const odinPath = getApp().config?.odinBaseUrl;\n if (!odinPath) {\n sendAndLogError(req.ctx, res, 500, new Error('odin base url is not configured'));\n return;\n }\n const clusters = getClustersFromConfig();\n\n await getAvailability(req, clusters, odinPath)\n .then((data: object) => sendResponse(res, data))\n .catch((error) => sendError(res, error));\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["axios","getClustersFromConfig","sendAndLogError","sendError","sendResponse","getClusterAvailability","clusterConfig","odinPath","ODIN_PERIOD","ODIN_METRIC","TIMEOUT","request","url","id","params","period","target","method","timeout","responseType","then","response","data","getAvailability","req","clusters","odinBaseUrl","ctx","config","isMultiOdinBaseUrl","makeOdinIsAliveUrl","concat","commonIsAlive","Promise","resolve","_ref","commonAlive","all","_map","alive","get","e","logError","_ref2","availability","error","getClustersAvailability","_x","_x2","_getClustersAvailability","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","res","wrap","_callee$","_context","prev","next","Error","abrupt","stop"],"sources":["availability.ts"],"sourcesContent":["import axios, {AxiosResponse} from 'axios';\nimport _ from 'lodash';\nimport type {Request, Response} from '@gravity-ui/expresskit';\nimport {getClustersFromConfig} from '../components/utils';\nimport {sendAndLogError, sendError, sendResponse} from '../utils';\n\nfunction getClusterAvailability(clusterConfig: {id: string}, odinPath: string) {\n const ODIN_PERIOD = 5;\n const ODIN_METRIC = 'master';\n const TIMEOUT = 15 * 1000;\n\n return axios\n .request({\n url: odinPath + '/availability_stat/' + clusterConfig.id,\n params: {\n period: ODIN_PERIOD,\n target: ODIN_METRIC,\n },\n method: 'GET',\n timeout: TIMEOUT,\n responseType: 'json',\n })\n .then((response: AxiosResponse<1 | undefined>) => {\n return response.data;\n });\n}\n\nfunction getAvailability(req: Request, clusters: Record<string, {id: string}>) {\n const odinBaseUrl = req.ctx.config.odinBaseUrl;\n const isMultiOdinBaseUrl = 'string' !== typeof odinBaseUrl;\n const makeOdinIsAliveUrl = (odinBaseUrl: string) => `${odinBaseUrl}/is_alive`;\n\n const commonIsAlive = isMultiOdinBaseUrl\n ? Promise.resolve({data: true})\n : axios.request({url: makeOdinIsAliveUrl(odinBaseUrl)});\n\n return commonIsAlive\n .then(({data: commonAlive}) => {\n if (!commonAlive) {\n return [];\n }\n\n return Promise.all(\n _.map(clusters, (clusterConfig) => {\n const odinPath = isMultiOdinBaseUrl\n ? odinBaseUrl?.[clusterConfig.id]\n : odinBaseUrl;\n\n if (!odinPath) {\n return {};\n }\n\n const alive = isMultiOdinBaseUrl\n ? axios.get(makeOdinIsAliveUrl(odinPath)).catch((e) => {\n req.ctx.logError(`Error of getting ${odinPath}`, e);\n return {data: false};\n })\n : Promise.resolve({data: true});\n\n return alive.then(({data}) => {\n if (data != true) {\n return {};\n }\n\n return getClusterAvailability(clusterConfig, odinPath)\n .then((availability) => ({id: clusterConfig.id, availability}))\n .catch((error) => {\n req.ctx.logError('getAvailability error', error);\n return {};\n });\n });\n }),\n );\n })\n .catch((e) => {\n req.ctx.logError(`Error of getting ${odinBaseUrl}`, e);\n return [];\n });\n}\n\nexport async function getClustersAvailability(req: Request, res: Response) {\n const odinBaseUrl = req.ctx.config.odinBaseUrl;\n\n if (!odinBaseUrl) {\n sendAndLogError(req.ctx, res, 500, new Error('odin base url is not configured'));\n return;\n }\n const clusters = getClustersFromConfig();\n\n await getAvailability(req, clusters)\n .then((data: object) => sendResponse(res, data))\n .catch((error) => sendError(res, error));\n}\n"],"mappings":"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"}
@@ -6,7 +6,6 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
6
6
  import axios from 'axios';
7
7
  import qs from 'qs';
8
8
  import { UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError } from '../utils';
9
- import { getApp } from '../ServerFactory';
10
9
  export function odinProxyApi(_x, _x2) {
11
10
  return _odinProxyApi.apply(this, arguments);
12
11
  }
@@ -43,32 +42,32 @@ function odinProxyApiImpl(_x3, _x4) {
43
42
  }
44
43
  function _odinProxyApiImpl() {
45
44
  _odinProxyApiImpl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(req, res) {
46
- var _getApp$config;
47
- var odinPath, ctx, query, search, _req$params, action, cluster, allowedActionsUrls, url;
45
+ var _req$params, action, cluster, odinBaseUrl, odinPath, ctx, query, search, allowedActionsUrls, url;
48
46
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
49
47
  while (1) switch (_context3.prev = _context3.next) {
50
48
  case 0:
51
- odinPath = (_getApp$config = getApp().config) === null || _getApp$config === void 0 ? void 0 : _getApp$config.odinBaseUrl;
49
+ _req$params = req.params, action = _req$params.action, cluster = _req$params.ytAuthCluster;
50
+ odinBaseUrl = req.ctx.config.odinBaseUrl;
51
+ odinPath = typeof odinBaseUrl === 'string' ? odinBaseUrl : odinBaseUrl === null || odinBaseUrl === void 0 ? void 0 : odinBaseUrl[cluster];
52
52
  if (odinPath) {
53
- _context3.next = 3;
53
+ _context3.next = 5;
54
54
  break;
55
55
  }
56
56
  return _context3.abrupt("return", sendAndLogError(req.ctx, res, 500, new Error('Odin base url is not configured')));
57
- case 3:
57
+ case 5:
58
58
  ctx = req.ctx, query = req.query;
59
59
  search = _isEmpty(query) ? '' : "?".concat(qs.stringify(query));
60
- _req$params = req.params, action = _req$params.action, cluster = _req$params.ytAuthCluster;
61
60
  allowedActionsUrls = {
62
61
  service_list: "".concat(odinPath, "/service_list"),
63
62
  exists: "".concat(odinPath, "/").concat(action, "/").concat(cluster),
64
63
  availability: "".concat(odinPath, "/").concat(action, "/").concat(cluster).concat(search)
65
64
  };
66
65
  if (_has(allowedActionsUrls, action)) {
67
- _context3.next = 9;
66
+ _context3.next = 10;
68
67
  break;
69
68
  }
70
69
  return _context3.abrupt("return", sendAndLogError(req.ctx, res, 400, new Error("Odin action - ".concat(action, ", is not supported"))));
71
- case 9:
70
+ case 10:
72
71
  url = allowedActionsUrls[action];
73
72
  return _context3.abrupt("return", axios.request({
74
73
  url: url,
@@ -104,7 +103,7 @@ function _odinProxyApiImpl() {
104
103
  return _ref.apply(this, arguments);
105
104
  };
106
105
  }()));
107
- case 11:
106
+ case 12:
108
107
  case "end":
109
108
  return _context3.stop();
110
109
  }
@@ -1 +1 @@
1
- {"version":3,"names":["axios","qs","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","getApp","odinProxyApi","_x","_x2","_odinProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","odinProxyApiImpl","t0","ctx","method","query","page","headers","referer","stop","_x3","_x4","_odinProxyApiImpl","_callee3","_getApp$config","odinPath","search","_req$params","action","cluster","allowedActionsUrls","url","_callee3$","_context3","config","odinBaseUrl","abrupt","Error","_isEmpty","concat","stringify","params","ytAuthCluster","service_list","exists","availability","_has","request","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","sent","_x5"],"sources":["odin-proxy-api.ts"],"sourcesContent":["import _ from 'lodash';\nimport axios from 'axios';\nimport qs from 'qs';\n\nimport type {Request, Response} from 'express';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\nimport {getApp} from '../ServerFactory';\n\nexport async function odinProxyApi(req: Request, res: Response) {\n try {\n await odinProxyApiImpl(req, res);\n } catch (e: any) {\n await sendAndLogError(req.ctx, res, 500, e, {\n method: 'nodejs',\n query: req.query,\n page: req.headers.referer,\n });\n }\n}\n\nasync function odinProxyApiImpl(req: Request, res: Response) {\n const odinPath = getApp().config?.odinBaseUrl;\n if (!odinPath) {\n return sendAndLogError(req.ctx, res, 500, new Error('Odin base url is not configured'));\n }\n const {ctx, query} = req;\n\n const search = _.isEmpty(query) ? '' : `?${qs.stringify(query)}`;\n const {action, ytAuthCluster: cluster} = req.params;\n\n const allowedActionsUrls: Record<string, string> = {\n service_list: `${odinPath}/service_list`,\n exists: `${odinPath}/${action}/${cluster}`,\n availability: `${odinPath}/${action}/${cluster}${search}`,\n };\n\n if (!_.has(allowedActionsUrls, action)) {\n return sendAndLogError(\n req.ctx,\n res,\n 400,\n new Error(`Odin action - ${action}, is not supported`),\n );\n }\n\n const url = allowedActionsUrls[action];\n\n return axios\n .request({\n url: url,\n method: req.method as any,\n headers: {...ctx.getMetadata(), 'accept-encoding': 'gzip'},\n data: req.body,\n timeout: 100000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(ctx, res, response);\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["axios","qs","UNEXPECTED_PIPE_AXIOS_RESPONSE","pipeAxiosResponse","sendAndLogError","odinProxyApi","_x","_x2","_odinProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","odinProxyApiImpl","t0","ctx","method","query","page","headers","referer","stop","_x3","_x4","_odinProxyApiImpl","_callee3","_req$params","action","cluster","odinBaseUrl","odinPath","search","allowedActionsUrls","url","_callee3$","_context3","params","ytAuthCluster","config","abrupt","Error","_isEmpty","concat","stringify","service_list","exists","availability","_has","request","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","sent","_x5"],"sources":["odin-proxy-api.ts"],"sourcesContent":["import _ from 'lodash';\nimport axios from 'axios';\nimport qs from 'qs';\n\nimport type {Request, Response} from 'express';\nimport {UNEXPECTED_PIPE_AXIOS_RESPONSE, pipeAxiosResponse, sendAndLogError} from '../utils';\n\nexport async function odinProxyApi(req: Request, res: Response) {\n try {\n await odinProxyApiImpl(req, res);\n } catch (e: any) {\n await sendAndLogError(req.ctx, res, 500, e, {\n method: 'nodejs',\n query: req.query,\n page: req.headers.referer,\n });\n }\n}\n\nasync function odinProxyApiImpl(req: Request, res: Response) {\n const {action, ytAuthCluster: cluster} = req.params;\n const {odinBaseUrl} = req.ctx.config;\n const odinPath = typeof odinBaseUrl === 'string' ? odinBaseUrl : odinBaseUrl?.[cluster];\n\n if (!odinPath) {\n return sendAndLogError(req.ctx, res, 500, new Error('Odin base url is not configured'));\n }\n const {ctx, query} = req;\n\n const search = _.isEmpty(query) ? '' : `?${qs.stringify(query)}`;\n\n const allowedActionsUrls: Record<string, string> = {\n service_list: `${odinPath}/service_list`,\n exists: `${odinPath}/${action}/${cluster}`,\n availability: `${odinPath}/${action}/${cluster}${search}`,\n };\n\n if (!_.has(allowedActionsUrls, action)) {\n return sendAndLogError(\n req.ctx,\n res,\n 400,\n new Error(`Odin action - ${action}, is not supported`),\n );\n }\n\n const url = allowedActionsUrls[action];\n\n return axios\n .request({\n url: url,\n method: req.method as any,\n headers: {...ctx.getMetadata(), 'accept-encoding': 'gzip'},\n data: req.body,\n timeout: 100000,\n responseType: 'stream',\n })\n .then(async (response) => {\n const pipedSize = await pipeAxiosResponse(ctx, res, response);\n if (!pipedSize) {\n throw new Error(UNEXPECTED_PIPE_AXIOS_RESPONSE);\n }\n });\n}\n"],"mappings":"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"}
@@ -12,6 +12,8 @@ var supportedContentTypes = {
12
12
  map_node: MapNode,
13
13
  portal_entrance: MapNode,
14
14
  portal_exit: MapNode,
15
+ rootstock: MapNode,
16
+ scion: MapNode,
15
17
  cell_node_map: MapNode,
16
18
  sys_node: MapNode,
17
19
  access_control_object_namespace_map: MapNode,
@@ -1 +1 @@
1
- {"version":3,"names":["AccessAclTab","ReplicatedTable","ReplicatedTableMeta","Link","File","Table","MapNode","Document","Transaction","TransactionMap","supportedContentTypes","map_node","portal_entrance","portal_exit","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","tablet_cell","scheduler_pool_tree_map","scheduler_pool","document","string_node","int64_node","uint64_node","double_node","boolean_node","link","file","table","replicated_table","chaos_replicated_table","replication_log_table","transaction","nested_transaction","topmost_transaction_map","transaction_map","type"],"sources":["getComponentByContentType.ts"],"sourcesContent":["import {AccessAclTab} from '../../../tabs/ACL/ACL';\nimport ReplicatedTable from '../../../../../pages/navigation/content/ReplicatedTable/ReplicatedTable';\nimport ReplicatedTableMeta from '../../../content/ReplicatedTable/ReplicatedTableMeta';\n\nimport Link from '../../../../../pages/navigation/content/Link/Link';\nimport File from '../../../../../pages/navigation/content/File/File';\nimport Table from '../../../../../pages/navigation/content/Table/Table';\nimport MapNode from '../../../../../pages/navigation/content/MapNode/MapNode';\nimport Document from '../../../content/Document/DocumentWithRum';\nimport Transaction from '../../../../../pages/navigation/content/Transaction/Transaction';\nimport TransactionMap from '../../../../../pages/navigation/content/TransactionMap/TransactionMap';\n\nconst supportedContentTypes = {\n map_node: MapNode,\n portal_entrance: MapNode,\n portal_exit: MapNode,\n cell_node_map: MapNode,\n sys_node: MapNode,\n access_control_object_namespace_map: MapNode,\n access_control_object_namespace: MapNode,\n access_control_object: AccessAclTab,\n tablet_cell: MapNode,\n scheduler_pool_tree_map: MapNode,\n scheduler_pool: MapNode,\n document: Document,\n string_node: Document,\n int64_node: Document,\n uint64_node: Document,\n double_node: Document,\n boolean_node: Document,\n link: Link,\n file: File,\n table: Table,\n replicated_table: ReplicatedTable,\n chaos_replicated_table: ReplicatedTable,\n replication_log_table: ReplicatedTableMeta,\n transaction: Transaction,\n nested_transaction: Transaction,\n topmost_transaction_map: TransactionMap,\n transaction_map: TransactionMap,\n};\n\nexport default (type: string) => supportedContentTypes[type as keyof typeof supportedContentTypes];\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,uBAAuB;AAClD,OAAOC,eAAe,MAAM,yEAAyE;AACrG,OAAOC,mBAAmB,MAAM,sDAAsD;AAEtF,OAAOC,IAAI,MAAM,mDAAmD;AACpE,OAAOC,IAAI,MAAM,mDAAmD;AACpE,OAAOC,KAAK,MAAM,qDAAqD;AACvE,OAAOC,OAAO,MAAM,yDAAyD;AAC7E,OAAOC,QAAQ,MAAM,2CAA2C;AAChE,OAAOC,WAAW,MAAM,iEAAiE;AACzF,OAAOC,cAAc,MAAM,uEAAuE;AAElG,IAAMC,qBAAqB,GAAG;EAC1BC,QAAQ,EAAEL,OAAO;EACjBM,eAAe,EAAEN,OAAO;EACxBO,WAAW,EAAEP,OAAO;EACpBQ,aAAa,EAAER,OAAO;EACtBS,QAAQ,EAAET,OAAO;EACjBU,mCAAmC,EAAEV,OAAO;EAC5CW,+BAA+B,EAAEX,OAAO;EACxCY,qBAAqB,EAAElB,YAAY;EACnCmB,WAAW,EAAEb,OAAO;EACpBc,uBAAuB,EAAEd,OAAO;EAChCe,cAAc,EAAEf,OAAO;EACvBgB,QAAQ,EAAEf,QAAQ;EAClBgB,WAAW,EAAEhB,QAAQ;EACrBiB,UAAU,EAAEjB,QAAQ;EACpBkB,WAAW,EAAElB,QAAQ;EACrBmB,WAAW,EAAEnB,QAAQ;EACrBoB,YAAY,EAAEpB,QAAQ;EACtBqB,IAAI,EAAEzB,IAAI;EACV0B,IAAI,EAAEzB,IAAI;EACV0B,KAAK,EAAEzB,KAAK;EACZ0B,gBAAgB,EAAE9B,eAAe;EACjC+B,sBAAsB,EAAE/B,eAAe;EACvCgC,qBAAqB,EAAE/B,mBAAmB;EAC1CgC,WAAW,EAAE1B,WAAW;EACxB2B,kBAAkB,EAAE3B,WAAW;EAC/B4B,uBAAuB,EAAE3B,cAAc;EACvC4B,eAAe,EAAE5B;AACrB,CAAC;AAED,gBAAe,UAAC6B,IAAY;EAAA,OAAK5B,qBAAqB,CAAC4B,IAAI,CAAuC;AAAA"}
1
+ {"version":3,"names":["AccessAclTab","ReplicatedTable","ReplicatedTableMeta","Link","File","Table","MapNode","Document","Transaction","TransactionMap","supportedContentTypes","map_node","portal_entrance","portal_exit","rootstock","scion","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","tablet_cell","scheduler_pool_tree_map","scheduler_pool","document","string_node","int64_node","uint64_node","double_node","boolean_node","link","file","table","replicated_table","chaos_replicated_table","replication_log_table","transaction","nested_transaction","topmost_transaction_map","transaction_map","type"],"sources":["getComponentByContentType.ts"],"sourcesContent":["import {AccessAclTab} from '../../../tabs/ACL/ACL';\nimport ReplicatedTable from '../../../../../pages/navigation/content/ReplicatedTable/ReplicatedTable';\nimport ReplicatedTableMeta from '../../../content/ReplicatedTable/ReplicatedTableMeta';\n\nimport Link from '../../../../../pages/navigation/content/Link/Link';\nimport File from '../../../../../pages/navigation/content/File/File';\nimport Table from '../../../../../pages/navigation/content/Table/Table';\nimport MapNode from '../../../../../pages/navigation/content/MapNode/MapNode';\nimport Document from '../../../content/Document/DocumentWithRum';\nimport Transaction from '../../../../../pages/navigation/content/Transaction/Transaction';\nimport TransactionMap from '../../../../../pages/navigation/content/TransactionMap/TransactionMap';\n\nconst supportedContentTypes = {\n map_node: MapNode,\n portal_entrance: MapNode,\n portal_exit: MapNode,\n rootstock: MapNode,\n scion: MapNode,\n cell_node_map: MapNode,\n sys_node: MapNode,\n access_control_object_namespace_map: MapNode,\n access_control_object_namespace: MapNode,\n access_control_object: AccessAclTab,\n tablet_cell: MapNode,\n scheduler_pool_tree_map: MapNode,\n scheduler_pool: MapNode,\n document: Document,\n string_node: Document,\n int64_node: Document,\n uint64_node: Document,\n double_node: Document,\n boolean_node: Document,\n link: Link,\n file: File,\n table: Table,\n replicated_table: ReplicatedTable,\n chaos_replicated_table: ReplicatedTable,\n replication_log_table: ReplicatedTableMeta,\n transaction: Transaction,\n nested_transaction: Transaction,\n topmost_transaction_map: TransactionMap,\n transaction_map: TransactionMap,\n};\n\nexport default (type: string) => supportedContentTypes[type as keyof typeof supportedContentTypes];\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,uBAAuB;AAClD,OAAOC,eAAe,MAAM,yEAAyE;AACrG,OAAOC,mBAAmB,MAAM,sDAAsD;AAEtF,OAAOC,IAAI,MAAM,mDAAmD;AACpE,OAAOC,IAAI,MAAM,mDAAmD;AACpE,OAAOC,KAAK,MAAM,qDAAqD;AACvE,OAAOC,OAAO,MAAM,yDAAyD;AAC7E,OAAOC,QAAQ,MAAM,2CAA2C;AAChE,OAAOC,WAAW,MAAM,iEAAiE;AACzF,OAAOC,cAAc,MAAM,uEAAuE;AAElG,IAAMC,qBAAqB,GAAG;EAC1BC,QAAQ,EAAEL,OAAO;EACjBM,eAAe,EAAEN,OAAO;EACxBO,WAAW,EAAEP,OAAO;EACpBQ,SAAS,EAAER,OAAO;EAClBS,KAAK,EAAET,OAAO;EACdU,aAAa,EAAEV,OAAO;EACtBW,QAAQ,EAAEX,OAAO;EACjBY,mCAAmC,EAAEZ,OAAO;EAC5Ca,+BAA+B,EAAEb,OAAO;EACxCc,qBAAqB,EAAEpB,YAAY;EACnCqB,WAAW,EAAEf,OAAO;EACpBgB,uBAAuB,EAAEhB,OAAO;EAChCiB,cAAc,EAAEjB,OAAO;EACvBkB,QAAQ,EAAEjB,QAAQ;EAClBkB,WAAW,EAAElB,QAAQ;EACrBmB,UAAU,EAAEnB,QAAQ;EACpBoB,WAAW,EAAEpB,QAAQ;EACrBqB,WAAW,EAAErB,QAAQ;EACrBsB,YAAY,EAAEtB,QAAQ;EACtBuB,IAAI,EAAE3B,IAAI;EACV4B,IAAI,EAAE3B,IAAI;EACV4B,KAAK,EAAE3B,KAAK;EACZ4B,gBAAgB,EAAEhC,eAAe;EACjCiC,sBAAsB,EAAEjC,eAAe;EACvCkC,qBAAqB,EAAEjC,mBAAmB;EAC1CkC,WAAW,EAAE5B,WAAW;EACxB6B,kBAAkB,EAAE7B,WAAW;EAC/B8B,uBAAuB,EAAE7B,cAAc;EACvC8B,eAAe,EAAE9B;AACrB,CAAC;AAED,gBAAe,UAAC+B,IAAY;EAAA,OAAK9B,qBAAqB,CAAC8B,IAAI,CAAuC;AAAA"}
@@ -34,7 +34,7 @@ export function fetchOdinOverview(cluster) {
34
34
  }
35
35
  });
36
36
  }
37
- return Utils.listMetrics().then(function (clusterMetrics) {
37
+ return Utils.listMetrics(cluster).then(function (clusterMetrics) {
38
38
  if (getCluterHelper(getState) !== cluster) {
39
39
  return;
40
40
  }