pass in flakeid to vm_state_dir

This commit is contained in:
Jörg Thalheim
2024-10-02 10:59:41 +02:00
committed by Mic92
parent 725009d4a8
commit 0a568be528
7 changed files with 16 additions and 18 deletions

View File

@@ -4,6 +4,8 @@ import sys
import urllib
from pathlib import Path
from clan_cli.clan_uri import FlakeId
from .errors import ClanError
log = logging.getLogger(__name__)
@@ -100,8 +102,8 @@ def user_history_file() -> Path:
return user_config_dir() / "clan" / "history"
def vm_state_dir(flake_url: str, vm_name: str) -> Path:
clan_key = clan_key_safe(flake_url)
def vm_state_dir(flake_url: FlakeId, vm_name: str) -> Path:
clan_key = clan_key_safe(str(flake_url))
return user_data_dir() / "clan" / "vmstate" / clan_key / vm_name

View File

@@ -14,7 +14,7 @@ class FactStore(FactStoreBase):
def __init__(self, machine: Machine) -> None:
self.machine = machine
self.works_remotely = False
self.dir = vm_state_dir(str(machine.flake), machine.name) / "facts"
self.dir = vm_state_dir(machine.flake, machine.name) / "facts"
log.debug(f"FactStore initialized with dir {self.dir}")
def exists(self, service: str, name: str) -> bool:

View File

@@ -10,7 +10,7 @@ from . import SecretStoreBase
class SecretStore(SecretStoreBase):
def __init__(self, machine: Machine) -> None:
self.machine = machine
self.dir = vm_state_dir(str(machine.flake), machine.name) / "secrets"
self.dir = vm_state_dir(machine.flake, machine.name) / "secrets"
self.dir.mkdir(parents=True, exist_ok=True)
def set(

View File

@@ -14,7 +14,7 @@ class FactStore(FactStoreBase):
def __init__(self, machine: Machine) -> None:
self.machine = machine
self.works_remotely = False
self.dir = vm_state_dir(str(machine.flake), machine.name) / "facts"
self.dir = vm_state_dir(machine.flake, machine.name) / "facts"
log.debug(f"FactStore initialized with dir {self.dir}")
@property

View File

@@ -10,7 +10,7 @@ from . import SecretStoreBase
class SecretStore(SecretStoreBase):
def __init__(self, machine: Machine) -> None:
self.machine = machine
self.dir = vm_state_dir(str(machine.flake), machine.name) / "secrets"
self.dir = vm_state_dir(machine.flake, machine.name) / "secrets"
self.dir.mkdir(parents=True, exist_ok=True)
@property

View File

@@ -16,6 +16,7 @@
# (subdir / ".clan-flake").touch()
# assert _get_clan_flake_toplevel() == subdir
from clan_cli.clan_uri import FlakeId
from clan_cli.dirs import clan_key_safe, vm_state_dir
@@ -24,12 +25,12 @@ def test_clan_key_safe() -> None:
def test_vm_state_dir_identity() -> None:
dir1 = vm_state_dir("https://some.clan", "vm1")
dir2 = vm_state_dir("https://some.clan", "vm1")
dir1 = vm_state_dir(FlakeId("https://some.clan"), "vm1")
dir2 = vm_state_dir(FlakeId("https://some.clan"), "vm1")
assert str(dir1) == str(dir2)
def test_vm_state_dir_no_collision() -> None:
dir1 = vm_state_dir("/foo/bar", "vm1")
dir2 = vm_state_dir("https://some.clan", "vm1")
dir1 = vm_state_dir(FlakeId("/foo/bar"), "vm1")
dir2 = vm_state_dir(FlakeId("https://some.clan"), "vm1")
assert str(dir1) != str(dir2)

View File

@@ -158,14 +158,9 @@ class VMObject(GObject.Object):
)
assert self.machine is not None
if self.machine.flake.is_local():
state_dir = vm_state_dir(
flake_url=str(self.machine.flake.path), vm_name=self.machine.name
)
else:
state_dir = vm_state_dir(
flake_url=self.machine.flake.url, vm_name=self.machine.name
)
state_dir = vm_state_dir(
flake_url=self.machine.flake, vm_name=self.machine.name
)
self.qmp_wrap = QMPWrapper(state_dir)
assert self.machine is not None
yield self.machine