@ytsaurus/ui 1.14.0 → 1.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/build/cjs/@types/types.d.ts +1 -0
  2. package/build/cjs/server/controllers/home.js +1 -1
  3. package/build/cjs/server/controllers/home.js.map +1 -1
  4. package/build/cjs/shared/utils/index.js +3 -3
  5. package/build/cjs/shared/utils/index.js.map +1 -1
  6. package/build/cjs/ui/components/AttributesModal/AttributesModal.d.ts +1 -1
  7. package/build/cjs/ui/containers/RetryBatchModal/RetryBatchModal.js +1 -2
  8. package/build/cjs/ui/containers/RetryBatchModal/RetryBatchModal.js.map +1 -1
  9. package/build/cjs/ui/pages/navigation/content/Table/TableMeta/TableMeta.d.ts +1 -1
  10. package/build/cjs/ui/pages/operations/selectors.d.ts +1 -1
  11. package/build/cjs/ui/pages/query-tracker/module/api.js +1 -1
  12. package/build/cjs/ui/pages/query-tracker/module/api.js.map +1 -1
  13. package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +4 -4
  14. package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +1 -1
  15. package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +1 -1
  16. package/build/cjs/ui/rum/constants.d.ts +2 -0
  17. package/build/cjs/ui/rum/constants.js +4 -1
  18. package/build/cjs/ui/rum/constants.js.map +1 -1
  19. package/build/cjs/ui/rum/rum-counter.js +28 -1
  20. package/build/cjs/ui/rum/rum-counter.js.map +1 -1
  21. package/build/cjs/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js +2 -1
  22. package/build/cjs/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
  23. package/build/cjs/ui/store/actions/components/node/node.js +0 -1
  24. package/build/cjs/ui/store/actions/components/node/node.js.map +1 -1
  25. package/build/cjs/ui/store/actions/components/nodes/nodes.js +1 -1
  26. package/build/cjs/ui/store/actions/components/nodes/nodes.js.map +1 -1
  27. package/build/cjs/ui/store/actions/execute-batch.d.ts +2 -1
  28. package/build/cjs/ui/store/actions/execute-batch.js +8 -5
  29. package/build/cjs/ui/store/actions/execute-batch.js.map +1 -1
  30. package/build/cjs/ui/store/actions/job/competitors.js +6 -3
  31. package/build/cjs/ui/store/actions/job/competitors.js.map +1 -1
  32. package/build/cjs/ui/store/actions/job/general.js +6 -3
  33. package/build/cjs/ui/store/actions/job/general.js.map +1 -1
  34. package/build/cjs/ui/store/actions/job/specification.js +8 -5
  35. package/build/cjs/ui/store/actions/job/specification.js.map +1 -1
  36. package/build/cjs/ui/store/actions/navigation/content/file.js +8 -5
  37. package/build/cjs/ui/store/actions/navigation/content/file.js.map +1 -1
  38. package/build/cjs/ui/store/actions/navigation/content/map-node.js +1 -1
  39. package/build/cjs/ui/store/actions/navigation/content/map-node.js.map +1 -1
  40. package/build/cjs/ui/store/actions/navigation/content/table/table.js +17 -11
  41. package/build/cjs/ui/store/actions/navigation/content/table/table.js.map +1 -1
  42. package/build/cjs/ui/store/actions/navigation/content/transaction.js +5 -2
  43. package/build/cjs/ui/store/actions/navigation/content/transaction.js.map +1 -1
  44. package/build/cjs/ui/store/actions/navigation/index.js +1 -1
  45. package/build/cjs/ui/store/actions/navigation/index.js.map +1 -1
  46. package/build/cjs/ui/store/actions/navigation/modals/attributes-editor.js +9 -3
  47. package/build/cjs/ui/store/actions/navigation/modals/attributes-editor.js.map +1 -1
  48. package/build/cjs/ui/store/actions/navigation/modals/copy-object.js +22 -20
  49. package/build/cjs/ui/store/actions/navigation/modals/copy-object.js.map +1 -1
  50. package/build/cjs/ui/store/actions/navigation/modals/create-directory.js +7 -4
  51. package/build/cjs/ui/store/actions/navigation/modals/create-directory.js.map +1 -1
  52. package/build/cjs/ui/store/actions/navigation/modals/delete-object.js +13 -14
  53. package/build/cjs/ui/store/actions/navigation/modals/delete-object.js.map +1 -1
  54. package/build/cjs/ui/store/actions/navigation/modals/dyn-tables-state-modal.js +9 -5
  55. package/build/cjs/ui/store/actions/navigation/modals/dyn-tables-state-modal.js.map +1 -1
  56. package/build/cjs/ui/store/actions/navigation/modals/move-object.js +22 -20
  57. package/build/cjs/ui/store/actions/navigation/modals/move-object.js.map +1 -1
  58. package/build/cjs/ui/store/actions/navigation/modals/restore-object.js +3 -11
  59. package/build/cjs/ui/store/actions/navigation/modals/restore-object.js.map +1 -1
  60. package/build/cjs/ui/store/actions/navigation/tabs/locks.js +1 -1
  61. package/build/cjs/ui/store/actions/navigation/tabs/locks.js.map +1 -1
  62. package/build/cjs/ui/store/actions/navigation/tabs/tablet-errors.js +15 -12
  63. package/build/cjs/ui/store/actions/navigation/tabs/tablet-errors.js.map +1 -1
  64. package/build/cjs/ui/store/actions/operations/jobs.js +8 -2
  65. package/build/cjs/ui/store/actions/operations/jobs.js.map +1 -1
  66. package/build/cjs/ui/store/actions/operations/list.js +4 -2
  67. package/build/cjs/ui/store/actions/operations/list.js.map +1 -1
  68. package/build/cjs/ui/store/actions/scheduling/expanded-pools.js +2 -3
  69. package/build/cjs/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
  70. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js +3 -3
  71. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
  72. package/build/cjs/ui/store/actions/scheduling/scheduling.js +1 -1
  73. package/build/cjs/ui/store/actions/scheduling/scheduling.js.map +1 -1
  74. package/build/cjs/ui/store/actions/system/nodes.js +1 -1
  75. package/build/cjs/ui/store/actions/system/nodes.js.map +1 -1
  76. package/build/cjs/ui/store/actions/system/schedulers.js +2 -2
  77. package/build/cjs/ui/store/actions/system/schedulers.js.map +1 -1
  78. package/build/cjs/ui/store/actions/tablet/stores.js +1 -1
  79. package/build/cjs/ui/store/actions/tablet/stores.js.map +1 -1
  80. package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js +1 -1
  81. package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
  82. package/build/cjs/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js +5 -5
  83. package/build/cjs/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
  84. package/build/cjs/ui/store/actions/users.js +1 -1
  85. package/build/cjs/ui/store/actions/users.js.map +1 -1
  86. package/build/cjs/ui/store/reducers/execute-batch.d.ts +1 -1
  87. package/build/cjs/ui/store/reducers/execute-batch.js.map +1 -1
  88. package/build/cjs/ui/store/reducers/index.d.ts +1 -1
  89. package/build/cjs/ui/store/reducers/navigation/index.d.ts +1 -1
  90. package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +8 -8
  91. package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +8 -8
  92. package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +11 -11
  93. package/build/cjs/ui/store/selectors/chyt/index.d.ts +7 -7
  94. package/build/cjs/ui/store/selectors/components/node/memory.d.ts +7 -7
  95. package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +3 -3
  96. package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +1 -1
  97. package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +2 -2
  98. package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +6 -6
  99. package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +2 -2
  100. package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +5 -5
  101. package/build/cjs/ui/store/selectors/global/index.d.ts +14 -14
  102. package/build/cjs/ui/store/selectors/global/supported-features.d.ts +6 -6
  103. package/build/cjs/ui/store/selectors/modals/errors.d.ts +1 -1
  104. package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +1 -1
  105. package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +3 -3
  106. package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +1 -1
  107. package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +4 -4
  108. package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +7 -7
  109. package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +3 -3
  110. package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +1 -1
  111. package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +4 -4
  112. package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +1 -1
  113. package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +1 -1
  114. package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +1 -1
  115. package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +2 -2
  116. package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +2 -2
  117. package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +1 -1
  118. package/build/cjs/ui/store/selectors/operations/index.d.ts +12 -12
  119. package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +4 -4
  120. package/build/cjs/ui/store/selectors/operations/operation.d.ts +12 -12
  121. package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +3 -3
  122. package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +8 -8
  123. package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +1 -1
  124. package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +1 -1
  125. package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +1 -1
  126. package/build/cjs/ui/store/selectors/scheduling/index.d.ts +1 -1
  127. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +3 -3
  128. package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +6 -6
  129. package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +20 -20
  130. package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +15 -15
  131. package/build/cjs/ui/store/selectors/thor/support.d.ts +5 -5
  132. package/build/cjs/ui/utils/acl/acl-api.js +4 -4
  133. package/build/cjs/ui/utils/acl/acl-api.js.map +1 -1
  134. package/build/cjs/ui/utils/batch.d.ts +2 -2
  135. package/build/cjs/ui/utils/cypress-attributes.js +1 -1
  136. package/build/cjs/ui/utils/cypress-attributes.js.map +1 -1
  137. package/build/cjs/ui/utils/errors/ui-error.d.ts +14 -0
  138. package/build/cjs/ui/utils/errors/ui-error.js +24 -0
  139. package/build/cjs/ui/utils/errors/ui-error.js.map +1 -0
  140. package/build/cjs/ui/utils/utils.d.ts +14 -8
  141. package/build/cjs/ui/utils/utils.js +9 -14
  142. package/build/cjs/ui/utils/utils.js.map +1 -1
  143. package/build/esm/@types/types.d.ts +1 -0
  144. package/build/esm/server/controllers/home.js +1 -1
  145. package/build/esm/server/controllers/home.js.map +1 -1
  146. package/build/esm/shared/utils/index.js +4 -8
  147. package/build/esm/shared/utils/index.js.map +1 -1
  148. package/build/esm/ui/components/AttributesModal/AttributesModal.d.ts +1 -1
  149. package/build/esm/ui/containers/RetryBatchModal/RetryBatchModal.js +1 -2
  150. package/build/esm/ui/containers/RetryBatchModal/RetryBatchModal.js.map +1 -1
  151. package/build/esm/ui/pages/navigation/content/Table/TableMeta/TableMeta.d.ts +1 -1
  152. package/build/esm/ui/pages/operations/selectors.d.ts +1 -1
  153. package/build/esm/ui/pages/query-tracker/module/api.js +1 -1
  154. package/build/esm/ui/pages/query-tracker/module/api.js.map +1 -1
  155. package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +4 -4
  156. package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +1 -1
  157. package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +1 -1
  158. package/build/esm/ui/rum/constants.d.ts +2 -0
  159. package/build/esm/ui/rum/constants.js +4 -1
  160. package/build/esm/ui/rum/constants.js.map +1 -1
  161. package/build/esm/ui/rum/rum-counter.js +28 -1
  162. package/build/esm/ui/rum/rum-counter.js.map +1 -1
  163. package/build/esm/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js +2 -1
  164. package/build/esm/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
  165. package/build/esm/ui/store/actions/components/node/node.js +0 -1
  166. package/build/esm/ui/store/actions/components/node/node.js.map +1 -1
  167. package/build/esm/ui/store/actions/components/nodes/nodes.js +1 -1
  168. package/build/esm/ui/store/actions/components/nodes/nodes.js.map +1 -1
  169. package/build/esm/ui/store/actions/execute-batch.d.ts +2 -1
  170. package/build/esm/ui/store/actions/execute-batch.js +8 -5
  171. package/build/esm/ui/store/actions/execute-batch.js.map +1 -1
  172. package/build/esm/ui/store/actions/job/competitors.js +6 -3
  173. package/build/esm/ui/store/actions/job/competitors.js.map +1 -1
  174. package/build/esm/ui/store/actions/job/general.js +6 -3
  175. package/build/esm/ui/store/actions/job/general.js.map +1 -1
  176. package/build/esm/ui/store/actions/job/specification.js +8 -5
  177. package/build/esm/ui/store/actions/job/specification.js.map +1 -1
  178. package/build/esm/ui/store/actions/navigation/content/file.js +8 -5
  179. package/build/esm/ui/store/actions/navigation/content/file.js.map +1 -1
  180. package/build/esm/ui/store/actions/navigation/content/map-node.js +1 -1
  181. package/build/esm/ui/store/actions/navigation/content/map-node.js.map +1 -1
  182. package/build/esm/ui/store/actions/navigation/content/table/table.js +17 -11
  183. package/build/esm/ui/store/actions/navigation/content/table/table.js.map +1 -1
  184. package/build/esm/ui/store/actions/navigation/content/transaction.js +5 -2
  185. package/build/esm/ui/store/actions/navigation/content/transaction.js.map +1 -1
  186. package/build/esm/ui/store/actions/navigation/index.js +1 -1
  187. package/build/esm/ui/store/actions/navigation/index.js.map +1 -1
  188. package/build/esm/ui/store/actions/navigation/modals/attributes-editor.js +9 -3
  189. package/build/esm/ui/store/actions/navigation/modals/attributes-editor.js.map +1 -1
  190. package/build/esm/ui/store/actions/navigation/modals/copy-object.js +23 -21
  191. package/build/esm/ui/store/actions/navigation/modals/copy-object.js.map +1 -1
  192. package/build/esm/ui/store/actions/navigation/modals/create-directory.js +7 -4
  193. package/build/esm/ui/store/actions/navigation/modals/create-directory.js.map +1 -1
  194. package/build/esm/ui/store/actions/navigation/modals/delete-object.js +14 -15
  195. package/build/esm/ui/store/actions/navigation/modals/delete-object.js.map +1 -1
  196. package/build/esm/ui/store/actions/navigation/modals/dyn-tables-state-modal.js +9 -5
  197. package/build/esm/ui/store/actions/navigation/modals/dyn-tables-state-modal.js.map +1 -1
  198. package/build/esm/ui/store/actions/navigation/modals/move-object.js +23 -21
  199. package/build/esm/ui/store/actions/navigation/modals/move-object.js.map +1 -1
  200. package/build/esm/ui/store/actions/navigation/modals/restore-object.js +4 -12
  201. package/build/esm/ui/store/actions/navigation/modals/restore-object.js.map +1 -1
  202. package/build/esm/ui/store/actions/navigation/tabs/locks.js +1 -1
  203. package/build/esm/ui/store/actions/navigation/tabs/locks.js.map +1 -1
  204. package/build/esm/ui/store/actions/navigation/tabs/tablet-errors.js +15 -12
  205. package/build/esm/ui/store/actions/navigation/tabs/tablet-errors.js.map +1 -1
  206. package/build/esm/ui/store/actions/operations/jobs.js +8 -2
  207. package/build/esm/ui/store/actions/operations/jobs.js.map +1 -1
  208. package/build/esm/ui/store/actions/operations/list.js +4 -2
  209. package/build/esm/ui/store/actions/operations/list.js.map +1 -1
  210. package/build/esm/ui/store/actions/scheduling/expanded-pools.js +2 -3
  211. package/build/esm/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
  212. package/build/esm/ui/store/actions/scheduling/scheduling-ts.js +3 -3
  213. package/build/esm/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
  214. package/build/esm/ui/store/actions/scheduling/scheduling.js +1 -1
  215. package/build/esm/ui/store/actions/scheduling/scheduling.js.map +1 -1
  216. package/build/esm/ui/store/actions/system/nodes.js +1 -1
  217. package/build/esm/ui/store/actions/system/nodes.js.map +1 -1
  218. package/build/esm/ui/store/actions/system/schedulers.js +2 -2
  219. package/build/esm/ui/store/actions/system/schedulers.js.map +1 -1
  220. package/build/esm/ui/store/actions/tablet/stores.js +1 -1
  221. package/build/esm/ui/store/actions/tablet/stores.js.map +1 -1
  222. package/build/esm/ui/store/actions/tablet_cell_bundles/index.js +1 -1
  223. package/build/esm/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
  224. package/build/esm/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js +5 -5
  225. package/build/esm/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
  226. package/build/esm/ui/store/actions/users.js +1 -1
  227. package/build/esm/ui/store/actions/users.js.map +1 -1
  228. package/build/esm/ui/store/reducers/execute-batch.d.ts +1 -1
  229. package/build/esm/ui/store/reducers/execute-batch.js.map +1 -1
  230. package/build/esm/ui/store/reducers/index.d.ts +1 -1
  231. package/build/esm/ui/store/reducers/navigation/index.d.ts +1 -1
  232. package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +8 -8
  233. package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +8 -8
  234. package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +11 -11
  235. package/build/esm/ui/store/selectors/chyt/index.d.ts +7 -7
  236. package/build/esm/ui/store/selectors/components/node/memory.d.ts +7 -7
  237. package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +3 -3
  238. package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +1 -1
  239. package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +2 -2
  240. package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +6 -6
  241. package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +2 -2
  242. package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +5 -5
  243. package/build/esm/ui/store/selectors/global/index.d.ts +14 -14
  244. package/build/esm/ui/store/selectors/global/supported-features.d.ts +6 -6
  245. package/build/esm/ui/store/selectors/modals/errors.d.ts +1 -1
  246. package/build/esm/ui/store/selectors/navigation/content/document.d.ts +1 -1
  247. package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +3 -3
  248. package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +1 -1
  249. package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +4 -4
  250. package/build/esm/ui/store/selectors/navigation/content/table.d.ts +7 -7
  251. package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +3 -3
  252. package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +1 -1
  253. package/build/esm/ui/store/selectors/navigation/navigation.d.ts +4 -4
  254. package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +1 -1
  255. package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +1 -1
  256. package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +1 -1
  257. package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +2 -2
  258. package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +2 -2
  259. package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +1 -1
  260. package/build/esm/ui/store/selectors/operations/index.d.ts +12 -12
  261. package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +4 -4
  262. package/build/esm/ui/store/selectors/operations/operation.d.ts +12 -12
  263. package/build/esm/ui/store/selectors/operations/operations-list.d.ts +3 -3
  264. package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +8 -8
  265. package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +1 -1
  266. package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +1 -1
  267. package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +1 -1
  268. package/build/esm/ui/store/selectors/scheduling/index.d.ts +1 -1
  269. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +3 -3
  270. package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +6 -6
  271. package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +20 -20
  272. package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +15 -15
  273. package/build/esm/ui/store/selectors/thor/support.d.ts +5 -5
  274. package/build/esm/ui/utils/acl/acl-api.js +4 -4
  275. package/build/esm/ui/utils/acl/acl-api.js.map +1 -1
  276. package/build/esm/ui/utils/batch.d.ts +2 -2
  277. package/build/esm/ui/utils/cypress-attributes.js +1 -1
  278. package/build/esm/ui/utils/cypress-attributes.js.map +1 -1
  279. package/build/esm/ui/utils/errors/ui-error.d.ts +14 -0
  280. package/build/esm/ui/utils/errors/ui-error.js +17 -0
  281. package/build/esm/ui/utils/errors/ui-error.js.map +1 -0
  282. package/build/esm/ui/utils/utils.d.ts +14 -8
  283. package/build/esm/ui/utils/utils.js +9 -14
  284. package/build/esm/ui/utils/utils.js.map +1 -1
  285. package/dist/public/build/assets-manifest.json +4 -4
  286. package/dist/public/build/js/main.8e777909.js +3 -0
  287. package/dist/public/build/js/{main.64fccb27.js.map → main.8e777909.js.map} +1 -1
  288. package/dist/public/build/manifest.json +2 -2
  289. package/dist/server/controllers/home.js +1 -1
  290. package/dist/shared/utils/index.js +3 -3
  291. package/package.json +3 -4
  292. package/dist/public/build/js/main.64fccb27.js +0 -3
  293. /package/dist/public/build/js/{main.64fccb27.js.LICENSE.txt → main.8e777909.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Toaster","YTApiId","ytApiV3Id","splitBatchResults","makeGet","makeList","CHANGE_POOL","ROOT_POOL_NAME","SCHEDULING_EXPANDED_POOLS_FAILURE","SCHEDULING_EXPANDED_POOLS_PARTITION","SCHEDULING_EXPANDED_POOLS_REQUEST","SCHEDULING_EXPANDED_POOLS_SUCCESS","calculatePoolPath","getPool","getPools","getTree","getExpandedPoolsLoadAll","getSchedulingOperationsExpandedPools","EMPTY_OBJECT","getSchedulingPoolsMapByName","isSupportedSchedulingChildrenByPool","CancelHelper","isCancelled","flattenAttributes","cancelHelper","POOL_FIELDS_TO_LOAD","POOL_TREE_GET_ATTRS","EmptyFullPath","_Error","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","_wrapNativeSuper","Error","loadExpandedPools","tree","dispatch","getState","pool","undefined","loadExpandedOperationsAndPools","executeBatch","schedulingPoolFullPath","requests","command","parameters","path","concat","fields","then","_ref","_ref2","_slicedToArray","output","_ref3","full_path","is_ephemeral","addFullPathToExpandedPoolsNoLoad","e","type","data","add","name","title","_getSchedulingOperati","state","loadAll","expandedPools","Map","expandedPoolNames","_toConsumableArray","keys","operationsExpandedPools","operationsRequests","push","prefix","forEach","item","loadAllPools","poolsRequests","poolsChildrenRequests","poolsCypressDataRequests","poolsExpandedPools","indexOf","attributes","_expandedPools$get","_ref4","get","parentPoolPath","isEphemeral","cypressDataPath","removeAllRequests","Promise","all","length","schedulingLoadOperationsPerPool","cancellation","saveCancelToken","resolve","schedulingLoadPoolsAll","schedulingLoadPoolsPerPool","schedulingLoadChildrenPerPool","schedulingLoadCypressDataPerPool","_ref5","_error$inner_errors","_ref6","operationsResults","poolsResults","poolsChildrenResults","poolsCypressData","error","message","_splitBatchResults","operations","results","rawOperations","_reduce","acc","Object","assign","rawPools","cypressData","_splitBatchResults2","pools","_ref7","_ref8","_ref8$","value","_splitBatchResults3","_splitBatchResults3$r","_splitBatchResults4","resultIndices","poolInfo","index","_splitBatchResults5","poolChildren","children","_splitBatchResults6","cypressDataChildrenPerPool","poolChildrenCypressData","$value","expandedPoolsTree","flattenCypressData","inner_errors","setExpandedPool","poolName","expanded","poolsByName","treeExpandedPools","expandedPoolInfo","calcExpandedPoolInfo","set","updateExpandedPoolNoLoad","fullPath","oldExpandedPools","parts","split","slice","i","join","_objectSpread","_defineProperty","resetExpandedPools","_getSchedulingOperati2","old","rest","_objectWithoutProperties","map","_toPropertyKey","size","getSchedulingOperationsCount","_dispatch","root","operationCount","getPoolPathsByName","orchidPath","setLoadAllOperations","_data","res","_data2","parent"],"sources":["expanded-pools.tsx"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../reducers';\nimport _ from 'lodash';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\nimport {\n ExpandedPoolInfo,\n ExpandedPoolsAction,\n PoolCypressData,\n} from '../../reducers/scheduling/expanded-pools';\n\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {splitBatchResults} from '../../../utils/utils';\nimport {makeGet, makeList} from '../../../utils/batch';\nimport {\n CHANGE_POOL,\n ROOT_POOL_NAME,\n SCHEDULING_EXPANDED_POOLS_FAILURE,\n SCHEDULING_EXPANDED_POOLS_PARTITION,\n SCHEDULING_EXPANDED_POOLS_REQUEST,\n SCHEDULING_EXPANDED_POOLS_SUCCESS,\n} from '../../../constants/scheduling';\nimport {calculatePoolPath, getPool, getPools, getTree} from '../../selectors/scheduling/scheduling';\nimport {\n getExpandedPoolsLoadAll,\n getSchedulingOperationsExpandedPools,\n} from '../../selectors/scheduling/expanded-pools';\nimport {EMPTY_OBJECT} from '../../../constants/empty';\nimport {PoolInfo, getSchedulingPoolsMapByName} from '../../selectors/scheduling/scheduling-pools';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\nimport {SchedulingAction} from '../../../store/reducers/scheduling/scheduling';\nimport {isSupportedSchedulingChildrenByPool} from '../../../store/selectors/thor/support';\nimport {YTError} from '../../../../@types/types';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {flattenAttributes} from '../../../utils/scheduling/scheduling';\n\ntype ExpandedPoolsThunkAction = ThunkAction<\n any,\n RootState,\n any,\n ExpandedPoolsAction | SchedulingAction\n>;\n\nconst cancelHelper = new CancelHelper();\n\nconst POOL_FIELDS_TO_LOAD = [\n 'accumulated_resource_ratio_volume',\n 'accumulated_resource_volume',\n 'demand_ratio',\n 'detailed_fair_share',\n 'dominant_resource',\n 'estimated_burst_usage_duration_sec',\n 'fair_share_ratio',\n 'fifo_index',\n 'integral_guarantee_type',\n 'is_ephemeral',\n 'max_operation_count',\n 'max_running_operation_count',\n 'max_share_ratio',\n 'min_share_ratio',\n 'mode',\n 'operation_count',\n 'parent',\n 'pool_operation_count',\n 'child_pool_count',\n 'resource_demand',\n 'resource_limits',\n 'resource_usage',\n 'promised_fair_share_resources',\n 'running_operation_count',\n 'specified_burst_guarantee_resources',\n 'specified_resource_flow',\n 'starvation_status',\n 'starving',\n 'strong_guarantee_resources',\n 'usage_ratio',\n 'weight',\n 'abc',\n];\n\nconst POOL_TREE_GET_ATTRS = [\n 'integral_guarantees',\n 'weight',\n 'max_operation_count',\n 'max_running_operation_count',\n 'strong_guarantee_resources',\n 'resource_limits',\n 'forbid_immediate_operations',\n 'create_ephemeral_subpools',\n 'fifo_sort_parameters',\n 'config',\n 'folder_id',\n];\n\nclass EmptyFullPath extends Error {}\n\nexport function loadExpandedPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const pool = getPool(getState());\n\n if (!tree) {\n return undefined;\n }\n\n if (pool === ROOT_POOL_NAME) {\n return dispatch(loadExpandedOperationsAndPools(tree));\n } else {\n return ytApiV3Id\n .executeBatch<{full_path: string; is_ephemeral?: boolean}>(\n YTApiId.schedulingPoolFullPath,\n {\n requests: [\n {\n command: 'get' as const,\n parameters: {\n path: `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}`,\n fields: ['is_ephemeral', 'full_path'],\n },\n },\n ],\n },\n )\n .then(([{output}]) => {\n const {full_path, is_ephemeral} = output ?? {};\n if (!full_path) {\n throw new EmptyFullPath();\n } else {\n dispatch(addFullPathToExpandedPoolsNoLoad(tree, full_path, is_ephemeral));\n dispatch(loadExpandedOperationsAndPools(tree));\n }\n })\n .catch((e) => {\n if (e instanceof EmptyFullPath) {\n dispatch({type: CHANGE_POOL, data: {pool: ROOT_POOL_NAME}});\n /**\n * We don't need to call `dispatch(loadExpandedOperationsAndPools(tree))` after `CHANGE_POOL`.\n * The call will be triggered by SchedulingExpandedPoolsUpdater.\n */\n // dispatch(loadExpandedOperationsAndPools(tree));\n } else {\n new Toaster().add({\n name: 'schedulingPoolFullPath',\n type: 'error',\n title: '',\n });\n }\n });\n }\n };\n}\n\nfunction loadExpandedOperationsAndPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n\n const loadAll = getExpandedPoolsLoadAll(state);\n const expandedPools: Map<string, ExpandedPoolInfo> = loadAll\n ? new Map()\n : getSchedulingOperationsExpandedPools(state)[tree] ?? new Map();\n const expandedPoolNames: Array<string> = [...expandedPools.keys()];\n\n const operationsExpandedPools: Array<string> = [...expandedPoolNames];\n\n const operationsRequests: Array<BatchSubRequest> = [];\n if (loadAll) {\n operationsRequests.push(\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/fair_share_info/operations`,\n ),\n );\n } else {\n const prefix = `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/operations_by_pool`;\n operationsExpandedPools.forEach((item) => {\n operationsRequests.push(makeGet(`${prefix}/${item}`));\n });\n }\n\n const loadAllPools = loadAll || !isSupportedSchedulingChildrenByPool(state);\n const poolsRequests: Array<BatchSubRequest> = [];\n const poolsChildrenRequests: Array<BatchSubRequest> = [];\n const poolsCypressDataRequests: Array<BatchSubRequest> = [];\n\n const poolsExpandedPools: Array<string> =\n -1 !== expandedPoolNames.indexOf(ROOT_POOL_NAME)\n ? expandedPoolNames\n : [ROOT_POOL_NAME, ...expandedPoolNames];\n\n if (loadAllPools) {\n poolsRequests.push(\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools`, {\n fields: POOL_FIELDS_TO_LOAD,\n }),\n );\n poolsCypressDataRequests.push(\n makeGet(`//sys/pool_trees/${tree}`, {attributes: POOL_TREE_GET_ATTRS}),\n );\n } else {\n poolsExpandedPools.forEach((pool) => {\n poolsRequests.push(\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}`, {\n fields: POOL_FIELDS_TO_LOAD,\n }),\n );\n poolsChildrenRequests.push(\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/child_pools_by_pool/${pool}`,\n {\n fields: POOL_FIELDS_TO_LOAD,\n },\n ),\n );\n const {parentPoolPath, isEphemeral} = expandedPools.get(pool) ?? {};\n const cypressDataPath = parentPoolPath\n ? `//sys/pool_trees/${tree}/${parentPoolPath}/${pool}`\n : `//sys/pool_trees/${tree}/${pool}`;\n if (pool === ROOT_POOL_NAME || !isEphemeral) {\n poolsCypressDataRequests.push(\n makeList(\n pool === ROOT_POOL_NAME ? `//sys/pool_trees/${tree}` : cypressDataPath,\n {\n attributes: POOL_TREE_GET_ATTRS,\n },\n ),\n );\n }\n });\n }\n\n cancelHelper.removeAllRequests();\n\n dispatch({type: SCHEDULING_EXPANDED_POOLS_REQUEST});\n return Promise.all([\n operationsRequests.length\n ? ytApiV3Id.executeBatch(YTApiId.schedulingLoadOperationsPerPool, {\n parameters: {requests: operationsRequests},\n cancellation: cancelHelper.saveCancelToken,\n })\n : Promise.resolve([]),\n loadAllPools\n ? ytApiV3Id.executeBatch(YTApiId.schedulingLoadPoolsAll, {\n parameters: {requests: poolsRequests},\n cancellation: cancelHelper.saveCancelToken,\n })\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadPoolsPerPool, {\n parameters: {requests: poolsRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n loadAllPools\n ? Promise.resolve([])\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadChildrenPerPool, {\n parameters: {requests: poolsChildrenRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n !poolsCypressDataRequests.length\n ? Promise.resolve([])\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadCypressDataPerPool, {\n parameters: {requests: poolsCypressDataRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n ])\n .then(([operationsResults, poolsResults, poolsChildrenResults, poolsCypressData]) => {\n const error: YTError = {message: 'Failed to load expanded pools'};\n const {results: operations} = splitBatchResults(operationsResults, error);\n const rawOperations = _.reduce(\n operations,\n (acc, data) => {\n return Object.assign(acc, data);\n },\n {},\n );\n\n const rawPools: Record<string, PoolInfo> = {};\n const cypressData: Record<string, PoolCypressData> = {};\n\n if (loadAllPools) {\n const {results: pools} = splitBatchResults<Record<string, PoolInfo>>(\n poolsResults,\n error,\n );\n const [value = {}] = pools ?? [];\n Object.assign(rawPools, value);\n\n const {\n results: [data],\n } = splitBatchResults(poolsCypressData, error);\n Object.assign(cypressData, flattenAttributes(data));\n } else {\n const {results: pools, resultIndices} = splitBatchResults<PoolInfo>(\n poolsResults,\n error,\n );\n pools.forEach((poolInfo, index) => {\n const name = poolsExpandedPools[resultIndices[index]];\n rawPools[name] = poolInfo;\n });\n\n const {results: poolChildren} = splitBatchResults<Record<string, PoolInfo>>(\n poolsChildrenResults,\n error,\n );\n poolChildren.forEach((children) => {\n Object.assign(rawPools, children);\n });\n\n const {results: cypressDataChildrenPerPool} = splitBatchResults<\n Array<PoolCypressData>\n >(poolsCypressData, error);\n cypressDataChildrenPerPool.forEach((poolChildrenCypressData) => {\n poolChildrenCypressData.forEach((item) => {\n cypressData[item.$value] = item;\n });\n });\n }\n\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_SUCCESS,\n data: {\n expandedPoolsTree: tree,\n rawOperations: Object.keys(rawOperations).length\n ? rawOperations\n : EMPTY_OBJECT,\n rawPools: Object.keys(rawPools).length ? rawPools : EMPTY_OBJECT,\n flattenCypressData: Object.keys(cypressData).length\n ? cypressData\n : EMPTY_OBJECT,\n },\n });\n\n if (error.inner_errors?.length) {\n throw error;\n }\n })\n .catch((error) => {\n if (!isCancelled(error)) {\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function setExpandedPool(poolName: string, expanded: boolean): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const tree = getTree(getState());\n const expandedPools = getSchedulingOperationsExpandedPools(state);\n\n const poolsByName = getSchedulingPoolsMapByName(state);\n\n const treeExpandedPools = new Map(expandedPools[tree]);\n if (expanded) {\n const expandedPoolInfo = calcExpandedPoolInfo(poolName, poolsByName);\n treeExpandedPools.set(poolName, expandedPoolInfo);\n } else {\n treeExpandedPools.delete(poolName);\n }\n\n dispatch(updateExpandedPoolNoLoad(tree, treeExpandedPools));\n dispatch(loadExpandedPools(tree));\n };\n}\n\nfunction addFullPathToExpandedPoolsNoLoad(\n tree: string,\n /**\n * elements of the array should have the same format as `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}/full_path`\n */\n fullPath: string,\n isEphemeral?: boolean,\n): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const oldExpandedPools = getSchedulingOperationsExpandedPools(state);\n const treeExpandedPools = new Map(oldExpandedPools[tree]);\n\n /**\n * `fullPath` value starts from `/`, example: `/mypool/child/subchild`\n * so we have to use `.slice(1)` to remove first empty string\n */\n const parts = fullPath.split('/').slice(1);\n\n for (let i = 0; i < parts.length; ++i) {\n const poolName = parts[i];\n const parentPoolPath = parts.slice(0, i).join('/');\n treeExpandedPools.set(poolName, {parentPoolPath, isEphemeral});\n }\n\n dispatch(updateExpandedPoolNoLoad(tree, treeExpandedPools));\n };\n}\n\nfunction updateExpandedPoolNoLoad(\n tree: string,\n treeExpandedPools: Map<string, ExpandedPoolInfo>,\n): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const oldExpandedPools = getSchedulingOperationsExpandedPools(getState());\n\n const expandedPools = {\n ...oldExpandedPools,\n [tree]: treeExpandedPools,\n };\n\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {expandedPools},\n });\n };\n}\n\nexport function resetExpandedPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n if (!tree) {\n return;\n }\n\n const state = getState();\n const {[tree]: old, ...rest} = getSchedulingOperationsExpandedPools(state);\n\n if (old?.size) {\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {\n expandedPools: {\n ...rest,\n [tree]: new Map<string, ExpandedPoolInfo>(),\n },\n },\n });\n }\n };\n}\n\nexport function getSchedulingOperationsCount(): ThunkAction<number, RootState, any, any> {\n return (_dispatch, getState) => {\n const state = getState();\n\n const tree = getSchedulingPoolsMapByName(state);\n const root = tree[ROOT_POOL_NAME];\n return root?.operationCount || 0;\n };\n}\n\nexport function getPoolPathsByName(\n poolName: string,\n): ThunkAction<{fullPath: string; orchidPath: string}, RootState, unknown, any> {\n return (_dispatch, getState) => {\n const state = getState();\n const pools = getPools(state);\n const tree = getTree(state);\n\n return {\n fullPath: calculatePoolPath(poolName, pools, tree),\n orchidPath: `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/fair_share_info/pools/${poolName}`,\n };\n };\n}\n\nexport function setLoadAllOperations(loadAll: boolean): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {loadAll},\n });\n\n const tree = getTree(state);\n dispatch(loadExpandedPools(tree));\n };\n}\n\nfunction calcExpandedPoolInfo(\n poolName: string,\n poolsByName: Record<string, PoolInfo>,\n): ExpandedPoolInfo {\n let data = poolsByName[poolName];\n const isEphemeral = data?.isEphemeral;\n let res = '';\n while (data?.parent && data.parent !== ROOT_POOL_NAME) {\n res = res ? `${data.parent}/${res}` : data.parent;\n data = poolsByName[data.parent];\n }\n return {parentPoolPath: res, isEphemeral};\n}\n"],"mappings":";;;;;;;;;;;;AAIA,SAAQA,OAAO,QAAO,mBAAmB;AAQzC,SAAQC,OAAO,EAAEC,SAAS,QAAO,2BAA2B;AAC5D,SAAQC,iBAAiB,QAAO,sBAAsB;AACtD,SAAQC,OAAO,EAAEC,QAAQ,QAAO,sBAAsB;AACtD,SACIC,WAAW,EACXC,cAAc,EACdC,iCAAiC,EACjCC,mCAAmC,EACnCC,iCAAiC,EACjCC,iCAAiC,QAC9B,+BAA+B;AACtC,SAAQC,iBAAiB,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,OAAO,QAAO,uCAAuC;AACnG,SACIC,uBAAuB,EACvBC,oCAAoC,QACjC,2CAA2C;AAClD,SAAQC,YAAY,QAAO,0BAA0B;AACrD,SAAkBC,2BAA2B,QAAO,6CAA6C;AAGjG,SAAQC,mCAAmC,QAAO,uCAAuC;AAEzF,OAAOC,YAAY,IAAGC,WAAW,QAAO,8BAA8B;AACtE,SAAQC,iBAAiB,QAAO,sCAAsC;AAStE,IAAMC,YAAY,GAAG,IAAIH,YAAY,CAAC,CAAC;AAEvC,IAAMI,mBAAmB,GAAG,CACxB,mCAAmC,EACnC,6BAA6B,EAC7B,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oCAAoC,EACpC,kBAAkB,EAClB,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,6BAA6B,EAC7B,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,+BAA+B,EAC/B,yBAAyB,EACzB,qCAAqC,EACrC,yBAAyB,EACzB,mBAAmB,EACnB,UAAU,EACV,4BAA4B,EAC5B,aAAa,EACb,QAAQ,EACR,KAAK,CACR;AAED,IAAMC,mBAAmB,GAAG,CACxB,qBAAqB,EACrB,QAAQ,EACR,qBAAqB,EACrB,6BAA6B,EAC7B,4BAA4B,EAC5B,iBAAiB,EACjB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACtB,QAAQ,EACR,WAAW,CACd;AAAC,IAEIC,aAAa,0BAAAC,MAAA;EAAAC,SAAA,CAAAF,aAAA,EAAAC,MAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,aAAA;EAAA,SAAAA,cAAA;IAAAK,eAAA,OAAAL,aAAA;IAAA,OAAAG,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAA,OAAAC,YAAA,CAAAR,aAAA;AAAA,gBAAAS,gBAAA,CAASC,KAAK;AAEjC,OAAO,SAASC,iBAAiBA,CAACC,IAAY,EAA4B;EACtE,OAAO,UAACC,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMC,IAAI,GAAG7B,OAAO,CAAC4B,QAAQ,CAAC,CAAC,CAAC;IAEhC,IAAI,CAACF,IAAI,EAAE;MACP,OAAOI,SAAS;IACpB;IAEA,IAAID,IAAI,KAAKnC,cAAc,EAAE;MACzB,OAAOiC,QAAQ,CAACI,8BAA8B,CAACL,IAAI,CAAC,CAAC;IACzD,CAAC,MAAM;MACH,OAAOrC,SAAS,CACX2C,YAAY,CACT5C,OAAO,CAAC6C,sBAAsB,EAC9B;QACIC,QAAQ,EAAE,CACN;UACIC,OAAO,EAAE,KAAc;UACvBC,UAAU,EAAE;YACRC,IAAI,iDAAAC,MAAA,CAAiDZ,IAAI,aAAAY,MAAA,CAAUT,IAAI,CAAE;YACzEU,MAAM,EAAE,CAAC,cAAc,EAAE,WAAW;UACxC;QACJ,CAAC;MAET,CACJ,CAAC,CACAC,IAAI,CAAC,UAAAC,IAAA,EAAgB;QAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA;UAAbG,MAAM,GAAAF,KAAA,IAANE,MAAM;QACX,IAAAC,KAAA,GAAkCD,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,CAAC,CAAC;UAAvCE,SAAS,GAAAD,KAAA,CAATC,SAAS;UAAEC,YAAY,GAAAF,KAAA,CAAZE,YAAY;QAC9B,IAAI,CAACD,SAAS,EAAE;UACZ,MAAM,IAAIhC,aAAa,CAAC,CAAC;QAC7B,CAAC,MAAM;UACHa,QAAQ,CAACqB,gCAAgC,CAACtB,IAAI,EAAEoB,SAAS,EAAEC,YAAY,CAAC,CAAC;UACzEpB,QAAQ,CAACI,8BAA8B,CAACL,IAAI,CAAC,CAAC;QAClD;MACJ,CAAC,CAAC,SACI,CAAC,UAACuB,CAAC,EAAK;QACV,IAAIA,CAAC,YAAYnC,aAAa,EAAE;UAC5Ba,QAAQ,CAAC;YAACuB,IAAI,EAAEzD,WAAW;YAAE0D,IAAI,EAAE;cAACtB,IAAI,EAAEnC;YAAc;UAAC,CAAC,CAAC;UAC3D;AACxB;AACA;AACA;UACwB;QACJ,CAAC,MAAM;UACH,IAAIP,OAAO,CAAC,CAAC,CAACiE,GAAG,CAAC;YACdC,IAAI,EAAE,wBAAwB;YAC9BH,IAAI,EAAE,OAAO;YACbI,KAAK,EAAE;UACX,CAAC,CAAC;QACN;MACJ,CAAC,CAAC;IACV;EACJ,CAAC;AACL;AAEA,SAASvB,8BAA8BA,CAACL,IAAY,EAA4B;EAC5E,OAAO,UAACC,QAAQ,EAAEC,QAAQ,EAAK;IAAA,IAAA2B,qBAAA;IAC3B,IAAMC,KAAK,GAAG5B,QAAQ,CAAC,CAAC;IAExB,IAAM6B,OAAO,GAAGtD,uBAAuB,CAACqD,KAAK,CAAC;IAC9C,IAAME,aAA4C,GAAGD,OAAO,GACtD,IAAIE,GAAG,CAAC,CAAC,IAAAJ,qBAAA,GACTnD,oCAAoC,CAACoD,KAAK,CAAC,CAAC9B,IAAI,CAAC,cAAA6B,qBAAA,cAAAA,qBAAA,GAAI,IAAII,GAAG,CAAC,CAAC;IACpE,IAAMC,iBAAgC,GAAAC,kBAAA,CAAOH,aAAa,CAACI,IAAI,CAAC,CAAC,CAAC;IAElE,IAAMC,uBAAsC,GAAAF,kBAAA,CAAOD,iBAAiB,CAAC;IAErE,IAAMI,kBAA0C,GAAG,EAAE;IACrD,IAAIP,OAAO,EAAE;MACTO,kBAAkB,CAACC,IAAI,CACnB1E,OAAO,gDAAA+C,MAAA,CAC4CZ,IAAI,gCACvD,CACJ,CAAC;IACL,CAAC,MAAM;MACH,IAAMwC,MAAM,kDAAA5B,MAAA,CAAkDZ,IAAI,wBAAqB;MACvFqC,uBAAuB,CAACI,OAAO,CAAC,UAACC,IAAI,EAAK;QACtCJ,kBAAkB,CAACC,IAAI,CAAC1E,OAAO,IAAA+C,MAAA,CAAI4B,MAAM,OAAA5B,MAAA,CAAI8B,IAAI,CAAE,CAAC,CAAC;MACzD,CAAC,CAAC;IACN;IAEA,IAAMC,YAAY,GAAGZ,OAAO,IAAI,CAAClD,mCAAmC,CAACiD,KAAK,CAAC;IAC3E,IAAMc,aAAqC,GAAG,EAAE;IAChD,IAAMC,qBAA6C,GAAG,EAAE;IACxD,IAAMC,wBAAgD,GAAG,EAAE;IAE3D,IAAMC,kBAAiC,GACnC,CAAC,CAAC,KAAKb,iBAAiB,CAACc,OAAO,CAAChF,cAAc,CAAC,GAC1CkE,iBAAiB,IAChBlE,cAAc,EAAA4C,MAAA,CAAAuB,kBAAA,CAAKD,iBAAiB,EAAC;IAEhD,IAAIS,YAAY,EAAE;MACdC,aAAa,CAACL,IAAI,CACd1E,OAAO,gDAAA+C,MAAA,CAAgDZ,IAAI,aAAU;QACjEa,MAAM,EAAE3B;MACZ,CAAC,CACL,CAAC;MACD4D,wBAAwB,CAACP,IAAI,CACzB1E,OAAO,qBAAA+C,MAAA,CAAqBZ,IAAI,GAAI;QAACiD,UAAU,EAAE9D;MAAmB,CAAC,CACzE,CAAC;IACL,CAAC,MAAM;MACH4D,kBAAkB,CAACN,OAAO,CAAC,UAACtC,IAAI,EAAK;QAAA,IAAA+C,kBAAA;QACjCN,aAAa,CAACL,IAAI,CACd1E,OAAO,gDAAA+C,MAAA,CAAgDZ,IAAI,aAAAY,MAAA,CAAUT,IAAI,GAAI;UACzEU,MAAM,EAAE3B;QACZ,CAAC,CACL,CAAC;QACD2D,qBAAqB,CAACN,IAAI,CACtB1E,OAAO,gDAAA+C,MAAA,CAC4CZ,IAAI,2BAAAY,MAAA,CAAwBT,IAAI,GAC/E;UACIU,MAAM,EAAE3B;QACZ,CACJ,CACJ,CAAC;QACD,IAAAiE,KAAA,IAAAD,kBAAA,GAAsClB,aAAa,CAACoB,GAAG,CAACjD,IAAI,CAAC,cAAA+C,kBAAA,cAAAA,kBAAA,GAAI,CAAC,CAAC;UAA5DG,cAAc,GAAAF,KAAA,CAAdE,cAAc;UAAEC,WAAW,GAAAH,KAAA,CAAXG,WAAW;QAClC,IAAMC,eAAe,GAAGF,cAAc,uBAAAzC,MAAA,CACZZ,IAAI,OAAAY,MAAA,CAAIyC,cAAc,OAAAzC,MAAA,CAAIT,IAAI,wBAAAS,MAAA,CAC9BZ,IAAI,OAAAY,MAAA,CAAIT,IAAI,CAAE;QACxC,IAAIA,IAAI,KAAKnC,cAAc,IAAI,CAACsF,WAAW,EAAE;UACzCR,wBAAwB,CAACP,IAAI,CACzBzE,QAAQ,CACJqC,IAAI,KAAKnC,cAAc,uBAAA4C,MAAA,CAAuBZ,IAAI,IAAKuD,eAAe,EACtE;YACIN,UAAU,EAAE9D;UAChB,CACJ,CACJ,CAAC;QACL;MACJ,CAAC,CAAC;IACN;IAEAF,YAAY,CAACuE,iBAAiB,CAAC,CAAC;IAEhCvD,QAAQ,CAAC;MAACuB,IAAI,EAAErD;IAAiC,CAAC,CAAC;IACnD,OAAOsF,OAAO,CAACC,GAAG,CAAC,CACfpB,kBAAkB,CAACqB,MAAM,GACnBhG,SAAS,CAAC2C,YAAY,CAAC5C,OAAO,CAACkG,+BAA+B,EAAE;MAC5DlD,UAAU,EAAE;QAACF,QAAQ,EAAE8B;MAAkB,CAAC;MAC1CuB,YAAY,EAAE5E,YAAY,CAAC6E;IAC/B,CAAC,CAAC,GACFL,OAAO,CAACM,OAAO,CAAC,EAAE,CAAC,EACzBpB,YAAY,GACNhF,SAAS,CAAC2C,YAAY,CAAC5C,OAAO,CAACsG,sBAAsB,EAAE;MACnDtD,UAAU,EAAE;QAACF,QAAQ,EAAEoC;MAAa,CAAC;MACrCiB,YAAY,EAAE5E,YAAY,CAAC6E;IAC/B,CAAC,CAAC,GACFnG,SAAS,CAAC2C,YAAY,CAAC5C,OAAO,CAACuG,0BAA0B,EAAE;MACvDvD,UAAU,EAAE;QAACF,QAAQ,EAAEoC;MAAa,CAAC;MACrCiB,YAAY,EAAE5E,YAAY,CAAC6E;IAC/B,CAAC,CAAC,EACRnB,YAAY,GACNc,OAAO,CAACM,OAAO,CAAC,EAAE,CAAC,GACnBpG,SAAS,CAAC2C,YAAY,CAAC5C,OAAO,CAACwG,6BAA6B,EAAE;MAC1DxD,UAAU,EAAE;QAACF,QAAQ,EAAEqC;MAAqB,CAAC;MAC7CgB,YAAY,EAAE5E,YAAY,CAAC6E;IAC/B,CAAC,CAAC,EACR,CAAChB,wBAAwB,CAACa,MAAM,GAC1BF,OAAO,CAACM,OAAO,CAAC,EAAE,CAAC,GACnBpG,SAAS,CAAC2C,YAAY,CAAC5C,OAAO,CAACyG,gCAAgC,EAAE;MAC7DzD,UAAU,EAAE;QAACF,QAAQ,EAAEsC;MAAwB,CAAC;MAChDe,YAAY,EAAE5E,YAAY,CAAC6E;IAC/B,CAAC,CAAC,CACX,CAAC,CACGhD,IAAI,CAAC,UAAAsD,KAAA,EAA+E;MAAA,IAAAC,mBAAA;MAAA,IAAAC,KAAA,GAAArD,cAAA,CAAAmD,KAAA;QAA7EG,iBAAiB,GAAAD,KAAA;QAAEE,YAAY,GAAAF,KAAA;QAAEG,oBAAoB,GAAAH,KAAA;QAAEI,gBAAgB,GAAAJ,KAAA;MAC3E,IAAMK,KAAc,GAAG;QAACC,OAAO,EAAE;MAA+B,CAAC;MACjE,IAAAC,kBAAA,GAA8BjH,iBAAiB,CAAC2G,iBAAiB,EAAEI,KAAK,CAAC;QAAzDG,UAAU,GAAAD,kBAAA,CAAnBE,OAAO;MACd,IAAMC,aAAa,GAAGC,OAAA,CAClBH,UAAU,EACV,UAACI,GAAG,EAAEzD,IAAI,EAAK;QACX,OAAO0D,MAAM,CAACC,MAAM,CAACF,GAAG,EAAEzD,IAAI,CAAC;MACnC,CAAC,EACD,CAAC,CACL,CAAC;MAED,IAAM4D,QAAkC,GAAG,CAAC,CAAC;MAC7C,IAAMC,WAA4C,GAAG,CAAC,CAAC;MAEvD,IAAI3C,YAAY,EAAE;QACd,IAAA4C,mBAAA,GAAyB3H,iBAAiB,CACtC4G,YAAY,EACZG,KACJ,CAAC;UAHea,KAAK,GAAAD,mBAAA,CAAdR,OAAO;QAId,IAAAU,KAAA,GAAqBD,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE;UAAAE,KAAA,GAAAzE,cAAA,CAAAwE,KAAA;UAAAE,MAAA,GAAAD,KAAA;UAAzBE,KAAK,GAAAD,MAAA,cAAG,CAAC,CAAC,GAAAA,MAAA;QACjBR,MAAM,CAACC,MAAM,CAACC,QAAQ,EAAEO,KAAK,CAAC;QAE9B,IAAAC,mBAAA,GAEIjI,iBAAiB,CAAC8G,gBAAgB,EAAEC,KAAK,CAAC;UAAAmB,qBAAA,GAAA7E,cAAA,CAAA4E,mBAAA,CAD1Cd,OAAO;UAAGtD,IAAI,GAAAqE,qBAAA;QAElBX,MAAM,CAACC,MAAM,CAACE,WAAW,EAAEtG,iBAAiB,CAACyC,IAAI,CAAC,CAAC;MACvD,CAAC,MAAM;QACH,IAAAsE,mBAAA,GAAwCnI,iBAAiB,CACrD4G,YAAY,EACZG,KACJ,CAAC;UAHea,MAAK,GAAAO,mBAAA,CAAdhB,OAAO;UAASiB,aAAa,GAAAD,mBAAA,CAAbC,aAAa;QAIpCR,MAAK,CAAC/C,OAAO,CAAC,UAACwD,QAAQ,EAAEC,KAAK,EAAK;UAC/B,IAAMvE,IAAI,GAAGoB,kBAAkB,CAACiD,aAAa,CAACE,KAAK,CAAC,CAAC;UACrDb,QAAQ,CAAC1D,IAAI,CAAC,GAAGsE,QAAQ;QAC7B,CAAC,CAAC;QAEF,IAAAE,mBAAA,GAAgCvI,iBAAiB,CAC7C6G,oBAAoB,EACpBE,KACJ,CAAC;UAHeyB,YAAY,GAAAD,mBAAA,CAArBpB,OAAO;QAIdqB,YAAY,CAAC3D,OAAO,CAAC,UAAC4D,QAAQ,EAAK;UAC/BlB,MAAM,CAACC,MAAM,CAACC,QAAQ,EAAEgB,QAAQ,CAAC;QACrC,CAAC,CAAC;QAEF,IAAAC,mBAAA,GAA8C1I,iBAAiB,CAE7D8G,gBAAgB,EAAEC,KAAK,CAAC;UAFV4B,0BAA0B,GAAAD,mBAAA,CAAnCvB,OAAO;QAGdwB,0BAA0B,CAAC9D,OAAO,CAAC,UAAC+D,uBAAuB,EAAK;UAC5DA,uBAAuB,CAAC/D,OAAO,CAAC,UAACC,IAAI,EAAK;YACtC4C,WAAW,CAAC5C,IAAI,CAAC+D,MAAM,CAAC,GAAG/D,IAAI;UACnC,CAAC,CAAC;QACN,CAAC,CAAC;MACN;MAEAzC,QAAQ,CAAC;QACLuB,IAAI,EAAEpD,iCAAiC;QACvCqD,IAAI,EAAE;UACFiF,iBAAiB,EAAE1G,IAAI;UACvBgF,aAAa,EAAEG,MAAM,CAAC/C,IAAI,CAAC4C,aAAa,CAAC,CAACrB,MAAM,GAC1CqB,aAAa,GACbrG,YAAY;UAClB0G,QAAQ,EAAEF,MAAM,CAAC/C,IAAI,CAACiD,QAAQ,CAAC,CAAC1B,MAAM,GAAG0B,QAAQ,GAAG1G,YAAY;UAChEgI,kBAAkB,EAAExB,MAAM,CAAC/C,IAAI,CAACkD,WAAW,CAAC,CAAC3B,MAAM,GAC7C2B,WAAW,GACX3G;QACV;MACJ,CAAC,CAAC;MAEF,KAAA0F,mBAAA,GAAIM,KAAK,CAACiC,YAAY,cAAAvC,mBAAA,eAAlBA,mBAAA,CAAoBV,MAAM,EAAE;QAC5B,MAAMgB,KAAK;MACf;IACJ,CAAC,CAAC,SACI,CAAC,UAACA,KAAK,EAAK;MACd,IAAI,CAAC5F,WAAW,CAAC4F,KAAK,CAAC,EAAE;QACrB1E,QAAQ,CAAC;UACLuB,IAAI,EAAEvD,iCAAiC;UACvCwD,IAAI,EAAE;YAACkD,KAAK,EAALA;UAAK;QAChB,CAAC,CAAC;MACN;IACJ,CAAC,CAAC;EACV,CAAC;AACL;AAEA,OAAO,SAASkC,eAAeA,CAACC,QAAgB,EAAEC,QAAiB,EAA4B;EAC3F,OAAO,UAAC9G,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAM4B,KAAK,GAAG5B,QAAQ,CAAC,CAAC;IACxB,IAAMF,IAAI,GAAGxB,OAAO,CAAC0B,QAAQ,CAAC,CAAC,CAAC;IAChC,IAAM8B,aAAa,GAAGtD,oCAAoC,CAACoD,KAAK,CAAC;IAEjE,IAAMkF,WAAW,GAAGpI,2BAA2B,CAACkD,KAAK,CAAC;IAEtD,IAAMmF,iBAAiB,GAAG,IAAIhF,GAAG,CAACD,aAAa,CAAChC,IAAI,CAAC,CAAC;IACtD,IAAI+G,QAAQ,EAAE;MACV,IAAMG,gBAAgB,GAAGC,oBAAoB,CAACL,QAAQ,EAAEE,WAAW,CAAC;MACpEC,iBAAiB,CAACG,GAAG,CAACN,QAAQ,EAAEI,gBAAgB,CAAC;IACrD,CAAC,MAAM;MACHD,iBAAiB,UAAO,CAACH,QAAQ,CAAC;IACtC;IAEA7G,QAAQ,CAACoH,wBAAwB,CAACrH,IAAI,EAAEiH,iBAAiB,CAAC,CAAC;IAC3DhH,QAAQ,CAACF,iBAAiB,CAACC,IAAI,CAAC,CAAC;EACrC,CAAC;AACL;AAEA,SAASsB,gCAAgCA,CACrCtB,IAAY;AACZ;AACJ;AACA;AACIsH,QAAgB,EAChBhE,WAAqB,EACG;EACxB,OAAO,UAACrD,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAM4B,KAAK,GAAG5B,QAAQ,CAAC,CAAC;IACxB,IAAMqH,gBAAgB,GAAG7I,oCAAoC,CAACoD,KAAK,CAAC;IACpE,IAAMmF,iBAAiB,GAAG,IAAIhF,GAAG,CAACsF,gBAAgB,CAACvH,IAAI,CAAC,CAAC;;IAEzD;AACR;AACA;AACA;IACQ,IAAMwH,KAAK,GAAGF,QAAQ,CAACG,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC;IAE1C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAAC7D,MAAM,EAAE,EAAEgE,CAAC,EAAE;MACnC,IAAMb,QAAQ,GAAGU,KAAK,CAACG,CAAC,CAAC;MACzB,IAAMtE,cAAc,GAAGmE,KAAK,CAACE,KAAK,CAAC,CAAC,EAAEC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MAClDX,iBAAiB,CAACG,GAAG,CAACN,QAAQ,EAAE;QAACzD,cAAc,EAAdA,cAAc;QAAEC,WAAW,EAAXA;MAAW,CAAC,CAAC;IAClE;IAEArD,QAAQ,CAACoH,wBAAwB,CAACrH,IAAI,EAAEiH,iBAAiB,CAAC,CAAC;EAC/D,CAAC;AACL;AAEA,SAASI,wBAAwBA,CAC7BrH,IAAY,EACZiH,iBAAgD,EACxB;EACxB,OAAO,UAAChH,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAMqH,gBAAgB,GAAG7I,oCAAoC,CAACwB,QAAQ,CAAC,CAAC,CAAC;IAEzE,IAAM8B,aAAa,GAAA6F,aAAA,CAAAA,aAAA,KACZN,gBAAgB,OAAAO,eAAA,KAClB9H,IAAI,EAAGiH,iBAAiB,EAC5B;IAEDhH,QAAQ,CAAC;MACLuB,IAAI,EAAEtD,mCAAmC;MACzCuD,IAAI,EAAE;QAACO,aAAa,EAAbA;MAAa;IACxB,CAAC,CAAC;EACN,CAAC;AACL;AAEA,OAAO,SAAS+F,kBAAkBA,CAAC/H,IAAY,EAA4B;EACvE,OAAO,UAACC,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAI,CAACF,IAAI,EAAE;MACP;IACJ;IAEA,IAAM8B,KAAK,GAAG5B,QAAQ,CAAC,CAAC;IACxB,IAAA8H,sBAAA,GAA+BtJ,oCAAoC,CAACoD,KAAK,CAAC;MAA3DmG,GAAG,GAAAD,sBAAA,CAAVhI,IAAI;MAAWkI,IAAI,GAAAC,wBAAA,CAAAH,sBAAA,GAAnBhI,IAAI,EAAAoI,GAAA,CAAAC,cAAA;IAEZ,IAAIJ,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAEK,IAAI,EAAE;MACXrI,QAAQ,CAAC;QACLuB,IAAI,EAAEtD,mCAAmC;QACzCuD,IAAI,EAAE;UACFO,aAAa,EAAA6F,aAAA,CAAAA,aAAA,KACNK,IAAI,OAAAJ,eAAA,KACN9H,IAAI,EAAG,IAAIiC,GAAG,CAA2B,CAAC;QAEnD;MACJ,CAAC,CAAC;IACN;EACJ,CAAC;AACL;AAEA,OAAO,SAASsG,4BAA4BA,CAAA,EAA6C;EACrF,OAAO,UAACC,SAAS,EAAEtI,QAAQ,EAAK;IAC5B,IAAM4B,KAAK,GAAG5B,QAAQ,CAAC,CAAC;IAExB,IAAMF,IAAI,GAAGpB,2BAA2B,CAACkD,KAAK,CAAC;IAC/C,IAAM2G,IAAI,GAAGzI,IAAI,CAAChC,cAAc,CAAC;IACjC,OAAO,CAAAyK,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,cAAc,KAAI,CAAC;EACpC,CAAC;AACL;AAEA,OAAO,SAASC,kBAAkBA,CAC9B7B,QAAgB,EAC4D;EAC5E,OAAO,UAAC0B,SAAS,EAAEtI,QAAQ,EAAK;IAC5B,IAAM4B,KAAK,GAAG5B,QAAQ,CAAC,CAAC;IACxB,IAAMsF,KAAK,GAAGjH,QAAQ,CAACuD,KAAK,CAAC;IAC7B,IAAM9B,IAAI,GAAGxB,OAAO,CAACsD,KAAK,CAAC;IAE3B,OAAO;MACHwF,QAAQ,EAAEjJ,iBAAiB,CAACyI,QAAQ,EAAEtB,KAAK,EAAExF,IAAI,CAAC;MAClD4I,UAAU,iDAAAhI,MAAA,CAAiDZ,IAAI,6BAAAY,MAAA,CAA0BkG,QAAQ;IACrG,CAAC;EACL,CAAC;AACL;AAEA,OAAO,SAAS+B,oBAAoBA,CAAC9G,OAAgB,EAA4B;EAC7E,OAAO,UAAC9B,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAM4B,KAAK,GAAG5B,QAAQ,CAAC,CAAC;IACxBD,QAAQ,CAAC;MACLuB,IAAI,EAAEtD,mCAAmC;MACzCuD,IAAI,EAAE;QAACM,OAAO,EAAPA;MAAO;IAClB,CAAC,CAAC;IAEF,IAAM/B,IAAI,GAAGxB,OAAO,CAACsD,KAAK,CAAC;IAC3B7B,QAAQ,CAACF,iBAAiB,CAACC,IAAI,CAAC,CAAC;EACrC,CAAC;AACL;AAEA,SAASmH,oBAAoBA,CACzBL,QAAgB,EAChBE,WAAqC,EACrB;EAAA,IAAA8B,KAAA;EAChB,IAAIrH,IAAI,GAAGuF,WAAW,CAACF,QAAQ,CAAC;EAChC,IAAMxD,WAAW,IAAAwF,KAAA,GAAGrH,IAAI,cAAAqH,KAAA,uBAAJA,KAAA,CAAMxF,WAAW;EACrC,IAAIyF,GAAG,GAAG,EAAE;EACZ,OAAO,CAAAC,MAAA,GAAAvH,IAAI,cAAAuH,MAAA,eAAJA,MAAA,CAAMC,MAAM,IAAIxH,IAAI,CAACwH,MAAM,KAAKjL,cAAc,EAAE;IAAA,IAAAgL,MAAA;IACnDD,GAAG,GAAGA,GAAG,MAAAnI,MAAA,CAAMa,IAAI,CAACwH,MAAM,OAAArI,MAAA,CAAImI,GAAG,IAAKtH,IAAI,CAACwH,MAAM;IACjDxH,IAAI,GAAGuF,WAAW,CAACvF,IAAI,CAACwH,MAAM,CAAC;EACnC;EACA,OAAO;IAAC5F,cAAc,EAAE0F,GAAG;IAAEzF,WAAW,EAAXA;EAAW,CAAC;AAC7C"}
