@alauda-fe/workload-util-shared 0.0.1

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 (82) hide show
  1. package/esm2022/alauda-fe-workload-util-shared.mjs +5 -0
  2. package/esm2022/index.mjs +6 -0
  3. package/esm2022/lib/directives/index.mjs +3 -0
  4. package/esm2022/lib/directives/oam-resource-disabled-container.directive.mjs +53 -0
  5. package/esm2022/lib/directives/sync-control.directive.mjs +52 -0
  6. package/esm2022/lib/pipes/index.mjs +4 -0
  7. package/esm2022/lib/pipes/is-oam-resource.pipe.mjs +17 -0
  8. package/esm2022/lib/pipes/range.pipe.mjs +17 -0
  9. package/esm2022/lib/pipes/short-num.pipe.mjs +15 -0
  10. package/esm2022/lib/services/cluster-api.service.mjs +93 -0
  11. package/esm2022/lib/services/feature-gate.service.mjs +50 -0
  12. package/esm2022/lib/services/index.mjs +6 -0
  13. package/esm2022/lib/services/pod-util.service.mjs +70 -0
  14. package/esm2022/lib/services/resource-quota.service.mjs +116 -0
  15. package/esm2022/lib/services/terminal.service.mjs +46 -0
  16. package/esm2022/lib/typings/account.mjs +2 -0
  17. package/esm2022/lib/typings/backend-api.mjs +7 -0
  18. package/esm2022/lib/typings/batch-action.type.mjs +2 -0
  19. package/esm2022/lib/typings/form.mjs +2 -0
  20. package/esm2022/lib/typings/helpers.mjs +14 -0
  21. package/esm2022/lib/typings/index.mjs +10 -0
  22. package/esm2022/lib/typings/k8s-form-model.mjs +12 -0
  23. package/esm2022/lib/typings/k8s-resource-definitions/acp-resource-definition.mjs +258 -0
  24. package/esm2022/lib/typings/k8s-resource-definitions/alu-resource-definition.mjs +281 -0
  25. package/esm2022/lib/typings/k8s-resource-definitions/index.mjs +142 -0
  26. package/esm2022/lib/typings/k8s.mjs +143 -0
  27. package/esm2022/lib/typings/status.mjs +269 -0
  28. package/esm2022/lib/utils/code-editor-config.mjs +2 -0
  29. package/esm2022/lib/utils/constants.mjs +61 -0
  30. package/esm2022/lib/utils/crd.mjs +36 -0
  31. package/esm2022/lib/utils/format-number.mjs +227 -0
  32. package/esm2022/lib/utils/helpers.mjs +27 -0
  33. package/esm2022/lib/utils/index.mjs +14 -0
  34. package/esm2022/lib/utils/k8s-util.service.mjs +28 -0
  35. package/esm2022/lib/utils/patterns.mjs +140 -0
  36. package/esm2022/lib/utils/pod-util.mjs +75 -0
  37. package/esm2022/lib/utils/resource-status.mjs +86 -0
  38. package/esm2022/lib/utils/resources-config-util.mjs +28 -0
  39. package/esm2022/lib/utils/status.mjs +84 -0
  40. package/esm2022/lib/utils/validator.mjs +11 -0
  41. package/esm2022/lib/utils/workspace.mjs +25 -0
  42. package/index.d.ts +5 -0
  43. package/lib/directives/index.d.ts +2 -0
  44. package/lib/directives/oam-resource-disabled-container.directive.d.ts +17 -0
  45. package/lib/directives/sync-control.directive.d.ts +14 -0
  46. package/lib/pipes/index.d.ts +3 -0
  47. package/lib/pipes/is-oam-resource.pipe.d.ts +9 -0
  48. package/lib/pipes/range.pipe.d.ts +7 -0
  49. package/lib/pipes/short-num.pipe.d.ts +7 -0
  50. package/lib/services/cluster-api.service.d.ts +38 -0
  51. package/lib/services/feature-gate.service.d.ts +38 -0
  52. package/lib/services/index.d.ts +5 -0
  53. package/lib/services/pod-util.service.d.ts +18 -0
  54. package/lib/services/resource-quota.service.d.ts +25 -0
  55. package/lib/services/terminal.service.d.ts +15 -0
  56. package/lib/typings/account.d.ts +17 -0
  57. package/lib/typings/backend-api.d.ts +220 -0
  58. package/lib/typings/batch-action.type.d.ts +35 -0
  59. package/lib/typings/form.d.ts +10 -0
  60. package/lib/typings/helpers.d.ts +45 -0
  61. package/lib/typings/index.d.ts +9 -0
  62. package/lib/typings/k8s-form-model.d.ts +128 -0
  63. package/lib/typings/k8s-resource-definitions/acp-resource-definition.d.ts +242 -0
  64. package/lib/typings/k8s-resource-definitions/alu-resource-definition.d.ts +269 -0
  65. package/lib/typings/k8s-resource-definitions/index.d.ts +1911 -0
  66. package/lib/typings/k8s.d.ts +1147 -0
  67. package/lib/typings/status.d.ts +252 -0
  68. package/lib/utils/code-editor-config.d.ts +1 -0
  69. package/lib/utils/constants.d.ts +57 -0
  70. package/lib/utils/crd.d.ts +21 -0
  71. package/lib/utils/format-number.d.ts +11 -0
  72. package/lib/utils/helpers.d.ts +13 -0
  73. package/lib/utils/index.d.ts +13 -0
  74. package/lib/utils/k8s-util.service.d.ts +8 -0
  75. package/lib/utils/patterns.d.ts +132 -0
  76. package/lib/utils/pod-util.d.ts +19 -0
  77. package/lib/utils/resource-status.d.ts +8 -0
  78. package/lib/utils/resources-config-util.d.ts +22 -0
  79. package/lib/utils/status.d.ts +3 -0
  80. package/lib/utils/validator.d.ts +4 -0
  81. package/lib/utils/workspace.d.ts +14 -0
  82. package/package.json +36 -0
