diff --git a/lib/modules/inventory/flake-module.nix b/lib/modules/inventory/flake-module.nix index 9e4fd5380..fe4727e2b 100644 --- a/lib/modules/inventory/flake-module.nix +++ b/lib/modules/inventory/flake-module.nix @@ -1,12 +1,8 @@ { self, - inputs, options, ... }: -let - inputOverrides = self.clanLib.flake-inputs.getOverrides inputs; -in { imports = [ ./distributed-service/flake-module.nix @@ -15,16 +11,13 @@ in { pkgs, lib, - config, - system, self', ... }: { devShells.inventory-schema = pkgs.mkShell { name = "clan-inventory-schema"; - inputsFrom = with config.checks; [ - eval-lib-inventory + inputsFrom = [ self'.devShells.default ]; }; @@ -51,41 +44,5 @@ in warningsAreErrors = true; transformOptions = self.clanLib.docs.stripStorePathsFromDeclarations; }).optionsJSON; - - # Run: nix-unit --extra-experimental-features flakes --flake .#legacyPackages.x86_64-linux.evalTests - legacyPackages.evalTests-inventory = import ./tests { - inherit lib; - clan-core = self; - inherit (self) clanLib; - inherit (self.inputs) nix-darwin; - }; - - checks = { - eval-lib-inventory = pkgs.runCommand "tests" { nativeBuildInputs = [ pkgs.nix-unit ]; } '' - export HOME="$(realpath .)" - export NIX_ABORT_ON_WARN=1 - nix-unit --eval-store "$HOME" \ - --extra-experimental-features flakes \ - --show-trace \ - ${inputOverrides} \ - --flake ${ - lib.fileset.toSource { - root = ../../..; - fileset = lib.fileset.unions [ - ../../../flake.nix - ../../../flake.lock - (lib.fileset.fileFilter (file: file.name == "flake-module.nix") ../../..) - ../../../flakeModules - ../../../lib - ../../../nixosModules/clanCore - ../../../machines - ../../../inventory.json - ]; - } - }#legacyPackages.${system}.evalTests-inventory - - touch $out - ''; - }; }; } diff --git a/lib/modules/inventory/tests/default.nix b/lib/modules/inventory/tests/default.nix deleted file mode 100644 index 800cbdea5..000000000 --- a/lib/modules/inventory/tests/default.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ - clan-core, - nix-darwin, - lib, - clanLib, -}: -let - # TODO: Unify these tests with clan tests - clan = - m: - lib.evalModules { - specialArgs = { inherit clan-core nix-darwin clanLib; }; - modules = [ - clan-core.modules.clan.default - { - self = { }; - } - m - ]; - }; -in -{ - test_inventory_a = - let - eval = clan { - inventory = { - machines = { - A = { }; - }; - services = { - legacyModule = { }; - }; - modules = { - legacyModule = ./legacyModule; - }; - }; - directory = ./.; - }; - in - { - inherit eval; - expr = { - legacyModule = lib.filterAttrs ( - name: _: name == "isClanModule" - ) eval.config.clanInternals.inventoryClass.machines.A.compiledServices.legacyModule; - }; - expected = { - legacyModule = { - }; - }; - }; - - test_inventory_empty = - let - eval = clan { - inventory = { }; - directory = ./.; - }; - in - { - # Empty inventory should return an empty module - expr = eval.config.clanInternals.inventoryClass.machines; - expected = { }; - }; - - test_inventory_module_doesnt_exist = - let - eval = clan { - directory = ./.; - inventory = { - services = { - fanatasy.instance_1 = { - roles.default.machines = [ "machine_1" ]; - }; - }; - machines = { - "machine_1" = { }; - }; - }; - }; - in - { - inherit eval; - expr = eval.config.clanInternals.inventoryClass.machines.machine_1.machineImports; - expectedError = { - type = "ThrownError"; - msg = "ClanModule not found*"; - }; - }; -} diff --git a/lib/modules/inventory/tests/legacyModule/README.md b/lib/modules/inventory/tests/legacyModule/README.md deleted file mode 100644 index aa87ee5c8..000000000 --- a/lib/modules/inventory/tests/legacyModule/README.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -features = [ "inventory" ] ---- -Description \ No newline at end of file diff --git a/lib/modules/inventory/tests/legacyModule/roles/default.nix b/lib/modules/inventory/tests/legacyModule/roles/default.nix deleted file mode 100644 index 2c7de4687..000000000 --- a/lib/modules/inventory/tests/legacyModule/roles/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - lib, - clan-core, - ... -}: -{ - # Just some random stuff - options.test = lib.mapAttrs clan-core; -} diff --git a/lib/modules/inventoryClass/builder/interface.nix b/lib/modules/inventoryClass/builder/interface.nix index cc681065c..217e139fd 100644 --- a/lib/modules/inventoryClass/builder/interface.nix +++ b/lib/modules/inventoryClass/builder/interface.nix @@ -16,76 +16,13 @@ in type = types.raw; }; machines = mkOption { - type = types.attrsOf ( - submodule ( - { name, ... }: - let - machineName = name; - in - { - options = { - compiledMachine = mkOption { - type = types.raw; - }; - compiledServices = mkOption { - # type = types.attrsOf; - type = types.attrsOf ( - types.submoduleWith { - modules = [ - ( - { name, ... }: - let - serviceName = name; - in - { - options = { - machineName = mkOption { - default = machineName; - readOnly = true; - }; - serviceName = mkOption { - default = serviceName; - readOnly = true; - }; - # Outputs - machineImports = mkOption { - type = types.listOf types.raw; - }; - supportedRoles = mkOption { - type = types.listOf types.str; - }; - matchedRoles = mkOption { - type = types.listOf types.str; - }; - machinesRoles = mkOption { - type = types.attrsOf (types.listOf types.str); - }; - resolvedRolesPerInstance = mkOption { - type = types.attrsOf ( - types.attrsOf (submodule { - options.machines = mkOption { - type = types.listOf types.str; - }; - }) - ); - }; - assertions = mkOption { - type = types.attrsOf types.raw; - }; - }; - } - ) - ]; - } - ); - }; - machineImports = mkOption { - type = types.listOf types.raw; - }; - }; - } - ) - ); + type = types.attrsOf (submodule ({ + options = { + machineImports = mkOption { + type = types.listOf types.raw; + }; + }; + })); }; }; }