1
+ {"version":3,"names":["Toaster","YTApiId","ytApiV3Id","splitBatchResults","makeGet","makeList","CHANGE_POOL","ROOT_POOL_NAME","SCHEDULING_EXPANDED_POOLS_FAILURE","SCHEDULING_EXPANDED_POOLS_PARTITION","SCHEDULING_EXPANDED_POOLS_REQUEST","SCHEDULING_EXPANDED_POOLS_SUCCESS","calculatePoolPath","getPool","getPools","getTree","getExpandedPoolsLoadAll","getSchedulingOperationsExpandedPools","EMPTY_OBJECT","getSchedulingPoolsMapByName","isSupportedSchedulingChildrenByPool","CancelHelper","isCancelled","flattenAttributes","UIBatchError","cancelHelper","POOL_FIELDS_TO_LOAD","POOL_TREE_GET_ATTRS","EmptyFullPath","_Error","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","_wrapNativeSuper","Error","loadExpandedPools","tree","dispatch","getState","pool","undefined","loadExpandedOperationsAndPools","executeBatch","schedulingPoolFullPath","requests","command","parameters","path","concat","fields","then","_ref","_ref2","_slicedToArray","output","_ref3","full_path","is_ephemeral","addFullPathToExpandedPoolsNoLoad","e","type","data","add","name","title","_getSchedulingOperati","state","loadAll","expandedPools","Map","expandedPoolNames","_toConsumableArray","keys","operationsExpandedPools","operationsRequests","push","prefix","forEach","item","loadAllPools","poolsRequests","poolsChildrenRequests","poolsCypressDataRequests","poolsExpandedPools","indexOf","attributes","_expandedPools$get","_ref4","get","parentPoolPath","isEphemeral","cypressDataPath","removeAllRequests","Promise","all","length","schedulingLoadOperationsPerPool","cancellation","saveCancelToken","resolve","schedulingLoadPoolsAll","schedulingLoadPoolsPerPool","schedulingLoadChildrenPerPool","schedulingLoadCypressDataPerPool","_ref5","_error$inner_errors","_ref6","operationsResults","poolsResults","poolsChildrenResults","poolsCypressData","error","_splitBatchResults","operations","results","rawOperations","_reduce","acc","Object","assign","rawPools","cypressData","_splitBatchResults2","pools","_ref7","_ref8","_ref8$","value","_splitBatchResults3","_splitBatchResults3$r","_splitBatchResults4","resultIndices","poolInfo","index","_splitBatchResults5","poolChildren","children","_splitBatchResults6","cypressDataChildrenPerPool","poolChildrenCypressData","$value","expandedPoolsTree","flattenCypressData","inner_errors","setExpandedPool","poolName","expanded","poolsByName","treeExpandedPools","expandedPoolInfo","calcExpandedPoolInfo","set","updateExpandedPoolNoLoad","fullPath","oldExpandedPools","parts","split","slice","i","join","_objectSpread","_defineProperty","resetExpandedPools","_getSchedulingOperati2","old","rest","_objectWithoutProperties","map","_toPropertyKey","size","getSchedulingOperationsCount","_dispatch","root","operationCount","getPoolPathsByName","orchidPath","setLoadAllOperations","_data","res","_data2","parent"],"sources":["expanded-pools.tsx"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../reducers';\nimport _ from 'lodash';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\nimport {\n ExpandedPoolInfo,\n ExpandedPoolsAction,\n PoolCypressData,\n} from '../../reducers/scheduling/expanded-pools';\n\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {splitBatchResults} from '../../../utils/utils';\nimport {makeGet, makeList} from '../../../utils/batch';\nimport {\n CHANGE_POOL,\n ROOT_POOL_NAME,\n SCHEDULING_EXPANDED_POOLS_FAILURE,\n SCHEDULING_EXPANDED_POOLS_PARTITION,\n SCHEDULING_EXPANDED_POOLS_REQUEST,\n SCHEDULING_EXPANDED_POOLS_SUCCESS,\n} from '../../../constants/scheduling';\nimport {calculatePoolPath, getPool, getPools, getTree} from '../../selectors/scheduling/scheduling';\nimport {\n getExpandedPoolsLoadAll,\n getSchedulingOperationsExpandedPools,\n} from '../../selectors/scheduling/expanded-pools';\nimport {EMPTY_OBJECT} from '../../../constants/empty';\nimport {PoolInfo, getSchedulingPoolsMapByName} from '../../selectors/scheduling/scheduling-pools';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\nimport {SchedulingAction} from '../../../store/reducers/scheduling/scheduling';\nimport {isSupportedSchedulingChildrenByPool} from '../../../store/selectors/thor/support';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\nimport {flattenAttributes} from '../../../utils/scheduling/scheduling';\nimport {UIBatchError} from '../../../utils/errors/ui-error';\n\ntype ExpandedPoolsThunkAction = ThunkAction<\n any,\n RootState,\n any,\n ExpandedPoolsAction | SchedulingAction\n>;\n\nconst cancelHelper = new CancelHelper();\n\nconst POOL_FIELDS_TO_LOAD = [\n 'accumulated_resource_ratio_volume',\n 'accumulated_resource_volume',\n 'demand_ratio',\n 'detailed_fair_share',\n 'dominant_resource',\n 'estimated_burst_usage_duration_sec',\n 'fair_share_ratio',\n 'fifo_index',\n 'integral_guarantee_type',\n 'is_ephemeral',\n 'max_operation_count',\n 'max_running_operation_count',\n 'max_share_ratio',\n 'min_share_ratio',\n 'mode',\n 'operation_count',\n 'parent',\n 'pool_operation_count',\n 'child_pool_count',\n 'resource_demand',\n 'resource_limits',\n 'resource_usage',\n 'promised_fair_share_resources',\n 'running_operation_count',\n 'specified_burst_guarantee_resources',\n 'specified_resource_flow',\n 'starvation_status',\n 'starving',\n 'strong_guarantee_resources',\n 'usage_ratio',\n 'weight',\n 'abc',\n];\n\nconst POOL_TREE_GET_ATTRS = [\n 'integral_guarantees',\n 'weight',\n 'max_operation_count',\n 'max_running_operation_count',\n 'strong_guarantee_resources',\n 'resource_limits',\n 'forbid_immediate_operations',\n 'create_ephemeral_subpools',\n 'fifo_sort_parameters',\n 'config',\n 'folder_id',\n];\n\nclass EmptyFullPath extends Error {}\n\nexport function loadExpandedPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const pool = getPool(getState());\n\n if (!tree) {\n return undefined;\n }\n\n if (pool === ROOT_POOL_NAME) {\n return dispatch(loadExpandedOperationsAndPools(tree));\n } else {\n return ytApiV3Id\n .executeBatch<{full_path: string; is_ephemeral?: boolean}>(\n YTApiId.schedulingPoolFullPath,\n {\n requests: [\n {\n command: 'get' as const,\n parameters: {\n path: `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}`,\n fields: ['is_ephemeral', 'full_path'],\n },\n },\n ],\n },\n )\n .then(([{output}]) => {\n const {full_path, is_ephemeral} = output ?? {};\n if (!full_path) {\n throw new EmptyFullPath();\n } else {\n dispatch(addFullPathToExpandedPoolsNoLoad(tree, full_path, is_ephemeral));\n dispatch(loadExpandedOperationsAndPools(tree));\n }\n })\n .catch((e) => {\n if (e instanceof EmptyFullPath) {\n dispatch({type: CHANGE_POOL, data: {pool: ROOT_POOL_NAME}});\n /**\n * We don't need to call `dispatch(loadExpandedOperationsAndPools(tree))` after `CHANGE_POOL`.\n * The call will be triggered by SchedulingExpandedPoolsUpdater.\n */\n // dispatch(loadExpandedOperationsAndPools(tree));\n } else {\n new Toaster().add({\n name: 'schedulingPoolFullPath',\n type: 'error',\n title: '',\n });\n }\n });\n }\n };\n}\n\nfunction loadExpandedOperationsAndPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n\n const loadAll = getExpandedPoolsLoadAll(state);\n const expandedPools: Map<string, ExpandedPoolInfo> = loadAll\n ? new Map()\n : getSchedulingOperationsExpandedPools(state)[tree] ?? new Map();\n const expandedPoolNames: Array<string> = [...expandedPools.keys()];\n\n const operationsExpandedPools: Array<string> = [...expandedPoolNames];\n\n const operationsRequests: Array<BatchSubRequest> = [];\n if (loadAll) {\n operationsRequests.push(\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/fair_share_info/operations`,\n ),\n );\n } else {\n const prefix = `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/operations_by_pool`;\n operationsExpandedPools.forEach((item) => {\n operationsRequests.push(makeGet(`${prefix}/${item}`));\n });\n }\n\n const loadAllPools = loadAll || !isSupportedSchedulingChildrenByPool(state);\n const poolsRequests: Array<BatchSubRequest> = [];\n const poolsChildrenRequests: Array<BatchSubRequest> = [];\n const poolsCypressDataRequests: Array<BatchSubRequest> = [];\n\n const poolsExpandedPools: Array<string> =\n -1 !== expandedPoolNames.indexOf(ROOT_POOL_NAME)\n ? expandedPoolNames\n : [ROOT_POOL_NAME, ...expandedPoolNames];\n\n if (loadAllPools) {\n poolsRequests.push(\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools`, {\n fields: POOL_FIELDS_TO_LOAD,\n }),\n );\n poolsCypressDataRequests.push(\n makeGet(`//sys/pool_trees/${tree}`, {attributes: POOL_TREE_GET_ATTRS}),\n );\n } else {\n poolsExpandedPools.forEach((pool) => {\n poolsRequests.push(\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}`, {\n fields: POOL_FIELDS_TO_LOAD,\n }),\n );\n poolsChildrenRequests.push(\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/child_pools_by_pool/${pool}`,\n {\n fields: POOL_FIELDS_TO_LOAD,\n },\n ),\n );\n const {parentPoolPath, isEphemeral} = expandedPools.get(pool) ?? {};\n const cypressDataPath = parentPoolPath\n ? `//sys/pool_trees/${tree}/${parentPoolPath}/${pool}`\n : `//sys/pool_trees/${tree}/${pool}`;\n if (pool === ROOT_POOL_NAME || !isEphemeral) {\n poolsCypressDataRequests.push(\n makeList(\n pool === ROOT_POOL_NAME ? `//sys/pool_trees/${tree}` : cypressDataPath,\n {\n attributes: POOL_TREE_GET_ATTRS,\n },\n ),\n );\n }\n });\n }\n\n cancelHelper.removeAllRequests();\n\n dispatch({type: SCHEDULING_EXPANDED_POOLS_REQUEST});\n return Promise.all([\n operationsRequests.length\n ? ytApiV3Id.executeBatch(YTApiId.schedulingLoadOperationsPerPool, {\n parameters: {requests: operationsRequests},\n cancellation: cancelHelper.saveCancelToken,\n })\n : Promise.resolve([]),\n loadAllPools\n ? ytApiV3Id.executeBatch(YTApiId.schedulingLoadPoolsAll, {\n parameters: {requests: poolsRequests},\n cancellation: cancelHelper.saveCancelToken,\n })\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadPoolsPerPool, {\n parameters: {requests: poolsRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n loadAllPools\n ? Promise.resolve([])\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadChildrenPerPool, {\n parameters: {requests: poolsChildrenRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n !poolsCypressDataRequests.length\n ? Promise.resolve([])\n : ytApiV3Id.executeBatch(YTApiId.schedulingLoadCypressDataPerPool, {\n parameters: {requests: poolsCypressDataRequests},\n cancellation: cancelHelper.saveCancelToken,\n }),\n ])\n .then(([operationsResults, poolsResults, poolsChildrenResults, poolsCypressData]) => {\n const error = new UIBatchError('Failed to load expanded pools');\n const {results: operations} = splitBatchResults(operationsResults, error);\n const rawOperations = _.reduce(\n operations,\n (acc, data) => {\n return Object.assign(acc, data);\n },\n {},\n );\n\n const rawPools: Record<string, PoolInfo> = {};\n const cypressData: Record<string, PoolCypressData> = {};\n\n if (loadAllPools) {\n const {results: pools} = splitBatchResults<Record<string, PoolInfo>>(\n poolsResults,\n error,\n );\n const [value = {}] = pools ?? [];\n Object.assign(rawPools, value);\n\n const {\n results: [data],\n } = splitBatchResults(poolsCypressData, error);\n Object.assign(cypressData, flattenAttributes(data));\n } else {\n const {results: pools, resultIndices} = splitBatchResults<PoolInfo>(\n poolsResults,\n error,\n );\n pools.forEach((poolInfo, index) => {\n const name = poolsExpandedPools[resultIndices[index]];\n rawPools[name] = poolInfo;\n });\n\n const {results: poolChildren} = splitBatchResults<Record<string, PoolInfo>>(\n poolsChildrenResults,\n error,\n );\n poolChildren.forEach((children) => {\n Object.assign(rawPools, children);\n });\n\n const {results: cypressDataChildrenPerPool} = splitBatchResults<\n Array<PoolCypressData>\n >(poolsCypressData, error);\n cypressDataChildrenPerPool.forEach((poolChildrenCypressData) => {\n poolChildrenCypressData.forEach((item) => {\n cypressData[item.$value] = item;\n });\n });\n }\n\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_SUCCESS,\n data: {\n expandedPoolsTree: tree,\n rawOperations: Object.keys(rawOperations).length\n ? rawOperations\n : EMPTY_OBJECT,\n rawPools: Object.keys(rawPools).length ? rawPools : EMPTY_OBJECT,\n flattenCypressData: Object.keys(cypressData).length\n ? cypressData\n : EMPTY_OBJECT,\n },\n });\n\n if (error.inner_errors?.length) {\n throw error;\n }\n })\n .catch((error) => {\n if (!isCancelled(error)) {\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function setExpandedPool(poolName: string, expanded: boolean): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const tree = getTree(getState());\n const expandedPools = getSchedulingOperationsExpandedPools(state);\n\n const poolsByName = getSchedulingPoolsMapByName(state);\n\n const treeExpandedPools = new Map(expandedPools[tree]);\n if (expanded) {\n const expandedPoolInfo = calcExpandedPoolInfo(poolName, poolsByName);\n treeExpandedPools.set(poolName, expandedPoolInfo);\n } else {\n treeExpandedPools.delete(poolName);\n }\n\n dispatch(updateExpandedPoolNoLoad(tree, treeExpandedPools));\n dispatch(loadExpandedPools(tree));\n };\n}\n\nfunction addFullPathToExpandedPoolsNoLoad(\n tree: string,\n /**\n * elements of the array should have the same format as `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/pools/${pool}/full_path`\n */\n fullPath: string,\n isEphemeral?: boolean,\n): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const oldExpandedPools = getSchedulingOperationsExpandedPools(state);\n const treeExpandedPools = new Map(oldExpandedPools[tree]);\n\n /**\n * `fullPath` value starts from `/`, example: `/mypool/child/subchild`\n * so we have to use `.slice(1)` to remove first empty string\n */\n const parts = fullPath.split('/').slice(1);\n\n for (let i = 0; i < parts.length; ++i) {\n const poolName = parts[i];\n const parentPoolPath = parts.slice(0, i).join('/');\n treeExpandedPools.set(poolName, {parentPoolPath, isEphemeral});\n }\n\n dispatch(updateExpandedPoolNoLoad(tree, treeExpandedPools));\n };\n}\n\nfunction updateExpandedPoolNoLoad(\n tree: string,\n treeExpandedPools: Map<string, ExpandedPoolInfo>,\n): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const oldExpandedPools = getSchedulingOperationsExpandedPools(getState());\n\n const expandedPools = {\n ...oldExpandedPools,\n [tree]: treeExpandedPools,\n };\n\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {expandedPools},\n });\n };\n}\n\nexport function resetExpandedPools(tree: string): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n if (!tree) {\n return;\n }\n\n const state = getState();\n const {[tree]: old, ...rest} = getSchedulingOperationsExpandedPools(state);\n\n if (old?.size) {\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {\n expandedPools: {\n ...rest,\n [tree]: new Map<string, ExpandedPoolInfo>(),\n },\n },\n });\n }\n };\n}\n\nexport function getSchedulingOperationsCount(): ThunkAction<number, RootState, any, any> {\n return (_dispatch, getState) => {\n const state = getState();\n\n const tree = getSchedulingPoolsMapByName(state);\n const root = tree[ROOT_POOL_NAME];\n return root?.operationCount || 0;\n };\n}\n\nexport function getPoolPathsByName(\n poolName: string,\n): ThunkAction<{fullPath: string; orchidPath: string}, RootState, unknown, any> {\n return (_dispatch, getState) => {\n const state = getState();\n const pools = getPools(state);\n const tree = getTree(state);\n\n return {\n fullPath: calculatePoolPath(poolName, pools, tree),\n orchidPath: `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/fair_share_info/pools/${poolName}`,\n };\n };\n}\n\nexport function setLoadAllOperations(loadAll: boolean): ExpandedPoolsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n dispatch({\n type: SCHEDULING_EXPANDED_POOLS_PARTITION,\n data: {loadAll},\n });\n\n const tree = getTree(state);\n dispatch(loadExpandedPools(tree));\n };\n}\n\nfunction calcExpandedPoolInfo(\n poolName: string,\n poolsByName: Record<string, PoolInfo>,\n): ExpandedPoolInfo {\n let data = poolsByName[poolName];\n const isEphemeral = data?.isEphemeral;\n let res = '';\n while (data?.parent && data.parent !== ROOT_POOL_NAME) {\n res = res ? `${data.parent}/${res}` : data.parent;\n data = poolsByName[data.parent];\n }\n return {parentPoolPath: res, isEphemeral};\n}\n"],"mappings":"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"}
@@ -38,7 +38,7 @@ export function loadSchedulingData() {
38
38
  return rumId.fetch(YTApiId.schedulingData, ytApiV3Id.executeBatch(YTApiId.schedulingData, _objectSpread({
39
39
  requests: [makeGet('//sys/scheduler/@alerts'), makeList('//sys/scheduler/orchid/scheduler/pool_trees'), makeGet('//sys/scheduler/orchid/scheduler/default_fair_share_tree')]
40
40
  }, USE_CACHE))).then(function (data) {
41
- var _splitBatchResults = splitBatchResults(data),
41
+ var _splitBatchResults = splitBatchResults(data, 'Failed to fetch scheduling data'),
42
42
  error = _splitBatchResults.error,
43
43
  _splitBatchResults$re = _slicedToArray(_splitBatchResults.results, 3),
44
44
  schedulerAlerts = _splitBatchResults$re[0],
@@ -72,7 +72,7 @@ export function loadSchedulingData() {
72
72
  requests: treeRequests
73
73
  }, USE_CACHE))).then(function (treeData) {
74
74
  var extracted = extractBatchV4Values(treeData, treeRequests);
75
- var _splitBatchResults2 = splitBatchResults(extracted.results),
75
+ var _splitBatchResults2 = splitBatchResults(extracted.results, 'Failed to fetch tree details'),
76
76
  error = _splitBatchResults2.error,
77
77
  results = _splitBatchResults2.results;
78
78
  if (error) {
@@ -251,7 +251,7 @@ function transferPoolQuota(_ref4) {
251
251
  return ytApiV4Id.executeBatch(YTApiId.schedulingTransferPoolQuota, {
252
252
  requests: requests
253
253
  }).then(function (res) {
254
- var err = getBatchError(res.results);
254
+ var err = getBatchError(res.results, 'Failed to transfer pool quota');
255
255
  if (err) {
256
256
  return Promise.reject(err);
257
257
  }
@@ -1 +1 @@
1
- {"version":3,"names":["INTEGRAL_GUARANTEES_PREFIX","POOL_RESOURCE_TYPE_TO_ATTRIBUTE","computePoolPath","prepareCurrentTree","prepareTrees","extractBatchV4Values","getBatchError","splitBatchResults","wrapApiPromiseByToaster","makeGet","makeList","updateNodeAttributes","Toaster","yt","getPools","getSchedulingIsInitialLoading","getTree","POOL_TOGGLE_DELETE_VISIBILITY","SCHEDULING_DATA_FAILURE","SCHEDULING_DATA_PARTITION","SCHEDULING_DATA_REQUEST","SCHEDULING_DATA_SUCCESS","SCHEDULING_DELETE_POOL_FAILURE","SCHEDULING_DELETE_POOL_REQUEST","SCHEDULING_DELETE_POOL_SUCCESS","loadExpandedPools","RumWrapper","YTApiId","ytApiV3Id","ytApiV4Id","getCluster","RumMeasureTypes","getSchedulingAttributesToFilterTime","schedulingOverviewHasFilter","USE_CACHE","toaster","loadSchedulingData","dispatch","getState","type","state","isInitialLoading","schedulingLoadFilterAttributes","cluster","rumId","SCHEDULING","fetch","schedulingData","executeBatch","_objectSpread","requests","then","data","_splitBatchResults","error","_splitBatchResults$re","_slicedToArray","results","schedulerAlerts","rawTrees","defaultTree","Promise","reject","trees","tree","scheduling","treeRequests","concat","schedulingLoadTree","treeData","extracted","_splitBatchResults2","_ref","_ref2","resource_usage","resource_limits","config","resource_distribution_info","treeResources","code","codes","CANCELLED","deletePool","item","pools","path","v3","remove","add","name","autoHiding","title","closePoolDeleteModal","setTimeout","openPoolDeleteModal","visibility","undefined","setPoolAttributes","params","poolPath","values","initials","_isEmpty","resolve","transferData","toModify","guaranteeType","restValues","_objectWithoutProperties","_excluded","_forEach","v","k","_ref3","limit","source","key","attr","push","value","_initials$key","prevLimit","diff","Object","hasOwnProperty","call","transferPoolQuota","_ref4","tmp","split","dstPool","length","_map","transferPath","startsWith","substr","dotPath","replace","delta","_update","Math","abs","command","parameters","source_pool","destination_pool","pool_tree","resource_delta","schedulingTransferPoolQuota","res","err","lastTime","Date","now","get","schedulingFilterAttributes","fields","skipSuccessToast","toasterName","errorContent","attributesToFilter","attributesToFilterTime","schedulingSetFilter","filter","schedulingSetAbcFilter","abcServiceFilter"],"sources":["scheduling-ts.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n INTEGRAL_GUARANTEES_PREFIX,\n InitialPoolResourceInfo,\n POOL_RESOURCE_TYPE_TO_ATTRIBUTE,\n PoolResourceType,\n computePoolPath,\n prepareCurrentTree,\n prepareTrees,\n} from '../../../utils/scheduling/scheduling';\nimport {\n extractBatchV4Values,\n getBatchError,\n splitBatchResults,\n wrapApiPromiseByToaster,\n} from '../../../utils/utils';\nimport {makeGet, makeList} from '../../../utils/batch';\nimport {updateNodeAttributes} from '../../../utils/cypress-attributes';\n\nimport {ThunkAction} from 'redux-thunk';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\n// @ts-expect-error\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {\n getPools,\n getSchedulingIsInitialLoading,\n getTree,\n} from '../../../store/selectors/scheduling/scheduling';\n\nimport {\n POOL_TOGGLE_DELETE_VISIBILITY,\n SCHEDULING_DATA_FAILURE,\n SCHEDULING_DATA_PARTITION,\n SCHEDULING_DATA_REQUEST,\n SCHEDULING_DATA_SUCCESS,\n SCHEDULING_DELETE_POOL_FAILURE,\n SCHEDULING_DELETE_POOL_REQUEST,\n SCHEDULING_DELETE_POOL_SUCCESS,\n} from '../../../constants/scheduling';\nimport {loadExpandedPools} from './expanded-pools';\nimport {RumWrapper, YTApiId, ytApiV3Id, ytApiV4Id} from '../../../rum/rum-wrap-api';\nimport {getCluster} from '../../../store/selectors/global';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\nimport type {RootState} from '../../../store/reducers';\nimport type {SchedulingAction} from '../../../store/reducers/scheduling/scheduling';\nimport type {PoolInfo} from '../../../store/selectors/scheduling/scheduling-pools';\nimport {\n getSchedulingAttributesToFilterTime,\n schedulingOverviewHasFilter,\n} from '../../../store/selectors/scheduling/attributes-to-filter';\nimport {USE_CACHE} from '../../../../shared/constants/yt-api';\n\nconst toaster = new Toaster();\n\ntype SchedulingThunkAction<T = unknown> = ThunkAction<T, RootState, unknown, SchedulingAction>;\n\nexport function loadSchedulingData(): SchedulingThunkAction {\n return (dispatch, getState) => {\n dispatch({type: SCHEDULING_DATA_REQUEST});\n\n const state = getState();\n const isInitialLoading = getSchedulingIsInitialLoading(state);\n\n if (isInitialLoading && schedulingOverviewHasFilter(state)) {\n dispatch(schedulingLoadFilterAttributes());\n }\n\n const cluster = getCluster(state);\n const rumId = new RumWrapper(cluster, RumMeasureTypes.SCHEDULING);\n return rumId\n .fetch(\n YTApiId.schedulingData,\n ytApiV3Id.executeBatch(YTApiId.schedulingData, {\n requests: [\n makeGet('//sys/scheduler/@alerts'),\n makeList('//sys/scheduler/orchid/scheduler/pool_trees'),\n makeGet('//sys/scheduler/orchid/scheduler/default_fair_share_tree'),\n ],\n ...USE_CACHE,\n }),\n )\n .then((data) => {\n const {\n error,\n results: [schedulerAlerts, rawTrees, defaultTree],\n } = splitBatchResults(data);\n\n if (error) {\n return Promise.reject(error);\n }\n\n const state = getState();\n\n const trees = prepareTrees(rawTrees);\n const tree = prepareCurrentTree(\n defaultTree,\n trees,\n state.scheduling.scheduling.tree,\n );\n\n dispatch({\n type: SCHEDULING_DATA_PARTITION,\n data: {schedulerAlerts, trees, tree},\n });\n\n const treeRequests = [\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/resource_usage`),\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/resource_limits`),\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/config`),\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/resource_distribution_info`,\n ),\n ];\n\n if (isInitialLoading) {\n /**\n * We don't need to call `dispatch(loadExpandedPools(tree))` for this branch of code,\n * the call should be triggered by SchedulingExpandedPoolsUpdater\n */\n //dispatch(loadExpandedPools(tree));\n } else {\n dispatch(loadExpandedPools(tree));\n }\n\n return rumId\n .fetch(\n YTApiId.schedulingLoadTree,\n ytApiV4Id.executeBatch(YTApiId.schedulingLoadTree, {\n requests: treeRequests,\n ...USE_CACHE,\n }),\n )\n .then((treeData) => {\n const extracted = extractBatchV4Values(treeData, treeRequests);\n const {error, results} = splitBatchResults(extracted.results);\n if (error) {\n throw error;\n }\n return results;\n });\n })\n .then(([resource_usage, resource_limits, config, resource_distribution_info]) => {\n const treeResources = {\n resource_usage,\n resource_limits,\n config,\n resource_distribution_info,\n };\n\n dispatch({\n type: SCHEDULING_DATA_SUCCESS,\n data: {\n treeResources,\n },\n });\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: SCHEDULING_DATA_FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function deletePool(item?: PoolInfo): SchedulingThunkAction {\n return (dispatch, getState) => {\n if (!item) {\n return;\n }\n\n const state = getState();\n\n const tree = getTree(state);\n const pools = getPools(state);\n const path = computePoolPath(item, pools);\n\n dispatch({type: SCHEDULING_DELETE_POOL_REQUEST});\n\n return yt.v3\n .remove({\n path: `//sys/pool_trees/${tree}/${path}`,\n })\n .then(() => {\n toaster.add({\n name: 'delete pool',\n autoHiding: 10000,\n type: 'success',\n title: `Successfully deleted ${item.name}. Please wait.`,\n });\n\n dispatch({type: SCHEDULING_DELETE_POOL_SUCCESS});\n dispatch(closePoolDeleteModal());\n setTimeout(() => dispatch(loadSchedulingData()), 3000);\n })\n .catch((error: any) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: SCHEDULING_DELETE_POOL_FAILURE,\n data: {error},\n });\n\n return Promise.reject();\n }\n return null;\n });\n };\n}\n\nexport function openPoolDeleteModal(item: PoolInfo): SchedulingAction {\n return {\n type: POOL_TOGGLE_DELETE_VISIBILITY,\n data: {\n visibility: true,\n item,\n },\n };\n}\n\nexport function closePoolDeleteModal(): SchedulingAction {\n return {\n type: POOL_TOGGLE_DELETE_VISIBILITY,\n data: {\n visibility: false,\n item: undefined,\n },\n };\n}\n\ntype PoolResources = Partial<\n Record<Exclude<PoolResourceType, 'guaranteeType'>, InitialPoolResourceInfo>\n>;\n\ninterface SetResourceGuaranteeParams {\n poolPath: string;\n values: PoolResources & {guaranteeType: string};\n initials: PoolResources;\n tree: string;\n}\n\nexport function setPoolAttributes(params: SetResourceGuaranteeParams) {\n const {poolPath, values, initials, tree} = params;\n if (_.isEmpty(values)) {\n return Promise.resolve();\n }\n\n const transferData: Array<{diff: number; source: string; path: string}> = [];\n const toModify: Array<{attr: string; value: any}> = [];\n\n const {guaranteeType, ...restValues} = values;\n\n _.forEach(restValues, (v, k) => {\n const {limit, source} = v || {};\n const key = k as keyof typeof restValues;\n\n const attr = POOL_RESOURCE_TYPE_TO_ATTRIBUTE[key];\n if (!source || limit === undefined) {\n toModify.push({attr, value: limit});\n } else {\n const prevLimit = initials[key]?.limit || 0;\n const diff = (limit || 0) - prevLimit;\n if (diff) {\n transferData.push({diff, source, path: attr});\n }\n }\n });\n\n if (Object.hasOwnProperty.call(values, 'guaranteeType')) {\n toModify.push({\n attr: POOL_RESOURCE_TYPE_TO_ATTRIBUTE['guaranteeType'],\n value: guaranteeType,\n });\n }\n\n return updateNodeAttributes(poolPath, toModify).then(() => {\n return transferPoolQuota({poolPath, transferData, tree});\n });\n}\n\ninterface TransferPoolQuotaParams {\n poolPath: string;\n transferData: Array<{diff: number; source: string; path: string}>;\n tree: string;\n}\n\nfunction transferPoolQuota({poolPath, transferData, tree}: TransferPoolQuotaParams) {\n if (_.isEmpty(transferData)) {\n return Promise.resolve();\n }\n const tmp = poolPath.split('/');\n const dstPool = tmp[tmp.length - 1];\n\n const requests = _.map(transferData, (v) => {\n const {diff, source, path} = v;\n const transferPath = path.startsWith(INTEGRAL_GUARANTEES_PREFIX)\n ? path.substr(INTEGRAL_GUARANTEES_PREFIX.length)\n : path;\n const dotPath = transferPath.replace(/\\//g, '.');\n\n const delta = _.update({}, dotPath, () => Math.abs(diff));\n\n return {\n command: 'transfer_pool_resources' as const,\n parameters: {\n source_pool: diff > 0 ? source : dstPool,\n destination_pool: diff > 0 ? dstPool : source,\n pool_tree: tree,\n resource_delta: delta,\n },\n };\n });\n\n return ytApiV4Id\n .executeBatch(YTApiId.schedulingTransferPoolQuota, {requests})\n .then((res: any) => {\n const err = getBatchError(res.results);\n if (err) {\n return Promise.reject(err);\n }\n return res;\n });\n}\n\nexport function schedulingLoadFilterAttributes(): SchedulingThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const lastTime = getSchedulingAttributesToFilterTime(state);\n if (Date.now() - lastTime < 120000) {\n return undefined;\n }\n\n return wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.schedulingFilterAttributes, {\n path: '//sys/scheduler/orchid/scheduler/pool_trees/physical/pools',\n fields: ['parent', 'abc'],\n ...USE_CACHE,\n }),\n {\n skipSuccessToast: true,\n toasterName: 'schedulingLoadFilterAttributes',\n errorContent: 'Failed to load attributes required for filtering',\n },\n ).then((attributesToFilter) => {\n dispatch({\n type: SCHEDULING_DATA_PARTITION,\n data: {attributesToFilter, attributesToFilterTime: Date.now()},\n });\n });\n };\n}\n\nexport function schedulingSetFilter(filter: string): SchedulingThunkAction {\n return (dispatch) => {\n dispatch(schedulingLoadFilterAttributes());\n dispatch({\n type: SCHEDULING_DATA_PARTITION,\n data: {filter},\n });\n };\n}\n\nexport function schedulingSetAbcFilter(abcServiceFilter: {\n id: number;\n slug: string;\n}): SchedulingThunkAction {\n return (dispatch) => {\n dispatch(schedulingLoadFilterAttributes());\n dispatch({\n type: SCHEDULING_DATA_PARTITION,\n data: {abcServiceFilter},\n });\n };\n}\n"],"mappings":";;;;;;;;AACA,SACIA,0BAA0B,EAE1BC,+BAA+B,EAE/BC,eAAe,EACfC,kBAAkB,EAClBC,YAAY,QACT,sCAAsC;AAC7C,SACIC,oBAAoB,EACpBC,aAAa,EACbC,iBAAiB,EACjBC,uBAAuB,QACpB,sBAAsB;AAC7B,SAAQC,OAAO,EAAEC,QAAQ,QAAO,sBAAsB;AACtD,SAAQC,oBAAoB,QAAO,mCAAmC;AAItE,SAAQC,OAAO,QAAO,mBAAmB;;AAEzC;AACA,OAAOC,EAAE,MAAM,qCAAqC;AAEpD,SACIC,QAAQ,EACRC,6BAA6B,EAC7BC,OAAO,QACJ,gDAAgD;AAEvD,SACIC,6BAA6B,EAC7BC,uBAAuB,EACvBC,yBAAyB,EACzBC,uBAAuB,EACvBC,uBAAuB,EACvBC,8BAA8B,EAC9BC,8BAA8B,EAC9BC,8BAA8B,QAC3B,+BAA+B;AACtC,SAAQC,iBAAiB,QAAO,kBAAkB;AAClD,SAAQC,UAAU,EAAEC,OAAO,EAAEC,SAAS,EAAEC,SAAS,QAAO,2BAA2B;AACnF,SAAQC,UAAU,QAAO,iCAAiC;AAC1D,SAAQC,eAAe,QAAO,gCAAgC;AAI9D,SACIC,mCAAmC,EACnCC,2BAA2B,QACxB,0DAA0D;AACjE,SAAQC,SAAS,QAAO,qCAAqC;AAE7D,IAAMC,OAAO,GAAG,IAAIvB,OAAO,CAAC,CAAC;AAI7B,OAAO,SAASwB,kBAAkBA,CAAA,EAA0B;EACxD,OAAO,UAACC,QAAQ,EAAEC,QAAQ,EAAK;IAC3BD,QAAQ,CAAC;MAACE,IAAI,EAAEnB;IAAuB,CAAC,CAAC;IAEzC,IAAMoB,KAAK,GAAGF,QAAQ,CAAC,CAAC;IACxB,IAAMG,gBAAgB,GAAG1B,6BAA6B,CAACyB,KAAK,CAAC;IAE7D,IAAIC,gBAAgB,IAAIR,2BAA2B,CAACO,KAAK,CAAC,EAAE;MACxDH,QAAQ,CAACK,8BAA8B,CAAC,CAAC,CAAC;IAC9C;IAEA,IAAMC,OAAO,GAAGb,UAAU,CAACU,KAAK,CAAC;IACjC,IAAMI,KAAK,GAAG,IAAIlB,UAAU,CAACiB,OAAO,EAAEZ,eAAe,CAACc,UAAU,CAAC;IACjE,OAAOD,KAAK,CACPE,KAAK,CACFnB,OAAO,CAACoB,cAAc,EACtBnB,SAAS,CAACoB,YAAY,CAACrB,OAAO,CAACoB,cAAc,EAAAE,aAAA;MACzCC,QAAQ,EAAE,CACNzC,OAAO,CAAC,yBAAyB,CAAC,EAClCC,QAAQ,CAAC,6CAA6C,CAAC,EACvDD,OAAO,CAAC,0DAA0D,CAAC;IACtE,GACEyB,SAAS,CACf,CACL,CAAC,CACAiB,IAAI,CAAC,UAACC,IAAI,EAAK;MACZ,IAAAC,kBAAA,GAGI9C,iBAAiB,CAAC6C,IAAI,CAAC;QAFvBE,KAAK,GAAAD,kBAAA,CAALC,KAAK;QAAAC,qBAAA,GAAAC,cAAA,CAAAH,kBAAA,CACLI,OAAO;QAAGC,eAAe,GAAAH,qBAAA;QAAEI,QAAQ,GAAAJ,qBAAA;QAAEK,WAAW,GAAAL,qBAAA;MAGpD,IAAID,KAAK,EAAE;QACP,OAAOO,OAAO,CAACC,MAAM,CAACR,KAAK,CAAC;MAChC;MAEA,IAAMd,KAAK,GAAGF,QAAQ,CAAC,CAAC;MAExB,IAAMyB,KAAK,GAAG3D,YAAY,CAACuD,QAAQ,CAAC;MACpC,IAAMK,IAAI,GAAG7D,kBAAkB,CAC3ByD,WAAW,EACXG,KAAK,EACLvB,KAAK,CAACyB,UAAU,CAACA,UAAU,CAACD,IAChC,CAAC;MAED3B,QAAQ,CAAC;QACLE,IAAI,EAAEpB,yBAAyB;QAC/BiC,IAAI,EAAE;UAACM,eAAe,EAAfA,eAAe;UAAEK,KAAK,EAALA,KAAK;UAAEC,IAAI,EAAJA;QAAI;MACvC,CAAC,CAAC;MAEF,IAAME,YAAY,GAAG,CACjBzD,OAAO,gDAAA0D,MAAA,CAAgDH,IAAI,oBAAiB,CAAC,EAC7EvD,OAAO,gDAAA0D,MAAA,CAAgDH,IAAI,qBAAkB,CAAC,EAC9EvD,OAAO,gDAAA0D,MAAA,CAAgDH,IAAI,YAAS,CAAC,EACrEvD,OAAO,gDAAA0D,MAAA,CAC4CH,IAAI,gCACvD,CAAC,CACJ;MAED,IAAIvB,gBAAgB,EAAE;QAClB;AACpB;AACA;AACA;QACoB;MAAA,CACH,MAAM;QACHJ,QAAQ,CAACZ,iBAAiB,CAACuC,IAAI,CAAC,CAAC;MACrC;MAEA,OAAOpB,KAAK,CACPE,KAAK,CACFnB,OAAO,CAACyC,kBAAkB,EAC1BvC,SAAS,CAACmB,YAAY,CAACrB,OAAO,CAACyC,kBAAkB,EAAAnB,aAAA;QAC7CC,QAAQ,EAAEgB;MAAY,GACnBhC,SAAS,CACf,CACL,CAAC,CACAiB,IAAI,CAAC,UAACkB,QAAQ,EAAK;QAChB,IAAMC,SAAS,GAAGjE,oBAAoB,CAACgE,QAAQ,EAAEH,YAAY,CAAC;QAC9D,IAAAK,mBAAA,GAAyBhE,iBAAiB,CAAC+D,SAAS,CAACb,OAAO,CAAC;UAAtDH,KAAK,GAAAiB,mBAAA,CAALjB,KAAK;UAAEG,OAAO,GAAAc,mBAAA,CAAPd,OAAO;QACrB,IAAIH,KAAK,EAAE;UACP,MAAMA,KAAK;QACf;QACA,OAAOG,OAAO;MAClB,CAAC,CAAC;IACV,CAAC,CAAC,CACDN,IAAI,CAAC,UAAAqB,IAAA,EAA2E;MAAA,IAAAC,KAAA,GAAAjB,cAAA,CAAAgB,IAAA;QAAzEE,cAAc,GAAAD,KAAA;QAAEE,eAAe,GAAAF,KAAA;QAAEG,MAAM,GAAAH,KAAA;QAAEI,0BAA0B,GAAAJ,KAAA;MACvE,IAAMK,aAAa,GAAG;QAClBJ,cAAc,EAAdA,cAAc;QACdC,eAAe,EAAfA,eAAe;QACfC,MAAM,EAANA,MAAM;QACNC,0BAA0B,EAA1BA;MACJ,CAAC;MAEDxC,QAAQ,CAAC;QACLE,IAAI,EAAElB,uBAAuB;QAC7B+B,IAAI,EAAE;UACF0B,aAAa,EAAbA;QACJ;MACJ,CAAC,CAAC;IACN,CAAC,CAAC,SACI,CAAC,UAACxB,KAAK,EAAK;MACd,IAAIA,KAAK,CAACyB,IAAI,KAAKlE,EAAE,CAACmE,KAAK,CAACC,SAAS,EAAE;QACnC5C,QAAQ,CAAC;UACLE,IAAI,EAAErB,uBAAuB;UAC7BkC,IAAI,EAAE;YAACE,KAAK,EAALA;UAAK;QAChB,CAAC,CAAC;MACN;IACJ,CAAC,CAAC;EACV,CAAC;AACL;AAEA,OAAO,SAAS4B,UAAUA,CAACC,IAAe,EAAyB;EAC/D,OAAO,UAAC9C,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAI,CAAC6C,IAAI,EAAE;MACP;IACJ;IAEA,IAAM3C,KAAK,GAAGF,QAAQ,CAAC,CAAC;IAExB,IAAM0B,IAAI,GAAGhD,OAAO,CAACwB,KAAK,CAAC;IAC3B,IAAM4C,KAAK,GAAGtE,QAAQ,CAAC0B,KAAK,CAAC;IAC7B,IAAM6C,IAAI,GAAGnF,eAAe,CAACiF,IAAI,EAAEC,KAAK,CAAC;IAEzC/C,QAAQ,CAAC;MAACE,IAAI,EAAEhB;IAA8B,CAAC,CAAC;IAEhD,OAAOV,EAAE,CAACyE,EAAE,CACPC,MAAM,CAAC;MACJF,IAAI,sBAAAlB,MAAA,CAAsBH,IAAI,OAAAG,MAAA,CAAIkB,IAAI;IAC1C,CAAC,CAAC,CACDlC,IAAI,CAAC,YAAM;MACRhB,OAAO,CAACqD,GAAG,CAAC;QACRC,IAAI,EAAE,aAAa;QACnBC,UAAU,EAAE,KAAK;QACjBnD,IAAI,EAAE,SAAS;QACfoD,KAAK,0BAAAxB,MAAA,CAA0BgB,IAAI,CAACM,IAAI;MAC5C,CAAC,CAAC;MAEFpD,QAAQ,CAAC;QAACE,IAAI,EAAEf;MAA8B,CAAC,CAAC;MAChDa,QAAQ,CAACuD,oBAAoB,CAAC,CAAC,CAAC;MAChCC,UAAU,CAAC;QAAA,OAAMxD,QAAQ,CAACD,kBAAkB,CAAC,CAAC,CAAC;MAAA,GAAE,IAAI,CAAC;IAC1D,CAAC,CAAC,SACI,CAAC,UAACkB,KAAU,EAAK;MACnB,IAAIA,KAAK,CAACyB,IAAI,KAAKlE,EAAE,CAACmE,KAAK,CAACC,SAAS,EAAE;QACnC5C,QAAQ,CAAC;UACLE,IAAI,EAAEjB,8BAA8B;UACpC8B,IAAI,EAAE;YAACE,KAAK,EAALA;UAAK;QAChB,CAAC,CAAC;QAEF,OAAOO,OAAO,CAACC,MAAM,CAAC,CAAC;MAC3B;MACA,OAAO,IAAI;IACf,CAAC,CAAC;EACV,CAAC;AACL;AAEA,OAAO,SAASgC,mBAAmBA,CAACX,IAAc,EAAoB;EAClE,OAAO;IACH5C,IAAI,EAAEtB,6BAA6B;IACnCmC,IAAI,EAAE;MACF2C,UAAU,EAAE,IAAI;MAChBZ,IAAI,EAAJA;IACJ;EACJ,CAAC;AACL;AAEA,OAAO,SAASS,oBAAoBA,CAAA,EAAqB;EACrD,OAAO;IACHrD,IAAI,EAAEtB,6BAA6B;IACnCmC,IAAI,EAAE;MACF2C,UAAU,EAAE,KAAK;MACjBZ,IAAI,EAAEa;IACV;EACJ,CAAC;AACL;AAaA,OAAO,SAASC,iBAAiBA,CAACC,MAAkC,EAAE;EAClE,IAAOC,QAAQ,GAA4BD,MAAM,CAA1CC,QAAQ;IAAEC,MAAM,GAAoBF,MAAM,CAAhCE,MAAM;IAAEC,QAAQ,GAAUH,MAAM,CAAxBG,QAAQ;IAAErC,IAAI,GAAIkC,MAAM,CAAdlC,IAAI;EACvC,IAAIsC,QAAA,CAAUF,MAAM,CAAC,EAAE;IACnB,OAAOvC,OAAO,CAAC0C,OAAO,CAAC,CAAC;EAC5B;EAEA,IAAMC,YAAiE,GAAG,EAAE;EAC5E,IAAMC,QAA2C,GAAG,EAAE;EAEtD,IAAOC,aAAa,GAAmBN,MAAM,CAAtCM,aAAa;IAAKC,UAAU,GAAAC,wBAAA,CAAIR,MAAM,EAAAS,SAAA;EAE7CC,QAAA,CAAUH,UAAU,EAAE,UAACI,CAAC,EAAEC,CAAC,EAAK;IAC5B,IAAAC,KAAA,GAAwBF,CAAC,IAAI,CAAC,CAAC;MAAxBG,KAAK,GAAAD,KAAA,CAALC,KAAK;MAAEC,MAAM,GAAAF,KAAA,CAANE,MAAM;IACpB,IAAMC,GAAG,GAAGJ,CAA4B;IAExC,IAAMK,IAAI,GAAGpH,+BAA+B,CAACmH,GAAG,CAAC;IACjD,IAAI,CAACD,MAAM,IAAID,KAAK,KAAKlB,SAAS,EAAE;MAChCS,QAAQ,CAACa,IAAI,CAAC;QAACD,IAAI,EAAJA,IAAI;QAAEE,KAAK,EAAEL;MAAK,CAAC,CAAC;IACvC,CAAC,MAAM;MAAA,IAAAM,aAAA;MACH,IAAMC,SAAS,GAAG,EAAAD,aAAA,GAAAnB,QAAQ,CAACe,GAAG,CAAC,cAAAI,aAAA,uBAAbA,aAAA,CAAeN,KAAK,KAAI,CAAC;MAC3C,IAAMQ,IAAI,GAAG,CAACR,KAAK,IAAI,CAAC,IAAIO,SAAS;MACrC,IAAIC,IAAI,EAAE;QACNlB,YAAY,CAACc,IAAI,CAAC;UAACI,IAAI,EAAJA,IAAI;UAAEP,MAAM,EAANA,MAAM;UAAE9B,IAAI,EAAEgC;QAAI,CAAC,CAAC;MACjD;IACJ;EACJ,CAAC,CAAC;EAEF,IAAIM,MAAM,CAACC,cAAc,CAACC,IAAI,CAACzB,MAAM,EAAE,eAAe,CAAC,EAAE;IACrDK,QAAQ,CAACa,IAAI,CAAC;MACVD,IAAI,EAAEpH,+BAA+B,CAAC,eAAe,CAAC;MACtDsH,KAAK,EAAEb;IACX,CAAC,CAAC;EACN;EAEA,OAAO/F,oBAAoB,CAACwF,QAAQ,EAAEM,QAAQ,CAAC,CAACtD,IAAI,CAAC,YAAM;IACvD,OAAO2E,iBAAiB,CAAC;MAAC3B,QAAQ,EAARA,QAAQ;MAAEK,YAAY,EAAZA,YAAY;MAAExC,IAAI,EAAJA;IAAI,CAAC,CAAC;EAC5D,CAAC,CAAC;AACN;AAQA,SAAS8D,iBAAiBA,CAAAC,KAAA,EAA0D;EAAA,IAAxD5B,QAAQ,GAAA4B,KAAA,CAAR5B,QAAQ;IAAEK,YAAY,GAAAuB,KAAA,CAAZvB,YAAY;IAAExC,IAAI,GAAA+D,KAAA,CAAJ/D,IAAI;EACpD,IAAIsC,QAAA,CAAUE,YAAY,CAAC,EAAE;IACzB,OAAO3C,OAAO,CAAC0C,OAAO,CAAC,CAAC;EAC5B;EACA,IAAMyB,GAAG,GAAG7B,QAAQ,CAAC8B,KAAK,CAAC,GAAG,CAAC;EAC/B,IAAMC,OAAO,GAAGF,GAAG,CAACA,GAAG,CAACG,MAAM,GAAG,CAAC,CAAC;EAEnC,IAAMjF,QAAQ,GAAGkF,IAAA,CAAM5B,YAAY,EAAE,UAACO,CAAC,EAAK;IACxC,IAAOW,IAAI,GAAkBX,CAAC,CAAvBW,IAAI;MAAEP,MAAM,GAAUJ,CAAC,CAAjBI,MAAM;MAAE9B,IAAI,GAAI0B,CAAC,CAAT1B,IAAI;IACzB,IAAMgD,YAAY,GAAGhD,IAAI,CAACiD,UAAU,CAACtI,0BAA0B,CAAC,GAC1DqF,IAAI,CAACkD,MAAM,CAACvI,0BAA0B,CAACmI,MAAM,CAAC,GAC9C9C,IAAI;IACV,IAAMmD,OAAO,GAAGH,YAAY,CAACI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;IAEhD,IAAMC,KAAK,GAAGC,OAAA,CAAS,CAAC,CAAC,EAAEH,OAAO,EAAE;MAAA,OAAMI,IAAI,CAACC,GAAG,CAACnB,IAAI,CAAC;IAAA,EAAC;IAEzD,OAAO;MACHoB,OAAO,EAAE,yBAAkC;MAC3CC,UAAU,EAAE;QACRC,WAAW,EAAEtB,IAAI,GAAG,CAAC,GAAGP,MAAM,GAAGe,OAAO;QACxCe,gBAAgB,EAAEvB,IAAI,GAAG,CAAC,GAAGQ,OAAO,GAAGf,MAAM;QAC7C+B,SAAS,EAAElF,IAAI;QACfmF,cAAc,EAAET;MACpB;IACJ,CAAC;EACL,CAAC,CAAC;EAEF,OAAO7G,SAAS,CACXmB,YAAY,CAACrB,OAAO,CAACyH,2BAA2B,EAAE;IAAClG,QAAQ,EAARA;EAAQ,CAAC,CAAC,CAC7DC,IAAI,CAAC,UAACkG,GAAQ,EAAK;IAChB,IAAMC,GAAG,GAAGhJ,aAAa,CAAC+I,GAAG,CAAC5F,OAAO,CAAC;IACtC,IAAI6F,GAAG,EAAE;MACL,OAAOzF,OAAO,CAACC,MAAM,CAACwF,GAAG,CAAC;IAC9B;IACA,OAAOD,GAAG;EACd,CAAC,CAAC;AACV;AAEA,OAAO,SAAS3G,8BAA8BA,CAAA,EAA0B;EACpE,OAAO,UAACL,QAAQ,EAAEC,QAAQ,EAAK;IAC3B,IAAME,KAAK,GAAGF,QAAQ,CAAC,CAAC;IACxB,IAAMiH,QAAQ,GAAGvH,mCAAmC,CAACQ,KAAK,CAAC;IAC3D,IAAIgH,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,QAAQ,GAAG,MAAM,EAAE;MAChC,OAAOvD,SAAS;IACpB;IAEA,OAAOxF,uBAAuB,CAC1BoB,SAAS,CAAC8H,GAAG,CAAC/H,OAAO,CAACgI,0BAA0B,EAAA1G,aAAA;MAC5CoC,IAAI,EAAE,4DAA4D;MAClEuE,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK;IAAC,GACtB1H,SAAS,CACf,CAAC,EACF;MACI2H,gBAAgB,EAAE,IAAI;MACtBC,WAAW,EAAE,gCAAgC;MAC7CC,YAAY,EAAE;IAClB,CACJ,CAAC,CAAC5G,IAAI,CAAC,UAAC6G,kBAAkB,EAAK;MAC3B3H,QAAQ,CAAC;QACLE,IAAI,EAAEpB,yBAAyB;QAC/BiC,IAAI,EAAE;UAAC4G,kBAAkB,EAAlBA,kBAAkB;UAAEC,sBAAsB,EAAET,IAAI,CAACC,GAAG,CAAC;QAAC;MACjE,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;AACL;AAEA,OAAO,SAASS,mBAAmBA,CAACC,MAAc,EAAyB;EACvE,OAAO,UAAC9H,QAAQ,EAAK;IACjBA,QAAQ,CAACK,8BAA8B,CAAC,CAAC,CAAC;IAC1CL,QAAQ,CAAC;MACLE,IAAI,EAAEpB,yBAAyB;MAC/BiC,IAAI,EAAE;QAAC+G,MAAM,EAANA;MAAM;IACjB,CAAC,CAAC;EACN,CAAC;AACL;AAEA,OAAO,SAASC,sBAAsBA,CAACC,gBAGtC,EAAyB;EACtB,OAAO,UAAChI,QAAQ,EAAK;IACjBA,QAAQ,CAACK,8BAA8B,CAAC,CAAC,CAAC;IAC1CL,QAAQ,CAAC;MACLE,IAAI,EAAEpB,yBAAyB;MAC/BiC,IAAI,EAAE;QAACiH,gBAAgB,EAAhBA;MAAgB;IAC3B,CAAC,CAAC;EACN,CAAC;AACL"}
1
+ {"version":3,"names":["INTEGRAL_GUARANTEES_PREFIX","POOL_RESOURCE_TYPE_TO_ATTRIBUTE","computePoolPath","prepareCurrentTree","prepareTrees","extractBatchV4Values","getBatchError","splitBatchResults","wrapApiPromiseByToaster","makeGet","makeList","updateNodeAttributes","Toaster","yt","getPools","getSchedulingIsInitialLoading","getTree","POOL_TOGGLE_DELETE_VISIBILITY","SCHEDULING_DATA_FAILURE","SCHEDULING_DATA_PARTITION","SCHEDULING_DATA_REQUEST","SCHEDULING_DATA_SUCCESS","SCHEDULING_DELETE_POOL_FAILURE","SCHEDULING_DELETE_POOL_REQUEST","SCHEDULING_DELETE_POOL_SUCCESS","loadExpandedPools","RumWrapper","YTApiId","ytApiV3Id","ytApiV4Id","getCluster","RumMeasureTypes","getSchedulingAttributesToFilterTime","schedulingOverviewHasFilter","USE_CACHE","toaster","loadSchedulingData","dispatch","getState","type","state","isInitialLoading","schedulingLoadFilterAttributes","cluster","rumId","SCHEDULING","fetch","schedulingData","executeBatch","_objectSpread","requests","then","data","_splitBatchResults","error","_splitBatchResults$re","_slicedToArray","results","schedulerAlerts","rawTrees","defaultTree","Promise","reject","trees","tree","scheduling","treeRequests","concat","schedulingLoadTree","treeData","extracted","_splitBatchResults2","_ref","_ref2","resource_usage","resource_limits","config","resource_distribution_info","treeResources","code","codes","CANCELLED","deletePool","item","pools","path","v3","remove","add","name","autoHiding","title","closePoolDeleteModal","setTimeout","openPoolDeleteModal","visibility","undefined","setPoolAttributes","params","poolPath","values","initials","_isEmpty","resolve","transferData","toModify","guaranteeType","restValues","_objectWithoutProperties","_excluded","_forEach","v","k","_ref3","limit","source","key","attr","push","value","_initials$key","prevLimit","diff","Object","hasOwnProperty","call","transferPoolQuota","_ref4","tmp","split","dstPool","length","_map","transferPath","startsWith","substr","dotPath","replace","delta","_update","Math","abs","command","parameters","source_pool","destination_pool","pool_tree","resource_delta","schedulingTransferPoolQuota","res","err","lastTime","Date","now","get","schedulingFilterAttributes","fields","skipSuccessToast","toasterName","errorContent","attributesToFilter","attributesToFilterTime","schedulingSetFilter","filter","schedulingSetAbcFilter","abcServiceFilter"],"sources":["scheduling-ts.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n INTEGRAL_GUARANTEES_PREFIX,\n InitialPoolResourceInfo,\n POOL_RESOURCE_TYPE_TO_ATTRIBUTE,\n PoolResourceType,\n computePoolPath,\n prepareCurrentTree,\n prepareTrees,\n} from '../../../utils/scheduling/scheduling';\nimport {\n extractBatchV4Values,\n getBatchError,\n splitBatchResults,\n wrapApiPromiseByToaster,\n} from '../../../utils/utils';\nimport {makeGet, makeList} from '../../../utils/batch';\nimport {updateNodeAttributes} from '../../../utils/cypress-attributes';\n\nimport {ThunkAction} from 'redux-thunk';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\n// @ts-expect-error\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {\n getPools,\n getSchedulingIsInitialLoading,\n getTree,\n} from '../../../store/selectors/scheduling/scheduling';\n\nimport {\n POOL_TOGGLE_DELETE_VISIBILITY,\n SCHEDULING_DATA_FAILURE,\n SCHEDULING_DATA_PARTITION,\n SCHEDULING_DATA_REQUEST,\n SCHEDULING_DATA_SUCCESS,\n SCHEDULING_DELETE_POOL_FAILURE,\n SCHEDULING_DELETE_POOL_REQUEST,\n SCHEDULING_DELETE_POOL_SUCCESS,\n} from '../../../constants/scheduling';\nimport {loadExpandedPools} from './expanded-pools';\nimport {RumWrapper, YTApiId, ytApiV3Id, ytApiV4Id} from '../../../rum/rum-wrap-api';\nimport {getCluster} from '../../../store/selectors/global';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\nimport type {RootState} from '../../../store/reducers';\nimport type {SchedulingAction} from '../../../store/reducers/scheduling/scheduling';\nimport type {PoolInfo} from '../../../store/selectors/scheduling/scheduling-pools';\nimport {\n getSchedulingAttributesToFilterTime,\n schedulingOverviewHasFilter,\n} from '../../../store/selectors/scheduling/attributes-to-filter';\nimport {USE_CACHE} from '../../../../shared/constants/yt-api';\n\nconst toaster = new Toaster();\n\ntype SchedulingThunkAction<T = unknown> = ThunkAction<T, RootState, unknown, SchedulingAction>;\n\nexport function loadSchedulingData(): SchedulingThunkAction {\n return (dispatch, getState) => {\n dispatch({type: SCHEDULING_DATA_REQUEST});\n\n const state = getState();\n const isInitialLoading = getSchedulingIsInitialLoading(state);\n\n if (isInitialLoading && schedulingOverviewHasFilter(state)) {\n dispatch(schedulingLoadFilterAttributes());\n }\n\n const cluster = getCluster(state);\n const rumId = new RumWrapper(cluster, RumMeasureTypes.SCHEDULING);\n return rumId\n .fetch(\n YTApiId.schedulingData,\n ytApiV3Id.executeBatch(YTApiId.schedulingData, {\n requests: [\n makeGet('//sys/scheduler/@alerts'),\n makeList('//sys/scheduler/orchid/scheduler/pool_trees'),\n makeGet('//sys/scheduler/orchid/scheduler/default_fair_share_tree'),\n ],\n ...USE_CACHE,\n }),\n )\n .then((data) => {\n const {\n error,\n results: [schedulerAlerts, rawTrees, defaultTree],\n } = splitBatchResults(data, 'Failed to fetch scheduling data');\n\n if (error) {\n return Promise.reject(error);\n }\n\n const state = getState();\n\n const trees = prepareTrees(rawTrees);\n const tree = prepareCurrentTree(\n defaultTree,\n trees,\n state.scheduling.scheduling.tree,\n );\n\n dispatch({\n type: SCHEDULING_DATA_PARTITION,\n data: {schedulerAlerts, trees, tree},\n });\n\n const treeRequests = [\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/resource_usage`),\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/resource_limits`),\n makeGet(`//sys/scheduler/orchid/scheduler/pool_trees/${tree}/config`),\n makeGet(\n `//sys/scheduler/orchid/scheduler/pool_trees/${tree}/resource_distribution_info`,\n ),\n ];\n\n if (isInitialLoading) {\n /**\n * We don't need to call `dispatch(loadExpandedPools(tree))` for this branch of code,\n * the call should be triggered by SchedulingExpandedPoolsUpdater\n */\n //dispatch(loadExpandedPools(tree));\n } else {\n dispatch(loadExpandedPools(tree));\n }\n\n return rumId\n .fetch(\n YTApiId.schedulingLoadTree,\n ytApiV4Id.executeBatch(YTApiId.schedulingLoadTree, {\n requests: treeRequests,\n ...USE_CACHE,\n }),\n )\n .then((treeData) => {\n const extracted = extractBatchV4Values(treeData, treeRequests);\n const {error, results} = splitBatchResults(\n extracted.results,\n 'Failed to fetch tree details',\n );\n if (error) {\n throw error;\n }\n return results;\n });\n })\n .then(([resource_usage, resource_limits, config, resource_distribution_info]) => {\n const treeResources = {\n resource_usage,\n resource_limits,\n config,\n resource_distribution_info,\n };\n\n dispatch({\n type: SCHEDULING_DATA_SUCCESS,\n data: {\n treeResources,\n },\n });\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: SCHEDULING_DATA_FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function deletePool(item?: PoolInfo): SchedulingThunkAction {\n return (dispatch, getState) => {\n if (!item) {\n return;\n }\n\n const state = getState();\n\n const tree = getTree(state);\n const pools = getPools(state);\n const path = computePoolPath(item, pools);\n\n dispatch({type: SCHEDULING_DELETE_POOL_REQUEST});\n\n return yt.v3\n .remove({\n path: `//sys/pool_trees/${tree}/${path}`,\n })\n .then(() => {\n toaster.add({\n name: 'delete pool',\n autoHiding: 10000,\n type: 'success',\n title: `Successfully deleted ${item.name}. Please wait.`,\n });\n\n dispatch({type: SCHEDULING_DELETE_POOL_SUCCESS});\n dispatch(closePoolDeleteModal());\n setTimeout(() => dispatch(loadSchedulingData()), 3000);\n })\n .catch((error: any) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: SCHEDULING_DELETE_POOL_FAILURE,\n data: {error},\n });\n\n return Promise.reject();\n }\n return null;\n });\n };\n}\n\nexport function openPoolDeleteModal(item: PoolInfo): SchedulingAction {\n return {\n type: POOL_TOGGLE_DELETE_VISIBILITY,\n data: {\n visibility: true,\n item,\n },\n };\n}\n\nexport function closePoolDeleteModal(): SchedulingAction {\n return {\n type: POOL_TOGGLE_DELETE_VISIBILITY,\n data: {\n visibility: false,\n item: undefined,\n },\n };\n}\n\ntype PoolResources = Partial<\n Record<Exclude<PoolResourceType, 'guaranteeType'>, InitialPoolResourceInfo>\n>;\n\ninterface SetResourceGuaranteeParams {\n poolPath: string;\n values: PoolResources & {guaranteeType: string};\n initials: PoolResources;\n tree: string;\n}\n\nexport function setPoolAttributes(params: SetResourceGuaranteeParams) {\n const {poolPath, values, initials, tree} = params;\n if (_.isEmpty(values)) {\n return Promise.resolve();\n }\n\n const transferData: Array<{diff: number; source: string; path: string}> = [];\n const toModify: Array<{attr: string; value: any}> = [];\n\n const {guaranteeType, ...restValues} = values;\n\n _.forEach(restValues, (v, k) => {\n const {limit, source} = v || {};\n const key = k as keyof typeof restValues;\n\n const attr = POOL_RESOURCE_TYPE_TO_ATTRIBUTE[key];\n if (!source || limit === undefined) {\n toModify.push({attr, value: limit});\n } else {\n const prevLimit = initials[key]?.limit || 0;\n const diff = (limit || 0) - prevLimit;\n if (diff) {\n transferData.push({diff, source, path: attr});\n }\n }\n });\n\n if (Object.hasOwnProperty.call(values, 'guaranteeType')) {\n toModify.push({\n attr: POOL_RESOURCE_TYPE_TO_ATTRIBUTE['guaranteeType'],\n value: guaranteeType,\n });\n }\n\n return updateNodeAttributes(poolPath, toModify).then(() => {\n return transferPoolQuota({poolPath, transferData, tree});\n });\n}\n\ninterface TransferPoolQuotaParams {\n poolPath: string;\n transferData: Array<{diff: number; source: string; path: string}>;\n tree: string;\n}\n\nfunction transferPoolQuota({poolPath, transferData, tree}: TransferPoolQuotaParams) {\n if (_.isEmpty(transferData)) {\n return Promise.resolve();\n }\n const tmp = poolPath.split('/');\n const dstPool = tmp[tmp.length - 1];\n\n const requests = _.map(transferData, (v) => {\n const {diff, source, path} = v;\n const transferPath = path.startsWith(INTEGRAL_GUARANTEES_PREFIX)\n ? path.substr(INTEGRAL_GUARANTEES_PREFIX.length)\n : path;\n const dotPath = transferPath.replace(/\\//g, '.');\n\n const delta = _.update({}, dotPath, () => Math.abs(diff));\n\n return {\n command: 'transfer_pool_resources' as const,\n parameters: {\n source_pool: diff > 0 ? source : dstPool,\n destination_pool: diff > 0 ? dstPool : source,\n pool_tree: tree,\n resource_delta: delta,\n },\n };\n });\n\n return ytApiV4Id\n .executeBatch(YTApiId.schedulingTransferPoolQuota, {requests})\n .then((res: any) => {\n const err = getBatchError(res.results, 'Failed to transfer pool quota');\n if (err) {\n return Promise.reject(err);\n }\n return res;\n });\n}\n\nexport function schedulingLoadFilterAttributes(): SchedulingThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const lastTime = getSchedulingAttributesToFilterTime(state);\n if (Date.now() - lastTime < 120000) {\n return undefined;\n }\n\n return wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.schedulingFilterAttributes, {\n path: '//sys/scheduler/orchid/scheduler/pool_trees/physical/pools',\n fields: ['parent', 'abc'],\n ...USE_CACHE,\n }),\n {\n skipSuccessToast: true,\n toasterName: 'schedulingLoadFilterAttributes',\n errorContent: 'Failed to load attributes required for filtering',\n },\n ).then((attributesToFilter) => {\n dispatch({\n type: SCHEDULING_DATA_PARTITION,\n data: {attributesToFilter, attributesToFilterTime: Date.now()},\n });\n });\n };\n}\n\nexport function schedulingSetFilter(filter: string): SchedulingThunkAction {\n return (dispatch) => {\n dispatch(schedulingLoadFilterAttributes());\n dispatch({\n type: SCHEDULING_DATA_PARTITION,\n data: {filter},\n });\n };\n}\n\nexport function schedulingSetAbcFilter(abcServiceFilter: {\n id: number;\n slug: string;\n}): SchedulingThunkAction {\n return (dispatch) => {\n dispatch(schedulingLoadFilterAttributes());\n dispatch({\n type: SCHEDULING_DATA_PARTITION,\n data: {abcServiceFilter},\n });\n };\n}\n"],"mappings":"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"}
@@ -176,7 +176,7 @@ export function editPool(pool, values, initialValues) {
176
176
  return Promise.all([ytApiV3Id.executeBatch(YTApiId.schedulingEditPool, {
177
177
  requests: requests
178
178
  }).then(function (data) {
179
- var _splitBatchResults = splitBatchResults(data),
179
+ var _splitBatchResults = splitBatchResults(data, 'Failed to fetch pool details'),
180
180
  error = _splitBatchResults.error;
181
181
  if (error) {
182
182
  return Promise.reject(error);
@@ -1 +1 @@
1
- {"version":3,"names":["Toaster","yt","getSchedulingNS","toggleFavourite","getPools","getTree","POOL_GENERAL_TYPE_TO_ATTRIBUTE","computePoolPath","CHANGE_CONTENT_MODE","CHANGE_POOL","CHANGE_POOL_CHILDREN_FILTER","CHANGE_TABLE_TREE_STATE","CHANGE_TREE","SCHEDULING_EDIT_POOL_CANCELLED","SCHEDULING_EDIT_POOL_FAILURE","SCHEDULING_EDIT_POOL_REQUEST","SCHEDULING_EDIT_POOL_SUCCESS","TOGGLE_EDIT_VISIBILITY","loadSchedulingData","setPoolAttributes","splitBatchResults","YTApiId","ytApiV3Id","toaster","setName","path","newName","prevName","Promise","resolve","v3","set","concat","makeOtherAttributesCommands","values","initialValues","initialSortParamsString","fifoSortParams","join","newSortParamsString","commands","forbidImmediateOperations","push","command","parameters","input","createEphemeralSubpools","setResourceAttributes","omittedValues","attribute","_isEmpty","keyMapper","userSlots","omittedValuesList","_map","value","key","preparedValues","_mapKeys","get","schedulingGetAttrsBeforeEdit","then","resources","result","_objectSpread","_omit","error","code","reject","makeGeneralCommands","isInitial","initialValue","isOmitted","Object","prototype","hasOwnProperty","call","_pickBy","undefined","mode","weight","Number","isInvalidNumber","isNaN","isValidNumber","editPool","pool","dispatch","getState","state","tree","pools","poolPath","filteredResourceLimitsValues","resourceLimits","omittedResourceLimitsValues","resourceLimitsValues","_mapValues","type","requests","_toConsumableArray","general","otherSettings","all","executeBatch","schedulingEditPool","data","_splitBatchResults","resourceGuarantee","integralGuarantee","_pick","keys","initials","name","add","timeout","title","closeEditModal","setTimeout","codes","CANCELLED","openEditModal","item","visibility","_ref","arguments","length","cancelled","changeTree","changeTableTreeState","treeState","changePool","changeContentMode","evt","contentMode","target","changePoolChildrenFilter","poolChildrenFilter","togglePoolFavourites","parentNS"],"sources":["scheduling.js"],"sourcesContent":["import _ from 'lodash';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\n// @ts-expect-error\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {getSchedulingNS} from '../../../store/selectors/settings';\nimport {toggleFavourite} from '../../../store/actions/favourites';\nimport {getPools, getTree} from '../../../store/selectors/scheduling/scheduling';\nimport {\n POOL_GENERAL_TYPE_TO_ATTRIBUTE,\n computePoolPath,\n} from '../../../utils/scheduling/scheduling';\n\nimport {\n CHANGE_CONTENT_MODE,\n CHANGE_POOL,\n CHANGE_POOL_CHILDREN_FILTER,\n CHANGE_TABLE_TREE_STATE,\n CHANGE_TREE,\n SCHEDULING_EDIT_POOL_CANCELLED,\n SCHEDULING_EDIT_POOL_FAILURE,\n SCHEDULING_EDIT_POOL_REQUEST,\n SCHEDULING_EDIT_POOL_SUCCESS,\n TOGGLE_EDIT_VISIBILITY,\n} from '../../../constants/scheduling';\nimport {loadSchedulingData, setPoolAttributes} from './scheduling-ts';\nimport {splitBatchResults} from '../../../utils/utils';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\n\nconst toaster = new Toaster();\n\nconst setName = (path, newName, prevName) => {\n if (prevName === newName) {\n return Promise.resolve();\n }\n\n return yt.v3.set({path: `${path}/@name`}, newName);\n};\n\nconst makeOtherAttributesCommands = (path, values, initialValues) => {\n const initialSortParamsString = initialValues.fifoSortParams.join('|');\n const newSortParamsString = values.fifoSortParams.join('|');\n\n const commands = [];\n\n if (initialValues.forbidImmediateOperations !== values.forbidImmediateOperations) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@forbid_immediate_operations`,\n },\n input: values.forbidImmediateOperations,\n });\n }\n\n if (initialValues.createEphemeralSubpools !== values.createEphemeralSubpools) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@create_ephemeral_subpools`,\n },\n input: values.createEphemeralSubpools,\n });\n }\n\n if (initialSortParamsString !== newSortParamsString) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@fifo_sort_parameters`,\n },\n input: values.fifoSortParams,\n });\n }\n\n return commands;\n};\n\nconst setResourceAttributes = (path, values, omittedValues, attribute) => {\n if (_.isEmpty(values) && _.isEmpty(omittedValues)) {\n return Promise.resolve();\n }\n\n const keyMapper = {userSlots: 'user_slots'};\n const omittedValuesList = _.map(omittedValues, (value, key) => keyMapper[key] || key);\n const preparedValues = _.mapKeys(values, (value, key) => keyMapper[key] || key);\n\n return ytApiV3Id\n .get(YTApiId.schedulingGetAttrsBeforeEdit, {path: `${path}/@${attribute}`})\n .then((resources) => {\n const result = {...resources, ...preparedValues};\n const input = _.omit(result, omittedValuesList);\n\n return yt.v3.set({path: `${path}/@${attribute}`}, input);\n })\n .catch((error) => {\n if (error.code === 500) {\n // attribute not found\n return yt.v3.set({path: `${path}/@${attribute}`}, preparedValues);\n }\n\n return Promise.reject(error);\n });\n};\n\nconst makeGeneralCommands = (path, values, initialValues) => {\n const isInitial = (value, initialValue) => value === initialValue;\n const isOmitted = (value, omittedValues) =>\n Object.prototype.hasOwnProperty.call(omittedValues, value);\n\n //const {name: abcServiceName, slug: abcServiceSlug, id} = prepareAbcService(values.abcService);\n const omittedValues = _.pickBy(\n values,\n (value) => value === '' || value === undefined || value === null,\n );\n\n const commands = [];\n\n // if (!isInitial(abcServiceSlug, initialValues.abcService?.value)) {\n // commands.push({\n // command: abcServiceSlug ? 'set' : 'remove',\n // parameters: {\n // path: `${path}/@abc`,\n // },\n // input: !abcServiceSlug ? undefined : {\n // slug: abcServiceSlug,\n // name: abcServiceName,\n // id,\n // },\n // });\n // }\n\n if (!isInitial(values.mode, initialValues.mode)) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@mode`,\n },\n input: values.mode,\n });\n }\n\n if (!isInitial(values.weight, initialValues.weight)) {\n if (isOmitted('weight', omittedValues)) {\n commands.push({\n command: 'remove',\n parameters: {\n path: `${path}/@weight`,\n },\n });\n } else if (!isInitial(values.weight, initialValues.weight)) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@weight`,\n },\n input: Number(values.weight),\n });\n }\n }\n\n return commands;\n};\n\nfunction isInvalidNumber(value) {\n return value === '' || isNaN(Number(value));\n}\n\nfunction isValidNumber(value) {\n return !isInvalidNumber(value);\n}\n\nexport function editPool(pool, values, initialValues) {\n return (dispatch, getState) => {\n const state = getState();\n\n const tree = getTree(state);\n const pools = getPools(state);\n const poolPath = computePoolPath(pool, pools);\n const path = `//sys/pool_trees/${tree}/${poolPath}`;\n\n const filteredResourceLimitsValues = _.pickBy(values.resourceLimits, isValidNumber);\n const omittedResourceLimitsValues = _.pickBy(values.resourceLimits, isInvalidNumber);\n const resourceLimitsValues = _.mapValues(filteredResourceLimitsValues, (value) =>\n Number(value),\n );\n delete resourceLimitsValues['error-block'];\n delete omittedResourceLimitsValues['error-block'];\n\n dispatch({type: SCHEDULING_EDIT_POOL_REQUEST});\n\n const requests = [\n ...makeGeneralCommands(path, values.general, initialValues.general),\n ...makeOtherAttributesCommands(path, values.otherSettings, initialValues.otherSettings),\n ];\n\n return Promise.all([\n ytApiV3Id.executeBatch(YTApiId.schedulingEditPool, {requests}).then((data) => {\n const {error} = splitBatchResults(data);\n if (error) {\n return Promise.reject(error);\n }\n }),\n setPoolAttributes({\n poolPath: path,\n values: {\n ...values.resourceGuarantee,\n ...values.integralGuarantee,\n ..._.pick(values.general, Object.keys(POOL_GENERAL_TYPE_TO_ATTRIBUTE)),\n },\n initials: {\n ...initialValues.resourceGuarantee,\n ...initialValues.integralGuarantee,\n ..._.pick(initialValues.general, Object.keys(POOL_GENERAL_TYPE_TO_ATTRIBUTE)),\n },\n tree,\n }),\n setResourceAttributes(\n path,\n resourceLimitsValues,\n omittedResourceLimitsValues,\n 'resource_limits',\n ),\n ])\n .then(setName(path, values.general.name, initialValues.general.name))\n .then(() => {\n toaster.add({\n name: 'edit pool',\n timeout: 10000,\n type: 'success',\n title: `Successfully edited ${pool.name}. Please wait.`,\n });\n\n dispatch({type: SCHEDULING_EDIT_POOL_SUCCESS});\n dispatch(closeEditModal());\n setTimeout(() => dispatch(loadSchedulingData()), 3000);\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: SCHEDULING_EDIT_POOL_FAILURE,\n data: {error},\n });\n\n return Promise.reject();\n }\n });\n };\n}\n\nexport function openEditModal(item) {\n return {\n type: TOGGLE_EDIT_VISIBILITY,\n data: {\n visibility: true,\n item,\n },\n };\n}\n\nexport function closeEditModal({cancelled} = {}) {\n return (dispatch) => {\n dispatch({\n type: TOGGLE_EDIT_VISIBILITY,\n data: {\n visibility: false,\n item: undefined,\n },\n });\n\n if (cancelled) {\n dispatch({type: SCHEDULING_EDIT_POOL_CANCELLED});\n }\n };\n}\n\nexport function changeTree(tree) {\n return (dispatch) => {\n dispatch({\n type: CHANGE_TREE,\n data: {tree},\n });\n\n dispatch(loadSchedulingData());\n };\n}\n\nexport function changeTableTreeState(treeState) {\n return {\n type: CHANGE_TABLE_TREE_STATE,\n data: {treeState},\n };\n}\n\nexport function changePool(pool) {\n return {\n type: CHANGE_POOL,\n data: {pool},\n };\n}\n\nexport function changeContentMode(evt) {\n return {\n type: CHANGE_CONTENT_MODE,\n data: {\n contentMode: evt.target.value,\n },\n };\n}\n\nexport function changePoolChildrenFilter(poolChildrenFilter) {\n return {\n type: CHANGE_POOL_CHILDREN_FILTER,\n data: {poolChildrenFilter},\n };\n}\n\nexport function togglePoolFavourites(pool, tree) {\n return (dispatch, getState) => {\n const value = `${pool}[${tree}]`;\n const parentNS = getSchedulingNS(getState());\n return dispatch(toggleFavourite(value, parentNS));\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Toaster","yt","getSchedulingNS","toggleFavourite","getPools","getTree","POOL_GENERAL_TYPE_TO_ATTRIBUTE","computePoolPath","CHANGE_CONTENT_MODE","CHANGE_POOL","CHANGE_POOL_CHILDREN_FILTER","CHANGE_TABLE_TREE_STATE","CHANGE_TREE","SCHEDULING_EDIT_POOL_CANCELLED","SCHEDULING_EDIT_POOL_FAILURE","SCHEDULING_EDIT_POOL_REQUEST","SCHEDULING_EDIT_POOL_SUCCESS","TOGGLE_EDIT_VISIBILITY","loadSchedulingData","setPoolAttributes","splitBatchResults","YTApiId","ytApiV3Id","toaster","setName","path","newName","prevName","Promise","resolve","v3","set","concat","makeOtherAttributesCommands","values","initialValues","initialSortParamsString","fifoSortParams","join","newSortParamsString","commands","forbidImmediateOperations","push","command","parameters","input","createEphemeralSubpools","setResourceAttributes","omittedValues","attribute","_isEmpty","keyMapper","userSlots","omittedValuesList","_map","value","key","preparedValues","_mapKeys","get","schedulingGetAttrsBeforeEdit","then","resources","result","_objectSpread","_omit","error","code","reject","makeGeneralCommands","isInitial","initialValue","isOmitted","Object","prototype","hasOwnProperty","call","_pickBy","undefined","mode","weight","Number","isInvalidNumber","isNaN","isValidNumber","editPool","pool","dispatch","getState","state","tree","pools","poolPath","filteredResourceLimitsValues","resourceLimits","omittedResourceLimitsValues","resourceLimitsValues","_mapValues","type","requests","_toConsumableArray","general","otherSettings","all","executeBatch","schedulingEditPool","data","_splitBatchResults","resourceGuarantee","integralGuarantee","_pick","keys","initials","name","add","timeout","title","closeEditModal","setTimeout","codes","CANCELLED","openEditModal","item","visibility","_ref","arguments","length","cancelled","changeTree","changeTableTreeState","treeState","changePool","changeContentMode","evt","contentMode","target","changePoolChildrenFilter","poolChildrenFilter","togglePoolFavourites","parentNS"],"sources":["scheduling.js"],"sourcesContent":["import _ from 'lodash';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\n// @ts-expect-error\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {getSchedulingNS} from '../../../store/selectors/settings';\nimport {toggleFavourite} from '../../../store/actions/favourites';\nimport {getPools, getTree} from '../../../store/selectors/scheduling/scheduling';\nimport {\n POOL_GENERAL_TYPE_TO_ATTRIBUTE,\n computePoolPath,\n} from '../../../utils/scheduling/scheduling';\n\nimport {\n CHANGE_CONTENT_MODE,\n CHANGE_POOL,\n CHANGE_POOL_CHILDREN_FILTER,\n CHANGE_TABLE_TREE_STATE,\n CHANGE_TREE,\n SCHEDULING_EDIT_POOL_CANCELLED,\n SCHEDULING_EDIT_POOL_FAILURE,\n SCHEDULING_EDIT_POOL_REQUEST,\n SCHEDULING_EDIT_POOL_SUCCESS,\n TOGGLE_EDIT_VISIBILITY,\n} from '../../../constants/scheduling';\nimport {loadSchedulingData, setPoolAttributes} from './scheduling-ts';\nimport {splitBatchResults} from '../../../utils/utils';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\n\nconst toaster = new Toaster();\n\nconst setName = (path, newName, prevName) => {\n if (prevName === newName) {\n return Promise.resolve();\n }\n\n return yt.v3.set({path: `${path}/@name`}, newName);\n};\n\nconst makeOtherAttributesCommands = (path, values, initialValues) => {\n const initialSortParamsString = initialValues.fifoSortParams.join('|');\n const newSortParamsString = values.fifoSortParams.join('|');\n\n const commands = [];\n\n if (initialValues.forbidImmediateOperations !== values.forbidImmediateOperations) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@forbid_immediate_operations`,\n },\n input: values.forbidImmediateOperations,\n });\n }\n\n if (initialValues.createEphemeralSubpools !== values.createEphemeralSubpools) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@create_ephemeral_subpools`,\n },\n input: values.createEphemeralSubpools,\n });\n }\n\n if (initialSortParamsString !== newSortParamsString) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@fifo_sort_parameters`,\n },\n input: values.fifoSortParams,\n });\n }\n\n return commands;\n};\n\nconst setResourceAttributes = (path, values, omittedValues, attribute) => {\n if (_.isEmpty(values) && _.isEmpty(omittedValues)) {\n return Promise.resolve();\n }\n\n const keyMapper = {userSlots: 'user_slots'};\n const omittedValuesList = _.map(omittedValues, (value, key) => keyMapper[key] || key);\n const preparedValues = _.mapKeys(values, (value, key) => keyMapper[key] || key);\n\n return ytApiV3Id\n .get(YTApiId.schedulingGetAttrsBeforeEdit, {path: `${path}/@${attribute}`})\n .then((resources) => {\n const result = {...resources, ...preparedValues};\n const input = _.omit(result, omittedValuesList);\n\n return yt.v3.set({path: `${path}/@${attribute}`}, input);\n })\n .catch((error) => {\n if (error.code === 500) {\n // attribute not found\n return yt.v3.set({path: `${path}/@${attribute}`}, preparedValues);\n }\n\n return Promise.reject(error);\n });\n};\n\nconst makeGeneralCommands = (path, values, initialValues) => {\n const isInitial = (value, initialValue) => value === initialValue;\n const isOmitted = (value, omittedValues) =>\n Object.prototype.hasOwnProperty.call(omittedValues, value);\n\n //const {name: abcServiceName, slug: abcServiceSlug, id} = prepareAbcService(values.abcService);\n const omittedValues = _.pickBy(\n values,\n (value) => value === '' || value === undefined || value === null,\n );\n\n const commands = [];\n\n // if (!isInitial(abcServiceSlug, initialValues.abcService?.value)) {\n // commands.push({\n // command: abcServiceSlug ? 'set' : 'remove',\n // parameters: {\n // path: `${path}/@abc`,\n // },\n // input: !abcServiceSlug ? undefined : {\n // slug: abcServiceSlug,\n // name: abcServiceName,\n // id,\n // },\n // });\n // }\n\n if (!isInitial(values.mode, initialValues.mode)) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@mode`,\n },\n input: values.mode,\n });\n }\n\n if (!isInitial(values.weight, initialValues.weight)) {\n if (isOmitted('weight', omittedValues)) {\n commands.push({\n command: 'remove',\n parameters: {\n path: `${path}/@weight`,\n },\n });\n } else if (!isInitial(values.weight, initialValues.weight)) {\n commands.push({\n command: 'set',\n parameters: {\n path: `${path}/@weight`,\n },\n input: Number(values.weight),\n });\n }\n }\n\n return commands;\n};\n\nfunction isInvalidNumber(value) {\n return value === '' || isNaN(Number(value));\n}\n\nfunction isValidNumber(value) {\n return !isInvalidNumber(value);\n}\n\nexport function editPool(pool, values, initialValues) {\n return (dispatch, getState) => {\n const state = getState();\n\n const tree = getTree(state);\n const pools = getPools(state);\n const poolPath = computePoolPath(pool, pools);\n const path = `//sys/pool_trees/${tree}/${poolPath}`;\n\n const filteredResourceLimitsValues = _.pickBy(values.resourceLimits, isValidNumber);\n const omittedResourceLimitsValues = _.pickBy(values.resourceLimits, isInvalidNumber);\n const resourceLimitsValues = _.mapValues(filteredResourceLimitsValues, (value) =>\n Number(value),\n );\n delete resourceLimitsValues['error-block'];\n delete omittedResourceLimitsValues['error-block'];\n\n dispatch({type: SCHEDULING_EDIT_POOL_REQUEST});\n\n const requests = [\n ...makeGeneralCommands(path, values.general, initialValues.general),\n ...makeOtherAttributesCommands(path, values.otherSettings, initialValues.otherSettings),\n ];\n\n return Promise.all([\n ytApiV3Id.executeBatch(YTApiId.schedulingEditPool, {requests}).then((data) => {\n const {error} = splitBatchResults(data, 'Failed to fetch pool details');\n if (error) {\n return Promise.reject(error);\n }\n }),\n setPoolAttributes({\n poolPath: path,\n values: {\n ...values.resourceGuarantee,\n ...values.integralGuarantee,\n ..._.pick(values.general, Object.keys(POOL_GENERAL_TYPE_TO_ATTRIBUTE)),\n },\n initials: {\n ...initialValues.resourceGuarantee,\n ...initialValues.integralGuarantee,\n ..._.pick(initialValues.general, Object.keys(POOL_GENERAL_TYPE_TO_ATTRIBUTE)),\n },\n tree,\n }),\n setResourceAttributes(\n path,\n resourceLimitsValues,\n omittedResourceLimitsValues,\n 'resource_limits',\n ),\n ])\n .then(setName(path, values.general.name, initialValues.general.name))\n .then(() => {\n toaster.add({\n name: 'edit pool',\n timeout: 10000,\n type: 'success',\n title: `Successfully edited ${pool.name}. Please wait.`,\n });\n\n dispatch({type: SCHEDULING_EDIT_POOL_SUCCESS});\n dispatch(closeEditModal());\n setTimeout(() => dispatch(loadSchedulingData()), 3000);\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: SCHEDULING_EDIT_POOL_FAILURE,\n data: {error},\n });\n\n return Promise.reject();\n }\n });\n };\n}\n\nexport function openEditModal(item) {\n return {\n type: TOGGLE_EDIT_VISIBILITY,\n data: {\n visibility: true,\n item,\n },\n };\n}\n\nexport function closeEditModal({cancelled} = {}) {\n return (dispatch) => {\n dispatch({\n type: TOGGLE_EDIT_VISIBILITY,\n data: {\n visibility: false,\n item: undefined,\n },\n });\n\n if (cancelled) {\n dispatch({type: SCHEDULING_EDIT_POOL_CANCELLED});\n }\n };\n}\n\nexport function changeTree(tree) {\n return (dispatch) => {\n dispatch({\n type: CHANGE_TREE,\n data: {tree},\n });\n\n dispatch(loadSchedulingData());\n };\n}\n\nexport function changeTableTreeState(treeState) {\n return {\n type: CHANGE_TABLE_TREE_STATE,\n data: {treeState},\n };\n}\n\nexport function changePool(pool) {\n return {\n type: CHANGE_POOL,\n data: {pool},\n };\n}\n\nexport function changeContentMode(evt) {\n return {\n type: CHANGE_CONTENT_MODE,\n data: {\n contentMode: evt.target.value,\n },\n };\n}\n\nexport function changePoolChildrenFilter(poolChildrenFilter) {\n return {\n type: CHANGE_POOL_CHILDREN_FILTER,\n data: {poolChildrenFilter},\n };\n}\n\nexport function togglePoolFavourites(pool, tree) {\n return (dispatch, getState) => {\n const value = `${pool}[${tree}]`;\n const parentNS = getSchedulingNS(getState());\n return dispatch(toggleFavourite(value, parentNS));\n };\n}\n"],"mappings":"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"}
@@ -40,7 +40,7 @@ export function loadSystemNodes(nodeTypes) {
40
40
  return ytApiV3Id.executeBatch(YTApiId.systemNodes, {
41
41
  requests: requests
42
42
  }).then(function (data) {
43
- var _splitBatchResults = splitBatchResults(data),
43
+ var _splitBatchResults = splitBatchResults(data, 'Failed to get system nodes'),
44
44
  error = _splitBatchResults.error,
45
45
  results = _splitBatchResults.results;
46
46
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"names":["each_","filter_","reduce_","map_","Toaster","ypath","hammer","isRetryFutile","getNodeffectiveState","incrementStateCounter","showErrorPopup","splitBatchResults","SYSTEM_FETCH_NODES","UNAWARE","USE_CACHE","USE_MAX_SIZE","YTApiId","ytApiV3Id","loadSystemNodes","nodeTypes","dispatch","type","REQUEST","requests","command","parameters","_objectSpread","path","suppress_transaction_coordinator_sync","suppress_upstream_sync","concat","_toConsumableArray","map","nodeType","attributes","executeBatch","systemNodes","then","data","_splitBatchResults","error","results","_ref","_ref2","_toArray","rackNames","nodesByType","slice","nodes","reduce","acc","items","racks","prepareRacks","overviewCounters","extractNodeCounters","_groupRacks","groupRacks","rackGroups","counters","SUCCESS","roleGroups","prepareRoleGroups","undefined","_error$response","FAILURE","response","code","message","toaster","add","name","autoHiding","content","title","actions","label","onClick","groupedRacks","dataCenterNames","rack","groupName","split","Set","forEach","dcName","rackGroup","startsWith","isGroupEmpty","every","empty","increaseFlagCounter","dst","attrs","total","length","node","$attributes","flags","states","state","effectiveStates","effectiveState","decommissioned","banned","full","alerts","prepareNodes","sort","nodeA","nodeB","$value","prepareRackNames","rackA","rackB","utils","compareVectors","format","unshift","createRack","insertNodeToRack","rackName","getValue","getBoolean","Boolean","effectiveFlag","Object","hasOwnProperty","call","push","item","key","groups","rackInfo2roleGroup","toAdd","filter","g","res","_node$$attributes","info","role"],"sources":["nodes.ts"],"sourcesContent":["import each_ from 'lodash/each';\nimport filter_ from 'lodash/filter';\nimport reduce_ from 'lodash/reduce';\nimport map_ from 'lodash/map';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\nimport ypath from '../../../common/thor/ypath';\nimport hammer from '../../../common/hammer';\nimport {isRetryFutile} from '../../../utils/index';\nimport {getNodeffectiveState, incrementStateCounter} from '../../../utils/system/proxies';\nimport {showErrorPopup, splitBatchResults} from '../../../utils/utils';\nimport {SYSTEM_FETCH_NODES, UNAWARE} from '../../../constants';\nimport {USE_CACHE, USE_MAX_SIZE} from '../../../../shared/constants/yt-api';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\n\nimport type {RootState} from '../../../store/reducers';\nimport type {\n NodeEffectiveState,\n RackInfo,\n SystemNodeInfo,\n SystemNodesAction,\n SystemNodesState,\n} from '../../../store/reducers/system/nodes';\nimport type {BatchSubRequest} from '../../../../shared/yt-types';\nimport type {\n HttpProxiesState,\n RoleGroupInfo,\n RoleGroupItemInfo,\n} from '../../../store/reducers/system/proxies';\nimport {ThunkAction} from 'redux-thunk';\nimport {NodeType} from '../../../../shared/constants/system';\n\ntype SystemNodesThunkAction<T = void> = ThunkAction<T, RootState, unknown, SystemNodesAction>;\n\nexport function loadSystemNodes(\n nodeTypes: Array<NodeType>,\n): SystemNodesThunkAction<Promise<undefined | {isRetryFutile?: boolean}>> {\n return (dispatch) => {\n dispatch({type: SYSTEM_FETCH_NODES.REQUEST});\n\n const requests: Array<BatchSubRequest> = [\n {\n command: 'list',\n parameters: {\n path: '//sys/racks',\n suppress_transaction_coordinator_sync: true,\n suppress_upstream_sync: true,\n ...USE_MAX_SIZE,\n },\n },\n ...nodeTypes.map((nodeType) => {\n return {\n command: 'list' as const,\n parameters: {\n path: `//sys/${nodeType}`,\n attributes: [\n 'state',\n 'banned',\n 'decommissioned',\n 'alert_count',\n 'full',\n 'rack',\n ],\n suppress_transaction_coordinator_sync: true,\n suppress_upstream_sync: true,\n ...USE_CACHE,\n ...USE_MAX_SIZE,\n },\n };\n }),\n ];\n\n return ytApiV3Id\n .executeBatch(YTApiId.systemNodes, {requests})\n .then((data) => {\n const {error, results} = splitBatchResults<string | Array<SystemNodeInfo>>(data);\n if (error) {\n throw error;\n }\n\n const [rackNames, ...nodesByType] = results as [\n _first: Array<string>,\n ..._rest: Array<Array<SystemNodeInfo>>,\n ];\n\n const nodes = nodesByType.reduce((acc, items) => {\n return acc.concat(items);\n }, []);\n\n const racks = prepareRacks(rackNames, nodes);\n const overviewCounters = extractNodeCounters(racks);\n const {rackGroups, counters} = groupRacks(racks);\n dispatch({\n type: SYSTEM_FETCH_NODES.SUCCESS,\n data: {\n overviewCounters,\n counters,\n roleGroups: prepareRoleGroups(rackGroups),\n },\n });\n return undefined;\n })\n .catch((error) => {\n dispatch({\n type: SYSTEM_FETCH_NODES.FAILURE,\n data: error,\n });\n\n const data = error?.response?.data || error;\n const {code, message} = data;\n\n const toaster = new Toaster();\n\n toaster.add({\n name: 'load/system/nodes',\n autoHiding: false,\n type: 'error',\n content: `[code ${code}] ${message}`,\n title: 'Could not load Nodes',\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(error),\n },\n ],\n });\n\n return {isRetryFutile: isRetryFutile(error.code)};\n });\n };\n}\n\nfunction groupRacks(racks: Array<RackInfo>) {\n const groupedRacks: Record<string, Array<RackInfo>> = {},\n counters: SystemNodesState['counters'] = {};\n const dataCenterNames = reduce_(\n racks,\n (acc, rack) => {\n const groupName = rack.name.split('-')[0];\n return groupName ? acc.add(groupName) : acc;\n },\n new Set<string>(),\n );\n // regroup racks by datacenters they belong to\n dataCenterNames.forEach((dcName) => {\n const rackGroup = filter_(racks, (rack) => {\n return rack.name === dcName || rack.name.startsWith(`${dcName}-`);\n });\n const isGroupEmpty = rackGroup.every((rack) => rack.empty);\n if (!isGroupEmpty) {\n groupedRacks[dcName] = rackGroup;\n counters[dcName] = extractNodeCounters(rackGroup);\n }\n });\n return {rackGroups: groupedRacks, counters};\n}\n\nfunction increaseFlagCounter<K extends keyof RackInfo['nodes'][number]['$attributes']>(\n dst: Partial<Record<K, number>>,\n name: K,\n attrs: Record<K, boolean>,\n) {\n if (dst[name] === undefined) {\n dst[name] = attrs[name] ? 1 : 0;\n } else {\n dst[name]! += attrs[name] ? 1 : 0;\n }\n}\n\nfunction extractNodeCounters(racks: Array<RackInfo>) {\n return reduce_(\n racks,\n (acc: HttpProxiesState['counters'], rack: RackInfo) => {\n acc.total += rack.nodes.length;\n\n each_(rack.nodes, (node) => {\n const attrs = node.$attributes;\n increaseFlagCounter(acc.flags, 'decommissioned', attrs);\n increaseFlagCounter(acc.flags, 'full', attrs);\n increaseFlagCounter(acc.flags, 'alerts', attrs);\n increaseFlagCounter(acc.flags, 'banned', attrs);\n\n incrementStateCounter(acc.states, attrs.state);\n incrementStateCounter(acc.effectiveStates, attrs.effectiveState);\n });\n\n return acc;\n },\n {\n total: 0,\n flags: {\n decommissioned: 0,\n banned: 0,\n full: 0,\n alerts: 0,\n },\n states: {}, // For right side counters\n effectiveStates: {}, // For state progress bar\n } as HttpProxiesState['counters'],\n );\n}\n\nfunction prepareNodes(nodes: Array<SystemNodeInfo>) {\n return nodes.sort((nodeA, nodeB) => {\n return nodeA.$value > nodeB.$value ? 1 : -1;\n });\n}\n\nfunction prepareRackNames(rackNames: Array<string>) {\n rackNames.sort((rackA, rackB) => {\n return hammer.utils.compareVectors(\n hammer.format['RackToVector'](rackA),\n hammer.format['RackToVector'](rackB),\n );\n });\n\n rackNames.unshift(UNAWARE);\n\n return rackNames;\n}\n\nfunction createRack(name: string): RackInfo {\n return {\n name,\n empty: true,\n nodes: [],\n };\n}\n\nfunction insertNodeToRack(racks: Record<string, RackInfo>, node: SystemNodeInfo) {\n const rackName = ypath.getValue(node, '/@rack');\n const state: NodeEffectiveState = ypath.getValue(node, '/@state');\n const banned: boolean = ypath.getBoolean(node, '/@banned');\n const decommissioned: boolean = ypath.getBoolean(node, '/@decommissioned');\n const full: boolean = ypath.getBoolean(node, '/@full');\n const alerts = Boolean(ypath.getValue(node, '/@alert_count'));\n\n const effectiveFlag =\n (decommissioned && 'decommissioned') ||\n (full && 'full') ||\n (alerts && 'alerts') ||\n undefined;\n\n const rack = racks[Object.hasOwnProperty.call(racks, rackName) ? rackName : UNAWARE];\n\n rack.empty = false;\n\n rack.nodes.push({\n $value: node.$value,\n $attributes: {\n ...node.$attributes,\n effectiveState: state,\n effectiveFlag: effectiveFlag,\n alerts,\n banned,\n },\n });\n}\n\nfunction prepareRacks(rackNames: Array<string>, nodes: Array<SystemNodeInfo>) {\n const racks = reduce_(\n prepareRackNames(rackNames),\n (acc, name) => {\n acc[name] = createRack(name);\n return acc;\n },\n {} as Record<string, RackInfo>,\n );\n\n each_(prepareNodes(nodes), (node) => insertNodeToRack(racks, node));\n\n return map_(racks);\n}\n\nfunction prepareRoleGroups(rackGroups: Record<string, Array<RackInfo>>) {\n const roleGroups = reduce_(\n rackGroups,\n (acc, item, key) => {\n const groups = rackInfo2roleGroup(item);\n const toAdd = groups.filter((g) => {\n return g.counters.total > 0;\n });\n if (toAdd.length) {\n acc[key] = toAdd;\n }\n return acc;\n },\n {} as Record<string, Array<RoleGroupInfo>>,\n );\n return roleGroups;\n}\n\nfunction rackInfo2roleGroup(data: Array<RackInfo>): Array<RoleGroupInfo> {\n return map_(data, (rack) => {\n const res: RoleGroupInfo = {\n name: rack.name,\n items: [],\n counters: {\n total: rack.nodes.length,\n effectiveStates: {},\n states: {},\n flags: {},\n },\n };\n rack.nodes.forEach((node) => {\n const {state, effectiveState, banned} = node.$attributes;\n const info: RoleGroupItemInfo = {\n name: node.$value,\n state,\n role: rack.name,\n effectiveState: getNodeffectiveState(effectiveState),\n banned,\n };\n incrementStateCounter(res.counters.effectiveStates, info.effectiveState);\n incrementStateCounter(res.counters.states, info.state);\n\n increaseFlagCounter(res.counters.flags, 'decommissioned', node.$attributes);\n increaseFlagCounter(res.counters.flags, 'full', node.$attributes);\n increaseFlagCounter(res.counters.flags, 'alerts', node.$attributes);\n increaseFlagCounter(res.counters.flags, 'banned', node.$attributes);\n\n res.items.push(info);\n });\n\n return res;\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["each_","filter_","reduce_","map_","Toaster","ypath","hammer","isRetryFutile","getNodeffectiveState","incrementStateCounter","showErrorPopup","splitBatchResults","SYSTEM_FETCH_NODES","UNAWARE","USE_CACHE","USE_MAX_SIZE","YTApiId","ytApiV3Id","loadSystemNodes","nodeTypes","dispatch","type","REQUEST","requests","command","parameters","_objectSpread","path","suppress_transaction_coordinator_sync","suppress_upstream_sync","concat","_toConsumableArray","map","nodeType","attributes","executeBatch","systemNodes","then","data","_splitBatchResults","error","results","_ref","_ref2","_toArray","rackNames","nodesByType","slice","nodes","reduce","acc","items","racks","prepareRacks","overviewCounters","extractNodeCounters","_groupRacks","groupRacks","rackGroups","counters","SUCCESS","roleGroups","prepareRoleGroups","undefined","_error$response","FAILURE","response","code","message","toaster","add","name","autoHiding","content","title","actions","label","onClick","groupedRacks","dataCenterNames","rack","groupName","split","Set","forEach","dcName","rackGroup","startsWith","isGroupEmpty","every","empty","increaseFlagCounter","dst","attrs","total","length","node","$attributes","flags","states","state","effectiveStates","effectiveState","decommissioned","banned","full","alerts","prepareNodes","sort","nodeA","nodeB","$value","prepareRackNames","rackA","rackB","utils","compareVectors","format","unshift","createRack","insertNodeToRack","rackName","getValue","getBoolean","Boolean","effectiveFlag","Object","hasOwnProperty","call","push","item","key","groups","rackInfo2roleGroup","toAdd","filter","g","res","_node$$attributes","info","role"],"sources":["nodes.ts"],"sourcesContent":["import each_ from 'lodash/each';\nimport filter_ from 'lodash/filter';\nimport reduce_ from 'lodash/reduce';\nimport map_ from 'lodash/map';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\nimport ypath from '../../../common/thor/ypath';\nimport hammer from '../../../common/hammer';\nimport {isRetryFutile} from '../../../utils/index';\nimport {getNodeffectiveState, incrementStateCounter} from '../../../utils/system/proxies';\nimport {showErrorPopup, splitBatchResults} from '../../../utils/utils';\nimport {SYSTEM_FETCH_NODES, UNAWARE} from '../../../constants';\nimport {USE_CACHE, USE_MAX_SIZE} from '../../../../shared/constants/yt-api';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\n\nimport type {RootState} from '../../../store/reducers';\nimport type {\n NodeEffectiveState,\n RackInfo,\n SystemNodeInfo,\n SystemNodesAction,\n SystemNodesState,\n} from '../../../store/reducers/system/nodes';\nimport type {BatchSubRequest} from '../../../../shared/yt-types';\nimport type {\n HttpProxiesState,\n RoleGroupInfo,\n RoleGroupItemInfo,\n} from '../../../store/reducers/system/proxies';\nimport {ThunkAction} from 'redux-thunk';\nimport {NodeType} from '../../../../shared/constants/system';\n\ntype SystemNodesThunkAction<T = void> = ThunkAction<T, RootState, unknown, SystemNodesAction>;\n\nexport function loadSystemNodes(\n nodeTypes: Array<NodeType>,\n): SystemNodesThunkAction<Promise<undefined | {isRetryFutile?: boolean}>> {\n return (dispatch) => {\n dispatch({type: SYSTEM_FETCH_NODES.REQUEST});\n\n const requests: Array<BatchSubRequest> = [\n {\n command: 'list',\n parameters: {\n path: '//sys/racks',\n suppress_transaction_coordinator_sync: true,\n suppress_upstream_sync: true,\n ...USE_MAX_SIZE,\n },\n },\n ...nodeTypes.map((nodeType) => {\n return {\n command: 'list' as const,\n parameters: {\n path: `//sys/${nodeType}`,\n attributes: [\n 'state',\n 'banned',\n 'decommissioned',\n 'alert_count',\n 'full',\n 'rack',\n ],\n suppress_transaction_coordinator_sync: true,\n suppress_upstream_sync: true,\n ...USE_CACHE,\n ...USE_MAX_SIZE,\n },\n };\n }),\n ];\n\n return ytApiV3Id\n .executeBatch(YTApiId.systemNodes, {requests})\n .then((data) => {\n const {error, results} = splitBatchResults<string | Array<SystemNodeInfo>>(\n data,\n 'Failed to get system nodes',\n );\n if (error) {\n throw error;\n }\n\n const [rackNames, ...nodesByType] = results as [\n _first: Array<string>,\n ..._rest: Array<Array<SystemNodeInfo>>,\n ];\n\n const nodes = nodesByType.reduce((acc, items) => {\n return acc.concat(items);\n }, []);\n\n const racks = prepareRacks(rackNames, nodes);\n const overviewCounters = extractNodeCounters(racks);\n const {rackGroups, counters} = groupRacks(racks);\n dispatch({\n type: SYSTEM_FETCH_NODES.SUCCESS,\n data: {\n overviewCounters,\n counters,\n roleGroups: prepareRoleGroups(rackGroups),\n },\n });\n return undefined;\n })\n .catch((error) => {\n dispatch({\n type: SYSTEM_FETCH_NODES.FAILURE,\n data: error,\n });\n\n const data = error?.response?.data || error;\n const {code, message} = data;\n\n const toaster = new Toaster();\n\n toaster.add({\n name: 'load/system/nodes',\n autoHiding: false,\n type: 'error',\n content: `[code ${code}] ${message}`,\n title: 'Could not load Nodes',\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(error),\n },\n ],\n });\n\n return {isRetryFutile: isRetryFutile(error.code)};\n });\n };\n}\n\nfunction groupRacks(racks: Array<RackInfo>) {\n const groupedRacks: Record<string, Array<RackInfo>> = {},\n counters: SystemNodesState['counters'] = {};\n const dataCenterNames = reduce_(\n racks,\n (acc, rack) => {\n const groupName = rack.name.split('-')[0];\n return groupName ? acc.add(groupName) : acc;\n },\n new Set<string>(),\n );\n // regroup racks by datacenters they belong to\n dataCenterNames.forEach((dcName) => {\n const rackGroup = filter_(racks, (rack) => {\n return rack.name === dcName || rack.name.startsWith(`${dcName}-`);\n });\n const isGroupEmpty = rackGroup.every((rack) => rack.empty);\n if (!isGroupEmpty) {\n groupedRacks[dcName] = rackGroup;\n counters[dcName] = extractNodeCounters(rackGroup);\n }\n });\n return {rackGroups: groupedRacks, counters};\n}\n\nfunction increaseFlagCounter<K extends keyof RackInfo['nodes'][number]['$attributes']>(\n dst: Partial<Record<K, number>>,\n name: K,\n attrs: Record<K, boolean>,\n) {\n if (dst[name] === undefined) {\n dst[name] = attrs[name] ? 1 : 0;\n } else {\n dst[name]! += attrs[name] ? 1 : 0;\n }\n}\n\nfunction extractNodeCounters(racks: Array<RackInfo>) {\n return reduce_(\n racks,\n (acc: HttpProxiesState['counters'], rack: RackInfo) => {\n acc.total += rack.nodes.length;\n\n each_(rack.nodes, (node) => {\n const attrs = node.$attributes;\n increaseFlagCounter(acc.flags, 'decommissioned', attrs);\n increaseFlagCounter(acc.flags, 'full', attrs);\n increaseFlagCounter(acc.flags, 'alerts', attrs);\n increaseFlagCounter(acc.flags, 'banned', attrs);\n\n incrementStateCounter(acc.states, attrs.state);\n incrementStateCounter(acc.effectiveStates, attrs.effectiveState);\n });\n\n return acc;\n },\n {\n total: 0,\n flags: {\n decommissioned: 0,\n banned: 0,\n full: 0,\n alerts: 0,\n },\n states: {}, // For right side counters\n effectiveStates: {}, // For state progress bar\n } as HttpProxiesState['counters'],\n );\n}\n\nfunction prepareNodes(nodes: Array<SystemNodeInfo>) {\n return nodes.sort((nodeA, nodeB) => {\n return nodeA.$value > nodeB.$value ? 1 : -1;\n });\n}\n\nfunction prepareRackNames(rackNames: Array<string>) {\n rackNames.sort((rackA, rackB) => {\n return hammer.utils.compareVectors(\n hammer.format['RackToVector'](rackA),\n hammer.format['RackToVector'](rackB),\n );\n });\n\n rackNames.unshift(UNAWARE);\n\n return rackNames;\n}\n\nfunction createRack(name: string): RackInfo {\n return {\n name,\n empty: true,\n nodes: [],\n };\n}\n\nfunction insertNodeToRack(racks: Record<string, RackInfo>, node: SystemNodeInfo) {\n const rackName = ypath.getValue(node, '/@rack');\n const state: NodeEffectiveState = ypath.getValue(node, '/@state');\n const banned: boolean = ypath.getBoolean(node, '/@banned');\n const decommissioned: boolean = ypath.getBoolean(node, '/@decommissioned');\n const full: boolean = ypath.getBoolean(node, '/@full');\n const alerts = Boolean(ypath.getValue(node, '/@alert_count'));\n\n const effectiveFlag =\n (decommissioned && 'decommissioned') ||\n (full && 'full') ||\n (alerts && 'alerts') ||\n undefined;\n\n const rack = racks[Object.hasOwnProperty.call(racks, rackName) ? rackName : UNAWARE];\n\n rack.empty = false;\n\n rack.nodes.push({\n $value: node.$value,\n $attributes: {\n ...node.$attributes,\n effectiveState: state,\n effectiveFlag: effectiveFlag,\n alerts,\n banned,\n },\n });\n}\n\nfunction prepareRacks(rackNames: Array<string>, nodes: Array<SystemNodeInfo>) {\n const racks = reduce_(\n prepareRackNames(rackNames),\n (acc, name) => {\n acc[name] = createRack(name);\n return acc;\n },\n {} as Record<string, RackInfo>,\n );\n\n each_(prepareNodes(nodes), (node) => insertNodeToRack(racks, node));\n\n return map_(racks);\n}\n\nfunction prepareRoleGroups(rackGroups: Record<string, Array<RackInfo>>) {\n const roleGroups = reduce_(\n rackGroups,\n (acc, item, key) => {\n const groups = rackInfo2roleGroup(item);\n const toAdd = groups.filter((g) => {\n return g.counters.total > 0;\n });\n if (toAdd.length) {\n acc[key] = toAdd;\n }\n return acc;\n },\n {} as Record<string, Array<RoleGroupInfo>>,\n );\n return roleGroups;\n}\n\nfunction rackInfo2roleGroup(data: Array<RackInfo>): Array<RoleGroupInfo> {\n return map_(data, (rack) => {\n const res: RoleGroupInfo = {\n name: rack.name,\n items: [],\n counters: {\n total: rack.nodes.length,\n effectiveStates: {},\n states: {},\n flags: {},\n },\n };\n rack.nodes.forEach((node) => {\n const {state, effectiveState, banned} = node.$attributes;\n const info: RoleGroupItemInfo = {\n name: node.$value,\n state,\n role: rack.name,\n effectiveState: getNodeffectiveState(effectiveState),\n banned,\n };\n incrementStateCounter(res.counters.effectiveStates, info.effectiveState);\n incrementStateCounter(res.counters.states, info.state);\n\n increaseFlagCounter(res.counters.flags, 'decommissioned', node.$attributes);\n increaseFlagCounter(res.counters.flags, 'full', node.$attributes);\n increaseFlagCounter(res.counters.flags, 'alerts', node.$attributes);\n increaseFlagCounter(res.counters.flags, 'banned', node.$attributes);\n\n res.items.push(info);\n });\n\n return res;\n });\n}\n"],"mappings":"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"}
@@ -39,7 +39,7 @@ function getSchedulersState(hosts) {
39
39
  return ytApiV3Id.executeBatch(YTApiId.systemSchedulersState, {
40
40
  requests: requests
41
41
  }).then(function (data) {
42
- var _splitBatchResults = splitBatchResults(data),
42
+ var _splitBatchResults = splitBatchResults(data, 'Failed to get scheduler states'),
43
43
  outputs = _splitBatchResults.outputs;
44
44
  var alerts = outputs[0];
45
45
  var connectedHosts = _map(hosts, function (host, index) {
@@ -75,7 +75,7 @@ function getAgentsState(hosts) {
75
75
  return ytApiV3Id.executeBatch(YTApiId.systemCAStates, {
76
76
  requests: requests
77
77
  }).then(function (data) {
78
- var _splitBatchResults2 = splitBatchResults(data),
78
+ var _splitBatchResults2 = splitBatchResults(data, 'Failed to get CA states'),
79
79
  outputs = _splitBatchResults2.outputs;
80
80
  var agents = _map(hosts, function (host, index) {
81
81
  return {