clan-cli install: use new Machine interface, fix mypy error
This commit is contained in:
parent
6ba641c974
commit
abaa218e27
@ -41,8 +41,9 @@ in
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
self
|
self
|
||||||
pkgs.stdenv.drvPath
|
pkgs.stdenv.drvPath
|
||||||
self.nixosConfigurations.test_install_machine.config.system.build.toplevel
|
clan.clanInternals.machines.x86_64-linux.test_install_machine.config.system.build.toplevel
|
||||||
self.nixosConfigurations.test_install_machine.config.system.build.diskoScript
|
clan.clanInternals.machines.x86_64-linux.test_install_machine.config.system.build.diskoScript
|
||||||
|
clan.clanInternals.machines.x86_64-linux.test_install_machine.config.system.clan.deployment.file
|
||||||
pkgs.nixos-anywhere
|
pkgs.nixos-anywhere
|
||||||
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
|
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
|
||||||
closureInfo = pkgs.closureInfo { rootPaths = dependencies; };
|
closureInfo = pkgs.closureInfo { rootPaths = dependencies; };
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import importlib
|
import importlib
|
||||||
|
import logging
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from tempfile import TemporaryDirectory
|
from tempfile import TemporaryDirectory
|
||||||
@ -9,13 +10,20 @@ from ..machines.machines import Machine
|
|||||||
from ..nix import nix_shell
|
from ..nix import nix_shell
|
||||||
from ..secrets.generate import generate_secrets
|
from ..secrets.generate import generate_secrets
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def install_nixos(machine: Machine, kexec: str | None = None) -> None:
|
def install_nixos(machine: Machine, kexec: str | None = None) -> None:
|
||||||
|
log.info(f"deployment address1: {machine.deployment_info['deploymentAddress']}")
|
||||||
secrets_module = importlib.import_module(machine.secrets_module)
|
secrets_module = importlib.import_module(machine.secrets_module)
|
||||||
|
log.info(f"installing {machine.name}")
|
||||||
|
log.info(f"using secret store: {secrets_module.SecretStore}")
|
||||||
secret_store = secrets_module.SecretStore(machine=machine)
|
secret_store = secrets_module.SecretStore(machine=machine)
|
||||||
|
|
||||||
h = machine.host
|
h = machine.host
|
||||||
|
log.info(f"deployment address2: {machine.deployment_info['deploymentAddress']}")
|
||||||
target_host = f"{h.user or 'root'}@{h.host}"
|
target_host = f"{h.user or 'root'}@{h.host}"
|
||||||
|
log.info(f"target host: {target_host}")
|
||||||
|
|
||||||
flake_attr = h.meta.get("flake_attr", "")
|
flake_attr = h.meta.get("flake_attr", "")
|
||||||
|
|
||||||
@ -23,11 +31,11 @@ def install_nixos(machine: Machine, kexec: str | None = None) -> None:
|
|||||||
|
|
||||||
with TemporaryDirectory() as tmpdir_:
|
with TemporaryDirectory() as tmpdir_:
|
||||||
tmpdir = Path(tmpdir_)
|
tmpdir = Path(tmpdir_)
|
||||||
upload_dir = machine.secrets_upload_directory
|
upload_dir_ = machine.secrets_upload_directory
|
||||||
|
|
||||||
if upload_dir.startswith("/"):
|
if upload_dir_.startswith("/"):
|
||||||
upload_dir = upload_dir[1:]
|
upload_dir_ = upload_dir_[1:]
|
||||||
upload_dir = tmpdir / upload_dir
|
upload_dir = tmpdir / upload_dir_
|
||||||
upload_dir.mkdir(parents=True)
|
upload_dir.mkdir(parents=True)
|
||||||
secret_store.upload(upload_dir)
|
secret_store.upload(upload_dir)
|
||||||
|
|
||||||
@ -69,7 +77,10 @@ def install_command(args: argparse.Namespace) -> None:
|
|||||||
kexec=args.kexec,
|
kexec=args.kexec,
|
||||||
)
|
)
|
||||||
machine = Machine(opts.machine, flake=opts.flake)
|
machine = Machine(opts.machine, flake=opts.flake)
|
||||||
machine.deployment_address = opts.target_host
|
machine.get_deployment_info()
|
||||||
|
machine.deployment_info["deploymentAddress"] = opts.target_host
|
||||||
|
log.info(f"target host: {opts.target_host}")
|
||||||
|
log.info(f"deployment address: {machine.deployment_info['deploymentAddress']}")
|
||||||
|
|
||||||
install_nixos(machine, kexec=opts.kexec)
|
install_nixos(machine, kexec=opts.kexec)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user