nixos/vms: Make drives a list (for ordering)
This commit is contained in:
@@ -82,6 +82,7 @@ let
|
||||
|
||||
driveOpts = with lib.types; {
|
||||
options = {
|
||||
name = mkOpt' str null "Drive name.";
|
||||
backend = mkOpt' qemuOpts { } "Backend blockdev options.";
|
||||
|
||||
format = mkOpt' qemuOpts { } "Format blockdev options.";
|
||||
@@ -128,7 +129,7 @@ let
|
||||
});
|
||||
default = { };
|
||||
};
|
||||
drives = mkOpt' (attrsOf (submodule driveOpts)) { } "Drives to attach to VM.";
|
||||
drives = mkOpt' (listOf (submodule driveOpts)) { } "Drives to attach to VM.";
|
||||
hostDevices = mkOpt' (attrsOf (submodule hostDevOpts)) { } "Host PCI devices to pass to the VM.";
|
||||
};
|
||||
};
|
||||
@@ -170,10 +171,10 @@ let
|
||||
"netdev tap,id=${nn},ifname=${c.ifname},script=no"
|
||||
("device ${c.model},netdev=${nn},mac=${c.mac}" + (extraQEMUOpts c.extraOptions))
|
||||
]) i.networks)) ++
|
||||
(flatten (mapAttrsToList (dn: c: [
|
||||
"blockdev node-name=${dn}-backend,${c.backend}"
|
||||
"blockdev node-name=${dn}-format,${c.formatBackendProp}=${dn}-backend,${c.format}"
|
||||
("device ${c.frontend},id=${dn},drive=${dn}-format" + (extraQEMUOpts c.frontendOpts))
|
||||
(flatten (map (d: [
|
||||
"blockdev node-name=${d.name}-backend,${d.backend}"
|
||||
"blockdev node-name=${d.name}-format,${d.formatBackendProp}=${d.name}-backend,${d.format}"
|
||||
("device ${d.frontend},id=${d.name},drive=${d.name}-format" + (extraQEMUOpts d.frontendOpts))
|
||||
]) i.drives)) ++
|
||||
(map (bdf: "device vfio-pci,host=${bdf}") (attrNames i.hostDevices));
|
||||
args = map (v: "-${v}") flags;
|
||||
|
Reference in New Issue
Block a user