vars: refactor - pass Machine objects to run_generators
This commit is contained in:
@@ -323,8 +323,8 @@ export const useMachineGenerators = (
|
||||
flake: {
|
||||
identifier: clanUri,
|
||||
},
|
||||
full_closure: true, // TODO: Make this configurable
|
||||
},
|
||||
full_closure: true, // TODO: Make this configurable
|
||||
// TODO: Make this configurable
|
||||
include_previous_values: true,
|
||||
});
|
||||
|
||||
@@ -548,8 +548,12 @@ const InstallSummary = () => {
|
||||
|
||||
const runGenerators = client.fetch("run_generators", {
|
||||
all_prompt_values: store.install.promptValues,
|
||||
base_dir: clanUri,
|
||||
machine_name: store.install.machineName,
|
||||
machine: {
|
||||
name: store.install.machineName,
|
||||
flake: {
|
||||
identifier: clanUri,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
set("install", (s) => ({
|
||||
|
||||
@@ -699,8 +699,7 @@ def test_api_set_prompts(
|
||||
monkeypatch.chdir(flake.path)
|
||||
|
||||
run_generators(
|
||||
machine_name="my_machine",
|
||||
base_dir=flake.path,
|
||||
machine=Machine(name="my_machine", flake=Flake(str(flake.path))),
|
||||
generators=["my_generator"],
|
||||
all_prompt_values={
|
||||
"my_generator": {
|
||||
@@ -714,8 +713,7 @@ def test_api_set_prompts(
|
||||
assert store.exists(my_generator, "prompt1")
|
||||
assert store.get(my_generator, "prompt1").decode() == "input1"
|
||||
run_generators(
|
||||
machine_name="my_machine",
|
||||
base_dir=flake.path,
|
||||
machine=Machine(name="my_machine", flake=Flake(str(flake.path))),
|
||||
generators=["my_generator"],
|
||||
all_prompt_values={
|
||||
"my_generator": {
|
||||
|
||||
@@ -23,6 +23,7 @@ from clan_lib.errors import ClanError
|
||||
from clan_lib.flake import Flake, require_flake
|
||||
from clan_lib.git import commit_files
|
||||
from clan_lib.machines.list import list_full_machines
|
||||
from clan_lib.machines.machines import Machine
|
||||
from clan_lib.nix import nix_config, nix_shell, nix_test_store
|
||||
|
||||
from .check import check_vars
|
||||
@@ -34,7 +35,6 @@ log = logging.getLogger(__name__)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from clan_lib.flake import Flake
|
||||
from clan_lib.machines.machines import Machine
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -429,7 +429,7 @@ def _get_previous_value(
|
||||
|
||||
@API.register
|
||||
def get_generators(
|
||||
machine: "Machine",
|
||||
machine: Machine,
|
||||
full_closure: bool,
|
||||
generator_name: str | None = None,
|
||||
include_previous_values: bool = False,
|
||||
@@ -525,9 +525,8 @@ def _generate_vars_for_machine(
|
||||
|
||||
@API.register
|
||||
def run_generators(
|
||||
machine_name: str,
|
||||
machine: Machine,
|
||||
all_prompt_values: dict[str, dict[str, str]],
|
||||
base_dir: Path,
|
||||
generators: list[str] | None = None,
|
||||
no_sandbox: bool = False,
|
||||
) -> None:
|
||||
@@ -545,18 +544,16 @@ def run_generators(
|
||||
ClanError: If the machine or generator is not found, or if there are issues with
|
||||
executing the generator.
|
||||
"""
|
||||
from clan_lib.machines.machines import Machine
|
||||
|
||||
machine = Machine(name=machine_name, flake=Flake(str(base_dir)))
|
||||
if not generators:
|
||||
generator_objects = Generator.get_machine_generators(
|
||||
machine_name, machine.flake
|
||||
machine.name, machine.flake
|
||||
)
|
||||
else:
|
||||
generators_set = set(generators)
|
||||
generator_objects = [
|
||||
g
|
||||
for g in Generator.get_machine_generators(machine_name, machine.flake)
|
||||
for g in Generator.get_machine_generators(machine.name, machine.flake)
|
||||
if g.name in generators_set
|
||||
]
|
||||
_generate_vars_for_machine(
|
||||
|
||||
@@ -236,8 +236,7 @@ def test_clan_create_api(
|
||||
all_prompt_values[generator.name] = prompt_values
|
||||
|
||||
run_generators(
|
||||
machine_name=machine.name,
|
||||
base_dir=machine.flake.path,
|
||||
machine=machine,
|
||||
generators=[gen.name for gen in generators],
|
||||
all_prompt_values=all_prompt_values,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user