Can set the number of VCPUs

This commit is contained in:
2023-12-07 17:09:33 +01:00
parent d1a9b6c3bb
commit 5f0f56a9f9
10 changed files with 148 additions and 12 deletions

View File

@ -22,10 +22,14 @@ interface DetailsProps {
}
export function VMDetails(p: DetailsProps): React.ReactElement {
const [list, setList] = React.useState<IsoFile[] | any>();
const [isoList, setIsoList] = React.useState<IsoFile[] | any>();
const [vcpuCombinations, setVCPUCombinations] = React.useState<
number[] | any
>();
const load = async () => {
setList(await IsoFilesApi.GetList());
setIsoList(await IsoFilesApi.GetList());
setVCPUCombinations(await ServerApi.NumberVCPUs());
};
return (
@ -33,13 +37,19 @@ export function VMDetails(p: DetailsProps): React.ReactElement {
loadKey={"1"}
load={load}
errMsg="Failed to load the list of ISO files"
build={() => <VMDetailsInner isoList={list} {...p} />}
build={() => (
<VMDetailsInner
isoList={isoList}
vcpuCombinations={vcpuCombinations}
{...p}
/>
)}
/>
);
}
function VMDetailsInner(
p: DetailsProps & { isoList: IsoFile[] }
p: DetailsProps & { isoList: IsoFile[]; vcpuCombinations: number[] }
): React.ReactElement {
return (
<Grid container spacing={2}>
@ -146,6 +156,19 @@ function VMDetailsInner(
}
/>
<SelectInput
editable={p.editable}
label="Number of vCPU"
options={p.vcpuCombinations.map((v) => {
return { label: v.toString(), value: v.toString() };
})}
value={p.vm.number_vcpu.toString()}
onValueChange={(v) => {
p.vm.number_vcpu = Number(v ?? "0");
p.onChange?.();
}}
/>
<CheckboxInput
editable={p.editable}
label="Enable VNC access"