clan_vm_manager: Fix switch <-> vm status desync
All checks were successful
checks / check-links (pull_request) Successful in 21s
checks / checks-impure (pull_request) Successful in 1m54s
checks / checks (pull_request) Successful in 2m21s

This commit is contained in:
Luis Hebendanz 2024-03-06 00:32:22 +07:00
parent cd5afa1329
commit 6f590ce389
2 changed files with 8 additions and 7 deletions

View File

@ -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:

View File

@ -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)