add factsStore modules

This commit is contained in:
lassulus
2024-02-12 13:31:12 +01:00
parent f9f428b960
commit 98139ac48d
10 changed files with 162 additions and 8 deletions

View File

@@ -10,6 +10,8 @@ log = logging.getLogger(__name__)
def check_secrets(machine: Machine) -> bool:
secrets_module = importlib.import_module(machine.secrets_module)
secret_store = secrets_module.SecretStore(machine=machine)
facts_module = importlib.import_module(machine.facts_module)
fact_store = facts_module.FactsStore(machine=machine)
missing_secrets = []
missing_facts = []
@@ -20,7 +22,7 @@ def check_secrets(machine: Machine) -> bool:
missing_secrets.append((service, secret))
for fact in machine.secrets_data[service]["facts"].values():
if not (machine.flake / fact).exists():
if not fact_store.exists(service, fact):
log.info(f"Fact {fact} for service {service} is missing")
missing_facts.append((service, fact))

View File

@@ -2,7 +2,6 @@ import argparse
import importlib
import logging
import os
import shutil
from pathlib import Path
from tempfile import TemporaryDirectory
@@ -21,6 +20,9 @@ def generate_secrets(machine: Machine) -> None:
secrets_module = importlib.import_module(machine.secrets_module)
secret_store = secrets_module.SecretStore(machine=machine)
facts_module = importlib.import_module(machine.facts_module)
fact_store = facts_module.FactStore(machine=machine)
with TemporaryDirectory() as d:
for service in machine.secrets_data:
tmpdir = Path(d) / service
@@ -84,10 +86,10 @@ def generate_secrets(machine: Machine) -> None:
msg = f"did not generate a file for '{name}' when running the following command:\n"
msg += machine.secrets_data[service]["generator"]
raise ClanError(msg)
fact_path = machine.flake / fact_path
fact_path.parent.mkdir(parents=True, exist_ok=True)
shutil.copyfile(fact_file, fact_path)
files_to_commit.append(fact_path)
fact_file = fact_store.set(
service, fact_path, fact_file.read_bytes()
)
files_to_commit.append(fact_file)
commit_files(
files_to_commit,
machine.flake_dir,