@alauda-fe/storage 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.
- package/esm2022/alauda-fe-storage.mjs +5 -0
- package/esm2022/index.mjs +23 -0
- package/esm2022/lib/components/pvc-delete-dialog/component.mjs +292 -0
- package/esm2022/lib/components/pvc-expand-capacity-dialog/component.mjs +193 -0
- package/esm2022/lib/components/pvc-form/component.mjs +674 -0
- package/esm2022/lib/components/rebuild-volume-dialog/component.mjs +251 -0
- package/esm2022/lib/components/source-link/component.mjs +81 -0
- package/esm2022/lib/components/spec-form/component.mjs +464 -0
- package/esm2022/lib/components/storage-feature-tags/component.mjs +146 -0
- package/esm2022/lib/components/storageclass-select/component.mjs +179 -0
- package/esm2022/lib/pipes/actual-capacity.pipe.mjs +17 -0
- package/esm2022/lib/services/common-util.service.mjs +163 -0
- package/esm2022/lib/services/pvc-util.service.mjs +416 -0
- package/esm2022/lib/types/commons.mjs +75 -0
- package/esm2022/lib/types/internal.mjs +7 -0
- package/esm2022/lib/types/k8s.mjs +2 -0
- package/esm2022/lib/types/resource-definition.mjs +13 -0
- package/esm2022/lib/types/resource-exports.mjs +8 -0
- package/esm2022/lib/types/resource-internals.mjs +2 -0
- package/esm2022/lib/utils/constants.mjs +202 -0
- package/esm2022/lib/utils/resource-exports.mjs +65 -0
- package/esm2022/lib/utils/util.mjs +132 -0
- package/index.d.ts +17 -0
- package/lib/components/pvc-delete-dialog/component.d.ts +33 -0
- package/lib/components/pvc-expand-capacity-dialog/component.d.ts +36 -0
- package/lib/components/pvc-form/component.d.ts +106 -0
- package/lib/components/rebuild-volume-dialog/component.d.ts +28 -0
- package/lib/components/source-link/component.d.ts +17 -0
- package/lib/components/spec-form/component.d.ts +71 -0
- package/lib/components/storage-feature-tags/component.d.ts +25 -0
- package/lib/components/storageclass-select/component.d.ts +26 -0
- package/lib/pipes/actual-capacity.pipe.d.ts +8 -0
- package/lib/services/common-util.service.d.ts +48 -0
- package/lib/services/pvc-util.service.d.ts +130 -0
- package/lib/types/commons.d.ts +85 -0
- package/lib/types/internal.d.ts +4 -0
- package/lib/types/k8s.d.ts +105 -0
- package/lib/types/resource-definition.d.ts +18 -0
- package/lib/types/resource-exports.d.ts +16 -0
- package/lib/types/resource-internals.d.ts +20 -0
- package/lib/utils/constants.d.ts +37 -0
- package/lib/utils/resource-exports.d.ts +12 -0
- package/lib/utils/util.d.ts +19 -0
- package/package.json +38 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { AccessMode, GenericStatusColor, GenericStatusIcon, VolumeMode, } from '@alauda-fe/common';
|
|
2
|
+
import { StorageProvisioner, StorageType, StorageclassFeature, } from '../types/commons';
|
|
3
|
+
import { StorageProvider } from '../types/internal';
|
|
4
|
+
export const AccessModeTranslateKey = {
|
|
5
|
+
[AccessMode.RWO]: 'single_node_read_write',
|
|
6
|
+
[AccessMode.ROX]: 'multi_nodes_read_only',
|
|
7
|
+
[AccessMode.RWX]: 'multi_nodes_read_write',
|
|
8
|
+
};
|
|
9
|
+
export const VolumeModeTranslateKey = {
|
|
10
|
+
[VolumeMode.FILE_SYSTEM]: 'file_system',
|
|
11
|
+
[VolumeMode.BLOCK_DEVICE]: 'block_device',
|
|
12
|
+
};
|
|
13
|
+
export const IS_DEFAULT_STORAGECLASS_ANNOTATION = 'storageclass.kubernetes.io/is-default-class';
|
|
14
|
+
export const RESERVED_STORAGECLASS_NAMES = [
|
|
15
|
+
'alauda-system-gfs',
|
|
16
|
+
'alauda-system-ebs',
|
|
17
|
+
];
|
|
18
|
+
export const CSI_TOP_SNAPSHOTCLASS_NAME = 'csi-topolvm-snapshotclass';
|
|
19
|
+
export const CSI_CEPHFS_SNAPSHOTCLASS_NAME = 'csi-cephfs-snapshotclass';
|
|
20
|
+
export const CSI_RBD_SNAPSHOTCLASS_NAME = 'csi-rbd-snapshotclass';
|
|
21
|
+
export const OBJECT_STORAGE_FEATURE_GATE = 'object-storage';
|
|
22
|
+
const TOPOLVM_CLUSTER_FEATURE_GATE = 'acp-topolvm';
|
|
23
|
+
const HUAWEI_CSI_FEATURE_GATE = 'huawei-csi';
|
|
24
|
+
const NFS_CSI_FEATURE_GATE = 'nfs-csi';
|
|
25
|
+
const STORAGE_CEPH_FEATURE_GATE = 'storage-ceph';
|
|
26
|
+
export const STORAGE_OPTION_MAP = {
|
|
27
|
+
[StorageProvisioner.CEPH_FS_INTERNAL]: {
|
|
28
|
+
provisioner: StorageProvisioner.CEPH_FS_INTERNAL,
|
|
29
|
+
clusterGate: STORAGE_CEPH_FEATURE_GATE,
|
|
30
|
+
provider: StorageProvider.PLATFORM,
|
|
31
|
+
type: StorageType.FILE_STORAGE,
|
|
32
|
+
display: {
|
|
33
|
+
en: 'CephFS File Storage',
|
|
34
|
+
zh: 'CephFS 文件存储',
|
|
35
|
+
},
|
|
36
|
+
accessModes: [AccessMode.RWO, AccessMode.RWX],
|
|
37
|
+
snapshotAccessModes: [AccessMode.ROX, AccessMode.RWO, AccessMode.RWX],
|
|
38
|
+
features: [StorageclassFeature.SNAPSHOT, StorageclassFeature.EXPANSION],
|
|
39
|
+
volumeModes: [VolumeMode.FILE_SYSTEM],
|
|
40
|
+
},
|
|
41
|
+
[StorageProvisioner.CEPH_FS_RBD]: {
|
|
42
|
+
provisioner: StorageProvisioner.CEPH_FS_RBD,
|
|
43
|
+
clusterGate: STORAGE_CEPH_FEATURE_GATE,
|
|
44
|
+
provider: StorageProvider.PLATFORM,
|
|
45
|
+
type: StorageType.BLOCK_STORAGE,
|
|
46
|
+
display: {
|
|
47
|
+
en: 'CephRBD Block Storage',
|
|
48
|
+
zh: 'CephRBD 块存储',
|
|
49
|
+
},
|
|
50
|
+
accessModes: [AccessMode.RWO],
|
|
51
|
+
snapshotAccessModes: [AccessMode.RWO],
|
|
52
|
+
features: [StorageclassFeature.SNAPSHOT, StorageclassFeature.EXPANSION],
|
|
53
|
+
volumeModes: [VolumeMode.FILE_SYSTEM, VolumeMode.BLOCK_DEVICE],
|
|
54
|
+
},
|
|
55
|
+
[StorageProvisioner.CEPH_OBJECT]: {
|
|
56
|
+
provisioner: StorageProvisioner.CEPH_OBJECT,
|
|
57
|
+
clusterGate: OBJECT_STORAGE_FEATURE_GATE,
|
|
58
|
+
provider: StorageProvider.PLATFORM,
|
|
59
|
+
type: StorageType.OBJECT_STORAGE,
|
|
60
|
+
display: {
|
|
61
|
+
en: 'CephObject Distributed Storage',
|
|
62
|
+
zh: 'CephObject 分布式存储',
|
|
63
|
+
},
|
|
64
|
+
accessModes: [],
|
|
65
|
+
features: [StorageclassFeature.EXPANSION],
|
|
66
|
+
volumeModes: [],
|
|
67
|
+
disabled: true, // TODO: 存储桶需求不允许创建,后续下线该存储类
|
|
68
|
+
},
|
|
69
|
+
[StorageProvisioner.CEPH_COSI]: {
|
|
70
|
+
provisioner: StorageProvisioner.CEPH_COSI,
|
|
71
|
+
clusterGate: 'cosi',
|
|
72
|
+
module: 'cosi',
|
|
73
|
+
provider: StorageProvider.PLATFORM,
|
|
74
|
+
type: StorageType.OBJECT_STORAGE,
|
|
75
|
+
display: {
|
|
76
|
+
en: 'Ceph Object Storage',
|
|
77
|
+
zh: 'Ceph 对象存储',
|
|
78
|
+
},
|
|
79
|
+
accessModes: [],
|
|
80
|
+
features: [],
|
|
81
|
+
volumeModes: [],
|
|
82
|
+
},
|
|
83
|
+
[StorageProvisioner.MINIO]: {
|
|
84
|
+
provisioner: StorageProvisioner.MINIO,
|
|
85
|
+
clusterGate: 'cosi',
|
|
86
|
+
module: 'cosi',
|
|
87
|
+
provider: StorageProvider.PLATFORM,
|
|
88
|
+
type: StorageType.OBJECT_STORAGE,
|
|
89
|
+
display: {
|
|
90
|
+
en: 'MinIO Object Storage',
|
|
91
|
+
zh: 'MinIO 对象存储',
|
|
92
|
+
},
|
|
93
|
+
accessModes: [],
|
|
94
|
+
features: [],
|
|
95
|
+
volumeModes: [],
|
|
96
|
+
},
|
|
97
|
+
[StorageProvisioner.CEPH_FS]: {
|
|
98
|
+
provisioner: StorageProvisioner.CEPH_FS,
|
|
99
|
+
provider: StorageProvider.THIRD_PARTY,
|
|
100
|
+
type: StorageType.FILE_STORAGE,
|
|
101
|
+
display: {
|
|
102
|
+
en: 'CephFS',
|
|
103
|
+
zh: 'CephFS',
|
|
104
|
+
},
|
|
105
|
+
accessModes: [AccessMode.RWO, AccessMode.RWX, AccessMode.ROX],
|
|
106
|
+
features: [],
|
|
107
|
+
volumeModes: [VolumeMode.FILE_SYSTEM],
|
|
108
|
+
disabled: true,
|
|
109
|
+
},
|
|
110
|
+
[StorageProvisioner.TOPOLVM]: {
|
|
111
|
+
provisioner: StorageProvisioner.TOPOLVM,
|
|
112
|
+
clusterGate: TOPOLVM_CLUSTER_FEATURE_GATE,
|
|
113
|
+
provider: StorageProvider.PLATFORM,
|
|
114
|
+
type: StorageType.BLOCK_STORAGE,
|
|
115
|
+
display: {
|
|
116
|
+
en: 'TopoLVM',
|
|
117
|
+
zh: 'TopoLVM',
|
|
118
|
+
},
|
|
119
|
+
accessModes: [AccessMode.RWO],
|
|
120
|
+
snapshotAccessModes: [AccessMode.RWO],
|
|
121
|
+
features: [StorageclassFeature.SNAPSHOT, StorageclassFeature.EXPANSION],
|
|
122
|
+
volumeModes: [VolumeMode.FILE_SYSTEM, VolumeMode.BLOCK_DEVICE],
|
|
123
|
+
},
|
|
124
|
+
[StorageProvisioner.NFS]: {
|
|
125
|
+
provisioner: StorageProvisioner.NFS,
|
|
126
|
+
provider: StorageProvider.THIRD_PARTY,
|
|
127
|
+
type: StorageType.FILE_STORAGE,
|
|
128
|
+
display: {
|
|
129
|
+
en: 'NFS',
|
|
130
|
+
zh: 'NFS',
|
|
131
|
+
},
|
|
132
|
+
accessModes: [AccessMode.RWO, AccessMode.RWX, AccessMode.ROX],
|
|
133
|
+
features: [],
|
|
134
|
+
volumeModes: [VolumeMode.FILE_SYSTEM],
|
|
135
|
+
disabled: true,
|
|
136
|
+
},
|
|
137
|
+
[StorageProvisioner.HUAWEI_CSI]: {
|
|
138
|
+
provisioner: StorageProvisioner.HUAWEI_CSI,
|
|
139
|
+
provider: StorageProvider.THIRD_PARTY,
|
|
140
|
+
clusterGate: HUAWEI_CSI_FEATURE_GATE,
|
|
141
|
+
display: {
|
|
142
|
+
en: 'OceanStor Pacific',
|
|
143
|
+
zh: 'OceanStor Pacific',
|
|
144
|
+
},
|
|
145
|
+
accessModes: [AccessMode.RWO, AccessMode.RWX, AccessMode.ROX],
|
|
146
|
+
snapshotAccessModes: [AccessMode.RWO, AccessMode.RWX, AccessMode.ROX],
|
|
147
|
+
features: [StorageclassFeature.SNAPSHOT, StorageclassFeature.EXPANSION],
|
|
148
|
+
volumeModes: [VolumeMode.FILE_SYSTEM, VolumeMode.BLOCK_DEVICE],
|
|
149
|
+
supportTypes: [StorageType.FILE_STORAGE, StorageType.BLOCK_STORAGE],
|
|
150
|
+
},
|
|
151
|
+
[StorageProvisioner.NFS_CSI]: {
|
|
152
|
+
provisioner: StorageProvisioner.NFS_CSI,
|
|
153
|
+
provider: StorageProvider.THIRD_PARTY,
|
|
154
|
+
type: StorageType.FILE_STORAGE,
|
|
155
|
+
clusterGate: NFS_CSI_FEATURE_GATE,
|
|
156
|
+
display: {
|
|
157
|
+
en: 'NFS CSI',
|
|
158
|
+
zh: 'NFS 共享存储',
|
|
159
|
+
},
|
|
160
|
+
accessModes: [AccessMode.RWO, AccessMode.RWX],
|
|
161
|
+
features: [],
|
|
162
|
+
volumeModes: [VolumeMode.FILE_SYSTEM],
|
|
163
|
+
},
|
|
164
|
+
[StorageProvisioner.CSTOR_CSI]: {
|
|
165
|
+
provisioner: StorageProvisioner.CSTOR_CSI,
|
|
166
|
+
provider: StorageProvider.THIRD_PARTY,
|
|
167
|
+
type: StorageType.BLOCK_STORAGE,
|
|
168
|
+
accessModes: [AccessMode.RWO],
|
|
169
|
+
features: [StorageclassFeature.SNAPSHOT, StorageclassFeature.EXPANSION],
|
|
170
|
+
volumeModes: [VolumeMode.FILE_SYSTEM, VolumeMode.BLOCK_DEVICE],
|
|
171
|
+
disabled: true,
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
// 对于第三方 provider 的支持的 accessModes 和 volumeModes 不再做限制
|
|
175
|
+
export const STORAGECLASS_UNKNOWN = {
|
|
176
|
+
provisioner: null,
|
|
177
|
+
provider: StorageProvider.THIRD_PARTY,
|
|
178
|
+
type: null,
|
|
179
|
+
accessModes: [AccessMode.RWO, AccessMode.RWX, AccessMode.ROX],
|
|
180
|
+
features: [],
|
|
181
|
+
volumeModes: [VolumeMode.FILE_SYSTEM, VolumeMode.BLOCK_DEVICE],
|
|
182
|
+
};
|
|
183
|
+
export var VolumeSnapshotStatus;
|
|
184
|
+
(function (VolumeSnapshotStatus) {
|
|
185
|
+
VolumeSnapshotStatus["CREATING"] = "creating";
|
|
186
|
+
VolumeSnapshotStatus["AVAILABLE"] = "available";
|
|
187
|
+
VolumeSnapshotStatus["MALFUNCTION"] = "malfunction";
|
|
188
|
+
VolumeSnapshotStatus["DELETING"] = "deleting";
|
|
189
|
+
})(VolumeSnapshotStatus || (VolumeSnapshotStatus = {}));
|
|
190
|
+
export const VolumeSnapshotStatusColorMapper = {
|
|
191
|
+
[VolumeSnapshotStatus.CREATING]: GenericStatusColor.Pending,
|
|
192
|
+
[VolumeSnapshotStatus.AVAILABLE]: GenericStatusColor.Succeeded,
|
|
193
|
+
[VolumeSnapshotStatus.MALFUNCTION]: GenericStatusColor.Failed,
|
|
194
|
+
[VolumeSnapshotStatus.DELETING]: GenericStatusColor.Warning,
|
|
195
|
+
};
|
|
196
|
+
export const VolumeSnapshotStatusIconMapper = {
|
|
197
|
+
[VolumeSnapshotStatus.CREATING]: GenericStatusIcon.Pending,
|
|
198
|
+
[VolumeSnapshotStatus.AVAILABLE]: GenericStatusIcon.Check,
|
|
199
|
+
[VolumeSnapshotStatus.MALFUNCTION]: GenericStatusIcon.Warning,
|
|
200
|
+
[VolumeSnapshotStatus.DELETING]: GenericStatusIcon.Deleting,
|
|
201
|
+
};
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zdG9yYWdlL3NyYy9saWIvdXRpbHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxtQkFBbUIsR0FDcEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsd0JBQXdCO0lBQzFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLHVCQUF1QjtJQUN6QyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSx3QkFBd0I7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGFBQWE7SUFDdkMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsY0FBYztDQUMxQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQzdDLDZDQUE2QyxDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3pDLG1CQUFtQjtJQUNuQixtQkFBbUI7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDJCQUEyQixDQUFDO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLDBCQUEwQixDQUFDO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLHVCQUF1QixDQUFDO0FBQ2xFLE1BQU0sQ0FB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UTtDQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWNjZXNzTW9kZSxcbiAgR2VuZXJpY1N0YXR1c0NvbG9yLFxuICBHZW5lcmljU3RhdHVzSWNvbixcbiAgVm9sdW1lTW9kZSxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5pbXBvcnQge1xuICBTdG9yYWdlT3B0aW9uLFxuICBTdG9yYWdlUHJvdmlzaW9uZXIsXG4gIFN0b3JhZ2VUeXBlLFxuICBTdG9yYWdlY2xhc3NGZWF0dXJlLFxufSBmcm9tICcuLi90eXBlcy9jb21tb25zJztcbmltcG9ydCB7IFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL3R5cGVzL2ludGVybmFsJztcblxuZXhwb3J0IGNvbnN0IEFjY2Vzc01vZGVUcmFuc2xhdGVLZXkgPSB7XG4gIFtBY2Nlc3NNb2RlLlJXT106ICdzaW5nbGVfbm9kZV9yZWFkX3dyaXRlJyxcbiAgW0FjY2Vzc01vZGUuUk9YXTogJ211bHRpX25vZGVzX3JlYWRfb25seScsXG4gIFtBY2Nlc3NNb2RlLlJXWF06ICdtdWx0aV9ub2Rlc19yZWFkX3dyaXRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBWb2x1bWVNb2RlVHJhbnNsYXRlS2V5ID0ge1xuICBbVm9sdW1lTW9kZS5GSUxFX1NZU1RFTV06ICdmaWxlX3N5c3RlbScsXG4gIFtWb2x1bWVNb2RlLkJMT0NLX0RFVklDRV06ICdibG9ja19kZXZpY2UnLFxufTtcblxuZXhwb3J0IGNvbnN0IElTX0RFRkFVTFRfU1RPUkFHRUNMQVNTX0FOTk9UQVRJT04gPVxuICAnc3RvcmFnZWNsYXNzLmt1YmVybmV0ZXMuaW8vaXMtZGVmYXVsdC1jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBSRVNFUlZFRF9TVE9SQUdFQ0xBU1NfTkFNRVMgPSBbXG4gICdhbGF1ZGEtc3lzdGVtLWdmcycsXG4gICdhbGF1ZGEtc3lzdGVtLWVicycsXG5dO1xuXG5leHBvcnQgY29uc3QgQ1NJX1RPUF9TTkFQU0hPVENMQVNTX05BTUUgPSAnY3NpLXRvcG9sdm0tc25hcHNob3RjbGFzcyc7XG5leHBvcnQgY29uc3QgQ1NJX0NFUEhGU19TTkFQU0hPVENMQVNTX05BTUUgPSAnY3NpLWNlcGhmcy1zbmFwc2hvdGNsYXNzJztcbmV4cG9ydCBjb25zdCBDU0lfUkJEX1NOQVBTSE9UQ0xBU1NfTkFNRSA9ICdjc2ktcmJkLXNuYXBzaG90Y2xhc3MnO1xuZXhwb3J0IGNvbnN0IE9CSkVDVF9TVE9SQUdFX0ZFQVRVUkVfR0FURSA9ICdvYmplY3Qtc3RvcmFnZSc7XG5cbmNvbnN0IFRPUE9MVk1fQ0xVU1RFUl9GRUFUVVJFX0dBVEUgPSAnYWNwLXRvcG9sdm0nO1xuY29uc3QgSFVBV0VJX0NTSV9GRUFUVVJFX0dBVEUgPSAnaHVhd2VpLWNzaSc7XG5jb25zdCBORlNfQ1NJX0ZFQVRVUkVfR0FURSA9ICduZnMtY3NpJztcbmNvbnN0IFNUT1JBR0VfQ0VQSF9GRUFUVVJFX0dBVEUgPSAnc3RvcmFnZS1jZXBoJztcblxuZXhwb3J0IGNvbnN0IFNUT1JBR0VfT1BUSU9OX01BUDogUmVjb3JkPFN0b3JhZ2VQcm92aXNpb25lciwgU3RvcmFnZU9wdGlvbj4gPSB7XG4gIFtTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9GU19JTlRFUk5BTF06IHtcbiAgICBwcm92aXNpb25lcjogU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfRlNfSU5URVJOQUwsXG4gICAgY2x1c3RlckdhdGU6IFNUT1JBR0VfQ0VQSF9GRUFUVVJFX0dBVEUsXG4gICAgcHJvdmlkZXI6IFN0b3JhZ2VQcm92aWRlci5QTEFURk9STSxcbiAgICB0eXBlOiBTdG9yYWdlVHlwZS5GSUxFX1NUT1JBR0UsXG4gICAgZGlzcGxheToge1xuICAgICAgZW46ICdDZXBoRlMgRmlsZSBTdG9yYWdlJyxcbiAgICAgIHpoOiAnQ2VwaEZTIOaWh+S7tuWtmOWCqCcsXG4gICAgfSxcbiAgICBhY2Nlc3NNb2RlczogW0FjY2Vzc01vZGUuUldPLCBBY2Nlc3NNb2RlLlJXWF0sXG4gICAgc25hcHNob3RBY2Nlc3NNb2RlczogW0FjY2Vzc01vZGUuUk9YLCBBY2Nlc3NNb2RlLlJXTywgQWNjZXNzTW9kZS5SV1hdLFxuICAgIGZlYXR1cmVzOiBbU3RvcmFnZWNsYXNzRmVhdHVyZS5TTkFQU0hPVCwgU3RvcmFnZWNsYXNzRmVhdHVyZS5FWFBBTlNJT05dLFxuICAgIHZvbHVtZU1vZGVzOiBbVm9sdW1lTW9kZS5GSUxFX1NZU1RFTV0sXG4gIH0sXG4gIFtTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9GU19SQkRdOiB7XG4gICAgcHJvdmlzaW9uZXI6IFN0b3JhZ2VQcm92aXNpb25lci5DRVBIX0ZTX1JCRCxcbiAgICBjbHVzdGVyR2F0ZTogU1RPUkFHRV9DRVBIX0ZFQVRVUkVfR0FURSxcbiAgICBwcm92aWRlcjogU3RvcmFnZVByb3ZpZGVyLlBMQVRGT1JNLFxuICAgIHR5cGU6IFN0b3JhZ2VUeXBlLkJMT0NLX1NUT1JBR0UsXG4gICAgZGlzcGxheToge1xuICAgICAgZW46ICdDZXBoUkJEIEJsb2NrIFN0b3JhZ2UnLFxuICAgICAgemg6ICdDZXBoUkJEIOWdl+WtmOWCqCcsXG4gICAgfSxcbiAgICBhY2Nlc3NNb2RlczogW0FjY2Vzc01vZGUuUldPXSxcbiAgICBzbmFwc2hvdEFjY2Vzc01vZGVzOiBbQWNjZXNzTW9kZS5SV09dLFxuICAgIGZlYXR1cmVzOiBbU3RvcmFnZWNsYXNzRmVhdHVyZS5TTkFQU0hPVCwgU3RvcmFnZWNsYXNzRmVhdHVyZS5FWFBBTlNJT05dLFxuICAgIHZvbHVtZU1vZGVzOiBbVm9sdW1lTW9kZS5GSUxFX1NZU1RFTSwgVm9sdW1lTW9kZS5CTE9DS19ERVZJQ0VdLFxuICB9LFxuICBbU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfT0JKRUNUXToge1xuICAgIHByb3Zpc2lvbmVyOiBTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9PQkpFQ1QsXG4gICAgY2x1c3RlckdhdGU6IE9CSkVDVF9TVE9SQUdFX0ZFQVRVUkVfR0FURSxcbiAgICBwcm92aWRlcjogU3RvcmFnZVByb3ZpZGVyLlBMQVRGT1JNLFxuICAgIHR5cGU6IFN0b3JhZ2VUeXBlLk9CSkVDVF9TVE9SQUdFLFxuICAgIGRpc3BsYXk6IHtcbiAgICAgIGVuOiAnQ2VwaE9iamVjdCBEaXN0cmlidXRlZCBTdG9yYWdlJyxcbiAgICAgIHpoOiAnQ2VwaE9iamVjdCDliIbluIPlvI/lrZjlgqgnLFxuICAgIH0sXG4gICAgYWNjZXNzTW9kZXM6IFtdLFxuICAgIGZlYXR1cmVzOiBbU3RvcmFnZWNsYXNzRmVhdHVyZS5FWFBBTlNJT05dLFxuICAgIHZvbHVtZU1vZGVzOiBbXSxcbiAgICBkaXNhYmxlZDogdHJ1ZSwgLy8gVE9ETzog5a2Y5YKo5qG26ZyA5rGC5LiN5YWB6K645Yib5bu677yM5ZCO57ut5LiL57q/6K+l5a2Y5YKo57G7XG4gIH0sXG4gIFtTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9DT1NJXToge1xuICAgIHByb3Zpc2lvbmVyOiBTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9DT1NJLFxuICAgIGNsdXN0ZXJHYXRlOiAnY29zaScsXG4gICAgbW9kdWxlOiAnY29zaScsXG4gICAgcHJvdmlkZXI6IFN0b3JhZ2VQcm92aWRlci5QTEFURk9STSxcbiAgICB0eXBlOiBTdG9yYWdlVHlwZS5PQkpFQ1RfU1RPUkFHRSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICBlbjogJ0NlcGggT2JqZWN0IFN0b3JhZ2UnLFxuICAgICAgemg6ICdDZXBoIOWvueixoeWtmOWCqCcsXG4gICAgfSxcbiAgICBhY2Nlc3NNb2RlczogW10sXG4gICAgZmVhdHVyZXM6IFtdLFxuICAgIHZvbHVtZU1vZGVzOiBbXSxcbiAgfSxcbiAgW1N0b3JhZ2VQcm92aXNpb25lci5NSU5JT106IHtcbiAgICBwcm92aXNpb25lcjogU3RvcmFnZVByb3Zpc2lvbmVyLk1JTklPLFxuICAgIGNsdXN0ZXJHYXRlOiAnY29zaScsXG4gICAgbW9kdWxlOiAnY29zaScsXG4gICAgcHJvdmlkZXI6IFN0b3JhZ2VQcm92aWRlci5QTEFURk9STSxcbiAgICB0eXBlOiBTdG9yYWdlVHlwZS5PQkpFQ1RfU1RPUkFHRSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICBlbjogJ01pbklPIE9iamVjdCBTdG9yYWdlJyxcbiAgICAgIHpoOiAnTWluSU8g5a+56LGh5a2Y5YKoJyxcbiAgICB9LFxuICAgIGFjY2Vzc01vZGVzOiBbXSxcbiAgICBmZWF0dXJlczogW10sXG4gICAgdm9sdW1lTW9kZXM6IFtdLFxuICB9LFxuICBbU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfRlNdOiB7XG4gICAgcHJvdmlzaW9uZXI6IFN0b3JhZ2VQcm92aXNpb25lci5DRVBIX0ZTLFxuICAgIHByb3ZpZGVyOiBTdG9yYWdlUHJvdmlkZXIuVEhJUkRfUEFSVFksXG4gICAgdHlwZTogU3RvcmFnZVR5cGUuRklMRV9TVE9SQUdFLFxuICAgIGRpc3BsYXk6IHtcbiAgICAgIGVuOiAnQ2VwaEZTJyxcbiAgICAgIHpoOiAnQ2VwaEZTJyxcbiAgICB9LFxuICAgIGFjY2Vzc01vZGVzOiBbQWNjZXNzTW9kZS5SV08sIEFjY2Vzc01vZGUuUldYLCBBY2Nlc3NNb2RlLlJPWF0sXG4gICAgZmVhdHVyZXM6IFtdLFxuICAgIHZvbHVtZU1vZGVzOiBbVm9sdW1lTW9kZS5GSUxFX1NZU1RFTV0sXG4gICAgZGlzYWJsZWQ6IHRydWUsXG4gIH0sXG4gIFtTdG9yYWdlUHJvdmlzaW9uZXIuVE9QT0xWTV06IHtcbiAgICBwcm92aXNpb25lcjogU3RvcmFnZVByb3Zpc2lvbmVyLlRPUE9MVk0sXG4gICAgY2x1c3RlckdhdGU6IFRPUE9MVk1fQ0xVU1RFUl9GRUFUVVJFX0dBVEUsXG4gICAgcHJvdmlkZXI6IFN0b3JhZ2VQcm92aWRlci5QTEFURk9STSxcbiAgICB0eXBlOiBTdG9yYWdlVHlwZS5CTE9DS19TVE9SQUdFLFxuICAgIGRpc3BsYXk6IHtcbiAgICAgIGVuOiAnVG9wb0xWTScsXG4gICAgICB6aDogJ1RvcG9MVk0nLFxuICAgIH0sXG4gICAgYWNjZXNzTW9kZXM6IFtBY2Nlc3NNb2RlLlJXT10sXG4gICAgc25hcHNob3RBY2Nlc3NNb2RlczogW0FjY2Vzc01vZGUuUldPXSxcbiAgICBmZWF0dXJlczogW1N0b3JhZ2VjbGFzc0ZlYXR1cmUuU05BUFNIT1QsIFN0b3JhZ2VjbGFzc0ZlYXR1cmUuRVhQQU5TSU9OXSxcbiAgICB2b2x1bWVNb2RlczogW1ZvbHVtZU1vZGUuRklMRV9TWVNURU0sIFZvbHVtZU1vZGUuQkxPQ0tfREVWSUNFXSxcbiAgfSxcbiAgW1N0b3JhZ2VQcm92aXNpb25lci5ORlNdOiB7XG4gICAgcHJvdmlzaW9uZXI6IFN0b3JhZ2VQcm92aXNpb25lci5ORlMsXG4gICAgcHJvdmlkZXI6IFN0b3JhZ2VQcm92aWRlci5USElSRF9QQVJUWSxcbiAgICB0eXBlOiBTdG9yYWdlVHlwZS5GSUxFX1NUT1JBR0UsXG4gICAgZGlzcGxheToge1xuICAgICAgZW46ICdORlMnLFxuICAgICAgemg6ICdORlMnLFxuICAgIH0sXG4gICAgYWNjZXNzTW9kZXM6IFtBY2Nlc3NNb2RlLlJXTywgQWNjZXNzTW9kZS5SV1gsIEFjY2Vzc01vZGUuUk9YXSxcbiAgICBmZWF0dXJlczogW10sXG4gICAgdm9sdW1lTW9kZXM6IFtWb2x1bWVNb2RlLkZJTEVfU1lTVEVNXSxcbiAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgfSxcbiAgW1N0b3JhZ2VQcm92aXNpb25lci5IVUFXRUlfQ1NJXToge1xuICAgIHByb3Zpc2lvbmVyOiBTdG9yYWdlUHJvdmlzaW9uZXIuSFVBV0VJX0NTSSxcbiAgICBwcm92aWRlcjogU3RvcmFnZVByb3ZpZGVyLlRISVJEX1BBUlRZLFxuICAgIGNsdXN0ZXJHYXRlOiBIVUFXRUlfQ1NJX0ZFQVRVUkVfR0FURSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICBlbjogJ09jZWFuU3RvciBQYWNpZmljJyxcbiAgICAgIHpoOiAnT2NlYW5TdG9yIFBhY2lmaWMnLFxuICAgIH0sXG4gICAgYWNjZXNzTW9kZXM6IFtBY2Nlc3NNb2RlLlJXTywgQWNjZXNzTW9kZS5SV1gsIEFjY2Vzc01vZGUuUk9YXSxcbiAgICBzbmFwc2hvdEFjY2Vzc01vZGVzOiBbQWNjZXNzTW9kZS5SV08sIEFjY2Vzc01vZGUuUldYLCBBY2Nlc3NNb2RlLlJPWF0sXG4gICAgZmVhdHVyZXM6IFtTdG9yYWdlY2xhc3NGZWF0dXJlLlNOQVBTSE9ULCBTdG9yYWdlY2xhc3NGZWF0dXJlLkVYUEFOU0lPTl0sXG4gICAgdm9sdW1lTW9kZXM6IFtWb2x1bWVNb2RlLkZJTEVfU1lTVEVNLCBWb2x1bWVNb2RlLkJMT0NLX0RFVklDRV0sXG4gICAgc3VwcG9ydFR5cGVzOiBbU3RvcmFnZVR5cGUuRklMRV9TVE9SQUdFLCBTdG9yYWdlVHlwZS5CTE9DS19TVE9SQUdFXSxcbiAgfSxcbiAgW1N0b3JhZ2VQcm92aXNpb25lci5ORlNfQ1NJXToge1xuICAgIHByb3Zpc2lvbmVyOiBTdG9yYWdlUHJvdmlzaW9uZXIuTkZTX0NTSSxcbiAgICBwcm92aWRlcjogU3RvcmFnZVByb3ZpZGVyLlRISVJEX1BBUlRZLFxuICAgIHR5cGU6IFN0b3JhZ2VUeXBlLkZJTEVfU1RPUkFHRSxcbiAgICBjbHVzdGVyR2F0ZTogTkZTX0NTSV9GRUFUVVJFX0dBVEUsXG4gICAgZGlzcGxheToge1xuICAgICAgZW46ICdORlMgQ1NJJyxcbiAgICAgIHpoOiAnTkZTIOWFseS6q+WtmOWCqCcsXG4gICAgfSxcbiAgICBhY2Nlc3NNb2RlczogW0FjY2Vzc01vZGUuUldPLCBBY2Nlc3NNb2RlLlJXWF0sXG4gICAgZmVhdHVyZXM6IFtdLFxuICAgIHZvbHVtZU1vZGVzOiBbVm9sdW1lTW9kZS5GSUxFX1NZU1RFTV0sXG4gIH0sXG4gIFtTdG9yYWdlUHJvdmlzaW9uZXIuQ1NUT1JfQ1NJXToge1xuICAgIHByb3Zpc2lvbmVyOiBTdG9yYWdlUHJvdmlzaW9uZXIuQ1NUT1JfQ1NJLFxuICAgIHByb3ZpZGVyOiBTdG9yYWdlUHJvdmlkZXIuVEhJUkRfUEFSVFksXG4gICAgdHlwZTogU3RvcmFnZVR5cGUuQkxPQ0tfU1RPUkFHRSxcbiAgICBhY2Nlc3NNb2RlczogW0FjY2Vzc01vZGUuUldPXSxcbiAgICBmZWF0dXJlczogW1N0b3JhZ2VjbGFzc0ZlYXR1cmUuU05BUFNIT1QsIFN0b3JhZ2VjbGFzc0ZlYXR1cmUuRVhQQU5TSU9OXSxcbiAgICB2b2x1bWVNb2RlczogW1ZvbHVtZU1vZGUuRklMRV9TWVNURU0sIFZvbHVtZU1vZGUuQkxPQ0tfREVWSUNFXSxcbiAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgfSxcbn07XG5cbi8vIOWvueS6juesrOS4ieaWuSBwcm92aWRlciDnmoTmlK/mjIHnmoQgYWNjZXNzTW9kZXMg5ZKMIHZvbHVtZU1vZGVzIOS4jeWGjeWBmumZkOWItlxuZXhwb3J0IGNvbnN0IFNUT1JBR0VDTEFTU19VTktOT1dOOiBTdG9yYWdlT3B0aW9uID0ge1xuICBwcm92aXNpb25lcjogbnVsbCxcbiAgcHJvdmlkZXI6IFN0b3JhZ2VQcm92aWRlci5USElSRF9QQVJUWSxcbiAgdHlwZTogbnVsbCxcbiAgYWNjZXNzTW9kZXM6IFtBY2Nlc3NNb2RlLlJXTywgQWNjZXNzTW9kZS5SV1gsIEFjY2Vzc01vZGUuUk9YXSxcbiAgZmVhdHVyZXM6IFtdLFxuICB2b2x1bWVNb2RlczogW1ZvbHVtZU1vZGUuRklMRV9TWVNURU0sIFZvbHVtZU1vZGUuQkxPQ0tfREVWSUNFXSxcbn07XG5cbmV4cG9ydCBlbnVtIFZvbHVtZVNuYXBzaG90U3RhdHVzIHtcbiAgQ1JFQVRJTkcgPSAnY3JlYXRpbmcnLFxuICBBVkFJTEFCTEUgPSAnYXZhaWxhYmxlJyxcbiAgTUFMRlVOQ1RJT04gPSAnbWFsZnVuY3Rpb24nLFxuICBERUxFVElORyA9ICdkZWxldGluZycsXG59XG5cbmV4cG9ydCBjb25zdCBWb2x1bWVTbmFwc2hvdFN0YXR1c0NvbG9yTWFwcGVyID0ge1xuICBbVm9sdW1lU25hcHNob3RTdGF0dXMuQ1JFQVRJTkddOiBHZW5lcmljU3RhdHVzQ29sb3IuUGVuZGluZyxcbiAgW1ZvbHVtZVNuYXBzaG90U3RhdHVzLkFWQUlMQUJMRV06IEdlbmVyaWNTdGF0dXNDb2xvci5TdWNjZWVkZWQsXG4gIFtWb2x1bWVTbmFwc2hvdFN0YXR1cy5NQUxGVU5DVElPTl06IEdlbmVyaWNTdGF0dXNDb2xvci5GYWlsZWQsXG4gIFtWb2x1bWVTbmFwc2hvdFN0YXR1cy5ERUxFVElOR106IEdlbmVyaWNTdGF0dXNDb2xvci5XYXJuaW5nLFxufTtcblxuZXhwb3J0IGNvbnN0IFZvbHVtZVNuYXBzaG90U3RhdHVzSWNvbk1hcHBlciA9IHtcbiAgW1ZvbHVtZVNuYXBzaG90U3RhdHVzLkNSRUFUSU5HXTogR2VuZXJpY1N0YXR1c0ljb24uUGVuZGluZyxcbiAgW1ZvbHVtZVNuYXBzaG90U3RhdHVzLkFWQUlMQUJMRV06IEdlbmVyaWNTdGF0dXNJY29uLkNoZWNrLFxuICBbVm9sdW1lU25hcHNob3RTdGF0dXMuTUFMRlVOQ1RJT05dOiBHZW5lcmljU3RhdHVzSWNvbi5XYXJuaW5nLFxuICBbVm9sdW1lU25hcHNob3RTdGF0dXMuREVMRVRJTkddOiBHZW5lcmljU3RhdHVzSWNvbi5EZWxldGluZyxcbn07XG4iXX0=
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { toUnitMi, toUnitNumM } from '@alauda-fe/common';
|
|
2
|
+
import { ResourceSize } from '../types/resource-exports';
|
|
3
|
+
export const getResourceSpecificationMapper = (specFromModels) => specFromModels.reduce((acc, curr) => {
|
|
4
|
+
acc[curr.size] = curr;
|
|
5
|
+
return acc;
|
|
6
|
+
}, {});
|
|
7
|
+
export const formatResource = ({ value, unit } = {}) => (value || value === 0 ? value + (unit === 'core' ? '' : unit) : undefined);
|
|
8
|
+
export function getResourceSize(resources, resourceDefinitions) {
|
|
9
|
+
const { limits, requests } = resources || {};
|
|
10
|
+
const resourceLimitModel = resourceDefinitions.find(({ limits: resourceLimits, requests: resourceRequests }) => {
|
|
11
|
+
const limitsMatched = limits?.cpu === formatResource(resourceLimits?.cpu) &&
|
|
12
|
+
limits?.memory === formatResource(resourceLimits?.memory);
|
|
13
|
+
const requestsMatched = requests?.cpu === formatResource(resourceRequests?.cpu) &&
|
|
14
|
+
requests?.memory === formatResource(resourceRequests?.memory);
|
|
15
|
+
return limits && requests
|
|
16
|
+
? limitsMatched && requestsMatched
|
|
17
|
+
: limitsMatched || requestsMatched;
|
|
18
|
+
});
|
|
19
|
+
return resourceLimitModel?.size || ResourceSize.CUSTOMIZE;
|
|
20
|
+
}
|
|
21
|
+
export function getResourceSizeTranslateKey(resources, resourceDefinitions) {
|
|
22
|
+
const size = getResourceSize(resources, resourceDefinitions);
|
|
23
|
+
return {
|
|
24
|
+
[size]: `storage.${size}_scale`,
|
|
25
|
+
}[size];
|
|
26
|
+
}
|
|
27
|
+
export function getResourceRequirements(resource) {
|
|
28
|
+
const cpuMValue = parseInt(toUnitNumM(resource?.cpu));
|
|
29
|
+
const memoryMiValue = parseInt(toUnitMi(resource?.memory));
|
|
30
|
+
const cpuCoreValue = cpuMValue / 1000;
|
|
31
|
+
const isCore = Number.isNaN(cpuCoreValue) || cpuCoreValue === Math.floor(cpuCoreValue);
|
|
32
|
+
const memoryGiValue = memoryMiValue / 1024;
|
|
33
|
+
const isGi = Number.isNaN(memoryGiValue) || memoryGiValue === Math.floor(memoryGiValue);
|
|
34
|
+
return {
|
|
35
|
+
cpu: {
|
|
36
|
+
value: cpuMValue === 0 ? 0 : (isCore ? cpuCoreValue : cpuMValue) || null,
|
|
37
|
+
unit: isCore ? 'core' : 'm',
|
|
38
|
+
},
|
|
39
|
+
memory: {
|
|
40
|
+
value: memoryMiValue === 0
|
|
41
|
+
? 0
|
|
42
|
+
: (isGi ? memoryGiValue : memoryMiValue) || null,
|
|
43
|
+
unit: isGi ? 'Gi' : 'Mi',
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function getResourceSpecification(resources, resourceDefinitions) {
|
|
48
|
+
const size = getResourceSize(resources, resourceDefinitions);
|
|
49
|
+
if (size !== ResourceSize.CUSTOMIZE) {
|
|
50
|
+
return {
|
|
51
|
+
size,
|
|
52
|
+
...getResourceSpecificationMapper(resourceDefinitions)[size],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
size,
|
|
57
|
+
...(resources?.limits && {
|
|
58
|
+
limits: getResourceRequirements(resources?.limits),
|
|
59
|
+
}),
|
|
60
|
+
...(resources?.requests && {
|
|
61
|
+
requests: getResourceRequirements(resources?.requests),
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmFnZS9zcmMvbGliL3V0aWxzL3Jlc291cmNlLWV4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdkUsT0FBTyxFQUF5QixZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU1oRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUM1QyxjQUF1QyxFQUN2QyxFQUFFLENBQ0YsY0FBYyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDWixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN0QixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUM1QixFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssRUFBaUMsRUFDbkQsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLE1BQU0sVUFBVSxlQUFlLENBQzdCLFNBQStCLEVBQy9CLG1CQUE0QztJQUU1QyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFFN0MsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQ2pELENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxn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N0QsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxJQUFJO1lBQ3ZCLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO1NBQ25ELENBQUM7UUFDRixHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsSUFBSTtZQUN6QixRQUFRLEVBQUUsdUJBQXVCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztTQUN2RCxDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb29zZVZhbHVlT2YsIHRvVW5pdE1pLCB0b1VuaXROdW1NIH0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5pbXBvcnQgeyBSZXNvdXJjZVNwZWNpZmljYXRpb24sIFJlc291cmNlU2l6ZSB9IGZyb20gJy4uL3R5cGVzL3Jlc291cmNlLWV4cG9ydHMnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2VNb2RlbCxcbiAgUmVzb3VyY2VSZXF1aXJlbWVudHMsXG59IGZyb20gJy4uL3R5cGVzL3Jlc291cmNlLWludGVybmFscyc7XG5cbmV4cG9ydCBjb25zdCBnZXRSZXNvdXJjZVNwZWNpZmljYXRpb25NYXBwZXIgPSAoXG4gIHNwZWNGcm9tTW9kZWxzOiBSZXNvdXJjZVNwZWNpZmljYXRpb25bXSxcbikgPT5cbiAgc3BlY0Zyb21Nb2RlbHMucmVkdWNlPFBhcnRpYWw8UmVjb3JkPFJlc291cmNlU2l6ZSwgUmVzb3VyY2VTcGVjaWZpY2F0aW9uPj4+KFxuICAgIChhY2MsIGN1cnIpID0+IHtcbiAgICAgIGFjY1tjdXJyLnNpemVdID0gY3VycjtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSxcbiAgKTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFJlc291cmNlID0gKFxuICB7IHZhbHVlLCB1bml0IH0gPSB7fSBhcyBMb29zZVZhbHVlT2Y8UmVzb3VyY2VNb2RlbD4sXG4pID0+ICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCA/IHZhbHVlICsgKHVuaXQgPT09ICdjb3JlJyA/ICcnIDogdW5pdCkgOiB1bmRlZmluZWQpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VTaXplKFxuICByZXNvdXJjZXM6IFJlc291cmNlUmVxdWlyZW1lbnRzLFxuICByZXNvdXJjZURlZmluaXRpb25zOiBSZXNvdXJjZVNwZWNpZmljYXRpb25bXSxcbikge1xuICBjb25zdCB7IGxpbWl0cywgcmVxdWVzdHMgfSA9IHJlc291cmNlcyB8fCB7fTtcblxuICBjb25zdCByZXNvdXJjZUxpbWl0TW9kZWwgPSByZXNvdXJjZURlZmluaXRpb25zLmZpbmQoXG4gICAgKHsgbGltaXRzOiByZXNvdXJjZUxpbWl0cywgcmVxdWVzdHM6IHJlc291cmNlUmVxdWVzdHMgfSkgPT4ge1xuICAgICAgY29uc3QgbGltaXRzTWF0Y2hlZCA9XG4gICAgICAgIGxpbWl0cz8uY3B1ID09PSBmb3JtYXRSZXNvdXJjZShyZXNvdXJjZUxpbWl0cz8uY3B1KSAmJlxuICAgICAgICBsaW1pdHM/Lm1lbW9yeSA9PT0gZm9ybWF0UmVzb3VyY2UocmVzb3VyY2VMaW1pdHM/Lm1lbW9yeSk7XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RzTWF0Y2hlZCA9XG4gICAgICAgIHJlcXVlc3RzPy5jcHUgPT09IGZvcm1hdFJlc291cmNlKHJlc291cmNlUmVxdWVzdHM/LmNwdSkgJiZcbiAgICAgICAgcmVxdWVzdHM/Lm1lbW9yeSA9PT0gZm9ybWF0UmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0cz8ubWVtb3J5KTtcblxuICAgICAgcmV0dXJuIGxpbWl0cyAmJiByZXF1ZXN0c1xuICAgICAgICA/IGxpbWl0c01hdGNoZWQgJiYgcmVxdWVzdHNNYXRjaGVkXG4gICAgICAgIDogbGltaXRzTWF0Y2hlZCB8fCByZXF1ZXN0c01hdGNoZWQ7XG4gICAgfSxcbiAgKTtcblxuICByZXR1cm4gcmVzb3VyY2VMaW1pdE1vZGVsPy5zaXplIHx8IFJlc291cmNlU2l6ZS5DVVNUT01JWkU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVNpemVUcmFuc2xhdGVLZXkoXG4gIHJlc291cmNlczogUmVzb3VyY2VSZXF1aXJlbWVudHMsXG4gIHJlc291cmNlRGVmaW5pdGlvbnM6IFJlc291cmNlU3BlY2lmaWNhdGlvbltdLFxuKSB7XG4gIGNvbnN0IHNpemUgPSBnZXRSZXNvdXJjZVNpemUocmVzb3VyY2VzLCByZXNvdXJjZURlZmluaXRpb25zKTtcblxuICByZXR1cm4gKFxuICAgIHtcbiAgICAgIFtzaXplXTogYHN0b3JhZ2UuJHtzaXplfV9zY2FsZWAsXG4gICAgfSBhcyBSZWNvcmQ8UmVzb3VyY2VTaXplLCBzdHJpbmc+XG4gIClbc2l6ZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVJlcXVpcmVtZW50cyhyZXNvdXJjZToge1xuICBjcHU6IHN0cmluZztcbiAgbWVtb3J5OiBzdHJpbmc7XG59KTogUmVzb3VyY2VNb2RlbCB7XG4gIGNvbnN0IGNwdU1WYWx1ZSA9IHBhcnNlSW50KHRvVW5pdE51bU0ocmVzb3VyY2U/LmNwdSkpO1xuICBjb25zdCBtZW1vcnlNaVZhbHVlID0gcGFyc2VJbnQodG9Vbml0TWkocmVzb3VyY2U/Lm1lbW9yeSkpO1xuXG4gIGNvbnN0IGNwdUNvcmVWYWx1ZSA9IGNwdU1WYWx1ZSAvIDEwMDA7XG4gIGNvbnN0IGlzQ29yZSA9XG4gICAgTnVtYmVyLmlzTmFOKGNwdUNvcmVWYWx1ZSkgfHwgY3B1Q29yZVZhbHVlID09PSBNYXRoLmZsb29yKGNwdUNvcmVWYWx1ZSk7XG5cbiAgY29uc3QgbWVtb3J5R2lWYWx1ZSA9IG1lbW9yeU1pVmFsdWUgLyAxMDI0O1xuICBjb25zdCBpc0dpID1cbiAgICBOdW1iZXIuaXNOYU4obWVtb3J5R2lWYWx1ZSkgfHwgbWVtb3J5R2lWYWx1ZSA9PT0gTWF0aC5mbG9vcihtZW1vcnlHaVZhbHVlKTtcblxuICByZXR1cm4ge1xuICAgIGNwdToge1xuICAgICAgdmFsdWU6IGNwdU1WYWx1ZSA9PT0gMCA/IDAgOiAoaXNDb3JlID8gY3B1Q29yZVZhbHVlIDogY3B1TVZhbHVlKSB8fCBudWxsLFxuICAgICAgdW5pdDogaXNDb3JlID8gJ2NvcmUnIDogJ20nLFxuICAgIH0sXG4gICAgbWVtb3J5OiB7XG4gICAgICB2YWx1ZTpcbiAgICAgICAgbWVtb3J5TWlWYWx1ZSA9PT0gMFxuICAgICAgICAgID8gMFxuICAgICAgICAgIDogKGlzR2kgPyBtZW1vcnlHaVZhbHVlIDogbWVtb3J5TWlWYWx1ZSkgfHwgbnVsbCxcbiAgICAgIHVuaXQ6IGlzR2kgPyAnR2knIDogJ01pJyxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VTcGVjaWZpY2F0aW9uKFxuICByZXNvdXJjZXM6IFJlc291cmNlUmVxdWlyZW1lbnRzLFxuICByZXNvdXJjZURlZmluaXRpb25zOiBSZXNvdXJjZVNwZWNpZmljYXRpb25bXSxcbik6IFJlc291cmNlU3BlY2lmaWNhdGlvbiB7XG4gIGNvbnN0IHNpemUgPSBnZXRSZXNvdXJjZVNpemUocmVzb3VyY2VzLCByZXNvdXJjZURlZmluaXRpb25zKTtcblxuICBpZiAoc2l6ZSAhPT0gUmVzb3VyY2VTaXplLkNVU1RPTUlaRSkge1xuICAgIHJldHVybiB7XG4gICAgICBzaXplLFxuICAgICAgLi4uZ2V0UmVzb3VyY2VTcGVjaWZpY2F0aW9uTWFwcGVyKHJlc291cmNlRGVmaW5pdGlvbnMpW3NpemVdLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNpemUsXG4gICAgLi4uKHJlc291cmNlcz8ubGltaXRzICYmIHtcbiAgICAgIGxpbWl0czogZ2V0UmVzb3VyY2VSZXF1aXJlbWVudHMocmVzb3VyY2VzPy5saW1pdHMpLFxuICAgIH0pLFxuICAgIC4uLihyZXNvdXJjZXM/LnJlcXVlc3RzICYmIHtcbiAgICAgIHJlcXVlc3RzOiBnZXRSZXNvdXJjZVJlcXVpcmVtZW50cyhyZXNvdXJjZXM/LnJlcXVlc3RzKSxcbiAgICB9KSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { TRUE, VOLUME_SNAPSHOT_GROUP, } from '@alauda-fe/common';
|
|
2
|
+
import { PvcStatusEnum, PvStatusEnum, StorageProvisioner, VolumeBindingMode, } from '../types/commons';
|
|
3
|
+
import { IS_DEFAULT_STORAGECLASS_ANNOTATION, STORAGECLASS_UNKNOWN, STORAGE_OPTION_MAP, VolumeSnapshotStatus, } from './constants';
|
|
4
|
+
export function getProvisioner(sc) {
|
|
5
|
+
const provisioner = sc &&
|
|
6
|
+
('provisioner' in sc
|
|
7
|
+
? sc.provisioner
|
|
8
|
+
: 'driverName' in sc
|
|
9
|
+
? sc.driverName
|
|
10
|
+
: null);
|
|
11
|
+
// CCE 集群上,不同存储使用相同的 provisioner(everest-csi-provisioner) 时需要进行额外处理
|
|
12
|
+
if (provisioner === 'everest-csi-provisioner') {
|
|
13
|
+
return sc?.parameters['csi.storage.k8s.io/csi-driver-name'];
|
|
14
|
+
}
|
|
15
|
+
return provisioner;
|
|
16
|
+
}
|
|
17
|
+
export function getProvisionerDisplay(sc) {
|
|
18
|
+
const provisioner = getProvisioner(sc);
|
|
19
|
+
return (STORAGE_OPTION_MAP[provisioner]?.display || {
|
|
20
|
+
en: provisioner,
|
|
21
|
+
zh: provisioner,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
export function getProvisionerType(provisioner) {
|
|
25
|
+
return STORAGE_OPTION_MAP[provisioner]?.type || 'unknown';
|
|
26
|
+
}
|
|
27
|
+
export function getStorageclassVolumeModes(provisioner) {
|
|
28
|
+
return provisioner
|
|
29
|
+
? (STORAGE_OPTION_MAP[provisioner] || STORAGECLASS_UNKNOWN).volumeModes
|
|
30
|
+
: ['Filesystem', 'Block']; // 针对未识别的 sc 全部卷模式可用
|
|
31
|
+
}
|
|
32
|
+
export function getStorageclassAccessModes(provisioner, isFromSnapshot = false) {
|
|
33
|
+
return provisioner
|
|
34
|
+
? (STORAGE_OPTION_MAP[provisioner] || STORAGECLASS_UNKNOWN)[isFromSnapshot ? 'snapshotAccessModes' : 'accessModes']
|
|
35
|
+
: ['ReadOnlyMany', 'ReadWriteMany', 'ReadWriteOnce']; // 针对未识别的 sc 全部访问方式可用
|
|
36
|
+
}
|
|
37
|
+
export function isDefaultStorageclass(data) {
|
|
38
|
+
return (data.metadata.annotations?.[IS_DEFAULT_STORAGECLASS_ANNOTATION] === TRUE);
|
|
39
|
+
}
|
|
40
|
+
export function isStorageClassSupportSnapshot(sc, vscList) {
|
|
41
|
+
const list = vscList.filter(item => item.parameters?.clusterID === sc.parameters?.clusterID);
|
|
42
|
+
switch (sc.provisioner) {
|
|
43
|
+
case StorageProvisioner.CEPH_FS_INTERNAL: {
|
|
44
|
+
return list.some(item => item.driver === StorageProvisioner.CEPH_FS_INTERNAL);
|
|
45
|
+
}
|
|
46
|
+
case StorageProvisioner.CEPH_FS_RBD: {
|
|
47
|
+
return list.some(item => item.driver === StorageProvisioner.CEPH_FS_RBD);
|
|
48
|
+
}
|
|
49
|
+
case StorageProvisioner.TOPOLVM: {
|
|
50
|
+
return list.some(item => item.driver === StorageProvisioner.TOPOLVM);
|
|
51
|
+
}
|
|
52
|
+
default: {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function buildPvcResource({ namespace, snapshot, volumeMode, }, pvc) {
|
|
58
|
+
return {
|
|
59
|
+
apiVersion: 'v1',
|
|
60
|
+
kind: 'PersistentVolumeClaim',
|
|
61
|
+
metadata: {
|
|
62
|
+
name: '',
|
|
63
|
+
namespace,
|
|
64
|
+
annotations: {},
|
|
65
|
+
labels: {},
|
|
66
|
+
},
|
|
67
|
+
spec: {
|
|
68
|
+
storageClassName: pvc?.spec?.storageClassName ?? null,
|
|
69
|
+
accessModes: pvc?.spec?.accessModes ?? ['ReadWriteOnce'],
|
|
70
|
+
volumeMode: volumeMode ?? 'Filesystem',
|
|
71
|
+
resources: {
|
|
72
|
+
requests: {
|
|
73
|
+
storage: pvc?.spec?.resources.requests?.storage ?? null,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
...(pvc
|
|
77
|
+
? {
|
|
78
|
+
dataSource: {
|
|
79
|
+
name: snapshot,
|
|
80
|
+
kind: 'VolumeSnapshot',
|
|
81
|
+
apiGroup: VOLUME_SNAPSHOT_GROUP,
|
|
82
|
+
},
|
|
83
|
+
}
|
|
84
|
+
: {}),
|
|
85
|
+
selector: {
|
|
86
|
+
matchLabels: {},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export function getVolumeSnapshotStatus(resource) {
|
|
92
|
+
return resource.metadata?.deletionTimestamp
|
|
93
|
+
? VolumeSnapshotStatus.DELETING
|
|
94
|
+
: resource.status?.error
|
|
95
|
+
? VolumeSnapshotStatus.MALFUNCTION
|
|
96
|
+
: resource.status?.readyToUse
|
|
97
|
+
? VolumeSnapshotStatus.AVAILABLE
|
|
98
|
+
: VolumeSnapshotStatus.CREATING;
|
|
99
|
+
}
|
|
100
|
+
export function getPvcStatus(status, refStorageclass) {
|
|
101
|
+
switch (status.phase.toLowerCase()) {
|
|
102
|
+
case 'pending': {
|
|
103
|
+
return refStorageclass?.volumeBindingMode ===
|
|
104
|
+
VolumeBindingMode.WaitForFirstConsumer
|
|
105
|
+
? PvcStatusEnum.waiting
|
|
106
|
+
: PvcStatusEnum.processing;
|
|
107
|
+
}
|
|
108
|
+
case 'bound': {
|
|
109
|
+
return PvcStatusEnum.bound;
|
|
110
|
+
}
|
|
111
|
+
case 'lost': {
|
|
112
|
+
return PvcStatusEnum.invalid;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export function getPvStatus(pv) {
|
|
117
|
+
switch (pv.status.phase.toLowerCase()) {
|
|
118
|
+
case 'available': {
|
|
119
|
+
return PvStatusEnum.AVAILABLE;
|
|
120
|
+
}
|
|
121
|
+
case 'bound': {
|
|
122
|
+
return PvStatusEnum.BOUND;
|
|
123
|
+
}
|
|
124
|
+
case 'released': {
|
|
125
|
+
return PvStatusEnum.WAITING_RECYCLE;
|
|
126
|
+
}
|
|
127
|
+
case 'failed': {
|
|
128
|
+
return PvStatusEnum.RECYCLE_FAILED;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmFnZS9zcmMvbGliL3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLElBQUksRUFDSixxQkFBcUIsR0FFdEIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFFWixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0sa0JBQWtCLENBQUM7QUFTMUIsT0FBTyxFQUNMLGtDQUFrQyxFQUNsQyxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQXNDO0lBQ25FLE1BQU0sV0FBVyxHQUNmLEVBQUU7UUFDRixDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVztZQUNoQixDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUU7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVTtnQkFDZixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFZCxtRUFBbUU7SUFDbkUsSUFBSSxXQUFXLEtBQU0seUJBQWdELEVBQUUsQ0FBQztRQUN0RSxPQUFRLEVBQW1CLEVBQUUsVUFBVSxDQUNyQyxvQ0FBb0MsQ0FDZixDQUFDO0lBQzFCLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxFQUFzQztJQUV0QyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdkMsT0FBTyxDQUNMLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sSUFBSTtRQUMxQyxFQUFFLEVBQUUsV0FBVztRQUNmLEVBQUUsRUFBRSxXQUFXO0tBQ2hCLENBQ0YsQ0FBQztBQUNK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QUFVLENBQUM7UUFDL0IsQ0FBQztRQUNELEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNiLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1osT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsRUFBb0I7SUFDOUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDaEMsQ0FBQztRQUNELEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNiLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDO1FBQ0QsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2QsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjY2Vzc01vZGUsXG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgUGVyc2lzdGVudFZvbHVtZUNsYWltU3RhdHVzLFxuICBUcmFuc2xhdGlvbixcbiAgVFJVRSxcbiAgVk9MVU1FX1NOQVBTSE9UX0dST1VQLFxuICBWb2x1bWVNb2RlLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIFB2Y1N0YXR1c0VudW0sXG4gIFB2U3RhdHVzRW51bSxcbiAgU3RvcmFnZU9wdGlvbixcbiAgU3RvcmFnZVByb3Zpc2lvbmVyLFxuICBWb2x1bWVCaW5kaW5nTW9kZSxcbn0gZnJvbSAnLi4vdHlwZXMvY29tbW9ucyc7XG5pbXBvcnQge1xuICBDb21tb25TdG9yYWdlQ2xhc3MsXG4gIFBlcnNpc3RlbnRWb2x1bWUsXG4gIFN0b3JhZ2VDbGFzcyxcbiAgVm9sdW1lU25hcHNob3QsXG4gIFZvbHVtZVNuYXBzaG90Q2xhc3MsXG59IGZyb20gJy4uL3R5cGVzL2s4cyc7XG5cbmltcG9ydCB7XG4gIElTX0RFRkFVTFRfU1RPUkFHRUNMQVNTX0FOTk9UQVRJT04sXG4gIFNUT1JBR0VDTEFTU19VTktOT1dOLFxuICBTVE9SQUdFX09QVElPTl9NQVAsXG4gIFZvbHVtZVNuYXBzaG90U3RhdHVzLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm92aXNpb25lcihzYzogQ29tbW9uU3RvcmFnZUNsYXNzIHwgU3RvcmFnZU9wdGlvbikge1xuICBjb25zdCBwcm92aXNpb25lciA9XG4gICAgc2MgJiZcbiAgICAoJ3Byb3Zpc2lvbmVyJyBpbiBzY1xuICAgICAgPyBzYy5wcm92aXNpb25lclxuICAgICAgOiAnZHJpdmVyTmFtZScgaW4gc2NcbiAgICAgICAgPyBzYy5kcml2ZXJOYW1lXG4gICAgICAgIDogbnVsbCk7XG5cbiAgLy8gQ0NFIOmbhue+pOS4iu+8jOS4jeWQjOWtmOWCqOS9v+eUqOebuOWQjOeahCBwcm92aXNpb25lcihldmVyZXN0LWNzaS1wcm92aXNpb25lcikg5pe26ZyA6KaB6L+b6KGM6aKd5aSW5aSE55CGXG4gIGlmIChwcm92aXNpb25lciA9PT0gKCdldmVyZXN0LWNzaS1wcm92aXNpb25lcicgYXMgU3RvcmFnZVByb3Zpc2lvbmVyKSkge1xuICAgIHJldHVybiAoc2MgYXMgU3RvcmFnZUNsYXNzKT8ucGFyYW1ldGVyc1tcbiAgICAgICdjc2kuc3RvcmFnZS5rOHMuaW8vY3NpLWRyaXZlci1uYW1lJ1xuICAgIF0gYXMgU3RvcmFnZVByb3Zpc2lvbmVyO1xuICB9XG4gIHJldHVybiBwcm92aXNpb25lcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3Zpc2lvbmVyRGlzcGxheShcbiAgc2M6IENvbW1vblN0b3JhZ2VDbGFzcyB8IFN0b3JhZ2VPcHRpb24sXG4pOiBUcmFuc2xhdGlvbiB7XG4gIGNvbnN0IHByb3Zpc2lvbmVyID0gZ2V0UHJvdmlzaW9uZXIoc2MpO1xuXG4gIHJldHVybiAoXG4gICAgU1RPUkFHRV9PUFRJT05fTUFQW3Byb3Zpc2lvbmVyXT8uZGlzcGxheSB8fCB7XG4gICAgICBlbjogcHJvdmlzaW9uZXIsXG4gICAgICB6aDogcHJvdmlzaW9uZXIsXG4gICAgfVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvdmlzaW9uZXJUeXBlKHByb3Zpc2lvbmVyOiBTdG9yYWdlUHJvdmlzaW9uZXIpIHtcbiAgcmV0dXJuIFNUT1JBR0VfT1BUSU9OX01BUFtwcm92aXNpb25lcl0/LnR5cGUgfHwgJ3Vua25vd24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZWNsYXNzVm9sdW1lTW9kZXMocHJvdmlzaW9uZXI6IFN0b3JhZ2VQcm92aXNpb25lcikge1xuICByZXR1cm4gcHJvdmlzaW9uZXJcbiAgICA/IChTVE9SQUdFX09QVElPTl9NQVBbcHJvdmlzaW9uZXJdIHx8IFNUT1JBR0VDTEFTU19VTktOT1dOKS52b2x1bWVNb2Rlc1xuICAgIDogKFsnRmlsZXN5c3RlbScsICdCbG9jayddIGFzIFZvbHVtZU1vZGVbXSk7IC8vIOmSiOWvueacquivhuWIq+eahCBzYyDlhajpg6jljbfmqKHlvI/lj6/nlKhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JhZ2VjbGFzc0FjY2Vzc01vZGVzKFxuICBwcm92aXNpb25lcjogU3RvcmFnZVByb3Zpc2lvbmVyLFxuICBpc0Zyb21TbmFwc2hvdCA9IGZhbHNlLFxuKSB7XG4gIHJldHVybiBwcm92aXNpb25lclxuICAgID8gKFNUT1JBR0VfT1BUSU9OX01BUFtwcm92aXNpb25lcl0gfHwgU1RPUkFHRUNMQVNTX1VOS05PV04pW1xuICAgICAgICBpc0Zyb21TbmFwc2hvdCA/ICdzbmFwc2hvdEFjY2Vzc01vZGVzJyA6ICdhY2Nlc3NNb2RlcydcbiAgICAgIF1cbiAgICA6IChbJ1JlYWRPbmx5TWFueScsICdSZWFkV3JpdGVNYW55JywgJ1JlYWRXcml0ZU9uY2UnXSBhcyBBY2Nlc3NNb2RlW10pOyAvLyDpkojlr7nmnKror4bliKvnmoQgc2Mg5YWo6YOo6K6/6Zeu5pa55byP5Y+v55SoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RlZmF1bHRTdG9yYWdlY2xhc3MoZGF0YTogQ29tbW9uU3RvcmFnZUNsYXNzKSB7XG4gIHJldHVybiAoXG4gICAgZGF0YS5tZXRhZGF0YS5hbm5vdGF0aW9ucz8uW0lTX0RFRkFVTFRfU1RPUkFHRUNMQVNTX0FOTk9UQVRJT05dID09PSBUUlVFXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0b3JhZ2VDbGFzc1N1cHBvcnRTbmFwc2hvdChcbiAgc2M6IFN0b3JhZ2VDbGFzcyxcbiAgdnNjTGlzdDogVm9sdW1lU25hcHNob3RDbGFzc1tdLFxuKSB7XG4gIGNvbnN0IGxpc3QgPSB2c2NMaXN0LmZpbHRlcihcbiAgICBpdGVtID0+IGl0ZW0ucGFyYW1ldGVycz8uY2x1c3RlcklEID09PSBzYy5wYXJhbWV0ZXJzPy5jbHVzdGVySUQsXG4gICk7XG4gIHN3aXRjaCAoc2MucHJvdmlzaW9uZXIpIHtcbiAgICBjYXNlIFN0b3JhZ2VQcm92aXNpb25lci5DRVBIX0ZTX0lOVEVSTkFMOiB7XG4gICAgICByZXR1cm4gbGlzdC5zb21lKFxuICAgICAgICBpdGVtID0+IGl0ZW0uZHJpdmVyID09PSBTdG9yYWdlUHJvdmlzaW9uZXIuQ0VQSF9GU19JTlRFUk5BTCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNhc2UgU3RvcmFnZVByb3Zpc2lvbmVyLkNFUEhfRlNfUkJEOiB7XG4gICAgICByZXR1cm4gbGlzdC5zb21lKGl0ZW0gPT4gaXRlbS5kcml2ZXIgPT09IFN0b3JhZ2VQcm92aXNpb25lci5DRVBIX0ZTX1JCRCk7XG4gICAgfVxuICAgIGNhc2UgU3RvcmFnZVByb3Zpc2lvbmVyLlRPUE9MVk06IHtcbiAgICAgIHJldHVybiBsaXN0LnNvbWUoaXRlbSA9PiBpdGVtLmRyaXZlciA9PT0gU3RvcmFnZVByb3Zpc2lvbmVyLlRPUE9MVk0pO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFB2Y1Jlc291cmNlKFxuICB7XG4gICAgbmFtZXNwYWNlLFxuICAgIHNuYXBzaG90LFxuICAgIHZvbHVtZU1vZGUsXG4gIH06IHsgbmFtZXNwYWNlOiBzdHJpbmc7IHNuYXBzaG90Pzogc3RyaW5nOyB2b2x1bWVNb2RlPzogVm9sdW1lTW9kZSB9LFxuICBwdmM/OiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0sIC8vIOWIm+W7uuW/q+eFp+exuyBQdmMg5pe25Lyg5YWlXG4pOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0ge1xuICByZXR1cm4ge1xuICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAga2luZDogJ1BlcnNpc3RlbnRWb2x1bWVDbGFpbScsXG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgYW5ub3RhdGlvbnM6IHt9LFxuICAgICAgbGFiZWxzOiB7fSxcbiAgICB9LFxuICAgIHNwZWM6IHtcbiAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IHB2Yz8uc3BlYz8uc3RvcmFnZUNsYXNzTmFtZSA/PyBudWxsLFxuICAgICAgYWNjZXNzTW9kZXM6IHB2Yz8uc3BlYz8uYWNjZXNzTW9kZXMgPz8gWydSZWFkV3JpdGVPbmNlJ10sXG4gICAgICB2b2x1bWVNb2RlOiB2b2x1bWVNb2RlID8/ICdGaWxlc3lzdGVtJyxcbiAgICAgIHJlc291cmNlczoge1xuICAgICAgICByZXF1ZXN0czoge1xuICAgICAgICAgIHN0b3JhZ2U6IHB2Yz8uc3BlYz8ucmVzb3VyY2VzLnJlcXVlc3RzPy5zdG9yYWdlID8/IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLi4uKHB2Y1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHtcbiAgICAgICAgICAgICAgbmFtZTogc25hcHNob3QsXG4gICAgICAgICAgICAgIGtpbmQ6ICdWb2x1bWVTbmFwc2hvdCcsXG4gICAgICAgICAgICAgIGFwaUdyb3VwOiBWT0xVTUVfU05BUFNIT1RfR1JPVVAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fSksXG4gICAgICBzZWxlY3Rvcjoge1xuICAgICAgICBtYXRjaExhYmVsczoge30sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWb2x1bWVTbmFwc2hvdFN0YXR1cyhyZXNvdXJjZTogVm9sdW1lU25hcHNob3QpIHtcbiAgcmV0dXJuIHJlc291cmNlLm1ldGFkYXRhPy5kZWxldGlvblRpbWVzdGFtcFxuICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuREVMRVRJTkdcbiAgICA6IHJlc291cmNlLnN0YXR1cz8uZXJyb3JcbiAgICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuTUFMRlVOQ1RJT05cbiAgICAgIDogcmVzb3VyY2Uuc3RhdHVzPy5yZWFkeVRvVXNlXG4gICAgICAgID8gVm9sdW1lU25hcHNob3RTdGF0dXMuQVZBSUxBQkxFXG4gICAgICAgIDogVm9sdW1lU25hcHNob3RTdGF0dXMuQ1JFQVRJTkc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQdmNTdGF0dXMoXG4gIHN0YXR1czogUGVyc2lzdGVudFZvbHVtZUNsYWltU3RhdHVzLFxuICByZWZTdG9yYWdlY2xhc3M/OiBTdG9yYWdlQ2xhc3MsXG4pOiBQdmNTdGF0dXNFbnVtIHtcbiAgc3dpdGNoIChzdGF0dXMucGhhc2UudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ3BlbmRpbmcnOiB7XG4gICAgICByZXR1cm4gcmVmU3RvcmFnZWNsYXNzPy52b2x1bWVCaW5kaW5nTW9kZSA9PT1cbiAgICAgICAgVm9sdW1lQmluZGluZ01vZGUuV2FpdEZvckZpcnN0Q29uc3VtZXJcbiAgICAgICAgPyBQdmNTdGF0dXNFbnVtLndhaXRpbmdcbiAgICAgICAgOiBQdmNTdGF0dXNFbnVtLnByb2Nlc3Npbmc7XG4gICAgfVxuICAgIGNhc2UgJ2JvdW5kJzoge1xuICAgICAgcmV0dXJuIFB2Y1N0YXR1c0VudW0uYm91bmQ7XG4gICAgfVxuICAgIGNhc2UgJ2xvc3QnOiB7XG4gICAgICByZXR1cm4gUHZjU3RhdHVzRW51bS5pbnZhbGlkO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHZTdGF0dXMocHY6IFBlcnNpc3RlbnRWb2x1bWUpOiBQdlN0YXR1c0VudW0ge1xuICBzd2l0Y2ggKHB2LnN0YXR1cy5waGFzZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnYXZhaWxhYmxlJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5BVkFJTEFCTEU7XG4gICAgfVxuICAgIGNhc2UgJ2JvdW5kJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5CT1VORDtcbiAgICB9XG4gICAgY2FzZSAncmVsZWFzZWQnOiB7XG4gICAgICByZXR1cm4gUHZTdGF0dXNFbnVtLldBSVRJTkdfUkVDWUNMRTtcbiAgICB9XG4gICAgY2FzZSAnZmFpbGVkJzoge1xuICAgICAgcmV0dXJuIFB2U3RhdHVzRW51bS5SRUNZQ0xFX0ZBSUxFRDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { DeletePvcDialogComponent } from './lib/components/pvc-delete-dialog/component';
|
|
2
|
+
export { PvcExpandCapacityDialogComponent } from './lib/components/pvc-expand-capacity-dialog/component';
|
|
3
|
+
export { PersistentVolumeClaimFormComponent } from './lib/components/pvc-form/component';
|
|
4
|
+
export { RebuildVolumeDialogComponent } from './lib/components/rebuild-volume-dialog/component';
|
|
5
|
+
export { ResourceSpecFormComponent } from './lib/components/spec-form/component';
|
|
6
|
+
export { StorageFeatureTagsComponent } from './lib/components/storage-feature-tags/component';
|
|
7
|
+
export { StorageClassSelectComponent } from './lib/components/storageclass-select/component';
|
|
8
|
+
export * from './lib/utils/constants';
|
|
9
|
+
export * from './lib/utils/resource-exports';
|
|
10
|
+
export * from './lib/utils/util';
|
|
11
|
+
export * from './lib/types/commons';
|
|
12
|
+
export * from './lib/types/k8s';
|
|
13
|
+
export * from './lib/types/resource-definition';
|
|
14
|
+
export * from './lib/types/resource-exports';
|
|
15
|
+
export * from './lib/pipes/actual-capacity.pipe';
|
|
16
|
+
export { StorageCommonUtilService, StorageSelectOption, } from './lib/services/common-util.service';
|
|
17
|
+
export * from './lib/services/pvc-util.service';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { DialogRef, MessageService } from '@alauda/ui';
|
|
2
|
+
import { K8sApiService, K8sUtilService, KubernetesResource, PersistentVolumeClaim, TranslateService } from '@alauda-fe/common';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { PVCUtilService } from '../../services/pvc-util.service';
|
|
5
|
+
import { VolumeSnapshot } from '../../types/k8s';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class DeletePvcDialogComponent {
|
|
8
|
+
readonly modalData: {
|
|
9
|
+
cluster: string;
|
|
10
|
+
namespace: string;
|
|
11
|
+
pvc: PersistentVolumeClaim;
|
|
12
|
+
};
|
|
13
|
+
private readonly k8sApi;
|
|
14
|
+
private readonly k8sUtil;
|
|
15
|
+
protected readonly pvcUtil: PVCUtilService;
|
|
16
|
+
private readonly dialogRef;
|
|
17
|
+
private readonly message;
|
|
18
|
+
private readonly translate;
|
|
19
|
+
COLUMNS: string[];
|
|
20
|
+
inputValue: string;
|
|
21
|
+
submitting$$: BehaviorSubject<boolean>;
|
|
22
|
+
pods$: import("rxjs").Observable<import("@alauda-fe/common").Pod[]>;
|
|
23
|
+
snapshots$: import("rxjs").Observable<VolumeSnapshot[]>;
|
|
24
|
+
list$: import("rxjs").Observable<KubernetesResource[]>;
|
|
25
|
+
constructor(modalData: {
|
|
26
|
+
cluster: string;
|
|
27
|
+
namespace: string;
|
|
28
|
+
pvc: PersistentVolumeClaim;
|
|
29
|
+
}, k8sApi: K8sApiService, k8sUtil: K8sUtilService, pvcUtil: PVCUtilService, dialogRef: DialogRef, message: MessageService, translate: TranslateService);
|
|
30
|
+
confirm(): void;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DeletePvcDialogComponent, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DeletePvcDialogComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { DialogRef, MessageService } from '@alauda/ui';
|
|
2
|
+
import { K8sApiService, PersistentVolumeClaim, TranslateService } from '@alauda-fe/common';
|
|
3
|
+
import { NgForm } from '@angular/forms';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class PvcExpandCapacityDialogComponent {
|
|
7
|
+
dialogData: {
|
|
8
|
+
resource: PersistentVolumeClaim;
|
|
9
|
+
cluster: string;
|
|
10
|
+
namespace: string;
|
|
11
|
+
isVM?: boolean;
|
|
12
|
+
};
|
|
13
|
+
private readonly k8sApi;
|
|
14
|
+
private readonly dialogRef;
|
|
15
|
+
private readonly message;
|
|
16
|
+
private readonly translate;
|
|
17
|
+
newCapacity: string;
|
|
18
|
+
POSITIVE_INT_PATTERN: {
|
|
19
|
+
pattern: RegExp;
|
|
20
|
+
tip: string;
|
|
21
|
+
};
|
|
22
|
+
submitting$$: Subject<boolean>;
|
|
23
|
+
submitting$: import("rxjs").Observable<boolean>;
|
|
24
|
+
toUnitGi: (str?: string | number, negative?: boolean) => string;
|
|
25
|
+
constructor(dialogData: {
|
|
26
|
+
resource: PersistentVolumeClaim;
|
|
27
|
+
cluster: string;
|
|
28
|
+
namespace: string;
|
|
29
|
+
isVM?: boolean;
|
|
30
|
+
}, k8sApi: K8sApiService, dialogRef: DialogRef<PvcExpandCapacityDialogComponent>, message: MessageService, translate: TranslateService);
|
|
31
|
+
submit(ngForm: NgForm): void;
|
|
32
|
+
getNumber(capacity: string): number;
|
|
33
|
+
getVolumeTypeTranslateKey(isVM: boolean): "storage.virtual_disk_name" | "storage.pvc_short";
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PvcExpandCapacityDialogComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PvcExpandCapacityDialogComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
36
|
+
}
|