pass in flakeid to vm_state_dir
This commit is contained in:
@@ -4,6 +4,8 @@ import sys
|
|||||||
import urllib
|
import urllib
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
from clan_cli.clan_uri import FlakeId
|
||||||
|
|
||||||
from .errors import ClanError
|
from .errors import ClanError
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@@ -100,8 +102,8 @@ def user_history_file() -> Path:
|
|||||||
return user_config_dir() / "clan" / "history"
|
return user_config_dir() / "clan" / "history"
|
||||||
|
|
||||||
|
|
||||||
def vm_state_dir(flake_url: str, vm_name: str) -> Path:
|
def vm_state_dir(flake_url: FlakeId, vm_name: str) -> Path:
|
||||||
clan_key = clan_key_safe(flake_url)
|
clan_key = clan_key_safe(str(flake_url))
|
||||||
return user_data_dir() / "clan" / "vmstate" / clan_key / vm_name
|
return user_data_dir() / "clan" / "vmstate" / clan_key / vm_name
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class FactStore(FactStoreBase):
|
|||||||
def __init__(self, machine: Machine) -> None:
|
def __init__(self, machine: Machine) -> None:
|
||||||
self.machine = machine
|
self.machine = machine
|
||||||
self.works_remotely = False
|
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}")
|
log.debug(f"FactStore initialized with dir {self.dir}")
|
||||||
|
|
||||||
def exists(self, service: str, name: str) -> bool:
|
def exists(self, service: str, name: str) -> bool:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from . import SecretStoreBase
|
|||||||
class SecretStore(SecretStoreBase):
|
class SecretStore(SecretStoreBase):
|
||||||
def __init__(self, machine: Machine) -> None:
|
def __init__(self, machine: Machine) -> None:
|
||||||
self.machine = machine
|
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)
|
self.dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
def set(
|
def set(
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class FactStore(FactStoreBase):
|
|||||||
def __init__(self, machine: Machine) -> None:
|
def __init__(self, machine: Machine) -> None:
|
||||||
self.machine = machine
|
self.machine = machine
|
||||||
self.works_remotely = False
|
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}")
|
log.debug(f"FactStore initialized with dir {self.dir}")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from . import SecretStoreBase
|
|||||||
class SecretStore(SecretStoreBase):
|
class SecretStore(SecretStoreBase):
|
||||||
def __init__(self, machine: Machine) -> None:
|
def __init__(self, machine: Machine) -> None:
|
||||||
self.machine = machine
|
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)
|
self.dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
# (subdir / ".clan-flake").touch()
|
# (subdir / ".clan-flake").touch()
|
||||||
# assert _get_clan_flake_toplevel() == subdir
|
# assert _get_clan_flake_toplevel() == subdir
|
||||||
|
|
||||||
|
from clan_cli.clan_uri import FlakeId
|
||||||
from clan_cli.dirs import clan_key_safe, vm_state_dir
|
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:
|
def test_vm_state_dir_identity() -> None:
|
||||||
dir1 = vm_state_dir("https://some.clan", "vm1")
|
dir1 = vm_state_dir(FlakeId("https://some.clan"), "vm1")
|
||||||
dir2 = vm_state_dir("https://some.clan", "vm1")
|
dir2 = vm_state_dir(FlakeId("https://some.clan"), "vm1")
|
||||||
assert str(dir1) == str(dir2)
|
assert str(dir1) == str(dir2)
|
||||||
|
|
||||||
|
|
||||||
def test_vm_state_dir_no_collision() -> None:
|
def test_vm_state_dir_no_collision() -> None:
|
||||||
dir1 = vm_state_dir("/foo/bar", "vm1")
|
dir1 = vm_state_dir(FlakeId("/foo/bar"), "vm1")
|
||||||
dir2 = vm_state_dir("https://some.clan", "vm1")
|
dir2 = vm_state_dir(FlakeId("https://some.clan"), "vm1")
|
||||||
assert str(dir1) != str(dir2)
|
assert str(dir1) != str(dir2)
|
||||||
|
|||||||
@@ -158,14 +158,9 @@ class VMObject(GObject.Object):
|
|||||||
)
|
)
|
||||||
assert self.machine is not None
|
assert self.machine is not None
|
||||||
|
|
||||||
if self.machine.flake.is_local():
|
state_dir = vm_state_dir(
|
||||||
state_dir = vm_state_dir(
|
flake_url=self.machine.flake, vm_name=self.machine.name
|
||||||
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
|
|
||||||
)
|
|
||||||
self.qmp_wrap = QMPWrapper(state_dir)
|
self.qmp_wrap = QMPWrapper(state_dir)
|
||||||
assert self.machine is not None
|
assert self.machine is not None
|
||||||
yield self.machine
|
yield self.machine
|
||||||
|
|||||||
Reference in New Issue
Block a user