nix-community / nixops-vbox

NixOps VirtualBox backend [maintainer=@AmineChikhaoui]
GNU Lesser General Public License v3.0
22 stars 15 forks source link

_get_vim_info fails to when trying to deploy #31

Open trevorwhitney opened 1 year ago

trevorwhitney commented 1 year ago

When trying to nixops deploy using virtualbox I get the following error:

Traceback (most recent call last):
  File "/nix/store/bca37id2mkw7nv03kd6zrajs69iyhwc6-python3.8-nixops-2.0.0/bin/.nixops-wrapped", line 9, in <module>
    sys.exit(main())
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/__main__.py", line 56, in main
    args.op(args)
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/script_defs.py", line 715, in op_deploy
    depl.deploy(
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/deployment.py", line 1352, in deploy
    self.run_with_notify("deploy", lambda: self._deploy(**kwargs))
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/deployment.py", line 1341, in run_with_notify
    f()
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/deployment.py", line 1352, in <lambda>
    self.run_with_notify("deploy", lambda: self._deploy(**kwargs))
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/deployment.py", line 1255, in _deploy
    nixops.parallel.run_tasks(
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/parallel.py", line 106, in run_tasks
    raise list(exceptions.values())[0]
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/parallel.py", line 70, in thread_fun
    work_result = (worker_fun(t), None, t.name)
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/deployment.py", line 1207, in worker
    r.create(
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixopsvbox/backends/virtualbox.py", line 247, in create
    self.check()
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixops/backends/__init__.py", line 200, in check
    self._check(res)
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixopsvbox/backends/virtualbox.py", line 667, in _check
    state = self._get_vm_state(can_fail=True)
  File "/nix/store/7w0556wlj4sl1r8wy0alq6dilyg0dp7n-python3-3.8.9-env/lib/python3.8/site-packages/nixopsvbox/backends/virtualbox.py", line 161, in _get_vm_state
    vminfo = self._get_vm_info(can_fail)

Here are the results from VBoxManage showvminfo --machinereadable 9708eb54-497c-40c8-8870-1a8f878680de

name="nixops-4bce9eed-40dc-11ed-83f8-18c04d6aa95a-monterey"
groups="/"
ostype="Linux 2.6 / 3.x / 4.x (64-bit)"
UUID="9708eb54-497c-40c8-8870-1a8f878680de"
CfgFile="/home/twhitney/VirtualBox VMs/nixops-4bce9eed-40dc-11ed-83f8-18c04d6aa95a-monterey/nixops-4bce9eed-40dc-11ed-83f8-18c04d6aa95a-monterey.vbox"
SnapFldr="/home/twhitney/VirtualBox VMs/nixops-4bce9eed-40dc-11ed-83f8-18c04d6aa95a-monterey/Snapshots"
LogFldr="/home/twhitney/VirtualBox VMs/nixops-4bce9eed-40dc-11ed-83f8-18c04d6aa95a-monterey/Logs"
hardwareuuid="9708eb54-497c-40c8-8870-1a8f878680de"
memory=128
pagefusion="off"
vram=8
cpuexecutioncap=100
hpet="off"
cpu-profile="host"
chipset="piix3"
firmware="BIOS"
cpus=1
pae="on"
longmode="on"
triplefaultreset="off"
apic="on"
x2apic="on"
nested-hw-virt="off"
cpuid-portability-level=0
bootmenu="messageandmenu"
boot1="floppy"
boot2="dvd"
boot3="disk"
boot4="none"
acpi="on"
ioapic="on"
biosapic="apic"
biossystemtimeoffset=0
rtcuseutc="off"
hwvirtex="on"
nestedpaging="on"
largepages="off"
vtxvpid="on"
vtxux="on"
paravirtprovider="default"
effparavirtprovider="kvm"
VMState="poweroff"
VMStateChangeTime="2022-09-30T16:25:05.418000000"
graphicscontroller="vboxvga"
monitorcount=1
accelerate3d="off"
accelerate2dvideo="off"
teleporterenabled="off"
teleporterport=0
teleporteraddress=""
teleporterpassword=""
tracing-enabled="off"
tracing-allow-vm-access="off"
tracing-config=""
autostart-enabled="off"
autostart-delay=0
defaultfrontend=""
vmprocpriority="default"
storagecontrollername0="SATA"
storagecontrollertype0="IntelAhci"
storagecontrollerinstance0="0"
storagecontrollermaxportcount0="30"
storagecontrollerportcount0="8"
storagecontrollerbootable0="on"
"SATA-0-0"="none"
"SATA-1-0"="none"
"SATA-2-0"="none"
"SATA-3-0"="none"
"SATA-4-0"="none"
"SATA-5-0"="none"
"SATA-6-0"="none"
"SATA-7-0"="none"
natnet1="nat"
macaddress1="080027765DAC"
cableconnected1="on"
nic1="nat"
nictype1="82540EM"
nicspeed1="0"
mtu="0"
sockSnd="64"
sockRcv="64"
tcpWndSnd="64"
tcpWndRcv="64"
nic2="none"
nic3="none"
nic4="none"
nic5="none"
nic6="none"
nic7="none"
nic8="none"
hidpointing="ps2mouse"
hidkeyboard="ps2kbd"
uart1="off"
uart2="off"
uart3="off"
uart4="off"
lpt1="off"
lpt2="off"
audio="alsa"
audio_out="off"
audio_in="off"
clipboard="disabled"
draganddrop="disabled"
vrde="off"
usb="off"
ehci="off"
xhci="off"
recording_enabled="off"
recording_screens=1
 rec_screen0
rec_screen_enabled="on"
rec_screen_id=0
rec_screen_video_enabled="on"
rec_screen_audio_enabled="off"
rec_screen_dest="File"
rec_screen_dest_filename="/home/twhitney/VirtualBox VMs/nixops-4bce9eed-40dc-11ed-83f8-18c04d6aa95a-monterey/nixops-4bce9eed-40dc-11ed-83f8-18c04d6aa95a-monterey-screen0.webm"
rec_screen_opts="vc_enabled=true,ac_enabled=false,ac_profile=med"
rec_screen_video_res_xy="1024x768"
rec_screen_video_rate_kbps=512
rec_screen_video_fps=25
GuestMemoryBalloon=0

My guess is it's failling on that rec_screen0 line that does not follow the key=value format. Is there something I need to set in VirtualBox to fix this? Thanks!

ngasull commented 1 year ago

Same issue here :wave: with unstable nixpkgs on NixOS and virtualisation.virtualbox.host.enable = true;

Looks like a bug in virtualbox but it wouldn't hurt to ignore lines that aren't =-splittable.

ibizaman commented 1 year ago

FWIW, got this issue too with VBoxManage version 6.1.40r154048

How can I go about overriding nixops-vbox to point to the PR's commit in nixpkgs?

EDIT: like this:

  nixops_unstable = pkgs.nixops_unstable.override {
    overrides = (self: super: {
      nixopsvbox = super.nixopsvbox.overridePythonAttrs (
        _: {
          src = pkgs.fetchgit {
            url = "https://github.com/nix-community/nixops-vbox.git";
            rev = "170725166448f3d0830c718a944fc7df668aef6e";
            sha256 = "sha256-wiYX1cxrynGeHNmaImLCDC93HREOvWTupCi8kuKC2I4=";
          };
        }
      );
    });
  };