From c701ab75142b5b1eedbe3247b523bd84c8e6a82b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 23 Nov 2023 17:32:37 +0100 Subject: [PATCH 1/2] fake_deal: fixup call wrapper --- pkgs/clan-cli/clan_cli/deal.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/deal.py b/pkgs/clan-cli/clan_cli/deal.py index ee57edd13..f60c3ab4e 100644 --- a/pkgs/clan-cli/clan_cli/deal.py +++ b/pkgs/clan-cli/clan_cli/deal.py @@ -1,13 +1,16 @@ from types import ModuleType -from typing import Callable +from typing import Any, Callable class FakeDeal: - def __getattr__(self, _name: str) -> "FakeDeal": - return FakeDeal() + def __getattr__(self, name: str) -> "Callable": + return self.mock_call - def __call__(self, func: Callable) -> Callable: - return func + def mock_call(self, *args: Any, **kwargs: Any) -> Callable: + def wrapper(func: Callable) -> Callable: + return func + + return wrapper try: From 63a74ced2e7308b7d7b4af9d174e75196bf1ec8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 23 Nov 2023 17:32:51 +0100 Subject: [PATCH 2/2] spice: use unix socket instead of tcp --- pkgs/clan-cli/clan_cli/vms/create.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/vms/create.py b/pkgs/clan-cli/clan_cli/vms/create.py index c964d035a..5e4b6d600 100644 --- a/pkgs/clan-cli/clan_cli/vms/create.py +++ b/pkgs/clan-cli/clan_cli/vms/create.py @@ -20,6 +20,7 @@ def qemu_command( xchg_dir: Path, secrets_dir: Path, disk_img: Path, + spice_socket: Path, ) -> list[str]: kernel_cmdline = [ (Path(nixos_config["toplevel"]) / "kernel-params").read_text(), @@ -64,7 +65,7 @@ def qemu_command( "-device", "virtio-serial-pci", "-chardev", "spicevmc,id=vdagent0,name=vdagent", "-device", "virtserialport,chardev=vdagent0,name=com.redhat.spice.0", - "-spice", "disable-ticketing=on,port=5930,addr=127.0.0.1", + "-spice", f"unix=on,addr={spice_socket},disable-ticketing=on", "-device", "qemu-xhci,id=spicepass", "-chardev", "spicevmc,id=usbredirchardev1,name=usbredir", "-device", "usb-redir,chardev=usbredirchardev1,id=usbredirdev1", @@ -142,6 +143,7 @@ class BuildVmTask(BaseTask): secrets_dir = tmpdir / "secrets" secrets_dir.mkdir(exist_ok=True) disk_img = tmpdir / "disk.img" + spice_socket = tmpdir / "spice.sock" env = os.environ.copy() env["CLAN_DIR"] = str(self.vm.flake_url) @@ -208,9 +210,10 @@ class BuildVmTask(BaseTask): xchg_dir=xchg_dir, secrets_dir=secrets_dir, disk_img=disk_img, + spice_socket=spice_socket, ) print( - "nix shell nixpkgs#spice-gtk -c spicy --port 5930 --spice-shared-dir $HOME" + f"nix shell nixpkgs#spice-gtk -c spicy --uri=spice+unix://{spice_socket} --spice-shared-dir $HOME" ) print("$ " + shlex.join(qemu_cmd))