update disk operations to use scsi,
sata still supported for compatibility
This commit is contained in:
parent
ce2e8867f3
commit
510da85c02
@ -121,7 +121,7 @@ async function populateDisk () {
|
|||||||
const busName = diskMetaData[type][prefix].name;
|
const busName = diskMetaData[type][prefix].name;
|
||||||
const disks = {};
|
const disks = {};
|
||||||
Object.keys(config.data).forEach((element) => {
|
Object.keys(config.data).forEach((element) => {
|
||||||
if (element.startsWith(prefix)) {
|
if (element.startsWith(prefix) && !isNaN(element.replace(prefix, ""))) {
|
||||||
disks[element.replace(prefix, "")] = config.data[element];
|
disks[element.replace(prefix, "")] = config.data[element];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -233,7 +233,7 @@ async function handleDiskAttach () {
|
|||||||
const header = `Attach ${this.dataset.disk}`;
|
const header = `Attach ${this.dataset.disk}`;
|
||||||
const body = `
|
const body = `
|
||||||
<form method="dialog" class="input-grid" style="grid-template-columns: auto 1fr;" id="form">
|
<form method="dialog" class="input-grid" style="grid-template-columns: auto 1fr;" id="form">
|
||||||
<label for="device">${type === "qemu" ? "SATA" : "MP"}</label>
|
<label for="device">${type === "qemu" ? "SCSI" : "MP"}</label>
|
||||||
<input class="w3-input w3-border" name="device" id="device" type="number" min="0" max="${type === "qemu" ? "5" : "255"}" required>
|
<input class="w3-input w3-border" name="device" id="device" type="number" min="0" max="${type === "qemu" ? "5" : "255"}" required>
|
||||||
</form>
|
</form>
|
||||||
`;
|
`;
|
||||||
@ -245,7 +245,7 @@ async function handleDiskAttach () {
|
|||||||
const body = {
|
const body = {
|
||||||
source: this.dataset.disk.replace("unused", "")
|
source: this.dataset.disk.replace("unused", "")
|
||||||
};
|
};
|
||||||
const prefix = type === "qemu" ? "sata" : "mp";
|
const prefix = type === "qemu" ? "scsi" : "mp";
|
||||||
const disk = `${prefix}${device}`;
|
const disk = `${prefix}${device}`;
|
||||||
const result = await requestAPI(`/cluster/${node}/${type}/${vmid}/disk/${disk}/attach`, "POST", body);
|
const result = await requestAPI(`/cluster/${node}/${type}/${vmid}/disk/${disk}/attach`, "POST", body);
|
||||||
if (result.status !== 200) {
|
if (result.status !== 200) {
|
||||||
@ -361,7 +361,7 @@ async function handleDiskAdd () {
|
|||||||
|
|
||||||
const body = `
|
const body = `
|
||||||
<form method="dialog" class="input-grid" style="grid-template-columns: auto 1fr;" id="form">
|
<form method="dialog" class="input-grid" style="grid-template-columns: auto 1fr;" id="form">
|
||||||
<label for="device">${type === "qemu" ? "SATA" : "MP"}</label><input class="w3-input w3-border" name="device" id="device" type="number" min="0" max="${type === "qemu" ? "5" : "255"}" value="0" required>
|
<label for="device">${type === "qemu" ? "SCSI" : "MP"}</label><input class="w3-input w3-border" name="device" id="device" type="number" min="0" max="${type === "qemu" ? "5" : "255"}" value="0" required>
|
||||||
${select}
|
${select}
|
||||||
<label for="size">Size (GiB)</label><input class="w3-input w3-border" name="size" id="size" type="number" min="0" max="131072" required>
|
<label for="size">Size (GiB)</label><input class="w3-input w3-border" name="size" id="size" type="number" min="0" max="131072" required>
|
||||||
</form>
|
</form>
|
||||||
@ -374,7 +374,7 @@ async function handleDiskAdd () {
|
|||||||
size: form.get("size")
|
size: form.get("size")
|
||||||
};
|
};
|
||||||
const id = form.get("device");
|
const id = form.get("device");
|
||||||
const prefix = type === "qemu" ? "sata" : "mp";
|
const prefix = type === "qemu" ? "scsi" : "mp";
|
||||||
const disk = `${prefix}${id}`;
|
const disk = `${prefix}${id}`;
|
||||||
const result = await requestAPI(`/cluster/${node}/${type}/${vmid}/disk/${disk}/create`, "POST", body);
|
const result = await requestAPI(`/cluster/${node}/${type}/${vmid}/disk/${disk}/create`, "POST", body);
|
||||||
if (result.status !== 200) {
|
if (result.status !== 200) {
|
||||||
@ -733,12 +733,16 @@ async function populateBoot () {
|
|||||||
const element = order[i];
|
const element = order[i];
|
||||||
const prefix = eligible.find((pref) => order[i].startsWith(pref));
|
const prefix = eligible.find((pref) => order[i].startsWith(pref));
|
||||||
const detail = config.data[element];
|
const detail = config.data[element];
|
||||||
|
const num = element.replace(prefix, "");
|
||||||
|
if (!isNaN(num)) {
|
||||||
bootable[i] = { id: element, value: element, prefix, detail };
|
bootable[i] = { id: element, value: element, prefix, detail };
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Object.keys(config.data).forEach((element) => {
|
Object.keys(config.data).forEach((element) => {
|
||||||
const prefix = eligible.find((pref) => element.startsWith(pref));
|
const prefix = eligible.find((pref) => element.startsWith(pref));
|
||||||
const detail = config.data[element];
|
const detail = config.data[element];
|
||||||
if (prefix && !order.includes(element)) {
|
const num = element.replace(prefix, "");
|
||||||
|
if (prefix && !order.includes(element) && !isNaN(num)) {
|
||||||
bootable.disabled.push({ id: element, value: element, prefix, detail });
|
bootable.disabled.push({ id: element, value: element, prefix, detail });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -34,9 +34,10 @@ export const resourcesConfig = {
|
|||||||
unused: { name: "UNUSED", icon: "images/resources/drive.svg", actions: ["attach", "delete", "reassign"] }
|
unused: { name: "UNUSED", icon: "images/resources/drive.svg", actions: ["attach", "delete", "reassign"] }
|
||||||
},
|
},
|
||||||
qemu: {
|
qemu: {
|
||||||
prefixOrder: ["ide", "sata", "unused"],
|
prefixOrder: ["ide", "sata", "scsi", "unused"],
|
||||||
ide: { name: "IDE", icon: "images/resources/disk.svg", actions: ["delete"] },
|
ide: { name: "IDE", icon: "images/resources/disk.svg", actions: ["delete"] },
|
||||||
sata: { name: "SATA", icon: "images/resources/drive.svg", actions: ["detach", "move", "reassign", "resize"] },
|
sata: { name: "SATA", icon: "images/resources/drive.svg", actions: ["detach", "move", "reassign", "resize"] },
|
||||||
|
scsi: { name: "SCSI", icon: "images/resources/drive.svg", actions: ["detach", "move", "reassign", "resize"] },
|
||||||
unused: { name: "UNUSED", icon: "images/resources/drive.svg", actions: ["attach", "delete", "reassign"] }
|
unused: { name: "UNUSED", icon: "images/resources/drive.svg", actions: ["attach", "delete", "reassign"] }
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
@ -173,7 +174,7 @@ export const nodesConfig = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const bootConfig = {
|
export const bootConfig = {
|
||||||
eligiblePrefixes: ["ide", "sata", "net"],
|
eligiblePrefixes: ["ide", "sata", "scsi", "net"],
|
||||||
ide: {
|
ide: {
|
||||||
icon: "images/resources/disk.svg",
|
icon: "images/resources/disk.svg",
|
||||||
alt: "IDE Bootable Icon"
|
alt: "IDE Bootable Icon"
|
||||||
@ -182,6 +183,10 @@ export const bootConfig = {
|
|||||||
icon: "images/resources/drive.svg",
|
icon: "images/resources/drive.svg",
|
||||||
alt: "SATA Bootable Icon"
|
alt: "SATA Bootable Icon"
|
||||||
},
|
},
|
||||||
|
scsi: {
|
||||||
|
icon: "images/resources/drive.svg",
|
||||||
|
alt: "SCSI Bootable Icon"
|
||||||
|
},
|
||||||
net: {
|
net: {
|
||||||
icon: "images/resources/network.svg",
|
icon: "images/resources/network.svg",
|
||||||
alt: "NET Bootable Icon"
|
alt: "NET Bootable Icon"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user