lib/get_host: improve abstraction, turn missconfiguration into a warning
Motivation: A warning should encourage consistent usage of inventory.machines setting targetHost inside the machine should be considered a custom override Changing the warning strings to avoid the term 'nix'/'json' both inventory and nixos machines are nix features
This commit is contained in:
@@ -178,7 +178,7 @@ class Machine:
|
|||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True)
|
||||||
class RemoteSource:
|
class RemoteSource:
|
||||||
data: Remote
|
data: Remote
|
||||||
source: Literal["inventory", "nix_machine"]
|
source: Literal["inventory", "machine"]
|
||||||
|
|
||||||
|
|
||||||
@API.register
|
@API.register
|
||||||
@@ -191,15 +191,15 @@ def get_host(
|
|||||||
machine = Machine(name=name, flake=flake)
|
machine = Machine(name=name, flake=flake)
|
||||||
inv_machine = machine.get_inv_machine()
|
inv_machine = machine.get_inv_machine()
|
||||||
|
|
||||||
source: Literal["inventory", "nix_machine"] = "inventory"
|
source: Literal["inventory", "machine"] = "inventory"
|
||||||
host_str = inv_machine.get("deploy", {}).get(field)
|
host_str = inv_machine.get("deploy", {}).get(field)
|
||||||
|
|
||||||
if host_str is None:
|
if host_str is None:
|
||||||
machine.debug(
|
machine.warn(
|
||||||
f"'{field}' is not set in inventory, falling back to slower Nix config, set it either through the Nix or json interface to improve performance"
|
f"'{field}' is not set in `inventory.machines.${name}.deploy.targetHost` - falling back to _slower_ nixos option: `clan.core.networking.targetHost`"
|
||||||
)
|
)
|
||||||
host_str = machine.select(f'config.clan.core.networking."{field}"')
|
host_str = machine.select(f'config.clan.core.networking."{field}"')
|
||||||
source = "nix_machine"
|
source = "machine"
|
||||||
|
|
||||||
if not host_str:
|
if not host_str:
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user