@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
@@ -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;
@@ -16,6 +16,9 @@ function rememberApp(v) {
16
16
  app = v;
17
17
  }
18
18
  exports.rememberApp = rememberApp;
19
+ /**
20
+ * @deprecated use req.ctx.config instead of App().config
21
+ */
19
22
  function getApp() {
20
23
  return app;
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_renderLayout2","_interopRequireDefault","_utils2","obj","__esModule","default","app","rememberApp","v","Error","getApp","serverFactory","getExtraRootPages","isLocalClusterId","cluster","isLocalModeByEnvironment","_isLocalClusterId","getHomeRedirectedUrl","Promise","resolve","undefined","renderLayout","params","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","_renderLayout","abrupt","sent","stop","configureServerFactoryItem","k","redefinition","configureServerFactory","overrides","_forEach","_v","key","_default","exports","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,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAAgD,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAShD,IAAIG,GAAe;AAEZ,SAASC,WAAWA,CAACC,CAAa,EAAE;EACvC,IAAIF,GAAG,EAAE;IACL,MAAM,IAAIG,KAAK,CAAC,8CAA8C,CAAC;EACnE;EACAH,GAAG,GAAGE,CAAC;AACX;AAEO,SAASE,MAAMA,CAAA,EAAG;EACrB,OAAOJ,GAAG;AACd;AAEA,IAAMK,aAA4B,GAAG;EACjCC,iBAAiB,WAAAA,kBAAA,EAAG;IAChB,OAAO,EAAE;EACb,CAAC;EACDC,gBAAgB,WAAAA,iBAACC,OAAO,EAAE;IACtB,OAAO,IAAAC,gCAAwB,EAAC,CAAC,IAAI,IAAAC,uBAAgB,EAACF,OAAO,CAAC;EAClE,CAAC;EACDG,oBAAoB,WAAAA,qBAAA,EAAG;IACnB,OAAOC,OAAO,CAACC,OAAO,CAACC,SAAS,CAAC;EACrC,CAAC;EACKC,YAAY,WAAAA,aAACC,MAAM,EAAE;IAAA,WAAAC,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,UAAAC,QAAA;MAAA,OAAAF,oBAAA,CAAAG,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACV,IAAAC,sBAAY,EAAaV,MAAM,CAAC;UAAA;YAAA,OAAAO,QAAA,CAAAI,MAAA,WAAAJ,QAAA,CAAAK,IAAA;UAAA;UAAA;YAAA,OAAAL,QAAA,CAAAM,IAAA;QAAA;MAAA,GAAAT,OAAA;IAAA;EACjD;AACJ,CAAC;AAED,SAASU,0BAA0BA,CAC/BC,CAAI,EACJC,YAA8B,EAChC;EACE3B,aAAa,CAAC0B,CAAC,CAAC,GAAGC,YAAY;AACnC;AAEO,SAASC,sBAAsBA,CAACC,SAAiC,EAAE;EACtE,IAAAC,iBAAA,EAAUD,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;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAxC,OAAA,GAEe,IAAIyC,KAAK,CAACnC,aAAa,EAAE;EACpCoC,GAAG,EAAE,SAAAA,IAAA,EAAM;IACP,MAAM,IAAItC,KAAK,CAAC,oEAAoE,CAAC;EACzF;AACJ,CAAC,CAAC"}
1
+ {"version":3,"names":["_utils","require","_renderLayout2","_interopRequireDefault","_utils2","obj","__esModule","default","app","rememberApp","v","Error","getApp","serverFactory","getExtraRootPages","isLocalClusterId","cluster","isLocalModeByEnvironment","_isLocalClusterId","getHomeRedirectedUrl","Promise","resolve","undefined","renderLayout","params","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","_renderLayout","abrupt","sent","stop","configureServerFactoryItem","k","redefinition","configureServerFactory","overrides","_forEach","_v","key","_default","exports","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,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAAgD,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAShD,IAAIG,GAAe;AAEZ,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;AACO,SAASE,MAAMA,CAAA,EAAG;EACrB,OAAOJ,GAAG;AACd;AAEA,IAAMK,aAA4B,GAAG;EACjCC,iBAAiB,WAAAA,kBAAA,EAAG;IAChB,OAAO,EAAE;EACb,CAAC;EACDC,gBAAgB,WAAAA,iBAACC,OAAO,EAAE;IACtB,OAAO,IAAAC,gCAAwB,EAAC,CAAC,IAAI,IAAAC,uBAAgB,EAACF,OAAO,CAAC;EAClE,CAAC;EACDG,oBAAoB,WAAAA,qBAAA,EAAG;IACnB,OAAOC,OAAO,CAACC,OAAO,CAACC,SAAS,CAAC;EACrC,CAAC;EACKC,YAAY,WAAAA,aAACC,MAAM,EAAE;IAAA,WAAAC,0BAAA,gBAAAC,oBAAA,CAAAC,IAAA,UAAAC,QAAA;MAAA,OAAAF,oBAAA,CAAAG,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACV,IAAAC,sBAAY,EAAaV,MAAM,CAAC;UAAA;YAAA,OAAAO,QAAA,CAAAI,MAAA,WAAAJ,QAAA,CAAAK,IAAA;UAAA;UAAA;YAAA,OAAAL,QAAA,CAAAM,IAAA;QAAA;MAAA,GAAAT,OAAA;IAAA;EACjD;AACJ,CAAC;AAED,SAASU,0BAA0BA,CAC/BC,CAAI,EACJC,YAA8B,EAChC;EACE3B,aAAa,CAAC0B,CAAC,CAAC,GAAGC,YAAY;AACnC;AAEO,SAASC,sBAAsBA,CAACC,SAAiC,EAAE;EACtE,IAAAC,iBAAA,EAAUD,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;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAxC,OAAA,GAEe,IAAIyC,KAAK,CAACnC,aAAa,EAAE;EACpCoC,GAAG,EAAE,SAAAA,IAAA,EAAM;IACP,MAAM,IAAItC,KAAK,CAAC,oEAAoE,CAAC;EACzF;AACJ,CAAC,CAAC"}
@@ -8,7 +8,6 @@ const axios_1 = __importDefault(require("axios"));
8
8
  const lodash_1 = __importDefault(require("lodash"));
9
9
  const utils_1 = require("../components/utils");
10
10
  const utils_2 = require("../utils");
11
- const ServerFactory_1 = require("../ServerFactory");
12
11
  function getClusterAvailability(clusterConfig, odinPath) {
13
12
  const ODIN_PERIOD = 5;
14
13
  const ODIN_METRIC = 'master';
@@ -28,38 +27,57 @@ function getClusterAvailability(clusterConfig, odinPath) {
28
27
  return response.data;
29
28
  });
30
29
  }
31
- function getAvailability(req, clusters, odinPath) {
32
- const url = `${odinPath}/is_alive`;
33
- return axios_1.default
34
- .request({ url, responseType: 'json' })
35
- .then((res) => {
36
- if (res.data !== true) {
30
+ function getAvailability(req, clusters) {
31
+ const odinBaseUrl = req.ctx.config.odinBaseUrl;
32
+ const isMultiOdinBaseUrl = 'string' !== typeof odinBaseUrl;
33
+ const makeOdinIsAliveUrl = (odinBaseUrl) => `${odinBaseUrl}/is_alive`;
34
+ const commonIsAlive = isMultiOdinBaseUrl
35
+ ? Promise.resolve({ data: true })
36
+ : axios_1.default.request({ url: makeOdinIsAliveUrl(odinBaseUrl) });
37
+ return commonIsAlive
38
+ .then(({ data: commonAlive }) => {
39
+ if (!commonAlive) {
37
40
  return [];
38
41
  }
39
42
  return Promise.all(lodash_1.default.map(clusters, (clusterConfig) => {
40
- const id = clusterConfig.id;
41
- return getClusterAvailability(clusterConfig, odinPath)
42
- .then((availability) => ({ id, availability }))
43
- .catch((error) => {
44
- req.ctx.logError('getAvailability error', error);
45
- return { id };
43
+ const odinPath = isMultiOdinBaseUrl
44
+ ? odinBaseUrl === null || odinBaseUrl === void 0 ? void 0 : odinBaseUrl[clusterConfig.id]
45
+ : odinBaseUrl;
46
+ if (!odinPath) {
47
+ return {};
48
+ }
49
+ const alive = isMultiOdinBaseUrl
50
+ ? axios_1.default.get(makeOdinIsAliveUrl(odinPath)).catch((e) => {
51
+ req.ctx.logError(`Error of getting ${odinPath}`, e);
52
+ return { data: false };
53
+ })
54
+ : Promise.resolve({ data: true });
55
+ return alive.then(({ data }) => {
56
+ if (data != true) {
57
+ return {};
58
+ }
59
+ return getClusterAvailability(clusterConfig, odinPath)
60
+ .then((availability) => ({ id: clusterConfig.id, availability }))
61
+ .catch((error) => {
62
+ req.ctx.logError('getAvailability error', error);
63
+ return {};
64
+ });
46
65
  });
47
66
  }));
48
67
  })
49
68
  .catch((e) => {
50
- req.ctx.logError(`Error of getting ${url}`, e);
69
+ req.ctx.logError(`Error of getting ${odinBaseUrl}`, e);
51
70
  return [];
52
71
  });
53
72
  }
54
73
  async function getClustersAvailability(req, res) {
55
- var _a;
56
- const odinPath = (_a = (0, ServerFactory_1.getApp)().config) === null || _a === void 0 ? void 0 : _a.odinBaseUrl;
57
- if (!odinPath) {
74
+ const odinBaseUrl = req.ctx.config.odinBaseUrl;
75
+ if (!odinBaseUrl) {
58
76
  (0, utils_2.sendAndLogError)(req.ctx, res, 500, new Error('odin base url is not configured'));
59
77
  return;
60
78
  }
61
79
  const clusters = (0, utils_1.getClustersFromConfig)();
62
- await getAvailability(req, clusters, odinPath)
80
+ await getAvailability(req, clusters)
63
81
  .then((data) => (0, utils_2.sendResponse)(res, data))
64
82
  .catch((error) => (0, utils_2.sendError)(res, error));
65
83
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_utils","_utils2","_ServerFactory","obj","__esModule","default","getClusterAvailability","clusterConfig","odinPath","ODIN_PERIOD","ODIN_METRIC","TIMEOUT","axios","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","getApp","config","odinBaseUrl","sendAndLogError","Error","abrupt","getClustersFromConfig","sendResponse","sendError","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","_interopRequireDefault","require","_utils","_utils2","obj","__esModule","default","getClusterAvailability","clusterConfig","odinPath","ODIN_PERIOD","ODIN_METRIC","TIMEOUT","axios","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","sendAndLogError","Error","abrupt","getClustersFromConfig","sendResponse","sendError","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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"}
@@ -8,7 +8,6 @@ const lodash_1 = __importDefault(require("lodash"));
8
8
  const axios_1 = __importDefault(require("axios"));
9
9
  const qs_1 = __importDefault(require("qs"));
10
10
  const utils_1 = require("../utils");
11
- const ServerFactory_1 = require("../ServerFactory");
12
11
  async function odinProxyApi(req, res) {
13
12
  try {
14
13
  await odinProxyApiImpl(req, res);
@@ -23,14 +22,14 @@ async function odinProxyApi(req, res) {
23
22
  }
24
23
  exports.odinProxyApi = odinProxyApi;
25
24
  async function odinProxyApiImpl(req, res) {
26
- var _a;
27
- const odinPath = (_a = (0, ServerFactory_1.getApp)().config) === null || _a === void 0 ? void 0 : _a.odinBaseUrl;
25
+ const { action, ytAuthCluster: cluster } = req.params;
26
+ const { odinBaseUrl } = req.ctx.config;
27
+ const odinPath = typeof odinBaseUrl === 'string' ? odinBaseUrl : odinBaseUrl === null || odinBaseUrl === void 0 ? void 0 : odinBaseUrl[cluster];
28
28
  if (!odinPath) {
29
29
  return (0, utils_1.sendAndLogError)(req.ctx, res, 500, new Error('Odin base url is not configured'));
30
30
  }
31
31
  const { ctx, query } = req;
32
32
  const search = lodash_1.default.isEmpty(query) ? '' : `?${qs_1.default.stringify(query)}`;
33
- const { action, ytAuthCluster: cluster } = req.params;
34
33
  const allowedActionsUrls = {
35
34
  service_list: `${odinPath}/service_list`,
36
35
  exists: `${odinPath}/${action}/${cluster}`,
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_qs","_utils","_ServerFactory","obj","__esModule","default","odinProxyApi","_x","_x2","_odinProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","odinProxyApiImpl","t0","sendAndLogError","ctx","method","query","page","headers","referer","stop","_x3","_x4","_odinProxyApiImpl","_callee3","_getApp$config","odinPath","search","_req$params","action","cluster","allowedActionsUrls","url","_callee3$","_context3","getApp","config","odinBaseUrl","abrupt","Error","_isEmpty","concat","qs","stringify","params","ytAuthCluster","service_list","exists","availability","_has","axios","request","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","pipeAxiosResponse","sent","UNEXPECTED_PIPE_AXIOS_RESPONSE","_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","_interopRequireDefault","require","_qs","_utils","obj","__esModule","default","odinProxyApi","_x","_x2","_odinProxyApi","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","req","res","wrap","_callee$","_context","prev","next","odinProxyApiImpl","t0","sendAndLogError","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","qs","stringify","service_list","exists","availability","_has","axios","request","_objectSpread","getMetadata","data","body","timeout","responseType","then","_ref","_callee2","response","pipedSize","_callee2$","_context2","pipeAxiosResponse","sent","UNEXPECTED_PIPE_AXIOS_RESPONSE","_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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"}
@@ -19,6 +19,8 @@ var supportedContentTypes = {
19
19
  map_node: _MapNode.default,
20
20
  portal_entrance: _MapNode.default,
21
21
  portal_exit: _MapNode.default,
22
+ rootstock: _MapNode.default,
23
+ scion: _MapNode.default,
22
24
  cell_node_map: _MapNode.default,
23
25
  sys_node: _MapNode.default,
24
26
  access_control_object_namespace_map: _MapNode.default,
@@ -1 +1 @@
1
- {"version":3,"names":["_ACL","require","_ReplicatedTable","_interopRequireDefault","_ReplicatedTableMeta","_Link","_File","_Table","_MapNode","_DocumentWithRum","_Transaction","_TransactionMap","obj","__esModule","default","supportedContentTypes","map_node","MapNode","portal_entrance","portal_exit","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","AccessAclTab","tablet_cell","scheduler_pool_tree_map","scheduler_pool","document","Document","string_node","int64_node","uint64_node","double_node","boolean_node","link","Link","file","File","table","Table","replicated_table","ReplicatedTable","chaos_replicated_table","replication_log_table","ReplicatedTableMeta","transaction","Transaction","nested_transaction","topmost_transaction_map","TransactionMap","transaction_map","_default","exports","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,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,KAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,MAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,QAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,gBAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,YAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,eAAA,GAAAR,sBAAA,CAAAF,OAAA;AAAkG,SAAAE,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAElG,IAAMG,qBAAqB,GAAG;EAC1BC,QAAQ,EAAEC,gBAAO;EACjBC,eAAe,EAAED,gBAAO;EACxBE,WAAW,EAAEF,gBAAO;EACpBG,aAAa,EAAEH,gBAAO;EACtBI,QAAQ,EAAEJ,gBAAO;EACjBK,mCAAmC,EAAEL,gBAAO;EAC5CM,+BAA+B,EAAEN,gBAAO;EACxCO,qBAAqB,EAAEC,iBAAY;EACnCC,WAAW,EAAET,gBAAO;EACpBU,uBAAuB,EAAEV,gBAAO;EAChCW,cAAc,EAAEX,gBAAO;EACvBY,QAAQ,EAAEC,wBAAQ;EAClBC,WAAW,EAAED,wBAAQ;EACrBE,UAAU,EAAEF,wBAAQ;EACpBG,WAAW,EAAEH,wBAAQ;EACrBI,WAAW,EAAEJ,wBAAQ;EACrBK,YAAY,EAAEL,wBAAQ;EACtBM,IAAI,EAAEC,aAAI;EACVC,IAAI,EAAEC,aAAI;EACVC,KAAK,EAAEC,cAAK;EACZC,gBAAgB,EAAEC,wBAAe;EACjCC,sBAAsB,EAAED,wBAAe;EACvCE,qBAAqB,EAAEC,4BAAmB;EAC1CC,WAAW,EAAEC,oBAAW;EACxBC,kBAAkB,EAAED,oBAAW;EAC/BE,uBAAuB,EAAEC,uBAAc;EACvCC,eAAe,EAAED;AACrB,CAAC;AAAA,IAAAE,QAAA,GAAAC,OAAA,CAAAxC,OAAA,GAEc,SAAAuC,SAACE,IAAY;EAAA,OAAKxC,qBAAqB,CAACwC,IAAI,CAAuC;AAAA"}
1
+ {"version":3,"names":["_ACL","require","_ReplicatedTable","_interopRequireDefault","_ReplicatedTableMeta","_Link","_File","_Table","_MapNode","_DocumentWithRum","_Transaction","_TransactionMap","obj","__esModule","default","supportedContentTypes","map_node","MapNode","portal_entrance","portal_exit","rootstock","scion","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","AccessAclTab","tablet_cell","scheduler_pool_tree_map","scheduler_pool","document","Document","string_node","int64_node","uint64_node","double_node","boolean_node","link","Link","file","File","table","Table","replicated_table","ReplicatedTable","chaos_replicated_table","replication_log_table","ReplicatedTableMeta","transaction","Transaction","nested_transaction","topmost_transaction_map","TransactionMap","transaction_map","_default","exports","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,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,KAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,MAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,QAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,gBAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,YAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,eAAA,GAAAR,sBAAA,CAAAF,OAAA;AAAkG,SAAAE,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAElG,IAAMG,qBAAqB,GAAG;EAC1BC,QAAQ,EAAEC,gBAAO;EACjBC,eAAe,EAAED,gBAAO;EACxBE,WAAW,EAAEF,gBAAO;EACpBG,SAAS,EAAEH,gBAAO;EAClBI,KAAK,EAAEJ,gBAAO;EACdK,aAAa,EAAEL,gBAAO;EACtBM,QAAQ,EAAEN,gBAAO;EACjBO,mCAAmC,EAAEP,gBAAO;EAC5CQ,+BAA+B,EAAER,gBAAO;EACxCS,qBAAqB,EAAEC,iBAAY;EACnCC,WAAW,EAAEX,gBAAO;EACpBY,uBAAuB,EAAEZ,gBAAO;EAChCa,cAAc,EAAEb,gBAAO;EACvBc,QAAQ,EAAEC,wBAAQ;EAClBC,WAAW,EAAED,wBAAQ;EACrBE,UAAU,EAAEF,wBAAQ;EACpBG,WAAW,EAAEH,wBAAQ;EACrBI,WAAW,EAAEJ,wBAAQ;EACrBK,YAAY,EAAEL,wBAAQ;EACtBM,IAAI,EAAEC,aAAI;EACVC,IAAI,EAAEC,aAAI;EACVC,KAAK,EAAEC,cAAK;EACZC,gBAAgB,EAAEC,wBAAe;EACjCC,sBAAsB,EAAED,wBAAe;EACvCE,qBAAqB,EAAEC,4BAAmB;EAC1CC,WAAW,EAAEC,oBAAW;EACxBC,kBAAkB,EAAED,oBAAW;EAC/BE,uBAAuB,EAAEC,uBAAc;EACvCC,eAAe,EAAED;AACrB,CAAC;AAAA,IAAAE,QAAA,GAAAC,OAAA,CAAA1C,OAAA,GAEc,SAAAyC,SAACE,IAAY;EAAA,OAAK1C,qBAAqB,CAAC0C,IAAI,CAAuC;AAAA"}
@@ -52,7 +52,7 @@ function fetchOdinOverview(cluster) {
52
52
  }
53
53
  });
54
54
  }
55
- return _odinUtils.default.listMetrics().then(function (clusterMetrics) {
55
+ return _odinUtils.default.listMetrics(cluster).then(function (clusterMetrics) {
56
56
  if (getCluterHelper(getState) !== cluster) {
57
57
  return;
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_forEach2","_interopRequireDefault","require","_map2","_odinUtils","_odinConstants","_odinOverview","_settings","_uikit","_utils","_settings2","_odinSettings","obj","__esModule","default","getCluterHelper","gs","getOdinOverviewDataCluster","COUNT_OF_MINUTES","fetchOdinOverview","cluster","dispatch","getState","data","getOdinOverviewData","_forEach","_ref","cancel","type","ODIN_OVERVIEW_PARTIAL","clusterMetrics","dataCluster","Utils","listMetrics","then","to","Date","from","getTime","ODIN_OVERVIEW_SUCCESS","dateFrom","dateTo","hiddenMetrics","getOdinOverviewHiddenMetrics","forEach","_ref2","name","fetchMetricData","error","isRequestCanceled","ODIN_OVERVIEW_CANCELLED","ODIN_OVERVIEW_FAILED","Promise","reject","_ref3","getMetric","c","d","_objectSpread","_defineProperty","metricData","prepareAvailabilityData","reloadOdinOverviewMetricData","metricName","state","getOdinOverviewDateFrom","getOdinOverviewDateTo","toggleOdinOverviewMetricVisibility","ODIN_OVERVIEW_HIDDEN_METRICS","odinOverviewSetAllMetricsVisible","value","oldHhiddenMetrics","toReload","metrics","getOdinOverviewClusterMetrics","_ref4","_map","__","odinOverviewShowCreatePresetDialog","showCreatePresetDialog","odinOverviewAddPreset","isDefault","toHide","reloadSetting","ODIN_VISIBLE_METRIC_PRESETS","YA_NAMESPACES","ODIN","presets","_toConsumableArray","getOdinOverviewVisiblePresets","push","hiddenMetricNames","_","setSetting","odinOverviewToggleDefaultPreset","_error$response","response","message","Toaster","add","autoHiding","content","title","actions","label","onClick","showErrorPopup","odinOverviewSetPresetToRemove","presetToRemove","odinOverviewRemovePreset","oldPresets","filter","item","_error$response2","i","length","_error$response3","odinOverviewSelectPreset","preset","find","oldHiddenMetrics","setOdinLastVisitedTab","tab","current","getOdinLastVisitedTab","ODIN_LAST_VISITED_TAB","NAMESPACES","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,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAGA,IAAAG,cAAA,GAAAH,OAAA;AAOA,IAAAI,aAAA,GAAAJ,OAAA;AAUA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AAAkG,SAAAD,uBAAAW,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAKlG,SAASG,eAAeA,CAACC,EAAuB,EAAE;EAC9C,OAAO,IAAAC,wCAA0B,EAACD,EAAE,CAAC,CAAC,CAAC;AAC3C;AAEA,IAAME,gBAAgB,GAAG,EAAE;AAEpB,SAASC,iBAAiBA,CAACC,OAAe,EAA2B;EACxE,OAAO,UAACC,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAIP,eAAe,CAACO,QAAQ,CAAC,KAAKF,OAAO,EAAE;MACvC,IAAMG,IAAI,GAAG,IAAAC,iCAAmB,EAACF,QAAQ,CAAC,CAAC,CAAC;MAC5C,IAAAG,iBAAQ,EAACF,IAAI,EAAE,UAAAG,IAAA,EAAc;QAAA,IAAZC,MAAM,GAAAD,IAAA,CAANC,MAAM;QACnB,IAAIA,MAAM,EAAE;UACRA,MAAM,CAAC,CAAC;QACZ;MACJ,CAAC,CAAC;MACFN,QAAQ,CAAC;QACLO,IAAI,EAAEC,oCAAqB;QAC3BN,IAAI,EAAE;UAACA,IAAI,EAAE,CAAC,CAAC;UAAEO,cAAc,EAAE,EAAE;UAAEC,WAAW,EAAEX;QAAO;MAC7D,CAAC,CAAC;IACN;IAEA,OAAOY,kBAAK,CAACC,WAAW,CAAC,CAAC,CACrBC,IAAI,CAAC,UAACJ,cAAc,EAAK;MACtB,IAAIf,eAAe,CAACO,QAAQ,CAAC,KAAKF,OAAO,EAAE;QACvC;MACJ;MAEA,IAAMe,EAAE,GAAG,IAAIC,IAAI,CAAC,CAAC;MACrB,IAAMC,IAAI,GAAG,IAAID,IAAI,CAACD,EAAE,CAACG,OAAO,CAAC,CAAC,GAAGpB,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;MAClEG,QAAQ,CAAC;QACLO,IAAI,EAAEW,oCAAqB;QAC3BhB,IAAI,EAAE;UAACO,cAAc,EAAdA,cAAc;UAAEU,QAAQ,EAAEH,IAAI;UAAEI,MAAM,EAAEN;QAAE;MACrD,CAAC,CAAC;MAEF,IAAMO,aAAa,GAAG,IAAAC,0CAA4B,EAACrB,QAAQ,CAAC,CAAC,CAAC;MAC9DQ,cAAc,CAACc,OAAO,CAAC,UAAAC,KAAA,EAAY;QAAA,IAAVC,IAAI,GAAAD,KAAA,CAAJC,IAAI;QACzB,IAAI,CAACJ,aAAa,CAACI,IAAI,CAAC,EAAE;UACtBzB,QAAQ,CAAC0B,eAAe,CAAC3B,OAAO,EAAE0B,IAAI,EAAET,IAAI,EAAEF,EAAE,CAAC,CAAC;QACtD;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,SACI,CAAC,UAACa,KAAK,EAAK;MACd,IAAIhB,kBAAK,CAACiB,iBAAiB,CAACD,KAAK,CAAC,EAAE;QAChC3B,QAAQ,CAAC;UAACO,IAAI,EAAEsB;QAAuB,CAAC,CAAC;MAC7C,CAAC,MAAM;QACH7B,QAAQ,CAAC;UAACO,IAAI,EAAEuB,mCAAoB;UAAE5B,IAAI,EAAEyB;QAAK,CAAC,CAAC;MACvD;MACA,OAAOI,OAAO,CAACC,MAAM,CAACL,KAAK,CAAC;IAChC,CAAC,CAAC;EACV,CAAC;AACL;AAEO,SAASD,eAAeA,CAC3B3B,OAAe,EACf0B,IAAY,EACZT,IAAU,EACVF,EAAQ,EACe;EACvB,OAAO,UAACd,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAAgC,KAAA,GAAe,IAAA9B,iCAAmB,EAACF,QAAQ,CAAC,CAAC,CAAC,CAACwB,IAAI,CAAC,IAAI,CAAC,CAAC;MAArDnB,MAAM,GAAA2B,KAAA,CAAN3B,MAAM;IACX,IAAIA,MAAM,EAAE;MACRA,MAAM,CAAC,CAAC;IACZ;IAEA,OAAOK,kBAAK,CAACuB,SAAS,CAACnC,OAAO,EAAE0B,IAAI,EAAET,IAAI,EAAEF,EAAE,EAAE,UAACqB,CAAC,EAAK;MACnD7B,MAAM,GAAG6B,CAAC,CAAC7B,MAAM;IACrB,CAAC,CAAC,CACGO,IAAI,CAAC,UAACuB,CAAC,EAAK;MACT,IAAI1C,eAAe,CAACO,QAAQ,CAAC,KAAKF,OAAO,EAAE;QACvC;MACJ;MAEA,IAAMG,IAAI,OAAAmC,sBAAA,MAAAA,sBAAA,MACH,IAAAlC,iCAAmB,EAACF,QAAQ,CAAC,CAAC,CAAC,WAAAqC,wBAAA,MACjCb,IAAI,EAAG;QACJnB,MAAM,EAANA,MAAM;QACNiC,UAAU,EAAE5B,kBAAK,CAAC6B,uBAAuB,CAACJ,CAAC,EAAEvC,gBAAgB;MACjE,CAAC,EACJ;MACDG,QAAQ,CAAC;QAACO,IAAI,EAAEC,oCAAqB;QAAEN,IAAI,EAAE;UAACA,IAAI,EAAJA;QAAI;MAAC,CAAC,CAAC;IACzD,CAAC,CAAC,SACI,CAAC,UAACyB,KAAK,EAAK;MACd,IAAI,CAAChB,kBAAK,CAACiB,iBAAiB,CAACD,KAAK,CAAC,EAAE;QACjC,IAAMzB,IAAI,OAAAmC,sBAAA,MAAAA,sBAAA,MACH,IAAAlC,iCAAmB,EAACF,QAAQ,CAAC,CAAC,CAAC,WAAAqC,wBAAA,MACjCb,IAAI,EAAG;UAACE,KAAK,EAALA;QAAK,CAAC,EAClB;QACD3B,QAAQ,CAAC;UAACO,IAAI,EAAEC,oCAAqB;UAAEN,IAAI,EAAE;YAACA,IAAI,EAAJA;UAAI;QAAC,CAAC,CAAC;MACzD;MACA,OAAO6B,OAAO,CAACC,MAAM,CAACL,KAAK,CAAC;IAChC,CAAC,CAAC;EACV,CAAC;AACL;AAEO,SAASc,4BAA4BA,CAACC,UAAkB,EAA2B;EACtF,OAAO,UAAC1C,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAM0C,KAAK,GAAG1C,QAAQ,CAAC,CAAC;IACxB,IAAMF,OAAO,GAAG,IAAAH,wCAA0B,EAAC+C,KAAK,CAAC;IACjD,IAAM3B,IAAI,GAAG,IAAA4B,qCAAuB,EAACD,KAAK,CAAC;IAC3C,IAAM7B,EAAE,GAAG,IAAA+B,mCAAqB,EAACF,KAAK,CAAC;IACvC,IAAI3B,IAAI,IAAIF,EAAE,EAAE;MACZd,QAAQ,CAAC0B,eAAe,CAAC3B,OAAO,EAAE2C,UAAU,EAAE1B,IAAI,EAAEF,EAAE,CAAC,CAAC;IAC5D;EACJ,CAAC;AACL;AAEO,SAASgC,kCAAkCA,CAACJ,UAAkB,EAA2B;EAC5F,OAAO,UAAC1C,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMoB,aAAa,OAAAgB,sBAAA,MAAO,IAAAf,0CAA4B,EAACrB,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnE,IAAIoB,aAAa,CAACqB,UAAU,CAAC,EAAE;MAC3B,OAAOrB,aAAa,CAACqB,UAAU,CAAC;IACpC,CAAC,MAAM;MACHrB,aAAa,CAACqB,UAAU,CAAC,GAAG,IAAI;IACpC;IACA1C,QAAQ,CAAC;MACLO,IAAI,EAAEwC,2CAA4B;MAClC7C,IAAI,EAAE;QAACmB,aAAa,EAAbA;MAAa;IACxB,CAAC,CAAC;IACF,IAAI,CAACA,aAAa,CAACqB,UAAU,CAAC,EAAE;MAC5B1C,QAAQ,CAACyC,4BAA4B,CAACC,UAAU,CAAC,CAAC;IACtD;EACJ,CAAC;AACL;AAEO,SAASM,gCAAgCA,CAACC,KAAc,EAA2B;EACtF,OAAO,UAACjD,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAM0C,KAAK,GAAG1C,QAAQ,CAAC,CAAC;IACxB,IAAMiD,iBAAiB,GAAG,IAAA5B,0CAA4B,EAACqB,KAAK,CAAC;IAC7D,IAAIQ,QAAuB,GAAG,EAAE;IAChC,IAAM9B,aAAuC,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC4B,KAAK,EAAE;MACR,IAAMG,OAAO,GAAG,IAAAC,2CAA6B,EAACV,KAAK,CAAC;MACpDS,OAAO,CAAC7B,OAAO,CAAC,UAAA+B,KAAA,EAAY;QAAA,IAAV7B,IAAI,GAAA6B,KAAA,CAAJ7B,IAAI;QAClBJ,aAAa,CAACI,IAAI,CAAC,GAAG,IAAI;MAC9B,CAAC,CAAC;IACN,CAAC,MAAM;MACH0B,QAAQ,GAAG,IAAAI,aAAI,EAACL,iBAAiB,EAAE,UAACM,EAAW,EAAE/B,IAAY;QAAA,OAAKA,IAAI;MAAA,EAAC;IAC3E;IAEAzB,QAAQ,CAAC;MACLO,IAAI,EAAEwC,2CAA4B;MAClC7C,IAAI,EAAE;QAACmB,aAAa,EAAbA;MAAa;IACxB,CAAC,CAAC;IAEF8B,QAAQ,CAAC5B,OAAO,CAAC,UAACE,IAAI,EAAK;MACvBzB,QAAQ,CAACyC,4BAA4B,CAAChB,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC;EACN,CAAC;AACL;AAEO,SAASgC,kCAAkCA,CAC9CC,sBAA+B,EACb;EAClB,OAAO;IAACnD,IAAI,EAAEC,oCAAqB;IAAEN,IAAI,EAAE;MAACwD,sBAAsB,EAAtBA;IAAsB;EAAC,CAAC;AACxE;AAEO,SAASC,qBAAqBA,CAAClC,IAAY,EAAEmC,SAAkB,EAA2B;EAC7F,OAAO,UAAC5D,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAM4D,MAAM,GAAG,IAAAvC,0CAA4B,EAACrB,QAAQ,CAAC,CAAC,CAAC;IACvD,OAAOD,QAAQ,CAAC,IAAA8D,uBAAa,EAACC,yCAA2B,EAAEC,2BAAa,CAACC,IAAI,CAAC,CAAC,CAACpD,IAAI,CAAC,YAAM;MACvF,IAAMqD,OAAO,OAAAC,2BAAA,EAAO,IAAAC,2CAA6B,EAACnE,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC9DiE,OAAO,CAACG,IAAI,CAAC;QACT5C,IAAI,EAAJA,IAAI;QACJ6C,iBAAiB,EAAE,IAAAf,aAAI,EAACM,MAAM,EAAE,UAACU,CAAC,EAAE9C,IAAI;UAAA,OAAKA,IAAI;QAAA;MACrD,CAAC,CAAC;MACF,OAAOzB,QAAQ,CAAC,IAAAwE,oBAAU,EAACT,yCAA2B,EAAEC,2BAAa,CAACC,IAAI,EAAEC,OAAO,CAAC,CAAC,CAChFrD,IAAI,CAAC,YAAM;QACR,IAAI+C,SAAS,EAAE;UACX,OAAO5D,QAAQ,CAACyE,+BAA+B,CAAChD,IAAI,CAAC,CAAC;QAC1D;MACJ,CAAC,CAAC,SACI,CAAC,UAACE,KAAU,EAAK;QAAA,IAAA+C,eAAA;QACnB,IAAMxE,IAAI,GAAG,CAAAyB,KAAK,aAALA,KAAK,gBAAA+C,eAAA,GAAL/C,KAAK,CAAEgD,QAAQ,cAAAD,eAAA,uBAAfA,eAAA,CAAiBxE,IAAI,KAAIyB,KAAK;QAC3C,IAAOiD,OAAO,GAAI1E,IAAI,CAAf0E,OAAO;QAEd,IAAIC,cAAO,CAAC,CAAC,CAACC,GAAG,CAAC;UACdrD,IAAI,EAAE,YAAY;UAClBsD,UAAU,EAAE,KAAK;UACjBxE,IAAI,EAAE,OAAO;UACbyE,OAAO,EAAEJ,OAAO;UAChBK,KAAK,EAAE,wBAAwB;UAC/BC,OAAO,EAAE,CACL;YACIC,KAAK,EAAE,OAAO;YACdC,OAAO,EAAE,SAAAA,QAAA;cAAA,OAAM,IAAAC,qBAAc,EAACnF,IAAI,CAAC;YAAA;UACvC,CAAC;QAET,CAAC,CAAC;MACN,CAAC,CAAC;IACV,CAAC,CAAC;EACN,CAAC;AACL;AAEO,SAASoF,6BAA6BA,CACzC7D,IAAyC,EAClB;EACvB,OAAO,UAACzB,QAAQ,EAAK;IACjBA,QAAQ,CAAC;MACLO,IAAI,EAAEC,oCAAqB;MAC3BN,IAAI,EAAE;QAACqF,cAAc,EAAE9D;MAAI;IAC/B,CAAC,CAAC;EACN,CAAC;AACL;AAEO,SAAS+D,wBAAwBA,CAAC/D,IAAY,EAA2B;EAC5E,OAAO,UAACzB,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,OAAOD,QAAQ,CAAC,IAAA8D,uBAAa,EAACC,yCAA2B,EAAEC,2BAAa,CAACC,IAAI,CAAC,CAAC,CAC1EpD,IAAI,CAAC,YAAM;MACR,IAAM4E,UAAU,GAAG,IAAArB,2CAA6B,EAACnE,QAAQ,CAAC,CAAC,CAAC;MAC5D,IAAMiE,OAAO,GAAGuB,UAAU,CAACC,MAAM,CAAC,UAACC,IAAI;QAAA,OAAKA,IAAI,CAAClE,IAAI,KAAKA,IAAI;MAAA,EAAC;MAC/D,OAAOzB,QAAQ,CACX,IAAAwE,oBAAU,EAACT,yCAA2B,EAAEC,2BAAa,CAACC,IAAI,EAAEC,OAAO,CACvE,CAAC;IACL,CAAC,CAAC,SACI,CAAC,UAACvC,KAAU,EAAK;MAAA,IAAAiE,gBAAA;MACnB,IAAM1F,IAAI,GAAG,CAAAyB,KAAK,aAALA,KAAK,gBAAAiE,gBAAA,GAALjE,KAAK,CAAEgD,QAAQ,cAAAiB,gBAAA,uBAAfA,gBAAA,CAAiB1F,IAAI,KAAIyB,KAAK;MAC3C,IAAOiD,OAAO,GAAI1E,IAAI,CAAf0E,OAAO;MAEd,IAAIC,cAAO,CAAC,CAAC,CAACC,GAAG,CAAC;QACdrD,IAAI,EAAE,eAAe;QACrBsD,UAAU,EAAE,KAAK;QACjBxE,IAAI,EAAE,OAAO;QACbyE,OAAO,EAAEJ,OAAO;QAChBK,KAAK,EAAE,6BAA6B;QACpCC,OAAO,EAAE,CAAC;UAACC,KAAK,EAAE,OAAO;UAAEC,OAAO,EAAE,SAAAA,QAAA;YAAA,OAAM,IAAAC,qBAAc,EAACnF,IAAI,CAAC;UAAA;QAAA,CAAC;MACnE,CAAC,CAAC;IACN,CAAC,CAAC;EACV,CAAC;AACL;AAEO,SAASuE,+BAA+BA,CAAChD,IAAY,EAA2B;EACnF,OAAO,UAACzB,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,OAAOD,QAAQ,CAAC,IAAA8D,uBAAa,EAACC,yCAA2B,EAAEC,2BAAa,CAACC,IAAI,CAAC,CAAC,CAACpD,IAAI,CAAC,YAAM;MACvF,IAAMqD,OAAO,OAAAC,2BAAA,EAAO,IAAAC,2CAA6B,EAACnE,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC9D,KAAK,IAAI4F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG3B,OAAO,CAAC4B,MAAM,EAAE,EAAED,CAAC,EAAE;QACrC,IAAMF,IAAI,GAAGzB,OAAO,CAAC2B,CAAC,CAAC;QACvB,IAAIF,IAAI,CAAClE,IAAI,KAAKA,IAAI,EAAE;UACpByC,OAAO,CAAC2B,CAAC,CAAC,OAAAxD,sBAAA,MAAAA,sBAAA,MAAOsD,IAAI;YAAE/B,SAAS,EAAE,CAAC+B,IAAI,CAAC/B;UAAS,EAAC;QACtD,CAAC,MAAM,IAAI+B,IAAI,CAAC/B,SAAS,EAAE;UACvBM,OAAO,CAAC2B,CAAC,CAAC,OAAAxD,sBAAA,MAAOsD,IAAI,CAAC;UACtB,OAAOzB,OAAO,CAAC2B,CAAC,CAAC,CAAC,WAAW,CAAC;QAClC;MACJ;MACA,OAAO7F,QAAQ,CACX,IAAAwE,oBAAU,EAACT,yCAA2B,EAAEC,2BAAa,CAACC,IAAI,EAAEC,OAAO,CACvE,CAAC,SAAM,CAAC,UAACvC,KAAU,EAAK;QAAA,IAAAoE,gBAAA;QACpB,IAAM7F,IAAI,GAAG,CAAAyB,KAAK,aAALA,KAAK,gBAAAoE,gBAAA,GAALpE,KAAK,CAAEgD,QAAQ,cAAAoB,gBAAA,uBAAfA,gBAAA,CAAiB7F,IAAI,KAAIyB,KAAK;QAC3C,IAAOiD,OAAO,GAAI1E,IAAI,CAAf0E,OAAO;QAEd,IAAIC,cAAO,CAAC,CAAC,CAACC,GAAG,CAAC;UACdrD,IAAI,EAAE,mBAAmB;UACzBsD,UAAU,EAAE,KAAK;UACjBxE,IAAI,EAAE,OAAO;UACbyE,OAAO,EAAEJ,OAAO;UAChBK,KAAK,EAAE,qCAAqC;UAC5CC,OAAO,EAAE,CAAC;YAACC,KAAK,EAAE,OAAO;YAAEC,OAAO,EAAE,SAAAA,QAAA;cAAA,OAAM,IAAAC,qBAAc,EAACnF,IAAI,CAAC;YAAA;UAAA,CAAC;QACnE,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;AACL;AAEO,SAAS8F,wBAAwBA,CAACvE,IAAY,EAA2B;EAC5E,OAAO,UAACzB,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAM0C,KAAK,GAAG1C,QAAQ,CAAC,CAAC;IACxB,IAAMiE,OAAO,GAAG,IAAAE,2CAA6B,EAACzB,KAAK,CAAC;IACpD,IAAMsD,MAAM,GAAG/B,OAAO,CAACgC,IAAI,CAAC,UAACP,IAAI;MAAA,OAAKA,IAAI,CAAClE,IAAI,KAAKA,IAAI;IAAA,EAAC;IACzD,IAAIwE,MAAM,EAAE;MACR,IAAO3B,iBAAiB,GAAI2B,MAAM,CAA3B3B,iBAAiB;MACxB,IAAMjD,aAAiD,GAAG,CAAC,CAAC;MAC5DiD,iBAAiB,CAAC/C,OAAO,CAAC,UAACE,IAAI,EAAK;QAChCJ,aAAa,CAACI,IAAI,CAAC,GAAG,IAAI;MAC9B,CAAC,CAAC;MACFzB,QAAQ,CAAC;QACLO,IAAI,EAAEwC,2CAA4B;QAClC7C,IAAI,EAAE;UAACmB,aAAa,EAAbA;QAAa;MACxB,CAAC,CAAC;MAEF,IAAM8E,gBAAgB,GAAG,IAAA7E,0CAA4B,EAACqB,KAAK,CAAC;MAC5D,IAAAvC,iBAAQ,EAAC+F,gBAAgB,EAAE,UAAC5B,CAAC,EAAE9C,IAAI,EAAK;QACpC,IAAI,CAACJ,aAAa,CAACI,IAAI,CAAC,EAAE;UACtBzB,QAAQ,CAACyC,4BAA4B,CAAChB,IAAI,CAAC,CAAC;QAChD;MACJ,CAAC,CAAC;IACN;EACJ,CAAC;AACL;AAEO,SAAS2E,qBAAqBA,CAACC,GAAW,EAAyC;EACtF,OAAO,UAACrG,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMqG,OAAO,GAAG,IAAAC,mCAAqB,EAACtG,QAAQ,CAAC,CAAC,CAAC;IACjD,IAAIqG,OAAO,KAAKD,GAAG,EAAE;MACjBrG,QAAQ,CAAC,IAAAwE,oBAAU,EAACgC,mCAAqB,EAAEC,qBAAU,CAACC,MAAM,EAAEL,GAAG,CAAC,CAAC;IACvE;EACJ,CAAC;AACL"}
1
+ {"version":3,"names":["_forEach2","_interopRequireDefault","require","_map2","_odinUtils","_odinConstants","_odinOverview","_settings","_uikit","_utils","_settings2","_odinSettings","obj","__esModule","default","getCluterHelper","gs","getOdinOverviewDataCluster","COUNT_OF_MINUTES","fetchOdinOverview","cluster","dispatch","getState","data","getOdinOverviewData","_forEach","_ref","cancel","type","ODIN_OVERVIEW_PARTIAL","clusterMetrics","dataCluster","Utils","listMetrics","then","to","Date","from","getTime","ODIN_OVERVIEW_SUCCESS","dateFrom","dateTo","hiddenMetrics","getOdinOverviewHiddenMetrics","forEach","_ref2","name","fetchMetricData","error","isRequestCanceled","ODIN_OVERVIEW_CANCELLED","ODIN_OVERVIEW_FAILED","Promise","reject","_ref3","getMetric","c","d","_objectSpread","_defineProperty","metricData","prepareAvailabilityData","reloadOdinOverviewMetricData","metricName","state","getOdinOverviewDateFrom","getOdinOverviewDateTo","toggleOdinOverviewMetricVisibility","ODIN_OVERVIEW_HIDDEN_METRICS","odinOverviewSetAllMetricsVisible","value","oldHhiddenMetrics","toReload","metrics","getOdinOverviewClusterMetrics","_ref4","_map","__","odinOverviewShowCreatePresetDialog","showCreatePresetDialog","odinOverviewAddPreset","isDefault","toHide","reloadSetting","ODIN_VISIBLE_METRIC_PRESETS","YA_NAMESPACES","ODIN","presets","_toConsumableArray","getOdinOverviewVisiblePresets","push","hiddenMetricNames","_","setSetting","odinOverviewToggleDefaultPreset","_error$response","response","message","Toaster","add","autoHiding","content","title","actions","label","onClick","showErrorPopup","odinOverviewSetPresetToRemove","presetToRemove","odinOverviewRemovePreset","oldPresets","filter","item","_error$response2","i","length","_error$response3","odinOverviewSelectPreset","preset","find","oldHiddenMetrics","setOdinLastVisitedTab","tab","current","getOdinLastVisitedTab","ODIN_LAST_VISITED_TAB","NAMESPACES","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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"}
@@ -28,8 +28,9 @@ function useLoadMetricsList() {
28
28
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
29
29
  metrics = _useState2[0],
30
30
  setMetrics = _useState2[1];
31
+ var cluster = (0, _reactRedux.useSelector)(_selectors.getOdinCluster);
31
32
  (0, _react.useEffect)(function () {
32
- _odinUtils.default.listMetrics().then(function (metrics) {
33
+ _odinUtils.default.listMetrics(cluster).then(function (metrics) {
33
34
  setMetrics((0, _map2.default)(metrics, function (_ref) {
34
35
  var name = _ref.name,
35
36
  text = _ref.display_name;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactRedux","_uikit","_Select","_interopRequireDefault","_Datepicker","_bemCnLite","_selectors","_actions","_odinUtils","_hammer","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","odinCN","block","tbBlock","useLoadMetricsList","_useState","useState","_useState2","_slicedToArray","metrics","setMetrics","useEffect","Utils","listMetrics","then","_map","_ref","name","text","display_name","value","MetricSelector","metric","useSelector","getMetric","dispatch","useDispatch","handleChange","useCallback","setMetric","length","_findIndex","_ref2","_jsx","Select","label","items","onUpdate","vals","showSearch","width","UseCurrentDate","useCurrentDate","getUseCurrentDate","toggleUseCurrentDate","Checkbox","size","content","checked","onChange","CustomDate","date","getDate","_ref3","from","setDate","Datepicker","range","to","scale","hasClear","controlWidth","Toolbar","_ref4","className","stat","getStat","_jsxs","children","hammer","format","Percent","_default","exports"],"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":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactRedux","_uikit","_Select","_interopRequireDefault","_Datepicker","_bemCnLite","_selectors","_actions","_odinUtils","_hammer","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","odinCN","block","tbBlock","useLoadMetricsList","_useState","useState","_useState2","_slicedToArray","metrics","setMetrics","cluster","useSelector","getOdinCluster","useEffect","Utils","listMetrics","then","_map","_ref","name","text","display_name","value","MetricSelector","metric","getMetric","dispatch","useDispatch","handleChange","useCallback","setMetric","length","_findIndex","_ref2","_jsx","Select","label","items","onUpdate","vals","showSearch","width","UseCurrentDate","useCurrentDate","getUseCurrentDate","toggleUseCurrentDate","Checkbox","size","content","checked","onChange","CustomDate","date","getDate","_ref3","from","setDate","Datepicker","range","to","scale","hasClear","controlWidth","Toolbar","_ref4","className","stat","getStat","_jsxs","children","hammer","format","Percent","_default","exports"],"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":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAEA,IAAAM,UAAA,GAAAF,sBAAA,CAAAJ,OAAA;AAGA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAL,sBAAA,CAAAJ,OAAA;AACA,IAAAU,OAAA,GAAAN,sBAAA,CAAAJ,OAAA;AAA4C,IAAAW,WAAA,GAAAX,OAAA;AAAA,SAAAY,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAd,wBAAAc,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAjB,uBAAA6B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAE5C,IAAMC,MAAM,GAAG,IAAAC,kBAAK,EAAC,MAAM,CAAC;AAE5B,IAAMC,OAAO,GAAG,IAAAD,kBAAK,EAAC,kBAAkB,CAAC;AAEzC,SAASE,kBAAkBA,CAAA,EAAG;EAC1B,IAAAC,SAAA,GAA8B,IAAAC,eAAQ,EAAC,EAAE,CAAC;IAAAC,UAAA,OAAAC,uBAAA,EAAAH,SAAA;IAAnCI,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAC1B,IAAMI,OAAO,GAAG,IAAAC,uBAAW,EAACC,yBAAc,CAAC;EAE3C,IAAAC,gBAAS,EAAC,YAAM;IACZC,kBAAK,CAACC,WAAW,CAACL,OAAO,CAAC,CAACM,IAAI,CAAC,UAACR,OAAO,EAAK;MACzCC,UAAU,CACN,IAAAQ,aAAA,EAAMT,OAAO,EAAE,UAAAU,IAAA;QAAA,IAAEC,IAAI,GAAAD,IAAA,CAAJC,IAAI;UAAgBC,IAAI,GAAAF,IAAA,CAAlBG,YAAY;QAAA,OAAa;UAC5CC,KAAK,EAAEH,IAAI;UACXC,IAAI,EAAJA;QACJ,CAAC;MAAA,CAAC,CACN,CAAC;IACL,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOZ,OAAO;AAClB;AAEA,SAASe,cAAcA,CAAA,EAAG;EACtB,IAAMC,MAAM,GAAG,IAAAb,uBAAW,EAACc,oBAAS,CAAC;EACrC,IAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,IAAMnB,OAAO,GAAGL,kBAAkB,CAAC,CAAC;EACpC,IAAMyB,YAAY,GAAG,IAAAC,kBAAW,EAAC,UAACP,KAAK,EAAK;IACxCI,QAAQ,CAAC,IAAAI,kBAAS,EAACR,KAAK,CAAC,CAAC;EAC9B,CAAC,EAAE,EAAE,CAAC;EAEN,IAAId,OAAO,CAACuB,MAAM,GAAG,CAAC,IAAI,IAAAC,mBAAA,EAAYxB,OAAO,EAAE,UAAAyB,KAAA;IAAA,IAAEX,KAAK,GAAAW,KAAA,CAALX,KAAK;IAAA,OAAMA,KAAK,KAAKE,MAAM;EAAA,EAAC,KAAK,CAAC,CAAC,EAAE;IAClFE,QAAQ,CAAC,IAAAI,kBAAS,EAACtB,OAAO,CAAC,CAAC,CAAC,CAACc,KAAK,CAAC,CAAC;EACzC;EAEA,oBACI,IAAAY,eAAA,EAACC,eAAM;IACHb,KAAK,EAAE,CAACE,MAAM,CAAE;IAChBY,KAAK,EAAC,QAAQ;IACdC,KAAK,EAAE7B,OAAQ;IACf8B,QAAQ,EAAE,SAAAA,SAACC,IAAI;MAAA,OAAKX,YAAY,CAACW,IAAI,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAC1CC,UAAU,EAAE,IAAK;IACjBC,KAAK,EAAC;EAAK,CACd,CAAC;AAEV;AAEA,SAASC,cAAcA,CAAA,EAAG;EACtB,IAAMC,cAAc,GAAG,IAAAhC,uBAAW,EAACiC,4BAAiB,CAAC;EACrD,IAAMlB,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,IAAMC,YAAY,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACnCH,QAAQ,CAAC,IAAAmB,6BAAoB,EAAC,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI,IAAAX,eAAA,EAACY,eAAQ;IACLC,IAAI,EAAC,GAAG;IACRC,OAAO,EAAC,cAAc;IACtBC,OAAO,EAAEN,cAAe;IACxBO,QAAQ,EAAEtB;EAAa,CAC1B,CAAC;AAEV;AAEA,SAASuB,UAAUA,CAAA,EAAG;EAClB,IAAMC,IAAI,GAAG,IAAAzC,uBAAW,EAAC0C,kBAAO,CAAC;EACjC,IAAM3B,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,IAAMC,YAAY,GAAG,IAAAC,kBAAW,EAAC,UAAAyB,KAAA,EAAY;IAAA,IAAVC,IAAI,GAAAD,KAAA,CAAJC,IAAI;IACnC7B,QAAQ,CAAC,IAAA8B,gBAAO,EAACD,IAAI,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI,IAAArB,eAAA,EAACuB,sBAAU;IACPC,KAAK,EAAE,KAAM;IACbH,IAAI,EAAEH,IAAK;IACXO,EAAE,EAAEP,IAAK;IACTQ,KAAK,EAAC,KAAK;IACXC,QAAQ,EAAE,KAAM;IAChBC,YAAY,EAAE,GAAI;IAClBxB,QAAQ,EAAEV;EAAa,CAC1B,CAAC;AAEV;AAEA,SAASmC,OAAOA,CAAAC,KAAA,EAAc;EAAA,IAAZC,SAAS,GAAAD,KAAA,CAATC,SAAS;EACvB,IAAMC,IAAI,GAAG,IAAAvD,uBAAW,EAACwD,kBAAO,CAAC;EACjC,oBACI,IAAAC,gBAAA;IAAKH,SAAS,EAAEA,SAAU;IAAAI,QAAA,gBACtB,IAAAnC,eAAA;MAAK+B,SAAS,EAAEjE,MAAM,CAAC,uBAAuB,EAAEE,OAAO,CAAC,WAAW,CAAC,CAAE;MAAAmE,QAAA,eAClE,IAAAnC,eAAA,EAACX,cAAc,IAAE;IAAC,CACjB,CAAC,eACN,IAAAW,eAAA;MAAK+B,SAAS,EAAEjE,MAAM,CAAC,qBAAqB,EAAEE,OAAO,CAAC,WAAW,CAAC,CAAE;MAAAmE,QAAA,eAChE,IAAAnC,eAAA,EAACiB,UAAU,IAAE;IAAC,CACb,CAAC,eACN,IAAAjB,eAAA;MAAK+B,SAAS,EAAEjE,MAAM,CAAC,sBAAsB,EAAEE,OAAO,CAAC,WAAW,CAAC,CAAE;MAAAmE,QAAA,eACjE,IAAAnC,eAAA,EAACQ,cAAc,IAAE;IAAC,CACjB,CAAC,eACN,IAAAR,eAAA;MAAK+B,SAAS,EAAEjE,MAAM,CAAC,8BAA8B,EAAEE,OAAO,CAAC,WAAW,CAAC,CAAE;MAAAmE,QAAA,eACzE,IAAAnC,eAAA;QAAK+B,SAAS,EAAC,8CAA8C;QAAAI,QAAA,eACzD,IAAAD,gBAAA;UAAGH,SAAS,EAAC,6BAA6B;UAAAI,QAAA,GAAC,yBAChB,mBAAAnC,eAAA;YAAAmC,QAAA,EAAKC,eAAM,CAACC,MAAM,CAACC,OAAO,CAACN,IAAI,CAACX,IAAI,GAAG,GAAG;UAAC,CAAK,CAAC,OAAG,EAAC,GAAG,eAC/E,IAAArB,eAAA;YAAAmC,QAAA,EAAKC,eAAM,CAACC,MAAM,CAACC,OAAO,CAACN,IAAI,CAACP,EAAE,GAAG,GAAG;UAAC,CAAK,CAAC,aACnD;QAAA,CAAG;MAAC,CACH;IAAC,CACL,CAAC;EAAA,CACL,CAAC;AAEd;AAAA,IAAAc,QAAA,GAAAC,OAAA,CAAA1F,OAAA,GAEe+E,OAAO"}
@@ -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>;
@@ -54,8 +54,8 @@ var Utils = exports.default = /*#__PURE__*/function () {
54
54
  }
55
55
  }, {
56
56
  key: "listMetrics",
57
- value: function listMetrics() {
58
- return Utils.request('/service_list');
57
+ value: function listMetrics(cluster) {
58
+ return Utils.request("/service_list/".concat(cluster));
59
59
  }
60
60
  }, {
61
61
  key: "getMetric",
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_moment","_odinConstants","_config","obj","__esModule","default","Utils","exports","_classCallCheck","_createClass","key","value","request","path","saveCancelToken","axios","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","moment","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","currentDate","format","DATE_FORMAT","fetchClustersAvailability","hasOdinPage","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>>('/service_list');\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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"}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_moment","_odinConstants","_config","obj","__esModule","default","Utils","exports","_classCallCheck","_createClass","key","value","request","path","saveCancelToken","axios","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","moment","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","currentDate","format","DATE_FORMAT","fetchClustersAvailability","hasOdinPage","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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"}
@@ -13,8 +13,10 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
13
13
  var cancelHerlper = new _cancelHelper.default();
14
14
  function getJobsMonitoringDescriptors(operation_id) {
15
15
  return function (dispatch, getState) {
16
- var tryJobsMonitoring = (0, _operation.isOperationWithJobsMonitorTab)(getState());
17
- if (!tryJobsMonitoring) {
16
+ var _getOperationJobsMoni = (0, _operation.getOperationJobsMonitorTabSettings)(getState()),
17
+ visible = _getOperationJobsMoni.visible,
18
+ maxJobCount = _getOperationJobsMoni.maxJobCount;
19
+ if (!visible) {
18
20
  return undefined;
19
21
  }
20
22
  dispatch({
@@ -23,7 +25,7 @@ function getJobsMonitoringDescriptors(operation_id) {
23
25
  return _rumWrapApi.ytApiV3Id.listJobs(_rumWrapApi.YTApiId.listJobs100, {
24
26
  parameters: {
25
27
  operation_id: operation_id,
26
- limit: 100
28
+ limit: maxJobCount
27
29
  },
28
30
  cancellation: cancelHerlper.removeAllAndSave
29
31
  }).then(function (_ref) {