-
Notifications
You must be signed in to change notification settings - Fork 2k
/
delete.ts
74 lines (61 loc) · 3.15 KB
/
delete.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { DELETE } from '@/services/request';
import { BaseResourceType, ResourceKindType } from '@/types/resource';
export const delCronJobByName = (instanceName: string) =>
DELETE('/api/resource/deleteCronjob', { instanceName });
export const deleteAppCRD = (instanceName: string) =>
DELETE('/api/resource/deleteAppCRD', { instanceName });
export const deleteSecret = (instanceName: string) =>
DELETE('/api/resource/deleteSecret', { instanceName });
export const delApplaunchpad = (instanceName: string) =>
DELETE('/api/resource/delApplaunchpad', { instanceName });
export const delDBByName = (instanceName: string) =>
DELETE('/api/resource/delDBByName', { instanceName });
export const delInstanceByName = (instanceName: string) =>
DELETE('/api/instance/deleteByName', { instanceName });
export const delJobByName = (instanceName: string) =>
DELETE('/api/resource/delJob', { instanceName });
export const delConfigMapByName = (instanceName: string) =>
DELETE('/api/resource/delConfigMap', { instanceName });
export const delIssuerByName = (instanceName: string) =>
DELETE('/api/resource/deleteIssuer', { instanceName });
export const delRoleByName = (instanceName: string) =>
DELETE('/api/resource/delRole', { instanceName });
export const delRoleBindingByName = (instanceName: string) =>
DELETE('/api/resource/delRoleBinding', { instanceName });
export const delServiceAccountByName = (instanceName: string) =>
DELETE('/api/resource/delServiceAccount', { instanceName });
export const delPersistentVolumeClaim = (instanceName: string) =>
DELETE('/api/resource/delPersistentVolumeClaim', { instanceName });
export const delCR = (data: Record<'kind' | 'name' | 'apiVersion', string>) =>
DELETE('/api/resource/delCR', data);
const deleteResourceByKind: Record<string, undefined | ((instanceName: string) => void)> = {
CronJob: (instanceName: string) => delCronJobByName(instanceName),
App: (instanceName: string) => deleteAppCRD(instanceName),
Secret: (instanceName: string) => deleteSecret(instanceName),
AppLaunchpad: (instanceName: string) => delApplaunchpad(instanceName),
DataBase: (instanceName: string) => delDBByName(instanceName),
Instance: (instanceName: string) => delInstanceByName(instanceName),
Job: (instanceName: string) => delJobByName(instanceName),
ConfigMap: (instanceName: string) => delConfigMapByName(instanceName),
Issuer: (instanceName: string) => delIssuerByName(instanceName),
Role: (instanceName: string) => delRoleByName(instanceName),
RoleBinding: (instanceName: string) => delRoleBindingByName(instanceName),
ServiceAccount: (instanceName: string) => delServiceAccountByName(instanceName),
PersistentVolumeClaim: delPersistentVolumeClaim
};
export const deleteAllResources = async (resources: BaseResourceType[]) => {
const deletePromises = resources.map((resource) => {
const fn = deleteResourceByKind[resource.kind];
console.log(fn);
if (!!fn) return fn(resource.name);
else
delCR({
name: resource.name,
apiVersion: resource.apiVersion!,
kind: resource.kind!
});
});
const reuslt = await Promise.allSettled(deletePromises);
console.log(reuslt);
return reuslt;
};