From 6f590ce3892bab39285fa6926aaeef6646e33f42 Mon Sep 17 00:00:00 2001 From: Qubasa Date: Wed, 6 Mar 2024 00:32:22 +0700 Subject: [PATCH] clan_vm_manager: Fix switch <-> vm status desync --- pkgs/clan-vm-manager/clan_vm_manager/components/vmobj.py | 6 +++--- pkgs/clan-vm-manager/clan_vm_manager/views/list.py | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/pkgs/clan-vm-manager/clan_vm_manager/components/vmobj.py b/pkgs/clan-vm-manager/clan_vm_manager/components/vmobj.py index ee1830ed..22208265 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/components/vmobj.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/components/vmobj.py @@ -254,15 +254,15 @@ class VMObject(GObject.Object): f"VM {self.get_id()} has not stopped after {self.KILL_TIMEOUT}s. Killing it" ) self.vm_process.kill_group() - return + break if self.is_building(): log.info(f"VM {self.get_id()} is still building. Killing it") self.build_process.kill_group() - return + break if not self.machine: log.error(f"Machine object is None. Killing VM {self.get_id()}") self.vm_process.kill_group() - return + break # Try to shutdown the VM gracefully using QMP try: diff --git a/pkgs/clan-vm-manager/clan_vm_manager/views/list.py b/pkgs/clan-vm-manager/clan_vm_manager/views/list.py index 80d16ad8..b4fb9bdc 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/views/list.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/views/list.py @@ -4,7 +4,7 @@ from functools import partial from typing import Any import gi -from clan_cli import history, machines +from clan_cli import history from clan_cli.clan_uri import ClanURI from clan_vm_manager.components.interfaces import ClanConfig @@ -81,9 +81,10 @@ class ClanList(Gtk.Box): app.add_action(add_action) menu_model = Gio.Menu() - for vm in machines.list.list_machines(flake_url=vm.data.flake.flake_url): - if vm not in vm_store: - menu_model.append(vm, f"app.add::{vm}") + # TODO: Make this lazy, blocks UI startup for too long + # for vm in machines.list.list_machines(flake_url=vm.data.flake.flake_url): + # if vm not in vm_store: + # menu_model.append(vm, f"app.add::{vm}") box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=5) box.set_valign(Gtk.Align.CENTER)