vars: refactor - health checks on multiple generators

This commit is contained in:
DavHau
2025-08-12 13:12:49 +07:00
parent 8d871aafe8
commit e28b8dc944
5 changed files with 14 additions and 19 deletions

View File

@@ -78,7 +78,7 @@ class StoreBase(ABC):
def health_check(
self,
machine: str,
generator: "Generator | None" = None,
generators: list["Generator"] | None = None,
file_name: str | None = None,
) -> str | None:
return None
@@ -86,7 +86,7 @@ class StoreBase(ABC):
def fix(
self,
machine: str,
generator: "Generator | None" = None,
generators: list["Generator"] | None = None,
file_name: str | None = None,
) -> None:
return None

View File

@@ -66,7 +66,7 @@ def vars_status(
else:
msg = machine.secret_vars_store.health_check(
machine=machine.name,
generator=generator,
generators=[generator],
file_name=file.name,
)
if msg:

View File

@@ -24,9 +24,8 @@ def fix_vars(machine: Machine, generator_name: None | str = None) -> None:
)
raise ClanError(err_msg)
for generator in generators:
machine.public_vars_store.fix(machine.name, generator=generator)
machine.secret_vars_store.fix(machine.name, generator=generator)
machine.public_vars_store.fix(machine.name, generators=generators)
machine.secret_vars_store.fix(machine.name, generators=generators)
def fix_command(args: argparse.Namespace) -> None:

View File

@@ -529,19 +529,19 @@ def run_generators(
machine = Machine(name=machine_name, flake=Flake(str(base_dir)))
if not generators:
filtered_generators = Generator.get_machine_generators(
generator_objects = Generator.get_machine_generators(
machine_name, machine.flake
)
else:
generators_set = set(generators)
filtered_generators = [
generator_objects = [
g
for g in Generator.get_machine_generators(machine_name, machine.flake)
if g.name in generators_set
]
return _generate_vars_for_machine(
machine=machine,
generators=filtered_generators,
generators=generator_objects,
all_prompt_values=all_prompt_values,
no_sandbox=no_sandbox,
)
@@ -562,10 +562,10 @@ def create_machine_vars_interactive(
break
pub_healtcheck_msg = machine.public_vars_store.health_check(
machine.name, _generator
machine.name, [_generator] if _generator else None
)
sec_healtcheck_msg = machine.secret_vars_store.health_check(
machine.name, _generator
machine.name, [_generator] if _generator else None
)
if pub_healtcheck_msg or sec_healtcheck_msg:

View File

@@ -112,7 +112,7 @@ class SecretStore(StoreBase):
def health_check(
self,
machine: str,
generator: Generator | None = None,
generators: list[Generator] | None = None,
file_name: str | None = None,
) -> str | None:
"""
@@ -120,12 +120,10 @@ class SecretStore(StoreBase):
when new users were added.
"""
if generator is None:
if generators is None:
from clan_cli.vars.generate import Generator
generators = Generator.get_machine_generators(machine, self.flake)
else:
generators = [generator]
file_found = False
outdated = []
for generator in generators:
@@ -314,17 +312,15 @@ class SecretStore(StoreBase):
def fix(
self,
machine: str,
generator: Generator | None = None,
generators: list[Generator] | None = None,
file_name: str | None = None,
) -> None:
from clan_cli.secrets.secrets import update_keys
if generator is None:
if generators is None:
from clan_cli.vars.generate import Generator
generators = Generator.get_machine_generators(machine, self.flake)
else:
generators = [generator]
file_found = False
for generator in generators:
for file in generator.files: