@ytsaurus/ui 1.21.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.
- package/build/cjs/@types/core.d.ts +1 -1
- package/build/cjs/server/ServerFactory.d.ts +3 -0
- package/build/cjs/server/ServerFactory.js +3 -0
- package/build/cjs/server/ServerFactory.js.map +1 -1
- package/build/cjs/server/controllers/availability.js +36 -18
- package/build/cjs/server/controllers/availability.js.map +1 -1
- package/build/cjs/server/controllers/odin-proxy-api.js +3 -4
- package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/cjs/ui/pages/odin/_actions/odin-overview.js +1 -1
- package/build/cjs/ui/pages/odin/_actions/odin-overview.js.map +1 -1
- package/build/cjs/ui/pages/odin/controls/OdinToolbar.js +2 -1
- package/build/cjs/ui/pages/odin/controls/OdinToolbar.js.map +1 -1
- package/build/cjs/ui/pages/odin/odin-utils.d.ts +1 -1
- package/build/cjs/ui/pages/odin/odin-utils.js +2 -2
- package/build/cjs/ui/pages/odin/odin-utils.js.map +1 -1
- package/build/esm/@types/core.d.ts +1 -1
- package/build/esm/server/ServerFactory.d.ts +3 -0
- package/build/esm/server/ServerFactory.js +4 -0
- package/build/esm/server/ServerFactory.js.map +1 -1
- package/build/esm/server/controllers/availability.js +43 -23
- package/build/esm/server/controllers/availability.js.map +1 -1
- package/build/esm/server/controllers/odin-proxy-api.js +9 -10
- package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
- package/build/esm/ui/pages/odin/_actions/odin-overview.js +1 -1
- package/build/esm/ui/pages/odin/_actions/odin-overview.js.map +1 -1
- package/build/esm/ui/pages/odin/controls/OdinToolbar.js +3 -2
- package/build/esm/ui/pages/odin/controls/OdinToolbar.js.map +1 -1
- package/build/esm/ui/pages/odin/odin-utils.d.ts +1 -1
- package/build/esm/ui/pages/odin/odin-utils.js +2 -2
- package/build/esm/ui/pages/odin/odin-utils.js.map +1 -1
- package/dist/public/build/assets-manifest.json +4 -4
- package/dist/public/build/js/main.724df837.js +3 -0
- package/dist/public/build/js/{main.53d3bdc5.js.map → main.724df837.js.map} +1 -1
- package/dist/public/build/manifest.json +2 -2
- package/dist/server/ServerFactory.d.ts +3 -0
- package/dist/server/ServerFactory.js +3 -0
- package/dist/server/controllers/availability.js +36 -18
- package/dist/server/controllers/odin-proxy-api.js +3 -4
- package/package.json +2 -2
- package/dist/public/build/js/main.53d3bdc5.js +0 -3
- /package/dist/public/build/js/{main.53d3bdc5.js.LICENSE.txt → main.724df837.js.LICENSE.txt} +0 -0
@@ -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
|
26
|
-
var
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
}
|
31
|
-
|
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
|
36
|
-
|
37
|
-
return {
|
38
|
-
|
39
|
-
|
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
|
-
|
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(
|
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
|
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
|
-
|
64
|
-
if (
|
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
|
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","
|
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
|
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
|
-
|
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 =
|
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
|
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 =
|
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
|
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
|
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","
|
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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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_forEach","_map","Utils","ODIN_OVERVIEW_CANCELLED","ODIN_OVERVIEW_FAILED","ODIN_OVERVIEW_HIDDEN_METRICS","ODIN_OVERVIEW_PARTIAL","ODIN_OVERVIEW_SUCCESS","getOdinLastVisitedTab","getOdinOverviewClusterMetrics","getOdinOverviewData","getOdinOverviewDataCluster","getOdinOverviewDateFrom","getOdinOverviewDateTo","getOdinOverviewHiddenMetrics","getOdinOverviewVisiblePresets","reloadSetting","setSetting","Toaster","showErrorPopup","NAMESPACES","ODIN_LAST_VISITED_TAB","ODIN_VISIBLE_METRIC_PRESETS","YA_NAMESPACES","getCluterHelper","gs","COUNT_OF_MINUTES","fetchOdinOverview","cluster","dispatch","getState","data","_ref","cancel","type","clusterMetrics","dataCluster","listMetrics","then","to","Date","from","getTime","dateFrom","dateTo","hiddenMetrics","forEach","_ref2","name","fetchMetricData","error","isRequestCanceled","Promise","reject","_ref3","getMetric","c","d","_objectSpread","_defineProperty","metricData","prepareAvailabilityData","reloadOdinOverviewMetricData","metricName","state","toggleOdinOverviewMetricVisibility","odinOverviewSetAllMetricsVisible","value","oldHhiddenMetrics","toReload","metrics","_ref4","__","odinOverviewShowCreatePresetDialog","showCreatePresetDialog","odinOverviewAddPreset","isDefault","toHide","ODIN","presets","_toConsumableArray","push","hiddenMetricNames","_","odinOverviewToggleDefaultPreset","_error$response","response","message","add","autoHiding","content","title","actions","label","onClick","odinOverviewSetPresetToRemove","presetToRemove","odinOverviewRemovePreset","oldPresets","filter","item","_error$response2","i","length","_error$response3","odinOverviewSelectPreset","preset","find","oldHiddenMetrics","setOdinLastVisitedTab","tab","current","GLOBAL"],"sources":["odin-overview.ts"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport _forEach from 'lodash/forEach';\nimport _map from 'lodash/map';\n\nimport Utils from '../odin-utils';\nimport {RootState} from '../../../store/reducers';\nimport {OdinOverviewAction, OdinOverviewState} from '../_reducers/odin-overview';\nimport {\n ODIN_OVERVIEW_CANCELLED,\n ODIN_OVERVIEW_FAILED,\n ODIN_OVERVIEW_HIDDEN_METRICS,\n ODIN_OVERVIEW_PARTIAL,\n ODIN_OVERVIEW_SUCCESS,\n} from '../odin-constants';\nimport {\n getOdinLastVisitedTab,\n getOdinOverviewClusterMetrics,\n getOdinOverviewData,\n getOdinOverviewDataCluster,\n getOdinOverviewDateFrom,\n getOdinOverviewDateTo,\n getOdinOverviewHiddenMetrics,\n getOdinOverviewVisiblePresets,\n} from '../_selectors/odin-overview';\nimport {reloadSetting, setSetting} from '../../../store/actions/settings';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {showErrorPopup} from '../../../utils/utils';\nimport {NAMESPACES} from '../../../../shared/constants/settings';\nimport {ODIN_LAST_VISITED_TAB, ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES} from '../odin-settings';\nimport {OdinRootState} from '../_reducers';\n\ntype OdinOverviewThunkAction = ThunkAction<any, OdinRootState & RootState, any, OdinOverviewAction>;\n\nfunction getCluterHelper(gs: () => OdinRootState) {\n return getOdinOverviewDataCluster(gs());\n}\n\nconst COUNT_OF_MINUTES = 30;\n\nexport function fetchOdinOverview(cluster: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n if (getCluterHelper(getState) !== cluster) {\n const data = getOdinOverviewData(getState());\n _forEach(data, ({cancel}) => {\n if (cancel) {\n cancel();\n }\n });\n dispatch({\n type: ODIN_OVERVIEW_PARTIAL,\n data: {data: {}, clusterMetrics: [], dataCluster: cluster},\n });\n }\n\n return Utils.listMetrics()\n .then((clusterMetrics) => {\n if (getCluterHelper(getState) !== cluster) {\n return;\n }\n\n const to = new Date();\n const from = new Date(to.getTime() - COUNT_OF_MINUTES * 60 * 1000);\n dispatch({\n type: ODIN_OVERVIEW_SUCCESS,\n data: {clusterMetrics, dateFrom: from, dateTo: to},\n });\n\n const hiddenMetrics = getOdinOverviewHiddenMetrics(getState());\n clusterMetrics.forEach(({name}) => {\n if (!hiddenMetrics[name]) {\n dispatch(fetchMetricData(cluster, name, from, to));\n }\n });\n })\n .catch((error) => {\n if (Utils.isRequestCanceled(error)) {\n dispatch({type: ODIN_OVERVIEW_CANCELLED});\n } else {\n dispatch({type: ODIN_OVERVIEW_FAILED, data: error});\n }\n return Promise.reject(error);\n });\n };\n}\n\nexport function fetchMetricData(\n cluster: string,\n name: string,\n from: Date,\n to: Date,\n): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n let {cancel} = getOdinOverviewData(getState())[name] || {};\n if (cancel) {\n cancel();\n }\n\n return Utils.getMetric(cluster, name, from, to, (c) => {\n cancel = c.cancel;\n })\n .then((d) => {\n if (getCluterHelper(getState) !== cluster) {\n return;\n }\n\n const data = {\n ...getOdinOverviewData(getState()),\n [name]: {\n cancel,\n metricData: Utils.prepareAvailabilityData(d, COUNT_OF_MINUTES),\n },\n };\n dispatch({type: ODIN_OVERVIEW_PARTIAL, data: {data}});\n })\n .catch((error) => {\n if (!Utils.isRequestCanceled(error)) {\n const data = {\n ...getOdinOverviewData(getState()),\n [name]: {error},\n };\n dispatch({type: ODIN_OVERVIEW_PARTIAL, data: {data}});\n }\n return Promise.reject(error);\n });\n };\n}\n\nexport function reloadOdinOverviewMetricData(metricName: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const cluster = getOdinOverviewDataCluster(state);\n const from = getOdinOverviewDateFrom(state);\n const to = getOdinOverviewDateTo(state);\n if (from && to) {\n dispatch(fetchMetricData(cluster, metricName, from, to));\n }\n };\n}\n\nexport function toggleOdinOverviewMetricVisibility(metricName: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const hiddenMetrics = {...getOdinOverviewHiddenMetrics(getState())};\n if (hiddenMetrics[metricName]) {\n delete hiddenMetrics[metricName];\n } else {\n hiddenMetrics[metricName] = true;\n }\n dispatch({\n type: ODIN_OVERVIEW_HIDDEN_METRICS,\n data: {hiddenMetrics},\n });\n if (!hiddenMetrics[metricName]) {\n dispatch(reloadOdinOverviewMetricData(metricName));\n }\n };\n}\n\nexport function odinOverviewSetAllMetricsVisible(value: boolean): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const oldHhiddenMetrics = getOdinOverviewHiddenMetrics(state);\n let toReload: Array<string> = [];\n const hiddenMetrics: typeof oldHhiddenMetrics = {};\n if (!value) {\n const metrics = getOdinOverviewClusterMetrics(state);\n metrics.forEach(({name}) => {\n hiddenMetrics[name] = true;\n });\n } else {\n toReload = _map(oldHhiddenMetrics, (__: boolean, name: string) => name);\n }\n\n dispatch({\n type: ODIN_OVERVIEW_HIDDEN_METRICS,\n data: {hiddenMetrics},\n });\n\n toReload.forEach((name) => {\n dispatch(reloadOdinOverviewMetricData(name));\n });\n };\n}\n\nexport function odinOverviewShowCreatePresetDialog(\n showCreatePresetDialog: boolean,\n): OdinOverviewAction {\n return {type: ODIN_OVERVIEW_PARTIAL, data: {showCreatePresetDialog}};\n}\n\nexport function odinOverviewAddPreset(name: string, isDefault: boolean): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const toHide = getOdinOverviewHiddenMetrics(getState());\n return dispatch(reloadSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN)).then(() => {\n const presets = [...getOdinOverviewVisiblePresets(getState())];\n presets.push({\n name,\n hiddenMetricNames: _map(toHide, (_, name) => name),\n });\n return dispatch(setSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN, presets))\n .then(() => {\n if (isDefault) {\n return dispatch(odinOverviewToggleDefaultPreset(name));\n }\n })\n .catch((error: any) => {\n const data = error?.response?.data || error;\n const {message} = data;\n\n new Toaster().add({\n name: 'add-preset',\n autoHiding: false,\n type: 'error',\n content: message,\n title: 'Failed to crete preset',\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(data),\n },\n ],\n });\n });\n });\n };\n}\n\nexport function odinOverviewSetPresetToRemove(\n name: OdinOverviewState['presetToRemove'],\n): OdinOverviewThunkAction {\n return (dispatch) => {\n dispatch({\n type: ODIN_OVERVIEW_PARTIAL,\n data: {presetToRemove: name},\n });\n };\n}\n\nexport function odinOverviewRemovePreset(name: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n return dispatch(reloadSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN))\n .then(() => {\n const oldPresets = getOdinOverviewVisiblePresets(getState());\n const presets = oldPresets.filter((item) => item.name !== name);\n return dispatch(\n setSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN, presets),\n );\n })\n .catch((error: any) => {\n const data = error?.response?.data || error;\n const {message} = data;\n\n new Toaster().add({\n name: 'delete-preset',\n autoHiding: false,\n type: 'error',\n content: message,\n title: 'Failed to delete the preset',\n actions: [{label: ' view', onClick: () => showErrorPopup(data)}],\n });\n });\n };\n}\n\nexport function odinOverviewToggleDefaultPreset(name: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n return dispatch(reloadSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN)).then(() => {\n const presets = [...getOdinOverviewVisiblePresets(getState())];\n for (let i = 0; i < presets.length; ++i) {\n const item = presets[i];\n if (item.name === name) {\n presets[i] = {...item, isDefault: !item.isDefault};\n } else if (item.isDefault) {\n presets[i] = {...item};\n delete presets[i]['isDefault'];\n }\n }\n return dispatch(\n setSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN, presets),\n ).catch((error: any) => {\n const data = error?.response?.data || error;\n const {message} = data;\n\n new Toaster().add({\n name: 'set-deault-preset',\n autoHiding: false,\n type: 'error',\n content: message,\n title: 'Failed to set the preset as default',\n actions: [{label: ' view', onClick: () => showErrorPopup(data)}],\n });\n });\n });\n };\n}\n\nexport function odinOverviewSelectPreset(name: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const presets = getOdinOverviewVisiblePresets(state);\n const preset = presets.find((item) => item.name === name);\n if (preset) {\n const {hiddenMetricNames} = preset;\n const hiddenMetrics: OdinOverviewState['hiddenMetrics'] = {};\n hiddenMetricNames.forEach((name) => {\n hiddenMetrics[name] = true;\n });\n dispatch({\n type: ODIN_OVERVIEW_HIDDEN_METRICS,\n data: {hiddenMetrics},\n });\n\n const oldHiddenMetrics = getOdinOverviewHiddenMetrics(state);\n _forEach(oldHiddenMetrics, (_, name) => {\n if (!hiddenMetrics[name]) {\n dispatch(reloadOdinOverviewMetricData(name));\n }\n });\n }\n };\n}\n\nexport function setOdinLastVisitedTab(tab: string): ThunkAction<any, any, RootState, any> {\n return (dispatch, getState) => {\n const current = getOdinLastVisitedTab(getState());\n if (current !== tab) {\n dispatch(setSetting(ODIN_LAST_VISITED_TAB, NAMESPACES.GLOBAL, tab));\n }\n };\n}\n"],"mappings":";;;AACA,OAAOA,QAAQ,MAAM,gBAAgB;AACrC,OAAOC,IAAI,MAAM,YAAY;AAE7B,OAAOC,KAAK,MAAM,eAAe;AAGjC,SACIC,uBAAuB,EACvBC,oBAAoB,EACpBC,4BAA4B,EAC5BC,qBAAqB,EACrBC,qBAAqB,QAClB,mBAAmB;AAC1B,SACIC,qBAAqB,EACrBC,6BAA6B,EAC7BC,mBAAmB,EACnBC,0BAA0B,EAC1BC,uBAAuB,EACvBC,qBAAqB,EACrBC,4BAA4B,EAC5BC,6BAA6B,QAC1B,6BAA6B;AACpC,SAAQC,aAAa,EAAEC,UAAU,QAAO,iCAAiC;AACzE,SAAQC,OAAO,QAAO,mBAAmB;AACzC,SAAQC,cAAc,QAAO,sBAAsB;AACnD,SAAQC,UAAU,QAAO,uCAAuC;AAChE,SAAQC,qBAAqB,EAAEC,2BAA2B,EAAEC,aAAa,QAAO,kBAAkB;AAKlG,SAASC,eAAeA,CAACC,EAAuB,EAAE;EAC9C,OAAOd,0BAA0B,CAACc,EAAE,CAAC,CAAC,CAAC;AAC3C;AAEA,IAAMC,gBAAgB,GAAG,EAAE;AAE3B,OAAO,SAASC,iBAAiBA,CAACC,OAAe,EAA2B;EACxE,OAAO,UAACC,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAIN,eAAe,CAACM,QAAQ,CAAC,KAAKF,OAAO,EAAE;MACvC,IAAMG,IAAI,GAAGrB,mBAAmB,CAACoB,QAAQ,CAAC,CAAC,CAAC;MAC5C9B,QAAQ,CAAC+B,IAAI,EAAE,UAAAC,IAAA,EAAc;QAAA,IAAZC,MAAM,GAAAD,IAAA,CAANC,MAAM;QACnB,IAAIA,MAAM,EAAE;UACRA,MAAM,CAAC,CAAC;QACZ;MACJ,CAAC,CAAC;MACFJ,QAAQ,CAAC;QACLK,IAAI,EAAE5B,qBAAqB;QAC3ByB,IAAI,EAAE;UAACA,IAAI,EAAE,CAAC,CAAC;UAAEI,cAAc,EAAE,EAAE;UAAEC,WAAW,EAAER;QAAO;MAC7D,CAAC,CAAC;IACN;IAEA,OAAO1B,KAAK,CAACmC,WAAW,CAAC,CAAC,CACrBC,IAAI,CAAC,UAACH,cAAc,EAAK;MACtB,IAAIX,eAAe,CAACM,QAAQ,CAAC,KAAKF,OAAO,EAAE;QACvC;MACJ;MAEA,IAAMW,EAAE,GAAG,IAAIC,IAAI,CAAC,CAAC;MACrB,IAAMC,IAAI,GAAG,IAAID,IAAI,CAACD,EAAE,CAACG,OAAO,CAAC,CAAC,GAAGhB,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;MAClEG,QAAQ,CAAC;QACLK,IAAI,EAAE3B,qBAAqB;QAC3BwB,IAAI,EAAE;UAACI,cAAc,EAAdA,cAAc;UAAEQ,QAAQ,EAAEF,IAAI;UAAEG,MAAM,EAAEL;QAAE;MACrD,CAAC,CAAC;MAEF,IAAMM,aAAa,GAAG/B,4BAA4B,CAACgB,QAAQ,CAAC,CAAC,CAAC;MAC9DK,cAAc,CAACW,OAAO,CAAC,UAAAC,KAAA,EAAY;QAAA,IAAVC,IAAI,GAAAD,KAAA,CAAJC,IAAI;QACzB,IAAI,CAACH,aAAa,CAACG,IAAI,CAAC,EAAE;UACtBnB,QAAQ,CAACoB,eAAe,CAACrB,OAAO,EAAEoB,IAAI,EAAEP,IAAI,EAAEF,EAAE,CAAC,CAAC;QACtD;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,SACI,CAAC,UAACW,KAAK,EAAK;MACd,IAAIhD,KAAK,CAACiD,iBAAiB,CAACD,KAAK,CAAC,EAAE;QAChCrB,QAAQ,CAAC;UAACK,IAAI,EAAE/B;QAAuB,CAAC,CAAC;MAC7C,CAAC,MAAM;QACH0B,QAAQ,CAAC;UAACK,IAAI,EAAE9B,oBAAoB;UAAE2B,IAAI,EAAEmB;QAAK,CAAC,CAAC;MACvD;MACA,OAAOE,OAAO,CAACC,MAAM,CAACH,KAAK,CAAC;IAChC,CAAC,CAAC;EACV,CAAC;AACL;AAEA,OAAO,SAASD,eAAeA,CAC3BrB,OAAe,EACfoB,IAAY,EACZP,IAAU,EACVF,EAAQ,EACe;EACvB,OAAO,UAACV,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAAwB,KAAA,GAAe5C,mBAAmB,CAACoB,QAAQ,CAAC,CAAC,CAAC,CAACkB,IAAI,CAAC,IAAI,CAAC,CAAC;MAArDf,MAAM,GAAAqB,KAAA,CAANrB,MAAM;IACX,IAAIA,MAAM,EAAE;MACRA,MAAM,CAAC,CAAC;IACZ;IAEA,OAAO/B,KAAK,CAACqD,SAAS,CAAC3B,OAAO,EAAEoB,IAAI,EAAEP,IAAI,EAAEF,EAAE,EAAE,UAACiB,CAAC,EAAK;MACnDvB,MAAM,GAAGuB,CAAC,CAACvB,MAAM;IACrB,CAAC,CAAC,CACGK,IAAI,CAAC,UAACmB,CAAC,EAAK;MACT,IAAIjC,eAAe,CAACM,QAAQ,CAAC,KAAKF,OAAO,EAAE;QACvC;MACJ;MAEA,IAAMG,IAAI,GAAA2B,aAAA,CAAAA,aAAA,KACHhD,mBAAmB,CAACoB,QAAQ,CAAC,CAAC,CAAC,OAAA6B,eAAA,KACjCX,IAAI,EAAG;QACJf,MAAM,EAANA,MAAM;QACN2B,UAAU,EAAE1D,KAAK,CAAC2D,uBAAuB,CAACJ,CAAC,EAAE/B,gBAAgB;MACjE,CAAC,EACJ;MACDG,QAAQ,CAAC;QAACK,IAAI,EAAE5B,qBAAqB;QAAEyB,IAAI,EAAE;UAACA,IAAI,EAAJA;QAAI;MAAC,CAAC,CAAC;IACzD,CAAC,CAAC,SACI,CAAC,UAACmB,KAAK,EAAK;MACd,IAAI,CAAChD,KAAK,CAACiD,iBAAiB,CAACD,KAAK,CAAC,EAAE;QACjC,IAAMnB,IAAI,GAAA2B,aAAA,CAAAA,aAAA,KACHhD,mBAAmB,CAACoB,QAAQ,CAAC,CAAC,CAAC,OAAA6B,eAAA,KACjCX,IAAI,EAAG;UAACE,KAAK,EAALA;QAAK,CAAC,EAClB;QACDrB,QAAQ,CAAC;UAACK,IAAI,EAAE5B,qBAAqB;UAAEyB,IAAI,EAAE;YAACA,IAAI,EAAJA;UAAI;QAAC,CAAC,CAAC;MACzD;MACA,OAAOqB,OAAO,CAACC,MAAM,CAACH,KAAK,CAAC;IAChC,CAAC,CAAC;EACV,CAAC;AACL;AAEA,OAAO,SAASY,4BAA4BA,CAACC,UAAkB,EAA2B;EACtF,OAAO,UAAClC,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMkC,KAAK,GAAGlC,QAAQ,CAAC,CAAC;IACxB,IAAMF,OAAO,GAAGjB,0BAA0B,CAACqD,KAAK,CAAC;IACjD,IAAMvB,IAAI,GAAG7B,uBAAuB,CAACoD,KAAK,CAAC;IAC3C,IAAMzB,EAAE,GAAG1B,qBAAqB,CAACmD,KAAK,CAAC;IACvC,IAAIvB,IAAI,IAAIF,EAAE,EAAE;MACZV,QAAQ,CAACoB,eAAe,CAACrB,OAAO,EAAEmC,UAAU,EAAEtB,IAAI,EAAEF,EAAE,CAAC,CAAC;IAC5D;EACJ,CAAC;AACL;AAEA,OAAO,SAAS0B,kCAAkCA,CAACF,UAAkB,EAA2B;EAC5F,OAAO,UAAClC,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMe,aAAa,GAAAa,aAAA,KAAO5C,4BAA4B,CAACgB,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnE,IAAIe,aAAa,CAACkB,UAAU,CAAC,EAAE;MAC3B,OAAOlB,aAAa,CAACkB,UAAU,CAAC;IACpC,CAAC,MAAM;MACHlB,aAAa,CAACkB,UAAU,CAAC,GAAG,IAAI;IACpC;IACAlC,QAAQ,CAAC;MACLK,IAAI,EAAE7B,4BAA4B;MAClC0B,IAAI,EAAE;QAACc,aAAa,EAAbA;MAAa;IACxB,CAAC,CAAC;IACF,IAAI,CAACA,aAAa,CAACkB,UAAU,CAAC,EAAE;MAC5BlC,QAAQ,CAACiC,4BAA4B,CAACC,UAAU,CAAC,CAAC;IACtD;EACJ,CAAC;AACL;AAEA,OAAO,SAASG,gCAAgCA,CAACC,KAAc,EAA2B;EACtF,OAAO,UAACtC,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMkC,KAAK,GAAGlC,QAAQ,CAAC,CAAC;IACxB,IAAMsC,iBAAiB,GAAGtD,4BAA4B,CAACkD,KAAK,CAAC;IAC7D,IAAIK,QAAuB,GAAG,EAAE;IAChC,IAAMxB,aAAuC,GAAG,CAAC,CAAC;IAClD,IAAI,CAACsB,KAAK,EAAE;MACR,IAAMG,OAAO,GAAG7D,6BAA6B,CAACuD,KAAK,CAAC;MACpDM,OAAO,CAACxB,OAAO,CAAC,UAAAyB,KAAA,EAAY;QAAA,IAAVvB,IAAI,GAAAuB,KAAA,CAAJvB,IAAI;QAClBH,aAAa,CAACG,IAAI,CAAC,GAAG,IAAI;MAC9B,CAAC,CAAC;IACN,CAAC,MAAM;MACHqB,QAAQ,GAAGpE,IAAI,CAACmE,iBAAiB,EAAE,UAACI,EAAW,EAAExB,IAAY;QAAA,OAAKA,IAAI;MAAA,EAAC;IAC3E;IAEAnB,QAAQ,CAAC;MACLK,IAAI,EAAE7B,4BAA4B;MAClC0B,IAAI,EAAE;QAACc,aAAa,EAAbA;MAAa;IACxB,CAAC,CAAC;IAEFwB,QAAQ,CAACvB,OAAO,CAAC,UAACE,IAAI,EAAK;MACvBnB,QAAQ,CAACiC,4BAA4B,CAACd,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC;EACN,CAAC;AACL;AAEA,OAAO,SAASyB,kCAAkCA,CAC9CC,sBAA+B,EACb;EAClB,OAAO;IAACxC,IAAI,EAAE5B,qBAAqB;IAAEyB,IAAI,EAAE;MAAC2C,sBAAsB,EAAtBA;IAAsB;EAAC,CAAC;AACxE;AAEA,OAAO,SAASC,qBAAqBA,CAAC3B,IAAY,EAAE4B,SAAkB,EAA2B;EAC7F,OAAO,UAAC/C,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAM+C,MAAM,GAAG/D,4BAA4B,CAACgB,QAAQ,CAAC,CAAC,CAAC;IACvD,OAAOD,QAAQ,CAACb,aAAa,CAACM,2BAA2B,EAAEC,aAAa,CAACuD,IAAI,CAAC,CAAC,CAACxC,IAAI,CAAC,YAAM;MACvF,IAAMyC,OAAO,GAAAC,kBAAA,CAAOjE,6BAA6B,CAACe,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC9DiD,OAAO,CAACE,IAAI,CAAC;QACTjC,IAAI,EAAJA,IAAI;QACJkC,iBAAiB,EAAEjF,IAAI,CAAC4E,MAAM,EAAE,UAACM,CAAC,EAAEnC,IAAI;UAAA,OAAKA,IAAI;QAAA;MACrD,CAAC,CAAC;MACF,OAAOnB,QAAQ,CAACZ,UAAU,CAACK,2BAA2B,EAAEC,aAAa,CAACuD,IAAI,EAAEC,OAAO,CAAC,CAAC,CAChFzC,IAAI,CAAC,YAAM;QACR,IAAIsC,SAAS,EAAE;UACX,OAAO/C,QAAQ,CAACuD,+BAA+B,CAACpC,IAAI,CAAC,CAAC;QAC1D;MACJ,CAAC,CAAC,SACI,CAAC,UAACE,KAAU,EAAK;QAAA,IAAAmC,eAAA;QACnB,IAAMtD,IAAI,GAAG,CAAAmB,KAAK,aAALA,KAAK,gBAAAmC,eAAA,GAALnC,KAAK,CAAEoC,QAAQ,cAAAD,eAAA,uBAAfA,eAAA,CAAiBtD,IAAI,KAAImB,KAAK;QAC3C,IAAOqC,OAAO,GAAIxD,IAAI,CAAfwD,OAAO;QAEd,IAAIrE,OAAO,CAAC,CAAC,CAACsE,GAAG,CAAC;UACdxC,IAAI,EAAE,YAAY;UAClByC,UAAU,EAAE,KAAK;UACjBvD,IAAI,EAAE,OAAO;UACbwD,OAAO,EAAEH,OAAO;UAChBI,KAAK,EAAE,wBAAwB;UAC/BC,OAAO,EAAE,CACL;YACIC,KAAK,EAAE,OAAO;YACdC,OAAO,EAAE,SAAAA,QAAA;cAAA,OAAM3E,cAAc,CAACY,IAAI,CAAC;YAAA;UACvC,CAAC;QAET,CAAC,CAAC;MACN,CAAC,CAAC;IACV,CAAC,CAAC;EACN,CAAC;AACL;AAEA,OAAO,SAASgE,6BAA6BA,CACzC/C,IAAyC,EAClB;EACvB,OAAO,UAACnB,QAAQ,EAAK;IACjBA,QAAQ,CAAC;MACLK,IAAI,EAAE5B,qBAAqB;MAC3ByB,IAAI,EAAE;QAACiE,cAAc,EAAEhD;MAAI;IAC/B,CAAC,CAAC;EACN,CAAC;AACL;AAEA,OAAO,SAASiD,wBAAwBA,CAACjD,IAAY,EAA2B;EAC5E,OAAO,UAACnB,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,OAAOD,QAAQ,CAACb,aAAa,CAACM,2BAA2B,EAAEC,aAAa,CAACuD,IAAI,CAAC,CAAC,CAC1ExC,IAAI,CAAC,YAAM;MACR,IAAM4D,UAAU,GAAGnF,6BAA6B,CAACe,QAAQ,CAAC,CAAC,CAAC;MAC5D,IAAMiD,OAAO,GAAGmB,UAAU,CAACC,MAAM,CAAC,UAACC,IAAI;QAAA,OAAKA,IAAI,CAACpD,IAAI,KAAKA,IAAI;MAAA,EAAC;MAC/D,OAAOnB,QAAQ,CACXZ,UAAU,CAACK,2BAA2B,EAAEC,aAAa,CAACuD,IAAI,EAAEC,OAAO,CACvE,CAAC;IACL,CAAC,CAAC,SACI,CAAC,UAAC7B,KAAU,EAAK;MAAA,IAAAmD,gBAAA;MACnB,IAAMtE,IAAI,GAAG,CAAAmB,KAAK,aAALA,KAAK,gBAAAmD,gBAAA,GAALnD,KAAK,CAAEoC,QAAQ,cAAAe,gBAAA,uBAAfA,gBAAA,CAAiBtE,IAAI,KAAImB,KAAK;MAC3C,IAAOqC,OAAO,GAAIxD,IAAI,CAAfwD,OAAO;MAEd,IAAIrE,OAAO,CAAC,CAAC,CAACsE,GAAG,CAAC;QACdxC,IAAI,EAAE,eAAe;QACrByC,UAAU,EAAE,KAAK;QACjBvD,IAAI,EAAE,OAAO;QACbwD,OAAO,EAAEH,OAAO;QAChBI,KAAK,EAAE,6BAA6B;QACpCC,OAAO,EAAE,CAAC;UAACC,KAAK,EAAE,OAAO;UAAEC,OAAO,EAAE,SAAAA,QAAA;YAAA,OAAM3E,cAAc,CAACY,IAAI,CAAC;UAAA;QAAA,CAAC;MACnE,CAAC,CAAC;IACN,CAAC,CAAC;EACV,CAAC;AACL;AAEA,OAAO,SAASqD,+BAA+BA,CAACpC,IAAY,EAA2B;EACnF,OAAO,UAACnB,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,OAAOD,QAAQ,CAACb,aAAa,CAACM,2BAA2B,EAAEC,aAAa,CAACuD,IAAI,CAAC,CAAC,CAACxC,IAAI,CAAC,YAAM;MACvF,IAAMyC,OAAO,GAAAC,kBAAA,CAAOjE,6BAA6B,CAACe,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC9D,KAAK,IAAIwE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvB,OAAO,CAACwB,MAAM,EAAE,EAAED,CAAC,EAAE;QACrC,IAAMF,IAAI,GAAGrB,OAAO,CAACuB,CAAC,CAAC;QACvB,IAAIF,IAAI,CAACpD,IAAI,KAAKA,IAAI,EAAE;UACpB+B,OAAO,CAACuB,CAAC,CAAC,GAAA5C,aAAA,CAAAA,aAAA,KAAO0C,IAAI;YAAExB,SAAS,EAAE,CAACwB,IAAI,CAACxB;UAAS,EAAC;QACtD,CAAC,MAAM,IAAIwB,IAAI,CAACxB,SAAS,EAAE;UACvBG,OAAO,CAACuB,CAAC,CAAC,GAAA5C,aAAA,KAAO0C,IAAI,CAAC;UACtB,OAAOrB,OAAO,CAACuB,CAAC,CAAC,CAAC,WAAW,CAAC;QAClC;MACJ;MACA,OAAOzE,QAAQ,CACXZ,UAAU,CAACK,2BAA2B,EAAEC,aAAa,CAACuD,IAAI,EAAEC,OAAO,CACvE,CAAC,SAAM,CAAC,UAAC7B,KAAU,EAAK;QAAA,IAAAsD,gBAAA;QACpB,IAAMzE,IAAI,GAAG,CAAAmB,KAAK,aAALA,KAAK,gBAAAsD,gBAAA,GAALtD,KAAK,CAAEoC,QAAQ,cAAAkB,gBAAA,uBAAfA,gBAAA,CAAiBzE,IAAI,KAAImB,KAAK;QAC3C,IAAOqC,OAAO,GAAIxD,IAAI,CAAfwD,OAAO;QAEd,IAAIrE,OAAO,CAAC,CAAC,CAACsE,GAAG,CAAC;UACdxC,IAAI,EAAE,mBAAmB;UACzByC,UAAU,EAAE,KAAK;UACjBvD,IAAI,EAAE,OAAO;UACbwD,OAAO,EAAEH,OAAO;UAChBI,KAAK,EAAE,qCAAqC;UAC5CC,OAAO,EAAE,CAAC;YAACC,KAAK,EAAE,OAAO;YAAEC,OAAO,EAAE,SAAAA,QAAA;cAAA,OAAM3E,cAAc,CAACY,IAAI,CAAC;YAAA;UAAA,CAAC;QACnE,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;AACL;AAEA,OAAO,SAAS0E,wBAAwBA,CAACzD,IAAY,EAA2B;EAC5E,OAAO,UAACnB,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMkC,KAAK,GAAGlC,QAAQ,CAAC,CAAC;IACxB,IAAMiD,OAAO,GAAGhE,6BAA6B,CAACiD,KAAK,CAAC;IACpD,IAAM0C,MAAM,GAAG3B,OAAO,CAAC4B,IAAI,CAAC,UAACP,IAAI;MAAA,OAAKA,IAAI,CAACpD,IAAI,KAAKA,IAAI;IAAA,EAAC;IACzD,IAAI0D,MAAM,EAAE;MACR,IAAOxB,iBAAiB,GAAIwB,MAAM,CAA3BxB,iBAAiB;MACxB,IAAMrC,aAAiD,GAAG,CAAC,CAAC;MAC5DqC,iBAAiB,CAACpC,OAAO,CAAC,UAACE,IAAI,EAAK;QAChCH,aAAa,CAACG,IAAI,CAAC,GAAG,IAAI;MAC9B,CAAC,CAAC;MACFnB,QAAQ,CAAC;QACLK,IAAI,EAAE7B,4BAA4B;QAClC0B,IAAI,EAAE;UAACc,aAAa,EAAbA;QAAa;MACxB,CAAC,CAAC;MAEF,IAAM+D,gBAAgB,GAAG9F,4BAA4B,CAACkD,KAAK,CAAC;MAC5DhE,QAAQ,CAAC4G,gBAAgB,EAAE,UAACzB,CAAC,EAAEnC,IAAI,EAAK;QACpC,IAAI,CAACH,aAAa,CAACG,IAAI,CAAC,EAAE;UACtBnB,QAAQ,CAACiC,4BAA4B,CAACd,IAAI,CAAC,CAAC;QAChD;MACJ,CAAC,CAAC;IACN;EACJ,CAAC;AACL;AAEA,OAAO,SAAS6D,qBAAqBA,CAACC,GAAW,EAAyC;EACtF,OAAO,UAACjF,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMiF,OAAO,GAAGvG,qBAAqB,CAACsB,QAAQ,CAAC,CAAC,CAAC;IACjD,IAAIiF,OAAO,KAAKD,GAAG,EAAE;MACjBjF,QAAQ,CAACZ,UAAU,CAACI,qBAAqB,EAAED,UAAU,CAAC4F,MAAM,EAAEF,GAAG,CAAC,CAAC;IACvE;EACJ,CAAC;AACL"}
|
1
|
+
{"version":3,"names":["_forEach","_map","Utils","ODIN_OVERVIEW_CANCELLED","ODIN_OVERVIEW_FAILED","ODIN_OVERVIEW_HIDDEN_METRICS","ODIN_OVERVIEW_PARTIAL","ODIN_OVERVIEW_SUCCESS","getOdinLastVisitedTab","getOdinOverviewClusterMetrics","getOdinOverviewData","getOdinOverviewDataCluster","getOdinOverviewDateFrom","getOdinOverviewDateTo","getOdinOverviewHiddenMetrics","getOdinOverviewVisiblePresets","reloadSetting","setSetting","Toaster","showErrorPopup","NAMESPACES","ODIN_LAST_VISITED_TAB","ODIN_VISIBLE_METRIC_PRESETS","YA_NAMESPACES","getCluterHelper","gs","COUNT_OF_MINUTES","fetchOdinOverview","cluster","dispatch","getState","data","_ref","cancel","type","clusterMetrics","dataCluster","listMetrics","then","to","Date","from","getTime","dateFrom","dateTo","hiddenMetrics","forEach","_ref2","name","fetchMetricData","error","isRequestCanceled","Promise","reject","_ref3","getMetric","c","d","_objectSpread","_defineProperty","metricData","prepareAvailabilityData","reloadOdinOverviewMetricData","metricName","state","toggleOdinOverviewMetricVisibility","odinOverviewSetAllMetricsVisible","value","oldHhiddenMetrics","toReload","metrics","_ref4","__","odinOverviewShowCreatePresetDialog","showCreatePresetDialog","odinOverviewAddPreset","isDefault","toHide","ODIN","presets","_toConsumableArray","push","hiddenMetricNames","_","odinOverviewToggleDefaultPreset","_error$response","response","message","add","autoHiding","content","title","actions","label","onClick","odinOverviewSetPresetToRemove","presetToRemove","odinOverviewRemovePreset","oldPresets","filter","item","_error$response2","i","length","_error$response3","odinOverviewSelectPreset","preset","find","oldHiddenMetrics","setOdinLastVisitedTab","tab","current","GLOBAL"],"sources":["odin-overview.ts"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport _forEach from 'lodash/forEach';\nimport _map from 'lodash/map';\n\nimport Utils from '../odin-utils';\nimport {RootState} from '../../../store/reducers';\nimport {OdinOverviewAction, OdinOverviewState} from '../_reducers/odin-overview';\nimport {\n ODIN_OVERVIEW_CANCELLED,\n ODIN_OVERVIEW_FAILED,\n ODIN_OVERVIEW_HIDDEN_METRICS,\n ODIN_OVERVIEW_PARTIAL,\n ODIN_OVERVIEW_SUCCESS,\n} from '../odin-constants';\nimport {\n getOdinLastVisitedTab,\n getOdinOverviewClusterMetrics,\n getOdinOverviewData,\n getOdinOverviewDataCluster,\n getOdinOverviewDateFrom,\n getOdinOverviewDateTo,\n getOdinOverviewHiddenMetrics,\n getOdinOverviewVisiblePresets,\n} from '../_selectors/odin-overview';\nimport {reloadSetting, setSetting} from '../../../store/actions/settings';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {showErrorPopup} from '../../../utils/utils';\nimport {NAMESPACES} from '../../../../shared/constants/settings';\nimport {ODIN_LAST_VISITED_TAB, ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES} from '../odin-settings';\nimport {OdinRootState} from '../_reducers';\n\ntype OdinOverviewThunkAction = ThunkAction<any, OdinRootState & RootState, any, OdinOverviewAction>;\n\nfunction getCluterHelper(gs: () => OdinRootState) {\n return getOdinOverviewDataCluster(gs());\n}\n\nconst COUNT_OF_MINUTES = 30;\n\nexport function fetchOdinOverview(cluster: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n if (getCluterHelper(getState) !== cluster) {\n const data = getOdinOverviewData(getState());\n _forEach(data, ({cancel}) => {\n if (cancel) {\n cancel();\n }\n });\n dispatch({\n type: ODIN_OVERVIEW_PARTIAL,\n data: {data: {}, clusterMetrics: [], dataCluster: cluster},\n });\n }\n\n return Utils.listMetrics(cluster)\n .then((clusterMetrics) => {\n if (getCluterHelper(getState) !== cluster) {\n return;\n }\n\n const to = new Date();\n const from = new Date(to.getTime() - COUNT_OF_MINUTES * 60 * 1000);\n dispatch({\n type: ODIN_OVERVIEW_SUCCESS,\n data: {clusterMetrics, dateFrom: from, dateTo: to},\n });\n\n const hiddenMetrics = getOdinOverviewHiddenMetrics(getState());\n clusterMetrics.forEach(({name}) => {\n if (!hiddenMetrics[name]) {\n dispatch(fetchMetricData(cluster, name, from, to));\n }\n });\n })\n .catch((error) => {\n if (Utils.isRequestCanceled(error)) {\n dispatch({type: ODIN_OVERVIEW_CANCELLED});\n } else {\n dispatch({type: ODIN_OVERVIEW_FAILED, data: error});\n }\n return Promise.reject(error);\n });\n };\n}\n\nexport function fetchMetricData(\n cluster: string,\n name: string,\n from: Date,\n to: Date,\n): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n let {cancel} = getOdinOverviewData(getState())[name] || {};\n if (cancel) {\n cancel();\n }\n\n return Utils.getMetric(cluster, name, from, to, (c) => {\n cancel = c.cancel;\n })\n .then((d) => {\n if (getCluterHelper(getState) !== cluster) {\n return;\n }\n\n const data = {\n ...getOdinOverviewData(getState()),\n [name]: {\n cancel,\n metricData: Utils.prepareAvailabilityData(d, COUNT_OF_MINUTES),\n },\n };\n dispatch({type: ODIN_OVERVIEW_PARTIAL, data: {data}});\n })\n .catch((error) => {\n if (!Utils.isRequestCanceled(error)) {\n const data = {\n ...getOdinOverviewData(getState()),\n [name]: {error},\n };\n dispatch({type: ODIN_OVERVIEW_PARTIAL, data: {data}});\n }\n return Promise.reject(error);\n });\n };\n}\n\nexport function reloadOdinOverviewMetricData(metricName: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const cluster = getOdinOverviewDataCluster(state);\n const from = getOdinOverviewDateFrom(state);\n const to = getOdinOverviewDateTo(state);\n if (from && to) {\n dispatch(fetchMetricData(cluster, metricName, from, to));\n }\n };\n}\n\nexport function toggleOdinOverviewMetricVisibility(metricName: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const hiddenMetrics = {...getOdinOverviewHiddenMetrics(getState())};\n if (hiddenMetrics[metricName]) {\n delete hiddenMetrics[metricName];\n } else {\n hiddenMetrics[metricName] = true;\n }\n dispatch({\n type: ODIN_OVERVIEW_HIDDEN_METRICS,\n data: {hiddenMetrics},\n });\n if (!hiddenMetrics[metricName]) {\n dispatch(reloadOdinOverviewMetricData(metricName));\n }\n };\n}\n\nexport function odinOverviewSetAllMetricsVisible(value: boolean): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const oldHhiddenMetrics = getOdinOverviewHiddenMetrics(state);\n let toReload: Array<string> = [];\n const hiddenMetrics: typeof oldHhiddenMetrics = {};\n if (!value) {\n const metrics = getOdinOverviewClusterMetrics(state);\n metrics.forEach(({name}) => {\n hiddenMetrics[name] = true;\n });\n } else {\n toReload = _map(oldHhiddenMetrics, (__: boolean, name: string) => name);\n }\n\n dispatch({\n type: ODIN_OVERVIEW_HIDDEN_METRICS,\n data: {hiddenMetrics},\n });\n\n toReload.forEach((name) => {\n dispatch(reloadOdinOverviewMetricData(name));\n });\n };\n}\n\nexport function odinOverviewShowCreatePresetDialog(\n showCreatePresetDialog: boolean,\n): OdinOverviewAction {\n return {type: ODIN_OVERVIEW_PARTIAL, data: {showCreatePresetDialog}};\n}\n\nexport function odinOverviewAddPreset(name: string, isDefault: boolean): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const toHide = getOdinOverviewHiddenMetrics(getState());\n return dispatch(reloadSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN)).then(() => {\n const presets = [...getOdinOverviewVisiblePresets(getState())];\n presets.push({\n name,\n hiddenMetricNames: _map(toHide, (_, name) => name),\n });\n return dispatch(setSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN, presets))\n .then(() => {\n if (isDefault) {\n return dispatch(odinOverviewToggleDefaultPreset(name));\n }\n })\n .catch((error: any) => {\n const data = error?.response?.data || error;\n const {message} = data;\n\n new Toaster().add({\n name: 'add-preset',\n autoHiding: false,\n type: 'error',\n content: message,\n title: 'Failed to crete preset',\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(data),\n },\n ],\n });\n });\n });\n };\n}\n\nexport function odinOverviewSetPresetToRemove(\n name: OdinOverviewState['presetToRemove'],\n): OdinOverviewThunkAction {\n return (dispatch) => {\n dispatch({\n type: ODIN_OVERVIEW_PARTIAL,\n data: {presetToRemove: name},\n });\n };\n}\n\nexport function odinOverviewRemovePreset(name: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n return dispatch(reloadSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN))\n .then(() => {\n const oldPresets = getOdinOverviewVisiblePresets(getState());\n const presets = oldPresets.filter((item) => item.name !== name);\n return dispatch(\n setSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN, presets),\n );\n })\n .catch((error: any) => {\n const data = error?.response?.data || error;\n const {message} = data;\n\n new Toaster().add({\n name: 'delete-preset',\n autoHiding: false,\n type: 'error',\n content: message,\n title: 'Failed to delete the preset',\n actions: [{label: ' view', onClick: () => showErrorPopup(data)}],\n });\n });\n };\n}\n\nexport function odinOverviewToggleDefaultPreset(name: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n return dispatch(reloadSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN)).then(() => {\n const presets = [...getOdinOverviewVisiblePresets(getState())];\n for (let i = 0; i < presets.length; ++i) {\n const item = presets[i];\n if (item.name === name) {\n presets[i] = {...item, isDefault: !item.isDefault};\n } else if (item.isDefault) {\n presets[i] = {...item};\n delete presets[i]['isDefault'];\n }\n }\n return dispatch(\n setSetting(ODIN_VISIBLE_METRIC_PRESETS, YA_NAMESPACES.ODIN, presets),\n ).catch((error: any) => {\n const data = error?.response?.data || error;\n const {message} = data;\n\n new Toaster().add({\n name: 'set-deault-preset',\n autoHiding: false,\n type: 'error',\n content: message,\n title: 'Failed to set the preset as default',\n actions: [{label: ' view', onClick: () => showErrorPopup(data)}],\n });\n });\n });\n };\n}\n\nexport function odinOverviewSelectPreset(name: string): OdinOverviewThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const presets = getOdinOverviewVisiblePresets(state);\n const preset = presets.find((item) => item.name === name);\n if (preset) {\n const {hiddenMetricNames} = preset;\n const hiddenMetrics: OdinOverviewState['hiddenMetrics'] = {};\n hiddenMetricNames.forEach((name) => {\n hiddenMetrics[name] = true;\n });\n dispatch({\n type: ODIN_OVERVIEW_HIDDEN_METRICS,\n data: {hiddenMetrics},\n });\n\n const oldHiddenMetrics = getOdinOverviewHiddenMetrics(state);\n _forEach(oldHiddenMetrics, (_, name) => {\n if (!hiddenMetrics[name]) {\n dispatch(reloadOdinOverviewMetricData(name));\n }\n });\n }\n };\n}\n\nexport function setOdinLastVisitedTab(tab: string): ThunkAction<any, any, RootState, any> {\n return (dispatch, getState) => {\n const current = getOdinLastVisitedTab(getState());\n if (current !== tab) {\n dispatch(setSetting(ODIN_LAST_VISITED_TAB, NAMESPACES.GLOBAL, tab));\n }\n };\n}\n"],"mappings":"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"}
|
@@ -7,7 +7,7 @@ import { Checkbox } from '@gravity-ui/uikit';
|
|
7
7
|
import Select from '../../../components/Select/Select';
|
8
8
|
import { Datepicker } from '../../../components/common/Datepicker';
|
9
9
|
import block from 'bem-cn-lite';
|
10
|
-
import { getDate, getMetric, getStat, getUseCurrentDate } from '../_selectors';
|
10
|
+
import { getDate, getMetric, getOdinCluster, getStat, getUseCurrentDate } from '../_selectors';
|
11
11
|
import { setDate, setMetric, toggleUseCurrentDate } from '../_actions';
|
12
12
|
import Utils from '../odin-utils';
|
13
13
|
import hammer from '../../../common/hammer';
|
@@ -20,8 +20,9 @@ function useLoadMetricsList() {
|
|
20
20
|
_useState2 = _slicedToArray(_useState, 2),
|
21
21
|
metrics = _useState2[0],
|
22
22
|
setMetrics = _useState2[1];
|
23
|
+
var cluster = useSelector(getOdinCluster);
|
23
24
|
useEffect(function () {
|
24
|
-
Utils.listMetrics().then(function (metrics) {
|
25
|
+
Utils.listMetrics(cluster).then(function (metrics) {
|
25
26
|
setMetrics(_map(metrics, function (_ref) {
|
26
27
|
var name = _ref.name,
|
27
28
|
text = _ref.display_name;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useState","useDispatch","useSelector","Checkbox","Select","Datepicker","block","getDate","getMetric","getStat","getUseCurrentDate","setDate","setMetric","toggleUseCurrentDate","Utils","hammer","jsx","_jsx","jsxs","_jsxs","odinCN","tbBlock","useLoadMetricsList","_useState","_useState2","_slicedToArray","metrics","setMetrics","listMetrics","then","_map","_ref","name","text","display_name","value","MetricSelector","metric","dispatch","handleChange","length","_findIndex","_ref2","label","items","onUpdate","vals","showSearch","width","UseCurrentDate","useCurrentDate","size","content","checked","onChange","CustomDate","date","_ref3","from","range","to","scale","hasClear","controlWidth","Toolbar","_ref4","className","stat","children","format","Percent"],"sources":["OdinToolbar.js"],"sourcesContent":["import React, {useCallback, useEffect, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {Checkbox} from '@gravity-ui/uikit';\nimport Select from '../../../components/Select/Select';\nimport {Datepicker} from '../../../components/common/Datepicker';\n\nimport block from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport {getDate, getMetric, getStat, getUseCurrentDate} from '../_selectors';\nimport {setDate, setMetric, toggleUseCurrentDate} from '../_actions';\nimport Utils from '../odin-utils';\nimport hammer from '../../../common/hammer';\n\nconst odinCN = block('odin');\n\nconst tbBlock = block('elements-toolbar');\n\nfunction useLoadMetricsList() {\n const [metrics, setMetrics] = useState([]);\n\n useEffect(() => {\n Utils.listMetrics().then((metrics) => {\n setMetrics(\n _.map(metrics, ({name, display_name: text}) => ({\n value: name,\n text,\n })),\n );\n });\n }, []);\n\n return metrics;\n}\n\nfunction MetricSelector() {\n const metric = useSelector(getMetric);\n const dispatch = useDispatch();\n const metrics = useLoadMetricsList();\n const handleChange = useCallback((value) => {\n dispatch(setMetric(value));\n }, []);\n\n if (metrics.length > 0 && _.findIndex(metrics, ({value}) => value === metric) === -1) {\n dispatch(setMetric(metrics[0].value));\n }\n\n return (\n <Select\n value={[metric]}\n label=\"Check:\"\n items={metrics}\n onUpdate={(vals) => handleChange(vals[0])}\n showSearch={true}\n width=\"max\"\n />\n );\n}\n\nfunction UseCurrentDate() {\n const useCurrentDate = useSelector(getUseCurrentDate);\n const dispatch = useDispatch();\n const handleChange = useCallback(() => {\n dispatch(toggleUseCurrentDate());\n }, []);\n\n return (\n <Checkbox\n size=\"l\"\n content=\"Current date\"\n checked={useCurrentDate}\n onChange={handleChange}\n />\n );\n}\n\nfunction CustomDate() {\n const date = useSelector(getDate);\n const dispatch = useDispatch();\n const handleChange = useCallback(({from}) => {\n dispatch(setDate(from));\n }, []);\n\n return (\n <Datepicker\n range={false}\n from={date}\n to={date}\n scale=\"day\"\n hasClear={false}\n controlWidth={180}\n onUpdate={handleChange}\n />\n );\n}\n\nfunction Toolbar({className}) {\n const stat = useSelector(getStat);\n return (\n <div className={className}>\n <div className={odinCN('toolbar-metric-filter', tbBlock('component'))}>\n <MetricSelector />\n </div>\n <div className={odinCN('toolbar-date-filter', tbBlock('component'))}>\n <CustomDate />\n </div>\n <div className={odinCN('toolbar-current-date', tbBlock('component'))}>\n <UseCurrentDate />\n </div>\n <div className={odinCN('toolbar-availability-message', tbBlock('component'))}>\n <div className=\"elements-message elements-message_theme_info\">\n <p className=\"elements-message__paragraph\">\n We were available from <em>{hammer.format.Percent(stat.from * 100)}</em> to{' '}\n <em>{hammer.format.Percent(stat.to * 100)}</em> of time.\n </p>\n </div>\n </div>\n </div>\n );\n}\n\nexport default Toolbar;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAGC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAO,OAAO;AAC7D,SAAQC,WAAW,EAAEC,WAAW,QAAO,aAAa;AAEpD,SAAQC,QAAQ,QAAO,mBAAmB;AAC1C,OAAOC,MAAM,MAAM,mCAAmC;AACtD,SAAQC,UAAU,QAAO,uCAAuC;AAEhE,OAAOC,KAAK,MAAM,aAAa;AAG/B,SAAQC,OAAO,EAAEC,SAAS,EAAEC,OAAO,EAAEC,iBAAiB,QAAO,eAAe;
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useState","useDispatch","useSelector","Checkbox","Select","Datepicker","block","getDate","getMetric","getOdinCluster","getStat","getUseCurrentDate","setDate","setMetric","toggleUseCurrentDate","Utils","hammer","jsx","_jsx","jsxs","_jsxs","odinCN","tbBlock","useLoadMetricsList","_useState","_useState2","_slicedToArray","metrics","setMetrics","cluster","listMetrics","then","_map","_ref","name","text","display_name","value","MetricSelector","metric","dispatch","handleChange","length","_findIndex","_ref2","label","items","onUpdate","vals","showSearch","width","UseCurrentDate","useCurrentDate","size","content","checked","onChange","CustomDate","date","_ref3","from","range","to","scale","hasClear","controlWidth","Toolbar","_ref4","className","stat","children","format","Percent"],"sources":["OdinToolbar.js"],"sourcesContent":["import React, {useCallback, useEffect, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {Checkbox} from '@gravity-ui/uikit';\nimport Select from '../../../components/Select/Select';\nimport {Datepicker} from '../../../components/common/Datepicker';\n\nimport block from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport {getDate, getMetric, getOdinCluster, getStat, getUseCurrentDate} from '../_selectors';\nimport {setDate, setMetric, toggleUseCurrentDate} from '../_actions';\nimport Utils from '../odin-utils';\nimport hammer from '../../../common/hammer';\n\nconst odinCN = block('odin');\n\nconst tbBlock = block('elements-toolbar');\n\nfunction useLoadMetricsList() {\n const [metrics, setMetrics] = useState([]);\n const cluster = useSelector(getOdinCluster);\n\n useEffect(() => {\n Utils.listMetrics(cluster).then((metrics) => {\n setMetrics(\n _.map(metrics, ({name, display_name: text}) => ({\n value: name,\n text,\n })),\n );\n });\n }, []);\n\n return metrics;\n}\n\nfunction MetricSelector() {\n const metric = useSelector(getMetric);\n const dispatch = useDispatch();\n const metrics = useLoadMetricsList();\n const handleChange = useCallback((value) => {\n dispatch(setMetric(value));\n }, []);\n\n if (metrics.length > 0 && _.findIndex(metrics, ({value}) => value === metric) === -1) {\n dispatch(setMetric(metrics[0].value));\n }\n\n return (\n <Select\n value={[metric]}\n label=\"Check:\"\n items={metrics}\n onUpdate={(vals) => handleChange(vals[0])}\n showSearch={true}\n width=\"max\"\n />\n );\n}\n\nfunction UseCurrentDate() {\n const useCurrentDate = useSelector(getUseCurrentDate);\n const dispatch = useDispatch();\n const handleChange = useCallback(() => {\n dispatch(toggleUseCurrentDate());\n }, []);\n\n return (\n <Checkbox\n size=\"l\"\n content=\"Current date\"\n checked={useCurrentDate}\n onChange={handleChange}\n />\n );\n}\n\nfunction CustomDate() {\n const date = useSelector(getDate);\n const dispatch = useDispatch();\n const handleChange = useCallback(({from}) => {\n dispatch(setDate(from));\n }, []);\n\n return (\n <Datepicker\n range={false}\n from={date}\n to={date}\n scale=\"day\"\n hasClear={false}\n controlWidth={180}\n onUpdate={handleChange}\n />\n );\n}\n\nfunction Toolbar({className}) {\n const stat = useSelector(getStat);\n return (\n <div className={className}>\n <div className={odinCN('toolbar-metric-filter', tbBlock('component'))}>\n <MetricSelector />\n </div>\n <div className={odinCN('toolbar-date-filter', tbBlock('component'))}>\n <CustomDate />\n </div>\n <div className={odinCN('toolbar-current-date', tbBlock('component'))}>\n <UseCurrentDate />\n </div>\n <div className={odinCN('toolbar-availability-message', tbBlock('component'))}>\n <div className=\"elements-message elements-message_theme_info\">\n <p className=\"elements-message__paragraph\">\n We were available from <em>{hammer.format.Percent(stat.from * 100)}</em> to{' '}\n <em>{hammer.format.Percent(stat.to * 100)}</em> of time.\n </p>\n </div>\n </div>\n </div>\n );\n}\n\nexport default Toolbar;\n"],"mappings":"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"}
|
@@ -19,7 +19,7 @@ export default class Utils {
|
|
19
19
|
static request<T = unknown>(path: string, saveCancelToken?: SaveCancelToken): Promise<T>;
|
20
20
|
static isRequestCanceled(error: any): boolean;
|
21
21
|
static checkStatus(cluster: string): Promise<unknown>;
|
22
|
-
static listMetrics(): Promise<MetricListItem[]>;
|
22
|
+
static listMetrics(cluster: string): Promise<MetricListItem[]>;
|
23
23
|
static getMetric(cluster: string, metric: string, from: Date, to: Date, saveCT: SaveCancelToken): Promise<Availability>;
|
24
24
|
static getMetricOfThisDay(cluster: string, metric: string, date: string | null, saveCancelToken: SaveCancelToken): Promise<Availability>;
|
25
25
|
static prepareAvailabilityData(availability: Availability, size: number): Array<MetricData>;
|
@@ -46,8 +46,8 @@ var Utils = /*#__PURE__*/function () {
|
|
46
46
|
}
|
47
47
|
}, {
|
48
48
|
key: "listMetrics",
|
49
|
-
value: function listMetrics() {
|
50
|
-
return Utils.request(
|
49
|
+
value: function listMetrics(cluster) {
|
50
|
+
return Utils.request("/service_list/".concat(cluster));
|
51
51
|
}
|
52
52
|
}, {
|
53
53
|
key: "getMetric",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["axios","moment","DATE_FORMAT","hasOdinPage","Utils","_classCallCheck","_createClass","key","value","request","path","saveCancelToken","url","ODIN_PATH","method","responseType","withCredentials","ODIN_AUTH","cancelToken","CancelToken","cancel","then","response","data","error","_error$response","isCancel","Promise","reject","isRequestCanceled","checkStatus","cluster","listMetrics","getMetric","metric","from","to","saveCT","toISOString","getMetricOfThisDay","date","startTime","startOf","endTime","add","toDate","prepareAvailabilityData","availability","size","asArray","property","getPropertyName","i","substr","length","Object","hasOwnProperty","call","state","push","computeStat","counts","_countBy","_ref","sum","default","currentDate","format","fetchClustersAvailability","resolve"],"sources":["odin-utils.ts"],"sourcesContent":["import axios, {Canceler} from 'axios';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nimport {DATE_FORMAT} from './odin-constants';\nimport {hasOdinPage} from '../../config';\n\ntype SaveCancelToken = ({cancel}: {cancel: Canceler}) => void;\ntype Availability = {[key: string]: MetricData};\n\nexport interface MetricListItem {\n display_name: string;\n name: string;\n}\n\nexport interface MetricData {\n message?: string;\n state: 'available' | 'unavailable' | 'partially_available' | 'no_data';\n}\n\nexport default class Utils {\n static ODIN_PATH = '/api/odin/proxy';\n static ODIN_AUTH = 'none';\n\n static request<T = unknown>(path: string, saveCancelToken?: SaveCancelToken): Promise<T> {\n return axios\n .request({\n url: Utils.ODIN_PATH + path,\n method: 'GET',\n responseType: 'json',\n withCredentials: Utils.ODIN_AUTH === 'domain',\n cancelToken: new axios.CancelToken((cancel) => {\n if (typeof saveCancelToken === 'function') {\n saveCancelToken({cancel});\n }\n }),\n })\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n if (axios.isCancel(error)) {\n return Promise.reject(error);\n }\n return Promise.reject(error.response?.data || error);\n });\n }\n\n static isRequestCanceled(error: any) {\n return axios.isCancel(error);\n }\n\n static checkStatus(cluster: string) {\n return Utils.request('/exists/' + cluster);\n }\n\n static listMetrics() {\n return Utils.request<Array<MetricListItem>>(
|
1
|
+
{"version":3,"names":["axios","moment","DATE_FORMAT","hasOdinPage","Utils","_classCallCheck","_createClass","key","value","request","path","saveCancelToken","url","ODIN_PATH","method","responseType","withCredentials","ODIN_AUTH","cancelToken","CancelToken","cancel","then","response","data","error","_error$response","isCancel","Promise","reject","isRequestCanceled","checkStatus","cluster","listMetrics","concat","getMetric","metric","from","to","saveCT","toISOString","getMetricOfThisDay","date","startTime","startOf","endTime","add","toDate","prepareAvailabilityData","availability","size","asArray","property","getPropertyName","i","substr","length","Object","hasOwnProperty","call","state","push","computeStat","counts","_countBy","_ref","sum","default","currentDate","format","fetchClustersAvailability","resolve"],"sources":["odin-utils.ts"],"sourcesContent":["import axios, {Canceler} from 'axios';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nimport {DATE_FORMAT} from './odin-constants';\nimport {hasOdinPage} from '../../config';\n\ntype SaveCancelToken = ({cancel}: {cancel: Canceler}) => void;\ntype Availability = {[key: string]: MetricData};\n\nexport interface MetricListItem {\n display_name: string;\n name: string;\n}\n\nexport interface MetricData {\n message?: string;\n state: 'available' | 'unavailable' | 'partially_available' | 'no_data';\n}\n\nexport default class Utils {\n static ODIN_PATH = '/api/odin/proxy';\n static ODIN_AUTH = 'none';\n\n static request<T = unknown>(path: string, saveCancelToken?: SaveCancelToken): Promise<T> {\n return axios\n .request({\n url: Utils.ODIN_PATH + path,\n method: 'GET',\n responseType: 'json',\n withCredentials: Utils.ODIN_AUTH === 'domain',\n cancelToken: new axios.CancelToken((cancel) => {\n if (typeof saveCancelToken === 'function') {\n saveCancelToken({cancel});\n }\n }),\n })\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n if (axios.isCancel(error)) {\n return Promise.reject(error);\n }\n return Promise.reject(error.response?.data || error);\n });\n }\n\n static isRequestCanceled(error: any) {\n return axios.isCancel(error);\n }\n\n static checkStatus(cluster: string) {\n return Utils.request('/exists/' + cluster);\n }\n\n static listMetrics(cluster: string) {\n return Utils.request<Array<MetricListItem>>(`/service_list/${cluster}`);\n }\n\n static getMetric(\n cluster: string,\n metric: string,\n from: Date,\n to: Date,\n saveCT: SaveCancelToken,\n ) {\n return Utils.request<Availability>(\n '/availability/' +\n cluster +\n '?metric=' +\n metric +\n '&start_time=' +\n moment(from).toISOString() +\n '&end_time=' +\n moment(to).toISOString() +\n '&return_state_without_message=0',\n saveCT,\n );\n }\n\n static getMetricOfThisDay(\n cluster: string,\n metric: string,\n date: string | null,\n saveCancelToken: SaveCancelToken,\n ) {\n const startTime = moment(date).startOf('day');\n const endTime = moment(startTime).add(1, 'day');\n return Utils.getMetric(\n cluster,\n metric,\n startTime.toDate(),\n endTime.toDate(),\n saveCancelToken,\n );\n }\n\n static prepareAvailabilityData(availability: Availability, size: number): Array<MetricData> {\n const asArray: Array<MetricData> = [];\n let property: string;\n let data: MetricData;\n\n function getPropertyName(i: number) {\n let property = '00000' + i;\n property = 'at_' + property.substr(property.length - 5);\n return property;\n }\n\n for (let i = 0; i < size; i++) {\n property = getPropertyName(i);\n\n if (availability && Object.hasOwnProperty.call(availability, property)) {\n data = availability[property];\n } else {\n data = {\n state: 'no_data',\n };\n }\n asArray.push(data);\n }\n\n return asArray;\n }\n\n static computeStat(availability: Array<MetricData>) {\n const counts = _.countBy(availability, ({state}) => {\n if (state === 'available') {\n return 'available';\n } else if (state === 'no_data') {\n return 'no_data';\n } else {\n return 'unavailable';\n }\n });\n\n const sum = availability.length;\n\n return {\n from: (counts['available'] || 0) / sum,\n to: (sum - (counts['unavailable'] || 0)) / sum,\n };\n }\n}\n\nexport function currentDate() {\n return moment().startOf('day').format(DATE_FORMAT);\n}\n\nexport const fetchClustersAvailability = hasOdinPage()\n ? () => {\n return axios.request({\n method: 'get',\n url: '/api/odin/clusters/availability',\n }) as Promise<\n {\n id: string;\n availability?: 1 | undefined;\n }[]\n >;\n }\n : () => Promise.resolve([]);\n"],"mappings":"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"}
|
@@ -44,7 +44,7 @@
|
|
44
44
|
"js": [
|
45
45
|
"js/runtime.22e88c00.js",
|
46
46
|
"js/vendors.e6a251eb.js",
|
47
|
-
"js/main.
|
47
|
+
"js/main.724df837.js"
|
48
48
|
],
|
49
49
|
"css": [
|
50
50
|
"css/main.77009ada.css"
|
@@ -93,8 +93,8 @@
|
|
93
93
|
"js/955.e1c8cf19.chunk.js": "js/955.e1c8cf19.chunk.js",
|
94
94
|
"js/955.e1c8cf19.chunk.js.LICENSE.txt": "js/955.e1c8cf19.chunk.js.LICENSE.txt",
|
95
95
|
"js/955.e1c8cf19.chunk.js.map": "js/955.e1c8cf19.chunk.js.map",
|
96
|
-
"js/main.
|
97
|
-
"js/main.
|
96
|
+
"js/main.724df837.js.LICENSE.txt": "js/main.724df837.js.LICENSE.txt",
|
97
|
+
"js/main.724df837.js.map": "js/main.724df837.js.map",
|
98
98
|
"js/runtime.22e88c00.js.map": "js/runtime.22e88c00.js.map",
|
99
99
|
"js/vendors.e6a251eb.js.LICENSE.txt": "js/vendors.e6a251eb.js.LICENSE.txt",
|
100
100
|
"js/vendors.e6a251eb.js.map": "js/vendors.e6a251eb.js.map",
|
@@ -104,7 +104,7 @@
|
|
104
104
|
"json.5239aa2e.worker.js.LICENSE.txt": "json.5239aa2e.worker.js.LICENSE.txt",
|
105
105
|
"json.5239aa2e.worker.js.map": "json.5239aa2e.worker.js.map",
|
106
106
|
"main.css": "css/main.77009ada.css",
|
107
|
-
"main.js": "js/main.
|
107
|
+
"main.js": "js/main.724df837.js",
|
108
108
|
"runtime.js": "js/runtime.22e88c00.js",
|
109
109
|
"vendors.js": "js/vendors.e6a251eb.js",
|
110
110
|
"vis-network.js": "js/vis-network.b367d390.chunk.js"
|