From 05951ffdb91e2369af9a204e1b0cc7f70defb033 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Wed, 20 Aug 2025 13:31:37 +0200 Subject: [PATCH] api/install: set install date after install --- pkgs/clan-cli/clan_lib/machines/install.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkgs/clan-cli/clan_lib/machines/install.py b/pkgs/clan-cli/clan_lib/machines/install.py index b447fcad1..066399d67 100644 --- a/pkgs/clan-cli/clan_lib/machines/install.py +++ b/pkgs/clan-cli/clan_lib/machines/install.py @@ -3,6 +3,7 @@ import os from dataclasses import dataclass from pathlib import Path from tempfile import TemporaryDirectory +from time import time from typing import Literal from clan_cli.facts.generate import generate_facts @@ -12,6 +13,8 @@ from clan_lib.api import API, message_queue from clan_lib.cmd import Log, RunOpts, run from clan_lib.machines.machines import Machine from clan_lib.nix import nix_config, nix_shell +from clan_lib.persist.inventory_store import InventoryStore +from clan_lib.persist.util import set_value_by_path from clan_lib.ssh.create import create_secret_key_nixos_anywhere from clan_lib.ssh.remote import Remote from clan_lib.vars.generate import run_generators @@ -223,3 +226,17 @@ def run_machine_install(opts: InstallOptions, target_host: Remote) -> None: [*cmd, "--phases", "reboot"], RunOpts(log=Log.BOTH, prefix=machine.name, needs_user_terminal=True), ) + + inventory_store = InventoryStore(machine.flake) + inventory = inventory_store.read() + + set_value_by_path( + inventory, + f"machine.{machine.name}.installedAt", + # Cut of the milliseconds + int(time()), + ) + + inventory_store.write( + inventory, f"Installed {machine.name} at {target_host.target}" + )