nixos/virtualbox-image: Allow SCSI storage controller for vSphere

This is because vSphere version 6.7.0.51000 errors with

        Issues detected with selected template. Details: -
        78:7:VALUE_ILLEGAL: Value ''3'' of Parent element does not refer
        to a ref of type DiskControllerReference.

when using SATA.
This commit is contained in:
Robert Kovacsics 2022-10-13 18:01:08 +01:00 committed by Bjørn Forsman
parent 4009f60d0b
commit 32ec41a672

View file

@ -124,6 +124,29 @@ in {
Extra commands to run after exporting the OVA to `$fn`.
'';
};
storageController = mkOption {
type = with types; attrsOf (oneOf [ str int bool (listOf str) ]);
example = {
name = "SCSI";
add = "scsi";
portcount = 16;
bootable = "on";
hostiocache = "on";
};
default = {
name = "SATA";
add = "sata";
portcount = 4;
bootable = "on";
hostiocache = "on";
};
description = lib.mdDoc ''
Parameters passed to the VirtualBox appliance. Must have at least
`name`.
Run `VBoxManage storagectl --help` to see more options.
'';
};
};
};
@ -184,11 +207,11 @@ in {
VBoxManage modifyvm "$vmName" \
--memory ${toString cfg.memorySize} \
${lib.cli.toGNUCommandLineShell { } cfg.params}
VBoxManage storagectl "$vmName" --name SATA --add sata --portcount 4 --bootable on --hostiocache on
VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \
VBoxManage storagectl "$vmName" ${lib.cli.toGNUCommandLineShell { } cfg.storageController}
VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 0 --device 0 --type hdd \
--medium disk.vmdk
${optionalString (cfg.extraDisk != null) ''
VBoxManage storageattach "$vmName" --storagectl SATA --port 1 --device 0 --type hdd \
VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 1 --device 0 --type hdd \
--medium data-disk.vmdk
''}