From 4d404cfc50cb773fb836b923af5d97f9a3ab5521 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 20 Feb 2024 13:11:38 +0100 Subject: [PATCH 1/2] secret_store: drop update_check and generate_hash as abstract methods Only password implements those just now --- pkgs/clan-cli/clan_cli/secrets/modules/__init__.py | 7 +------ pkgs/clan-cli/clan_cli/secrets/modules/password_store.py | 2 ++ pkgs/clan-cli/clan_cli/secrets/modules/sops.py | 7 +++---- pkgs/clan-cli/clan_cli/secrets/modules/vm.py | 3 --- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/secrets/modules/__init__.py b/pkgs/clan-cli/clan_cli/secrets/modules/__init__.py index 591e4a5f..5e26009c 100644 --- a/pkgs/clan-cli/clan_cli/secrets/modules/__init__.py +++ b/pkgs/clan-cli/clan_cli/secrets/modules/__init__.py @@ -23,13 +23,8 @@ class SecretStoreBase(ABC): def exists(self, service: str, name: str) -> bool: pass - @abstractmethod - def generate_hash(self) -> bytes: - pass - - @abstractmethod def update_check(self) -> bool: - pass + return False @abstractmethod def upload(self, output_dir: Path) -> None: diff --git a/pkgs/clan-cli/clan_cli/secrets/modules/password_store.py b/pkgs/clan-cli/clan_cli/secrets/modules/password_store.py index a1164a9f..cc83dfb5 100644 --- a/pkgs/clan-cli/clan_cli/secrets/modules/password_store.py +++ b/pkgs/clan-cli/clan_cli/secrets/modules/password_store.py @@ -88,6 +88,8 @@ class SecretStore(SecretStoreBase): hashes.sort() return b"\n".join(hashes) + # FIXME: add this when we switch to python3.12 + # @override def update_check(self) -> bool: local_hash = self.generate_hash() remote_hash = self.machine.target_host.run( diff --git a/pkgs/clan-cli/clan_cli/secrets/modules/sops.py b/pkgs/clan-cli/clan_cli/secrets/modules/sops.py index 08122313..3f91d604 100644 --- a/pkgs/clan-cli/clan_cli/secrets/modules/sops.py +++ b/pkgs/clan-cli/clan_cli/secrets/modules/sops.py @@ -6,8 +6,10 @@ from clan_cli.secrets.machines import add_machine, has_machine from clan_cli.secrets.secrets import decrypt_secret, encrypt_secret, has_secret from clan_cli.secrets.sops import generate_private_key +from . import SecretStoreBase -class SecretStore: + +class SecretStore(SecretStoreBase): def __init__(self, machine: Machine) -> None: self.machine = machine @@ -52,9 +54,6 @@ class SecretStore: f"{self.machine.name}-{name}", ) - def update_check(self) -> bool: - return False - def upload(self, output_dir: Path) -> None: key_name = f"{self.machine.name}-age.key" if not has_secret(self.machine.flake_dir, key_name): diff --git a/pkgs/clan-cli/clan_cli/secrets/modules/vm.py b/pkgs/clan-cli/clan_cli/secrets/modules/vm.py index 6ae5acba..fc3ea3cd 100644 --- a/pkgs/clan-cli/clan_cli/secrets/modules/vm.py +++ b/pkgs/clan-cli/clan_cli/secrets/modules/vm.py @@ -29,9 +29,6 @@ class SecretStore(SecretStoreBase): def exists(self, service: str, name: str) -> bool: return (self.dir / service / name).exists() - def update_check(self) -> bool: - return False - def upload(self, output_dir: Path) -> None: if os.path.exists(output_dir): shutil.rmtree(output_dir) -- 2.45.2 From 3695a5adf2b3ae56754cf7a95c759d45ef0cbe46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 20 Feb 2024 14:50:20 +0100 Subject: [PATCH 2/2] disable vgpu on non-nixos systems --- pkgs/clan-cli/clan_cli/vms/qemu.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/vms/qemu.py b/pkgs/clan-cli/clan_cli/vms/qemu.py index ae07611d..d21df202 100644 --- a/pkgs/clan-cli/clan_cli/vms/qemu.py +++ b/pkgs/clan-cli/clan_cli/vms/qemu.py @@ -1,3 +1,4 @@ +import os import random from dataclasses import dataclass from pathlib import Path @@ -24,9 +25,9 @@ def graphics_options(vm: VmConfig) -> GraphicOptions: return GraphicOptions([ *common, "-nographic", - "-vga", "none", "-device", f"vhost-vsock-pci,id=vhost-vsock-pci0,guest-cid={cid}", - "-display", "egl-headless,gl=core", + "-vga", "none", + #"-display", "egl-headless,gl=core", # this would make the gpu part of the hypervisor #"-device", "virtio-vga-gl,blob=true", @@ -38,13 +39,24 @@ def graphics_options(vm: VmConfig) -> GraphicOptions: ], cid) # fmt: on else: + if not os.path.exists("/run/opengl-driver"): + display_options = [ + "-vga", + "none", + "-display", + "gtk,gl=on", + "-device", + "virtio-gpu-gl", + "-display", + "spice-app,gl=on", + ] + else: + display_options = ["-display", "spice-app"] + # fmt: off return GraphicOptions([ *common, - "-vga", "none", - "-display", "gtk,gl=on", - "-device", "virtio-gpu-gl", - "-display", "spice-app,gl=on", + *display_options, "-device", "virtio-serial-pci", "-chardev", "spicevmc,id=vdagent0,name=vdagent", "-device", "virtserialport,chardev=vdagent0,name=com.redhat.spice.0", -- 2.45.2