@@ -0,0 +1,75 @@
1
+ import { formatCPU, formatMemory, } from '@alauda-fe/common';
2
+ const getAppContainerResourceRequirements = (containers, type = 'limits') => {
3
+ return containers.reduce((acc, container) => {
4
+ const resources = getContainerResource(container, type);
5
+ Object.keys(resources).forEach(key => {
6
+ acc[key] =
7
+ (acc[key] || 0) + (isNaN(resources[key]) ? 0 : resources[key]);
8
+ });
9
+ return acc;
10
+ }, {});
11
+ };
12
+ const getInitContainerResourceRequirements = (containers, type = 'limits') => {
13
+ return containers.reduce((acc, container) => {
14
+ const resources = getContainerResource(container, type);
15
+ Object.keys(resources).forEach(key => {
16
+ acc[key] = Math.max(acc[key] || 0, isNaN(resources[key]) ? 0 : resources[key]);
17
+ });
18
+ return acc;
19
+ }, {});
20
+ };
21
+ /**
22
+ * @see https://stupefied-goodall-e282f7.netlify.app/contributors/design-proposals/node/container-init/
23
+ * @param pod pod resource
24
+ * @returns {cpu: number | string, memory: number| string} 如果 cpu 或 memory 是 '', 则认为无限制,
25
+ * 如果存在扩展资源配额,比如 {nvidia.com/gpu: string, tencent.com/vcuda-memory: string} 也会进行返回,
26
+ * 扩展资源默认不带单位,因此可以直接进行想加
27
+ */
28
+ export function getPodResourceRequirements(pod, type = 'limits') {
29
+ const { containers = [], initContainers = [] } = pod.spec;
30
+ const appContainerLimit = getAppContainerResourceRequirements(containers, type);
31
+ const initContainerLimit = getInitContainerResourceRequirements(initContainers, type);
32
+ const result = {};
33
+ // 合并所有的资源类型
34
+ const allResourceTypes = new Set([
35
+ ...Object.keys(appContainerLimit),
36
+ ...Object.keys(initContainerLimit),
37
+ ]);
38
+ allResourceTypes.forEach(resourceType => {
39
+ const appValue = appContainerLimit[resourceType] || 0;
40
+ const initValue = initContainerLimit[resourceType] || 0;
41
+ const maxValue = Math.max(appValue, initValue);
42
+ result[resourceType] = isNaN(maxValue) ? '' : maxValue;
43
+ });
44
+ return result;
45
+ }
46
+ export function getContainerResourceLimit(container) {
47
+ return getContainerResource(container, 'limits');
48
+ }
49
+ export function getContainerResourceRequest(container) {
50
+ return getContainerResource(container, 'requests');
51
+ }
52
+ function getContainerResource(container, type) {
53
+ const result = {};
54
+ const resources = container.resources[type] || {};
55
+ Object.entries(resources).forEach(([key, value]) => {
56
+ if (value === '') {
57
+ result[key] = NaN;
58
+ }
59
+ else if (key === 'cpu') {
60
+ if (!isNaN(+value)) {
61
+ value += 'c';
62
+ }
63
+ result[key] = formatCPU(value);
64
+ }
65
+ else if (key === 'memory') {
66
+ result[key] = formatMemory(value);
67
+ }
68
+ else {
69
+ // 对于其他资源类型(如 GPU 或自定义资源),直接使用数值
70
+ result[key] = parseFloat(value) || NaN;
71
+ }
72
+ });
73
+ return result;
74
+ }
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9kLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3dvcmtsb2FkL3V0aWwtc2hhcmVkL3NyYy9saWIvdXRpbHMvcG9kLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixNQUFNLG1DQUFtQyxHQUFHLENBQzFDLFVBQXVCLEVBQ3ZCLE9BQW1DLFFBQVEsRUFDM0MsRUFBRTtJQUNGLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FDdEIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUU7UUFDakIsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ04sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFDRCxFQUErQixDQUNoQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQ0FBb0MsR0FBRyxDQUMzQyxVQUF1QixFQUN2QixPQUFtQyxRQUFRLEVBQzNDLEVBQUU7SUFDRixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQ3RCLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxJ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Q0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLGdDQUFnQztZQUNoQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29udGFpbmVyLFxuICBQb2QsXG4gIFJlc291cmNlUmVxdWlyZW1lbnRzLFxuICBmb3JtYXRDUFUsXG4gIGZvcm1hdE1lbW9yeSxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5jb25zdCBnZXRBcHBDb250YWluZXJSZXNvdXJjZVJlcXVpcmVtZW50cyA9IChcbiAgY29udGFpbmVyczogQ29udGFpbmVyW10sXG4gIHR5cGU6IGtleW9mIFJlc291cmNlUmVxdWlyZW1lbnRzID0gJ2xpbWl0cycsXG4pID0+IHtcbiAgcmV0dXJuIGNvbnRhaW5lcnMucmVkdWNlKFxuICAgIChhY2MsIGNvbnRhaW5lcikgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2VzID0gZ2V0Q29udGFpbmVyUmVzb3VyY2UoY29udGFpbmVyLCB0eXBlKTtcbiAgICAgIE9iamVjdC5rZXlzKHJlc291cmNlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBhY2Nba2V5XSA9XG4gICAgICAgICAgKGFjY1trZXldIHx8IDApICsgKGlzTmFOKHJlc291cmNlc1trZXldKSA/IDAgOiByZXNvdXJjZXNba2V5XSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9LFxuICApO1xufTtcblxuY29uc3QgZ2V0SW5pdENvbnRhaW5lclJlc291cmNlUmVxdWlyZW1lbnRzID0gKFxuICBjb250YWluZXJzOiBDb250YWluZXJbXSxcbiAgdHlwZToga2V5b2YgUmVzb3VyY2VSZXF1aXJlbWVudHMgPSAnbGltaXRzJyxcbikgPT4ge1xuICByZXR1cm4gY29udGFpbmVycy5yZWR1Y2UoXG4gICAgKGFjYywgY29udGFpbmVyKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZXMgPSBnZXRDb250YWluZXJSZXNvdXJjZShjb250YWluZXIsIHR5cGUpO1xuICAgICAgT2JqZWN0LmtleXMocmVzb3VyY2VzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGFjY1trZXldID0gTWF0aC5tYXgoXG4gICAgICAgICAgYWNjW2tleV0gfHwgMCxcbiAgICAgICAgICBpc05hTihyZXNvdXJjZXNba2V5XSkgPyAwIDogcmVzb3VyY2VzW2tleV0sXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9LFxuICApO1xufTtcblxuLyoqXG4gKiAgQHNlZSBodHRwczovL3N0dXBlZmllZC1nb29kYWxsLWUyODJmNy5uZXRsaWZ5LmFwcC9jb250cmlidXRvcnMvZGVzaWduLXByb3Bvc2Fscy9ub2RlL2NvbnRhaW5lci1pbml0L1xuICogIEBwYXJhbSBwb2QgcG9kIHJlc291cmNlXG4gKiAgQHJldHVybnMge2NwdTogbnVtYmVyIHwgc3RyaW5nLCBtZW1vcnk6IG51bWJlcnwgc3RyaW5nfSDlpoLmnpwgY3B1IOaIliBtZW1vcnkg5pivICcnLCDliJnorqTkuLrml6DpmZDliLYsXG4gKiAgICAgICAgICAg5aaC5p6c5a2Y5Zyo5omp5bGV6LWE5rqQ6YWN6aKd77yM5q+U5aaCICB7bnZpZGlhLmNvbS9ncHU6IHN0cmluZywgdGVuY2VudC5jb20vdmN1ZGEtbWVtb3J5OiBzdHJpbmd9IOS5n+S8mui/m+ihjOi/lOWbnu+8jFxuICogICAgICAgICAgIOaJqeWxlei1hOa6kOm7mOiupOS4jeW4puWNleS9je+8jOWboOatpOWPr+S7peebtOaOpei/m+ihjOaDs+WKoFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9kUmVzb3VyY2VSZXF1aXJlbWVudHMoXG4gIHBvZDogUG9kLFxuICB0eXBlOiBrZXlvZiBSZXNvdXJjZVJlcXVpcmVtZW50cyA9ICdsaW1pdHMnLFxuKToge1xuICBjcHU6IG51bWJlciB8IHN0cmluZztcbiAgbWVtb3J5OiBudW1iZXIgfCBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZztcbn0ge1xuICBjb25zdCB7IGNvbnRhaW5lcnMgPSBbXSwgaW5pdENvbnRhaW5lcnMgPSBbXSB9ID0gcG9kLnNwZWM7XG4gIGNvbnN0IGFwcENvbnRhaW5lckxpbWl0ID0gZ2V0QXBwQ29udGFpbmVyUmVzb3VyY2VSZXF1aXJlbWVudHMoXG4gICAgY29udGFpbmVycyxcbiAgICB0eXBlLFxuICApO1xuICBjb25zdCBpbml0Q29udGFpbmVyTGltaXQgPSBnZXRJbml0Q29udGFpbmVyUmVzb3VyY2VSZXF1aXJlbWVudHMoXG4gICAgaW5pdENvbnRhaW5lcnMsXG4gICAgdHlwZSxcbiAgKTtcblxuICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgc3RyaW5nIH0gPSB7fTtcblxuICAvLyDlkIjlubbmiYDmnInnmoTotYTmupDnsbvlnotcbiAgY29uc3QgYWxsUmVzb3VyY2VUeXBlcyA9IG5ldyBTZXQoW1xuICAgIC4uLk9iamVjdC5rZXlzKGFwcENvbnRhaW5lckxpbWl0KSxcbiAgICAuLi5PYmplY3Qua2V5cyhpbml0Q29udGFpbmVyTGltaXQpLFxuICBdKTtcblxuICBhbGxSZXNvdXJjZVR5cGVzLmZvckVhY2gocmVzb3VyY2VUeXBlID0+IHtcbiAgICBjb25zdCBhcHBWYWx1ZSA9IGFwcENvbnRhaW5lckxpbWl0W3Jlc291cmNlVHlwZV0gfHwgMDtcbiAgICBjb25zdCBpbml0VmFsdWUgPSBpbml0Q29udGFpbmVyTGltaXRbcmVzb3VyY2VUeXBlXSB8fCAwO1xuICAgIGNvbnN0IG1heFZhbHVlID0gTWF0aC5tYXgoYXBwVmFsdWUsIGluaXRWYWx1ZSk7XG4gICAgcmVzdWx0W3Jlc291cmNlVHlwZV0gPSBpc05hTihtYXhWYWx1ZSkgPyAnJyA6IG1heFZhbHVlO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0IGFzIHtcbiAgICBjcHU6IG51bWJlciB8IHN0cmluZztcbiAgICBtZW1vcnk6IG51bWJlciB8IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb250YWluZXJSZXNvdXJjZUxpbWl0KGNvbnRhaW5lcjogQ29udGFpbmVyKToge1xuICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG59IHtcbiAgcmV0dXJuIGdldENvbnRhaW5lclJlc291cmNlKGNvbnRhaW5lciwgJ2xpbWl0cycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGFpbmVyUmVzb3VyY2VSZXF1ZXN0KGNvbnRhaW5lcjogQ29udGFpbmVyKToge1xuICBba2V5OiBzdHJpbmddOiBudW1iZXI7XG59IHtcbiAgcmV0dXJuIGdldENvbnRhaW5lclJlc291cmNlKGNvbnRhaW5lciwgJ3JlcXVlc3RzJyk7XG59XG5cbmZ1bmN0aW9uIGdldENvbnRhaW5lclJlc291cmNlKFxuICBjb250YWluZXI6IENvbnRhaW5lcixcbiAgdHlwZTogJ3JlcXVlc3RzJyB8ICdsaW1pdHMnLFxuKTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSB7XG4gIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBjb25zdCByZXNvdXJjZXMgPSBjb250YWluZXIucmVzb3VyY2VzW3R5cGVdIHx8IHt9O1xuXG4gIE9iamVjdC5lbnRyaWVzKHJlc291cmNlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgcmVzdWx0W2tleV0gPSBOYU47XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdjcHUnKSB7XG4gICAgICBpZiAoIWlzTmFOKCt2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUgKz0gJ2MnO1xuICAgICAgfVxuICAgICAgcmVzdWx0W2tleV0gPSBmb3JtYXRDUFUodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbWVtb3J5Jykge1xuICAgICAgcmVzdWx0W2tleV0gPSBmb3JtYXRNZW1vcnkodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyDlr7nkuo7lhbbku5botYTmupDnsbvlnovvvIjlpoIgR1BVIOaIluiHquWumuS5iei1hOa6kO+8ie+8jOebtOaOpeS9v+eUqOaVsOWAvFxuICAgICAgcmVzdWx0W2tleV0gPSBwYXJzZUZsb2F0KHZhbHVlKSB8fCBOYU47XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
@@ -0,0 +1,86 @@
1
+ import { AlarmStatus } from '@alauda-fe/alarm';
2
+ import { HelmRequestPhaseEnum, } from '@alauda-fe/common';
3
+ import { ApplicationPhaseEnum, ApplicationStateEnum, ApplicationStatusEnum, HelmRequestStatusEnum, JobStatusEnum, } from '../typings';
4
+ export function getAlarmStatus(rule) {
5
+ if (rule.labels.alarm_status?.toLowerCase() === 'pending') {
6
+ return AlarmStatus.Pending;
7
+ }
8
+ if (rule.labels.alarm_status?.toLowerCase() === 'firing') {
9
+ return AlarmStatus.Firing;
10
+ }
11
+ return AlarmStatus.Normal;
12
+ }
13
+ export function getJobStatus(data) {
14
+ const status = data.status;
15
+ if (status.conditions?.some(_item => _item.type === 'Failed')) {
16
+ return JobStatusEnum.EXECUTE_FAILED;
17
+ }
18
+ // when Complete and succeeded, judge to execute_succeeded
19
+ if (status.conditions?.some(_item => _item.type === 'Complete')) {
20
+ if (status.succeeded) {
21
+ return JobStatusEnum.EXECUTE_SUCCEEDED;
22
+ }
23
+ if (status.failed) {
24
+ return JobStatusEnum.EXECUTE_FAILED;
25
+ }
26
+ }
27
+ // no condition and no Complete when running
28
+ if (status.active) {
29
+ return JobStatusEnum.EXECUTING;
30
+ }
31
+ return JobStatusEnum.UNKNOWN;
32
+ }
33
+ export function getWorkloadStatus(status) {
34
+ return status.status.toLowerCase();
35
+ }
36
+ export function getApplicationStatus(application) {
37
+ const status = application.status;
38
+ const phase = application.spec.assemblyPhase;
39
+ if (phase === ApplicationPhaseEnum.Succeeded) {
40
+ switch (status.state) {
41
+ case ApplicationStateEnum.Stopped: {
42
+ return ApplicationStatusEnum.STOPPED;
43
+ }
44
+ case ApplicationStateEnum.Pending: {
45
+ return ApplicationStatusEnum.PENDING;
46
+ }
47
+ case ApplicationStateEnum.Running: {
48
+ return ApplicationStatusEnum.RUNNING;
49
+ }
50
+ case ApplicationStateEnum.PartialRunning: {
51
+ return ApplicationStatusEnum.PARTIAL_RUNNING;
52
+ }
53
+ case ApplicationStateEnum.Empty: {
54
+ return ApplicationStatusEnum.NO_WORKLOAD;
55
+ }
56
+ default: {
57
+ return ApplicationStatusEnum.UNKNOWN;
58
+ }
59
+ }
60
+ }
61
+ switch (phase) {
62
+ case ApplicationPhaseEnum.Pending: {
63
+ return ApplicationStatusEnum.PENDING;
64
+ }
65
+ case ApplicationPhaseEnum.Failed: {
66
+ return ApplicationStatusEnum.FAILED;
67
+ }
68
+ }
69
+ }
70
+ export function getHelmRequestStatus(hr) {
71
+ if (hr.status) {
72
+ switch (hr.status.phase) {
73
+ case HelmRequestPhaseEnum.Synced: {
74
+ return HelmRequestStatusEnum.DEPLOY_SUCCEEDED;
75
+ }
76
+ case HelmRequestPhaseEnum.Failed: {
77
+ return HelmRequestStatusEnum.DEPLOY_FAILED;
78
+ }
79
+ case HelmRequestPhaseEnum.Pending: {
80
+ return HelmRequestStatusEnum.DEPLOYING;
81
+ }
82
+ }
83
+ }
84
+ return HelmRequestStatusEnum.DEPLOYING;
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2Utc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy93b3JrbG9hZC91dGlsLXNoYXJlZC9zcmMvbGliL3V0aWxzL3Jlc291cmNlLXN0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25FLE9BQU8sRUFHTCxvQkFBb0IsR0FFckIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLGFBQWEsR0FFZCxNQUFNLFlBQVksQ0FBQztBQUVwQixNQUFNLFVBQVUsY0FBYyxDQUFDLElBQXdCO0lBQ3JELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUQsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVM7SUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMzQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlELE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsMERBQTBEO0lBQzFELElBQUksTUFBTSxD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O1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvbWV0aGV1c1J1bGVJdGVtLCBBbGFybVN0YXR1cyB9IGZyb20gJ0BhbGF1ZGEtZmUvYWxhcm0nO1xuaW1wb3J0IHtcbiAgSm9iLFxuICBIZWxtUmVxdWVzdCxcbiAgSGVsbVJlcXVlc3RQaGFzZUVudW0sXG4gIEdlbmVyaWNXb3JrbG9hZFN0YXR1cyxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbixcbiAgQXBwbGljYXRpb25QaGFzZUVudW0sXG4gIEFwcGxpY2F0aW9uU3RhdGVFbnVtLFxuICBBcHBsaWNhdGlvblN0YXR1c0VudW0sXG4gIEhlbG1SZXF1ZXN0U3RhdHVzRW51bSxcbiAgSm9iU3RhdHVzRW51bSxcbiAgV29ya2xvYWRTdGF0dXNFbnVtLFxufSBmcm9tICcuLi90eXBpbmdzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsYXJtU3RhdHVzKHJ1bGU6IFByb21ldGhldXNSdWxlSXRlbSk6IEFsYXJtU3RhdHVzIHtcbiAgaWYgKHJ1bGUubGFiZWxzLmFsYXJtX3N0YXR1cz8udG9Mb3dlckNhc2UoKSA9PT0gJ3BlbmRpbmcnKSB7XG4gICAgcmV0dXJuIEFsYXJtU3RhdHVzLlBlbmRpbmc7XG4gIH1cbiAgaWYgKHJ1bGUubGFiZWxzLmFsYXJtX3N0YXR1cz8udG9Mb3dlckNhc2UoKSA9PT0gJ2ZpcmluZycpIHtcbiAgICByZXR1cm4gQWxhcm1TdGF0dXMuRmlyaW5nO1xuICB9XG4gIHJldHVybiBBbGFybVN0YXR1cy5Ob3JtYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRKb2JTdGF0dXMoZGF0YTogSm9iKTogSm9iU3RhdHVzRW51bSB7XG4gIGNvbnN0IHN0YXR1cyA9IGRhdGEuc3RhdHVzO1xuICBpZiAoc3RhdHVzLmNvbmRpdGlvbnM/LnNvbWUoX2l0ZW0gPT4gX2l0ZW0udHlwZSA9PT0gJ0ZhaWxlZCcpKSB7XG4gICAgcmV0dXJuIEpvYlN0YXR1c0VudW0uRVhFQ1VURV9GQUlMRUQ7XG4gIH1cbiAgLy8gd2hlbiBDb21wbGV0ZSBhbmQgc3VjY2VlZGVkLCBqdWRnZSB0byBleGVjdXRlX3N1Y2NlZWRlZFxuICBpZiAoc3RhdHVzLmNvbmRpdGlvbnM/LnNvbWUoX2l0ZW0gPT4gX2l0ZW0udHlwZSA9PT0gJ0NvbXBsZXRlJykpIHtcbiAgICBpZiAoc3RhdHVzLnN1Y2NlZWRlZCkge1xuICAgICAgcmV0dXJuIEpvYlN0YXR1c0VudW0uRVhFQ1VURV9TVUNDRUVERUQ7XG4gICAgfVxuICAgIGlmIChzdGF0dXMuZmFpbGVkKSB7XG4gICAgICByZXR1cm4gSm9iU3RhdHVzRW51bS5FWEVDVVRFX0ZBSUxFRDtcbiAgICB9XG4gIH1cbiAgLy8gbm8gY29uZGl0aW9uIGFuZCBubyBDb21wbGV0ZSB3aGVuIHJ1bm5pbmdcbiAgaWYgKHN0YXR1cy5hY3RpdmUpIHtcbiAgICByZXR1cm4gSm9iU3RhdHVzRW51bS5FWEVDVVRJTkc7XG4gIH1cbiAgcmV0dXJuIEpvYlN0YXR1c0VudW0uVU5LTk9XTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdvcmtsb2FkU3RhdHVzKHN0YXR1czogR2VuZXJpY1dvcmtsb2FkU3RhdHVzKSB7XG4gIHJldHVybiBzdGF0dXMuc3RhdHVzLnRvTG93ZXJDYXNlKCkgYXMgV29ya2xvYWRTdGF0dXNFbnVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwbGljYXRpb25TdGF0dXMoYXBwbGljYXRpb246IEFwcGxpY2F0aW9uKSB7XG4gIGNvbnN0IHN0YXR1cyA9IGFwcGxpY2F0aW9uLnN0YXR1cztcbiAgY29uc3QgcGhhc2UgPSBhcHBsaWNhdGlvbi5zcGVjLmFzc2VtYmx5UGhhc2U7XG5cbiAgaWYgKHBoYXNlID09PSBBcHBsaWNhdGlvblBoYXNlRW51bS5TdWNjZWVkZWQpIHtcbiAgICBzd2l0Y2ggKHN0YXR1cy5zdGF0ZSkge1xuICAgICAgY2FzZSBBcHBsaWNhdGlvblN0YXRlRW51bS5TdG9wcGVkOiB7XG4gICAgICAgIHJldHVybiBBcHBsaWNhdGlvblN0YXR1c0VudW0uU1RPUFBFRDtcbiAgICAgIH1cbiAgICAgIGNhc2UgQXBwbGljYXRpb25TdGF0ZUVudW0uUGVuZGluZzoge1xuICAgICAgICByZXR1cm4gQXBwbGljYXRpb25TdGF0dXNFbnVtLlBFTkRJTkc7XG4gICAgICB9XG4gICAgICBjYXNlIEFwcGxpY2F0aW9uU3RhdGVFbnVtLlJ1bm5pbmc6IHtcbiAgICAgICAgcmV0dXJuIEFwcGxpY2F0aW9uU3RhdHVzRW51bS5SVU5OSU5HO1xuICAgICAgfVxuICAgICAgY2FzZSBBcHBsaWNhdGlvblN0YXRlRW51bS5QYXJ0aWFsUnVubmluZzoge1xuICAgICAgICByZXR1cm4gQXBwbGljYXRpb25TdGF0dXNFbnVtLlBBUlRJQUxfUlVOTklORztcbiAgICAgIH1cbiAgICAgIGNhc2UgQXBwbGljYXRpb25TdGF0ZUVudW0uRW1wdHk6IHtcbiAgICAgICAgcmV0dXJuIEFwcGxpY2F0aW9uU3RhdHVzRW51bS5OT19XT1JLTE9BRDtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIEFwcGxpY2F0aW9uU3RhdHVzRW51bS5VTktOT1dOO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAocGhhc2UpIHtcbiAgICBjYXNlIEFwcGxpY2F0aW9uUGhhc2VFbnVtLlBlbmRpbmc6IHtcbiAgICAgIHJldHVybiBBcHBsaWNhdGlvblN0YXR1c0VudW0uUEVORElORztcbiAgICB9XG4gICAgY2FzZSBBcHBsaWNhdGlvblBoYXNlRW51bS5GYWlsZWQ6IHtcbiAgICAgIHJldHVybiBBcHBsaWNhdGlvblN0YXR1c0VudW0uRkFJTEVEO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVsbVJlcXVlc3RTdGF0dXMoaHI6IEhlbG1SZXF1ZXN0KTogSGVsbVJlcXVlc3RTdGF0dXNFbnVtIHtcbiAgaWYgKGhyLnN0YXR1cykge1xuICAgIHN3aXRjaCAoaHIuc3RhdHVzLnBoYXNlKSB7XG4gICAgICBjYXNlIEhlbG1SZXF1ZXN0UGhhc2VFbnVtLlN5bmNlZDoge1xuICAgICAgICByZXR1cm4gSGVsbVJlcXVlc3RTdGF0dXNFbnVtLkRFUExPWV9TVUNDRUVERUQ7XG4gICAgICB9XG4gICAgICBjYXNlIEhlbG1SZXF1ZXN0UGhhc2VFbnVtLkZhaWxlZDoge1xuICAgICAgICByZXR1cm4gSGVsbVJlcXVlc3RTdGF0dXNFbnVtLkRFUExPWV9GQUlMRUQ7XG4gICAgICB9XG4gICAgICBjYXNlIEhlbG1SZXF1ZXN0UGhhc2VFbnVtLlBlbmRpbmc6IHtcbiAgICAgICAgcmV0dXJuIEhlbG1SZXF1ZXN0U3RhdHVzRW51bS5ERVBMT1lJTkc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIEhlbG1SZXF1ZXN0U3RhdHVzRW51bS5ERVBMT1lJTkc7XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ export function getCustomResourceLimitsDisplay(configs, resources) {
2
+ return getCustomResourceDisplay(configs, resources, 'limits');
3
+ }
4
+ export function getCustomResourceRequestsDisplay(configs, resources) {
5
+ return getCustomResourceDisplay(configs, resources, 'requests');
6
+ }
7
+ export function getCustomResourceDisplay(configs, resources, type) {
8
+ if (!configs?.length) {
9
+ return [];
10
+ }
11
+ const res = resources[type] || {};
12
+ return Object.keys(res)
13
+ .filter(key => !['memory', 'cpu'].includes(key) &&
14
+ configs?.some(config => config.key === key))
15
+ .map(key => {
16
+ const config = configs.find(config => config.key === key);
17
+ return {
18
+ label: config.labelZh
19
+ ? {
20
+ en: config.labelEn,
21
+ zh: config.labelZh,
22
+ }
23
+ : config.key,
24
+ value: res[key],
25
+ };
26
+ });
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLWNvbmZpZy11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy93b3JrbG9hZC91dGlsLXNoYXJlZC9zcmMvbGliL3V0aWxzL3Jlc291cmNlcy1jb25maWctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsOEJBQThCLENBQzVDLE9BQW9CLEVBQ3BCLFNBQStCO0lBRS9CLE9BQU8sd0JBQXdCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGdDQUFnQyxDQUM5QyxPQUFvQixFQUNwQixTQUErQjtJQUUvQixPQUFPLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsT0FBb0IsRUFDcEIsU0FBK0IsRUFDL0IsSUFBZ0M7SUFFaEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNyQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDcEIsTUFBTSxDQUNMLEdBQUcsQ0FBQyxFQUFFLENBQ0osQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUM5QztTQUNBLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNULE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzFELE9BQU87WUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ25CLENBQUMsQ0FBQztvQkFDRSxFQUFFLEVBQUUsTUFBTSxDQUFDLE9BQU87b0JBQ2xCLEVBQUUsRUFBRSxNQUFNLENBQUMsT0FBTztpQkFDbkI7Z0JBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ2QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUM7U0FDaEIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlUmVxdWlyZW1lbnRzLCBTdHJpbmdNYXAgfSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXN0b21SZXNvdXJjZUxpbWl0c0Rpc3BsYXkoXG4gIGNvbmZpZ3M6IFN0cmluZ01hcFtdLFxuICByZXNvdXJjZXM6IFJlc291cmNlUmVxdWlyZW1lbnRzLFxuKSB7XG4gIHJldHVybiBnZXRDdXN0b21SZXNvdXJjZURpc3BsYXkoY29uZmlncywgcmVzb3VyY2VzLCAnbGltaXRzJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXN0b21SZXNvdXJjZVJlcXVlc3RzRGlzcGxheShcbiAgY29uZmlnczogU3RyaW5nTWFwW10sXG4gIHJlc291cmNlczogUmVzb3VyY2VSZXF1aXJlbWVudHMsXG4pIHtcbiAgcmV0dXJuIGdldEN1c3RvbVJlc291cmNlRGlzcGxheShjb25maWdzLCByZXNvdXJjZXMsICdyZXF1ZXN0cycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VzdG9tUmVzb3VyY2VEaXNwbGF5KFxuICBjb25maWdzOiBTdHJpbmdNYXBbXSxcbiAgcmVzb3VyY2VzOiBSZXNvdXJjZVJlcXVpcmVtZW50cyxcbiAgdHlwZToga2V5b2YgUmVzb3VyY2VSZXF1aXJlbWVudHMsXG4pIHtcbiAgaWYgKCFjb25maWdzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgY29uc3QgcmVzID0gcmVzb3VyY2VzW3R5cGVdIHx8IHt9O1xuICByZXR1cm4gT2JqZWN0LmtleXMocmVzKVxuICAgIC5maWx0ZXIoXG4gICAgICBrZXkgPT5cbiAgICAgICAgIVsnbWVtb3J5JywgJ2NwdSddLmluY2x1ZGVzKGtleSkgJiZcbiAgICAgICAgY29uZmlncz8uc29tZShjb25maWcgPT4gY29uZmlnLmtleSA9PT0ga2V5KSxcbiAgICApXG4gICAgLm1hcChrZXkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gY29uZmlncy5maW5kKGNvbmZpZyA9PiBjb25maWcua2V5ID09PSBrZXkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFiZWw6IGNvbmZpZy5sYWJlbFpoXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGVuOiBjb25maWcubGFiZWxFbixcbiAgICAgICAgICAgICAgemg6IGNvbmZpZy5sYWJlbFpoLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogY29uZmlnLmtleSxcbiAgICAgICAgdmFsdWU6IHJlc1trZXldLFxuICAgICAgfTtcbiAgICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,84 @@
1
+ import { PodStatusEnum } from '@alauda-fe/common';
2
+ import { get } from 'lodash-es';
3
+ // reference: https://bitbucket.org/mathildetech/link/src/c81161f02f981904b716462a305e09414e5617d3/src/backend/resource/common/pod.go#lines-179
4
+ export function getPodStatus(pod) {
5
+ let reason = pod.status.phase || pod.status.reason;
6
+ const { initializing, reason: initReason } = getPodInitStatus(pod, reason);
7
+ reason = initializing ? initReason : getPodContainerStatus(pod, reason);
8
+ if (pod.metadata.deletionTimestamp && pod.status.reason === 'NodeLost') {
9
+ reason = 'Unknown';
10
+ }
11
+ else if (pod.metadata.deletionTimestamp) {
12
+ reason = 'Terminating';
13
+ }
14
+ return reason;
15
+ }
16
+ function getPodContainerStatus(pod, reason) {
17
+ const containerStatuses = get(pod, ['status', 'containerStatuses'], []);
18
+ for (let i = 0, len = containerStatuses.length; i < len; i++) {
19
+ const container = containerStatuses[i];
20
+ let waitingReason, terminatedReason;
21
+ if ((waitingReason = get(container, ['state', 'waiting', 'reason']))) {
22
+ return waitingReason;
23
+ }
24
+ if ((terminatedReason = get(container, ['state', 'terminated', 'reason']))) {
25
+ return terminatedReason;
26
+ }
27
+ if (get(container, ['state', 'terminated'])) {
28
+ const { signal, exitCode } = container.state.terminated;
29
+ return signal === 0 ? `ExitCode:${exitCode}` : `Signal:${signal}`;
30
+ }
31
+ }
32
+ return reason;
33
+ }
34
+ function getPodInitStatus(pod, reason) {
35
+ let initializing = false;
36
+ const initContainerStatuses = get(pod, ['status', 'initContainerStatuses'], []);
37
+ for (let i = initContainerStatuses.length - 1; i >= 0; i--) {
38
+ const status = initContainerStatuses[i];
39
+ if (get(status, ['state', 'terminated', 'exitCode']) === 0) {
40
+ continue;
41
+ }
42
+ let waitingReason;
43
+ const terminated = get(status, ['state', 'terminated']);
44
+ if (terminated) {
45
+ reason = terminated.reason
46
+ ? `Init:${terminated.reason}`
47
+ : terminated.signal === 0
48
+ ? `Init:ExitCode:${terminated.exitCode}`
49
+ : `Init:Signal:${terminated.signal}`;
50
+ }
51
+ else if ((waitingReason = get(status, ['state', 'waiting', reason])) &&
52
+ waitingReason !== 'PodInitializing') {
53
+ reason = `Initing:${waitingReason}`;
54
+ }
55
+ else {
56
+ reason = `Initing:${i}/${pod.spec.initContainers.length}`;
57
+ }
58
+ initializing = true;
59
+ break;
60
+ }
61
+ return { initializing, reason };
62
+ }
63
+ // 将 getPodStatus 得到的多种状态映射到标签类型
64
+ // reference: https://bitbucket.org/mathildetech/link/src/c81161f02f981904b716462a305e09414e5617d3/src/backend/resource/common/podinfo.go#lines-68
65
+ export function getPodAggregatedStatus(status) {
66
+ if (status.split(':')[0] === 'Initing' ||
67
+ [
68
+ 'Initing',
69
+ 'Pending',
70
+ 'PodInitializing',
71
+ 'ContainerCreating',
72
+ 'Terminating',
73
+ ].includes(status)) {
74
+ return PodStatusEnum.pending;
75
+ }
76
+ if (status === 'Completed') {
77
+ return PodStatusEnum.completed;
78
+ }
79
+ if (status === 'Running') {
80
+ return PodStatusEnum.running;
81
+ }
82
+ return PodStatusEnum.error;
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy93b3JrbG9hZC91dGlsLXNoYXJlZC9zcmMvbGliL3V0aWxzL3N0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEMsK0lBQStJO0FBQy9JLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBUTtJQUNuQyxJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNuRCxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0UsTUFBTSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFeEUsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDckIsQ0FBQztTQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFDLE1BQU0sR0FBRyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLEdBQVEsRUFBRSxNQUFjO0lBQ3JELE1BQU0saUJBQWlCLEdBQXNCLEdBQUcsQ0FDOUMsR0FBRyxFQUNILENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLEVB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QUFJLENBQUM7UUFDcEIsTUFBTTtJQUNSLENBQUM7SUFDRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxnQ0FBZ0M7QUFDaEMsa0pBQWtKO0FBQ2xKLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUFjO0lBQ25ELElBQ0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTO1FBQ2xDO1lBQ0UsU0FBUztZQUNULFNBQVM7WUFDVCxpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGFBQWE7U0FDZCxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDbEIsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDM0IsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6QixPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGFpbmVyU3RhdHVzLCBQb2QsIFBvZFN0YXR1c0VudW0gfSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG4vLyByZWZlcmVuY2U6IGh0dHBzOi8vYml0YnVja2V0Lm9yZy9tYXRoaWxkZXRlY2gvbGluay9zcmMvYzgxMTYxZjAyZjk4MTkwNGI3MTY0NjJhMzA1ZTA5NDE0ZTU2MTdkMy9zcmMvYmFja2VuZC9yZXNvdXJjZS9jb21tb24vcG9kLmdvI2xpbmVzLTE3OVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvZFN0YXR1cyhwb2Q6IFBvZCk6IHN0cmluZyB7XG4gIGxldCByZWFzb24gPSBwb2Quc3RhdHVzLnBoYXNlIHx8IHBvZC5zdGF0dXMucmVhc29uO1xuICBjb25zdCB7IGluaXRpYWxpemluZywgcmVhc29uOiBpbml0UmVhc29uIH0gPSBnZXRQb2RJbml0U3RhdHVzKHBvZCwgcmVhc29uKTtcbiAgcmVhc29uID0gaW5pdGlhbGl6aW5nID8gaW5pdFJlYXNvbiA6IGdldFBvZENvbnRhaW5lclN0YXR1cyhwb2QsIHJlYXNvbik7XG5cbiAgaWYgKHBvZC5tZXRhZGF0YS5kZWxldGlvblRpbWVzdGFtcCAmJiBwb2Quc3RhdHVzLnJlYXNvbiA9PT0gJ05vZGVMb3N0Jykge1xuICAgIHJlYXNvbiA9ICdVbmtub3duJztcbiAgfSBlbHNlIGlmIChwb2QubWV0YWRhdGEuZGVsZXRpb25UaW1lc3RhbXApIHtcbiAgICByZWFzb24gPSAnVGVybWluYXRpbmcnO1xuICB9XG4gIHJldHVybiByZWFzb247XG59XG5cbmZ1bmN0aW9uIGdldFBvZENvbnRhaW5lclN0YXR1cyhwb2Q6IFBvZCwgcmVhc29uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjb250YWluZXJTdGF0dXNlczogQ29udGFpbmVyU3RhdHVzW10gPSBnZXQoXG4gICAgcG9kLFxuICAgIFsnc3RhdHVzJywgJ2NvbnRhaW5lclN0YXR1c2VzJ10sXG4gICAgW10sXG4gICk7XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBjb250YWluZXJTdGF0dXNlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclN0YXR1c2VzW2ldO1xuICAgIGxldCB3YWl0aW5nUmVhc29uLCB0ZXJtaW5hdGVkUmVhc29uO1xuICAgIGlmICgod2FpdGluZ1JlYXNvbiA9IGdldChjb250YWluZXIsIFsnc3RhdGUnLCAnd2FpdGluZycsICdyZWFzb24nXSkpKSB7XG4gICAgICByZXR1cm4gd2FpdGluZ1JlYXNvbjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKHRlcm1pbmF0ZWRSZWFzb24gPSBnZXQoY29udGFpbmVyLCBbJ3N0YXRlJywgJ3Rlcm1pbmF0ZWQnLCAncmVhc29uJ10pKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRlcm1pbmF0ZWRSZWFzb247XG4gICAgfVxuICAgIGlmIChnZXQoY29udGFpbmVyLCBbJ3N0YXRlJywgJ3Rlcm1pbmF0ZWQnXSkpIHtcbiAgICAgIGNvbnN0IHsgc2lnbmFsLCBleGl0Q29kZSB9ID0gY29udGFpbmVyLnN0YXRlLnRlcm1pbmF0ZWQ7XG4gICAgICByZXR1cm4gc2lnbmFsID09PSAwID8gYEV4aXRDb2RlOiR7ZXhpdENvZGV9YCA6IGBTaWduYWw6JHtzaWduYWx9YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlYXNvbjtcbn1cblxuZnVuY3Rpb24gZ2V0UG9kSW5pdFN0YXR1cyhwb2Q6IFBvZCwgcmVhc29uOiBzdHJpbmcpIHtcbiAgbGV0IGluaXRpYWxpemluZyA9IGZhbHNlO1xuICBjb25zdCBpbml0Q29udGFpbmVyU3RhdHVzZXMgPSBnZXQoXG4gICAgcG9kLFxuICAgIFsnc3RhdHVzJywgJ2luaXRDb250YWluZXJTdGF0dXNlcyddLFxuICAgIFtdIGFzIENvbnRhaW5lclN0YXR1c1tdLFxuICApO1xuICBmb3IgKGxldCBpID0gaW5pdENvbnRhaW5lclN0YXR1c2VzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gaW5pdENvbnRhaW5lclN0YXR1c2VzW2ldO1xuICAgIGlmIChnZXQoc3RhdHVzLCBbJ3N0YXRlJywgJ3Rlcm1pbmF0ZWQnLCAnZXhpdENvZGUnXSkgPT09IDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBsZXQgd2FpdGluZ1JlYXNvbjogc3RyaW5nO1xuICAgIGNvbnN0IHRlcm1pbmF0ZWQgPSBnZXQoc3RhdHVzLCBbJ3N0YXRlJywgJ3Rlcm1pbmF0ZWQnXSk7XG4gICAgaWYgKHRlcm1pbmF0ZWQpIHtcbiAgICAgIHJlYXNvbiA9IHRlcm1pbmF0ZWQucmVhc29uXG4gICAgICAgID8gYEluaXQ6JHt0ZXJtaW5hdGVkLnJlYXNvbn1gXG4gICAgICAgIDogdGVybWluYXRlZC5zaWduYWwgPT09IDBcbiAgICAgICAgICA/IGBJbml0OkV4aXRDb2RlOiR7dGVybWluYXRlZC5leGl0Q29kZX1gXG4gICAgICAgICAgOiBgSW5pdDpTaWduYWw6JHt0ZXJtaW5hdGVkLnNpZ25hbH1gO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAod2FpdGluZ1JlYXNvbiA9IGdldChzdGF0dXMsIFsnc3RhdGUnLCAnd2FpdGluZycsIHJlYXNvbl0pKSAmJlxuICAgICAgd2FpdGluZ1JlYXNvbiAhPT0gJ1BvZEluaXRpYWxpemluZydcbiAgICApIHtcbiAgICAgIHJlYXNvbiA9IGBJbml0aW5nOiR7d2FpdGluZ1JlYXNvbn1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFzb24gPSBgSW5pdGluZzoke2l9LyR7cG9kLnNwZWMuaW5pdENvbnRhaW5lcnMubGVuZ3RofWA7XG4gICAgfVxuICAgIGluaXRpYWxpemluZyA9IHRydWU7XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIHsgaW5pdGlhbGl6aW5nLCByZWFzb24gfTtcbn1cblxuLy8g5bCGIGdldFBvZFN0YXR1cyDlvpfliLDnmoTlpJrnp43nirbmgIHmmKDlsITliLDmoIfnrb7nsbvlnotcbi8vIHJlZmVyZW5jZTogaHR0cHM6Ly9iaXRidWNrZXQub3JnL21hdGhpbGRldGVjaC9saW5rL3NyYy9jODExNjFmMDJmOTgxOTA0YjcxNjQ2MmEzMDVlMDk0MTRlNTYxN2QzL3NyYy9iYWNrZW5kL3Jlc291cmNlL2NvbW1vbi9wb2RpbmZvLmdvI2xpbmVzLTY4XG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9kQWdncmVnYXRlZFN0YXR1cyhzdGF0dXM6IHN0cmluZyk6IFBvZFN0YXR1c0VudW0ge1xuICBpZiAoXG4gICAgc3RhdHVzLnNwbGl0KCc6JylbMF0gPT09ICdJbml0aW5nJyB8fFxuICAgIFtcbiAgICAgICdJbml0aW5nJyxcbiAgICAgICdQZW5kaW5nJyxcbiAgICAgICdQb2RJbml0aWFsaXppbmcnLFxuICAgICAgJ0NvbnRhaW5lckNyZWF0aW5nJyxcbiAgICAgICdUZXJtaW5hdGluZycsXG4gICAgXS5pbmNsdWRlcyhzdGF0dXMpXG4gICkge1xuICAgIHJldHVybiBQb2RTdGF0dXNFbnVtLnBlbmRpbmc7XG4gIH1cblxuICBpZiAoc3RhdHVzID09PSAnQ29tcGxldGVkJykge1xuICAgIHJldHVybiBQb2RTdGF0dXNFbnVtLmNvbXBsZXRlZDtcbiAgfVxuICBpZiAoc3RhdHVzID09PSAnUnVubmluZycpIHtcbiAgICByZXR1cm4gUG9kU3RhdHVzRW51bS5ydW5uaW5nO1xuICB9XG5cbiAgcmV0dXJuIFBvZFN0YXR1c0VudW0uZXJyb3I7XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { K8S_ENV_VARIABLE_NAME } from './patterns';
2
+ export function envVarNameValidator(control) {
3
+ return !control.value ||
4
+ (K8S_ENV_VARIABLE_NAME.pattern.test(control.value) &&
5
+ !/^\.+$/.test(control.value))
6
+ ? null
7
+ : {
8
+ envVarNamePattern: true,
9
+ };
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy93b3JrbG9hZC91dGlsLXNoYXJlZC9zcmMvbGliL3V0aWxzL3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQWdDO0lBQ2xFLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSztRQUNuQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNoRCxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxJQUFJO1FBQ04sQ0FBQyxDQUFDO1lBQ0UsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QixDQUFDO0FBQ1IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgSzhTX0VOVl9WQVJJQUJMRV9OQU1FIH0gZnJvbSAnLi9wYXR0ZXJucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnZWYXJOYW1lVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxzdHJpbmc+KSB7XG4gIHJldHVybiAhY29udHJvbC52YWx1ZSB8fFxuICAgIChLOFNfRU5WX1ZBUklBQkxFX05BTUUucGF0dGVybi50ZXN0KGNvbnRyb2wudmFsdWUpICYmXG4gICAgICAhL15cXC4rJC8udGVzdChjb250cm9sLnZhbHVlKSlcbiAgICA/IG51bGxcbiAgICA6IHtcbiAgICAgICAgZW52VmFyTmFtZVBhdHRlcm46IHRydWUsXG4gICAgICB9O1xufVxuIl19
@@ -0,0 +1,25 @@
1
+ import { ActivatedRoute, } from '@angular/router';
2
+ export function parseWorkspace(workspace) {
3
+ const [project, cluster, namespace] = workspace.split('~');
4
+ return {
5
+ project,
6
+ cluster,
7
+ namespace,
8
+ };
9
+ }
10
+ export function stringifyWorkspace({ project, cluster, namespace, }) {
11
+ return `${project}~${cluster}~${namespace}`;
12
+ }
13
+ export function extractWorkspace(params) {
14
+ return params.get && params.get instanceof Function
15
+ ? parseWorkspace(params.get('workspace'))
16
+ : parseWorkspace(params.workspace);
17
+ }
18
+ export function extractWorkspaceFromRoute(route) {
19
+ const snapshot = route instanceof ActivatedRoute ? route.snapshot : route;
20
+ return parseWorkspace(snapshot.paramMap.get('workspace'));
21
+ }
22
+ export function getHomeRedirectRoutePrefix(snapshot) {
23
+ return snapshot.queryParamMap.get('redirectTo') || 'workspace';
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy93b3JrbG9hZC91dGlsLXNoYXJlZC9zcmMvbGliL3V0aWxzL3dvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxHQUlmLE1BQU0saUJBQWlCLENBQUM7QUFZekIsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFpQjtJQUM5QyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNELE9BQU87UUFDTCxPQUFPO1FBQ1AsT0FBTztRQUNQLFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxFQUNqQyxPQUFPLEVBQ1AsT0FBTyxFQUNQLFNBQVMsR0FDQztJQUNWLE9BQU8sR0FBRyxPQUFPLElBQUksT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBeUI7SUFDeEQsT0FBTyxNQUFNLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLFlBQVksUUFBUTtRQUNqRCxDQUFDLENBQUMsY0FBYyxDQUFFLE1BQW1CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxjQUFjLENBQUUsTUFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxLQUE4QztJQUU5QyxNQUFNLFFBQVEsR0FBRyxLQUFLLFlBQVksY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDMUUsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLFFBQWdDO0lBQ3pFLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksV0FBVyxDQUFDO0FBQ2pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZSxcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgUGFyYW1NYXAsXG4gIFBhcmFtcyxcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2Uge1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIGNsdXN0ZXI6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJZGVudGlmaWVyIGV4dGVuZHMgV29ya3NwYWNlIHtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXb3Jrc3BhY2Uod29ya3NwYWNlOiBzdHJpbmcpOiBXb3Jrc3BhY2Uge1xuICBjb25zdCBbcHJvamVjdCwgY2x1c3RlciwgbmFtZXNwYWNlXSA9IHdvcmtzcGFjZS5zcGxpdCgnficpO1xuICByZXR1cm4ge1xuICAgIHByb2plY3QsXG4gICAgY2x1c3RlcixcbiAgICBuYW1lc3BhY2UsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlXb3Jrc3BhY2Uoe1xuICBwcm9qZWN0LFxuICBjbHVzdGVyLFxuICBuYW1lc3BhY2UsXG59OiBXb3Jrc3BhY2UpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7cHJvamVjdH1+JHtjbHVzdGVyfX4ke25hbWVzcGFjZX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFdvcmtzcGFjZShwYXJhbXM6IFBhcmFtcyB8IFBhcmFtTWFwKSB7XG4gIHJldHVybiBwYXJhbXMuZ2V0ICYmIHBhcmFtcy5nZXQgaW5zdGFuY2VvZiBGdW5jdGlvblxuICAgID8gcGFyc2VXb3Jrc3BhY2UoKHBhcmFtcyBhcyBQYXJhbU1hcCkuZ2V0KCd3b3Jrc3BhY2UnKSlcbiAgICA6IHBhcnNlV29ya3NwYWNlKChwYXJhbXMgYXMgUGFyYW1zKS53b3Jrc3BhY2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFdvcmtzcGFjZUZyb21Sb3V0ZShcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlIHwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbikge1xuICBjb25zdCBzbmFwc2hvdCA9IHJvdXRlIGluc3RhbmNlb2YgQWN0aXZhdGVkUm91dGUgPyByb3V0ZS5zbmFwc2hvdCA6IHJvdXRlO1xuICByZXR1cm4gcGFyc2VXb3Jrc3BhY2Uoc25hcHNob3QucGFyYW1NYXAuZ2V0KCd3b3Jrc3BhY2UnKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIb21lUmVkaXJlY3RSb3V0ZVByZWZpeChzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xuICByZXR1cm4gc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3JlZGlyZWN0VG8nKSB8fCAnd29ya3NwYWNlJztcbn1cbiJdfQ==
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from './lib/directives';
2
+ export * from './lib/pipes';
3
+ export * from './lib/services';
4
+ export * from './lib/typings';
5
+ export * from './lib/utils';
@@ -0,0 +1,2 @@
1
+ export * from './oam-resource-disabled-container.directive';
2
+ export * from './sync-control.directive';
@@ -0,0 +1,17 @@
1
+ import { DisabledContainerComponent, KubernetesResource, TranslateService } from '@alauda-fe/common';
2
+ import { ChangeDetectorRef } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @description acl-disabled-container 增强指令。
6
+ *
7
+ * 需要注意对 acl-disabled-container的副作用,一旦满足 isOam 的条件,禁用的 tip 会一直保留,并且优先级最高,除非数据源本身发生变化。
8
+ */
9
+ export declare class OamResourceDisabledContainerDirective {
10
+ private readonly disabledContainer;
11
+ private readonly translate;
12
+ private readonly cdr;
13
+ rcIsOamDisabled: KubernetesResource;
14
+ constructor(disabledContainer: DisabledContainerComponent, translate: TranslateService, cdr: ChangeDetectorRef);
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<OamResourceDisabledContainerDirective, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<OamResourceDisabledContainerDirective, "acl-disabled-container[rcIsOamDisabled]", never, { "rcIsOamDisabled": { "alias": "rcIsOamDisabled"; "required": false; }; }, {}, never, never, true, never>;
17
+ }
@@ -0,0 +1,14 @@
1
+ import { AfterViewInit, Injector, OnDestroy } from '@angular/core';
2
+ import { AbstractControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SyncControlDirective implements AfterViewInit, OnDestroy {
5
+ private readonly injector;
6
+ private readonly destroy$$;
7
+ constructor(injector: Injector);
8
+ ngOnDestroy(): void;
9
+ ngAfterViewInit(): void;
10
+ getControl(): AbstractControl;
11
+ private getDirective;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<SyncControlDirective, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SyncControlDirective, "[syncControl]", never, {}, {}, never, never, true, never>;
14
+ }
@@ -0,0 +1,3 @@
1
+ export * from './is-oam-resource.pipe';
2
+ export * from './range.pipe';
3
+ export * from './short-num.pipe';
@@ -0,0 +1,9 @@
1
+ import { KubernetesResource } from '@alauda-fe/common';
2
+ import { PipeTransform } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare const isOamResource: <T extends KubernetesResource>(resource: T) => boolean;
5
+ export declare class isOamResourcePipe implements PipeTransform {
6
+ transform: <T extends KubernetesResource>(resource: T) => boolean;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<isOamResourcePipe, never>;
8
+ static ɵpipe: i0.ɵɵPipeDeclaration<isOamResourcePipe, "rcIsOamResource", true>;
9
+ }
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class RangePipe implements PipeTransform {
4
+ transform(value: number): number[];
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<RangePipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<RangePipe, "range", true>;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ShortNumPipe implements PipeTransform {
4
+ transform(value: string | number, digits?: number): string;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShortNumPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<ShortNumPipe, "shortNum", true>;
7
+ }
@@ -0,0 +1,38 @@
1
+ import { K8sApiService, K8sUtilService, ProductBase } from '@alauda-fe/common';
2
+ import { ClusterType } from '@alauda-fe/network';
3
+ import { ClusterModule, ResourceType } from '../typings';
4
+ import * as i0 from "@angular/core";
5
+ export interface ClusterGlobalInfo {
6
+ chartMuseumURL: string;
7
+ clusterName: string;
8
+ clusterType: ClusterType;
9
+ globalClusterName: string;
10
+ labelBaseDomain: string;
11
+ oidcClientID: string;
12
+ oidcClientSecret: string;
13
+ oidcIssuer: string;
14
+ oidcResponseType: 'code';
15
+ oidcScopes: string;
16
+ platformHttpPort: string;
17
+ platformHttpsPort: string;
18
+ platformNodeSelector: string;
19
+ platformURL: string;
20
+ registryAddress: string;
21
+ systemAlbIngressClassName: string;
22
+ systemNamespace: string;
23
+ }
24
+ export declare class ClusterApiService {
25
+ private readonly k8sApi;
26
+ private readonly k8sUtil;
27
+ globalClusterVersion$: import("rxjs").Observable<ProductBase>;
28
+ private readonly globalInfoCache;
29
+ constructor(k8sApi: K8sApiService<ResourceType>, k8sUtil: K8sUtilService);
30
+ isClusterNonUpgraded(cluster: string | ClusterModule): import("rxjs").Observable<boolean>;
31
+ gteVersion(cluster: string | ClusterModule, version: string): import("rxjs").Observable<boolean>;
32
+ getGlobalInfo(cluster?: string): import("rxjs").Observable<ClusterGlobalInfo>;
33
+ getClusterType(cluster?: string): import("rxjs").Observable<ClusterType>;
34
+ isPublicCloud(cluster?: string): import("rxjs").Observable<boolean>;
35
+ getClusterArches(cluster?: string): import("rxjs").Observable<string[]>;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClusterApiService, never>;
37
+ static ɵprov: i0.ɵɵInjectableDeclaration<ClusterApiService>;
38
+ }
@@ -0,0 +1,38 @@
1
+ import { KubernetesResource, KubernetesResourceList } from '@alauda-fe/common';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import * as i0 from "@angular/core";
4
+ export declare class FeatureGateApiService {
5
+ private readonly http;
6
+ constructor(http: HttpClient);
7
+ getGlobalGateList(): import("rxjs").Observable<KubernetesResourceList<FeatureGate>>;
8
+ getGlobalGate(name: string): import("rxjs").Observable<FeatureGate>;
9
+ getClusterGateList(cluster: string): import("rxjs").Observable<KubernetesResourceList<FeatureGate>>;
10
+ getClusterGate(cluster: string, name: string): import("rxjs").Observable<FeatureGate>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeatureGateApiService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<FeatureGateApiService>;
13
+ }
14
+ export declare function toMap(items: FeatureGate[]): Record<string, boolean>;
15
+ export interface FeatureGate extends KubernetesResource {
16
+ spec: {
17
+ dependency: {
18
+ type: DependencyType;
19
+ featureGates: string[];
20
+ };
21
+ description: string;
22
+ enabled: boolean;
23
+ stage: FeatureStage;
24
+ };
25
+ status: {
26
+ enabled: boolean;
27
+ };
28
+ }
29
+ export declare enum DependencyType {
30
+ Any = "any",
31
+ All = "all"
32
+ }
33
+ export declare enum FeatureStage {
34
+ Alpha = "Alpha",
35
+ Beta = "Beta",
36
+ GA = "GA",
37
+ EOF = "EOF"
38
+ }
@@ -0,0 +1,5 @@
1
+ export * from './cluster-api.service';
2
+ export * from './feature-gate.service';
3
+ export * from './pod-util.service';
4
+ export * from './resource-quota.service';
5
+ export * from './terminal.service';
@@ -0,0 +1,18 @@
1
+ import { DialogService } from '@alauda/ui';
2
+ import { K8sApiService, TranslateService, Container, Pod, Workspace } from '@alauda-fe/common';
3
+ import { ExecInfo } from '../typings';
4
+ import { TerminalService } from './terminal.service';
5
+ import * as i0 from "@angular/core";
6
+ export declare const DEBUG_CONTAINER_SUFFIX = "-debug";
7
+ export declare class PodUtilService {
8
+ private readonly dialog;
9
+ private readonly translate;
10
+ private readonly k8sApi;
11
+ private readonly terminal;
12
+ constructor(dialog: DialogService, translate: TranslateService, k8sApi: K8sApiService, terminal: TerminalService);
13
+ deletePod(pod: Pod, cluster: string): import("rxjs").Observable<Pod>;
14
+ handleExecInfo(pod: Pod, container: Container, baseParams: Workspace, data: ExecInfo): void;
15
+ handleDebugInfo(pod: Pod, container: Container, baseParams: Workspace): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<PodUtilService, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<PodUtilService>;
18
+ }
@@ -0,0 +1,25 @@
1
+ import { K8sApiService, K8sUtilService, StringMap, LimitRange, Workspace, ResourceType, ResourceRequirements } from '@alauda-fe/common';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ResourceQuotaUtilService {
5
+ private readonly k8sUtil;
6
+ private readonly k8sApi;
7
+ private readonly limitRange$Cache;
8
+ private readonly resourceQuota$Cache;
9
+ constructor(k8sUtil: K8sUtilService, k8sApi: K8sApiService<ResourceType>);
10
+ getLimitRange$({ cluster, namespace, }: {
11
+ cluster: string;
12
+ namespace: string;
13
+ }): Observable<LimitRange>;
14
+ getAvailableCustomResourceKeysInNodes(workspace: Workspace): Observable<string[]>;
15
+ getResourceQuota$({ cluster, namespace }: Workspace): Observable<{
16
+ resourceQuota: ResourceRequirements;
17
+ customResourceConfigs: StringMap[];
18
+ }>;
19
+ deleteCache({ cluster, namespace }: {
20
+ cluster: string;
21
+ namespace: string;
22
+ }): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResourceQuotaUtilService, never>;
24
+ static ɵprov: i0.ɵɵInjectableDeclaration<ResourceQuotaUtilService>;
25
+ }
@@ -0,0 +1,15 @@
1
+ import { K8sPermissionService, K8sResourceAction } from '@alauda-fe/common';
2
+ import { HttpParamsOptions } from '@angular/common/http';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TerminalService {
5
+ private readonly k8sPermission;
6
+ private readonly appBaseHref;
7
+ constructor(k8sPermission: K8sPermissionService, appBaseHref: string);
8
+ getPermissions({ cluster, namespace, }: {
9
+ cluster: string;
10
+ namespace: string;
11
+ }): import("rxjs").Observable<Record<K8sResourceAction.CREATE, boolean>>;
12
+ openTerminal(queryParams: HttpParamsOptions['fromObject'], module?: 'terminal' | 'vnc'): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<TerminalService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<TerminalService>;
15
+ }
@@ -0,0 +1,17 @@
1
+ export interface AccountInfo {
2
+ iss?: string;
3
+ sub?: string;
4
+ aud?: string;
5
+ exp?: number;
6
+ iat?: number;
7
+ azp?: string;
8
+ at_hash?: string;
9
+ email?: string;
10
+ email_verified?: true;
11
+ name?: string;
12
+ token?: string;
13
+ ext?: {
14
+ is_admin?: boolean;
15
+ conn_id?: boolean;
16
+ };
17
+ }