From ac940aa8a12bc280a9c18d8e87787e3d054e6493 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Wed, 9 Apr 2025 17:30:23 +0200 Subject: [PATCH] fix(checks/inventory): use buildClan instead of buildInventory --- checks/dummy-inventory-test/default.nix | 40 +++++++++++++++++-- .../{dummy-module => legacy-module}/README.md | 0 .../roles/admin.nix | 0 .../roles/peer.nix | 0 .../shared.nix | 0 5 files changed, 37 insertions(+), 3 deletions(-) rename checks/dummy-inventory-test/{dummy-module => legacy-module}/README.md (100%) rename checks/dummy-inventory-test/{dummy-module => legacy-module}/roles/admin.nix (100%) rename checks/dummy-inventory-test/{dummy-module => legacy-module}/roles/peer.nix (100%) rename checks/dummy-inventory-test/{dummy-module => legacy-module}/shared.nix (100%) diff --git a/checks/dummy-inventory-test/default.nix b/checks/dummy-inventory-test/default.nix index 582a0e1af..7691c80c4 100644 --- a/checks/dummy-inventory-test/default.nix +++ b/checks/dummy-inventory-test/default.nix @@ -1,6 +1,10 @@ (import ../lib/test-inventory.nix) ( { ... }: { + # This tests the compatibility of the inventory + # With the test framework + # - legacy-modules + # - clan.service modules name = "dummy-inventory-test"; inventory.directory = ./.; @@ -8,22 +12,52 @@ machines.peer1 = { }; machines.admin1 = { }; services = { - dummy-module.default = { + legacy-module.default = { roles.peer.machines = [ "peer1" ]; roles.admin.machines = [ "admin1" ]; }; }; + instances."test" = { + module.name = "new-service"; + roles.peer.machines.peer1 = { }; + }; + modules = { - dummy-module = ./dummy-module; + legacy-module = ./legacy-module; + new-service = { + _class = "clan.service"; + manifest.name = "new-service"; + roles.peer = {}; + perMachine = { + nixosModule = { + # This should be generated by: + # ./pkgs/scripts/update-vars.py inventory-test-framework-compatibility-test + clan.core.vars.generators.new-service = { + files.hello = { + secret = false; + deploy = true; + }; + script = '' + # This is a dummy script that does nothing + echo "This is a dummy script" > $out/hello + ''; + }; + }; + }; + }; }; }; - testScript = '' + testScript = { nodes, ...}: '' start_all() admin1.wait_for_unit("multi-user.target") peer1.wait_for_unit("multi-user.target") + # Provided by the legacy module print(admin1.succeed("systemctl status dummy-service")) print(peer1.succeed("systemctl status dummy-service")) + + # peer1 should have the 'hello' file + peer1.succeed("cat ${nodes.peer1.clan.core.vars.generators.new-service.files.hello.path}") ''; } ) diff --git a/checks/dummy-inventory-test/dummy-module/README.md b/checks/dummy-inventory-test/legacy-module/README.md similarity index 100% rename from checks/dummy-inventory-test/dummy-module/README.md rename to checks/dummy-inventory-test/legacy-module/README.md diff --git a/checks/dummy-inventory-test/dummy-module/roles/admin.nix b/checks/dummy-inventory-test/legacy-module/roles/admin.nix similarity index 100% rename from checks/dummy-inventory-test/dummy-module/roles/admin.nix rename to checks/dummy-inventory-test/legacy-module/roles/admin.nix diff --git a/checks/dummy-inventory-test/dummy-module/roles/peer.nix b/checks/dummy-inventory-test/legacy-module/roles/peer.nix similarity index 100% rename from checks/dummy-inventory-test/dummy-module/roles/peer.nix rename to checks/dummy-inventory-test/legacy-module/roles/peer.nix diff --git a/checks/dummy-inventory-test/dummy-module/shared.nix b/checks/dummy-inventory-test/legacy-module/shared.nix similarity index 100% rename from checks/dummy-inventory-test/dummy-module/shared.nix rename to checks/dummy-inventory-test/legacy-module/shared.nix