Skip to content

Commit 2e7aac1

Browse files
authored
feat(console): create vm support set accessModes by sc Provisioner (#2238)
* feat(console): create vm support set accessModes by sc Provisioner * feat(console): add case * fix(console): change createVM volumeMode
1 parent 5220c31 commit 2e7aac1

File tree

5 files changed

+15
-3
lines changed

5 files changed

+15
-3
lines changed

web/console/src/modules/cluster/components/resource/virtual-machine/constants/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export interface DiskInterface {
2828
type: DiskTypeEnum;
2929
volumeMode: VolumeModeEnum;
3030
storageClass: string;
31+
scProvisioner: string;
3132
size: number;
3233
}
3334

web/console/src/modules/cluster/components/resource/virtual-machine/pages/create/diskPanel.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const DiskPanel = () => {
2424
type: DiskTypeEnum.Data,
2525
volumeMode: VolumeModeEnum.Filesystem,
2626
storageClass: null,
27+
scProvisioner: null,
2728
size: 50
2829
}
2930
];
@@ -97,6 +98,9 @@ export const DiskPanel = () => {
9798
onChange={storageClass =>
9899
modifyDiskItem({
99100
storageClass,
101+
scProvisioner:
102+
storageClassListLoadable?.contents?.find(({ value }) => value === storageClass)?.provisioner ??
103+
null,
100104
id
101105
})
102106
}

web/console/src/modules/cluster/components/resource/virtual-machine/pages/create/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ export const VMCreatePanel = () => {
6464
});
6565

6666
history.back();
67-
} catch (error) {}
67+
} catch (error) {
68+
console.log('createVm error --->', error);
69+
}
6870
}
6971

7072
return (

web/console/src/modules/cluster/components/resource/virtual-machine/store/creation.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export const diskListState = atom<DiskInterface[]>({
3333
type: DiskTypeEnum.System,
3434
volumeMode: VolumeModeEnum.Filesystem,
3535
storageClass: null,
36+
scProvisioner: null,
3637
size: 50
3738
},
3839

@@ -42,6 +43,7 @@ export const diskListState = atom<DiskInterface[]>({
4243
type: DiskTypeEnum.Data,
4344
volumeMode: VolumeModeEnum.Filesystem,
4445
storageClass: null,
46+
scProvisioner: null,
4547
size: 50
4648
}
4749
]
@@ -56,7 +58,7 @@ export const storageClassListState = selector({
5658

5759
const { items } = await storageClassAPI.fetchStorageClassList(clusterId);
5860

59-
return items?.map(({ metadata }) => ({ value: metadata?.name })) ?? [];
61+
return items?.map(({ metadata, provisioner }) => ({ value: metadata?.name, provisioner })) ?? [];
6062
}
6163
});
6264

web/console/src/webApi/virtual-machine.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { VolumeModeEnum } from '@src/modules/cluster/components/resource/virtual-machine/constants';
12
import { Request, generateQueryString } from './request';
23

34
const IMAGE_NAMESPACE = 'kube-public';
@@ -221,7 +222,9 @@ export function createVM({
221222
}
222223
},
223224

224-
volumeMode: item.volumeMode,
225+
volumeMode: ['loopdevice.csi.infra.tce.io', 'rbd.csi.ceph.com'].includes(item?.scProvisioner)
226+
? VolumeModeEnum.Block
227+
: VolumeModeEnum.Filesystem,
225228
storageClassName: item.storageClass
226229
},
227230

0 commit comments

Comments
 (0)