Commit Graph

638 Commits

Author SHA1 Message Date
Johannes Kirschbauer
1d38ffa9c2 inventory: unit test autoloading with a virtual fs 2025-10-12 16:32:55 +02:00
Johannes Kirschbauer
84d4660a8d inventory: wrap autoloaded machines with correct file 2025-10-11 15:57:42 +02:00
a-kenji
3088ce025b lib/introspection: Test skipping instrospection of oneOf
This builds on top of #5422.
And tests it's behavior.
2025-10-08 13:17:55 +02:00
a-kenji
8058a7c158 lib/instrospection: Skip either(oneOf)
For either(oneOf) types, we skip introspection as we cannot
determine which branch of the union was taken without more context
This *should* be safe, as it can currently mostly be triggered through
The `extraModules` setting of inventory modules.

Example:

```
importer.roles.default.extraModules = [
    ../../modules/nixos/common.nix
];
```

Error Message:

```
Traceback (most recent call last):
  File "/nix/store/zaz4r4fic03m4whgz46p5jjszzlkq694-clan-cli/lib/python3.13/site-packages/clan_lib/templates/handler.py", line 91, in machine_template
    yield dst_machine_dir
  File "/nix/store/zaz4r4fic03m4whgz46p5jjszzlkq694-clan-cli/lib/python3.13/site-packages/clan_cli/machines/create.py", line 95, in create_machine
    inventory_store.write(inventory, message=f"machine '{machine_name}'")
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/zaz4r4fic03m4whgz46p5jjszzlkq694-clan-cli/lib/python3.13/site-packages/clan_lib/persist/inventory_store.py", line 269, in write
    write_info = self._write_map()
  File "/nix/store/zaz4r4fic03m4whgz46p5jjszzlkq694-clan-cli/lib/python3.13/site-packages/clan_lib/persist/inventory_store.py", line 214, in _write_map
    current_priority = self._get_inventory_current_priority()
  File "/nix/store/zaz4r4fic03m4whgz46p5jjszzlkq694-clan-cli/lib/python3.13/site-packages/clan_lib/persist/inventory_store.py", line 206, in _get_inventory_current_priority
    return self._flake.select("clanInternals.inventoryClass.introspection")
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/zaz4r4fic03m4whgz46p5jjszzlkq694-clan-cli/lib/python3.13/site-packages/clan_lib/flake/flake.py", line 1129, in select
    self.get_from_nix([selector])
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/nix/store/zaz4r4fic03m4whgz46p5jjszzlkq694-clan-cli/lib/python3.13/site-packages/clan_lib/flake/flake.py", line 1054, in get_from_nix
    raise ClanSelectError(
    ...<3 lines>...
    ) from e
clan_lib.flake.flake.ClanSelectError: Error on: $ clan select 'clanInternals.inventoryClass.introspection'
  Reason: Yet Unsupported type: either
Removing left-over machine directory: /tmp/hyperconfig/machines/trooo
Error on: $ clan select 'clanInternals.inventoryClass.introspection'
  Reason: Yet Unsupported type: either

```

Closes: #5387
2025-10-07 22:58:51 +02:00
Johannes Kirschbauer
359582118c docs: fix broken links 2025-10-05 14:14:12 +02:00
hsjobeki
c04e8b6ead Merge pull request 'docs: use absolute page URI' (#5368) from docs-simplify into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5368
2025-10-03 15:36:00 +00:00
Johannes Kirschbauer
08c2d574ce docs: use absolute page URI
This allows us to migrate to any framework that uses normal uri's
We just need to strip all .md endings in a simple grep command
2025-10-03 17:31:42 +02:00
Qubasa
2df96d3a9b inventory: Add roles.<name>.description option and a warning if it is not set 2025-10-02 18:57:55 +02:00
Johannes Kirschbauer
2dabff5db1 lib/clan: add checks 2025-10-02 18:21:37 +02:00
Johannes Kirschbauer
149e14e85d lib/introspection: backwards support older nixpkgs version with reduced features 2025-10-02 17:39:03 +02:00
Johannes Kirschbauer
6f5f182aef lib/introspect: fix list item meta 2025-10-02 16:40:29 +02:00
Johannes Kirschbauer
1a8131f17f lib/introspect: recurse for nested attrsOf 2025-10-01 16:56:53 +02:00
Johannes Kirschbauer
a8156d2fa6 lib/introspect: seperate headType from nullable 2025-10-01 09:51:34 +02:00
Johannes Kirschbauer
75121767d3 lib/introspect: use valueMeta to expose more information 2025-09-24 17:24:44 +02:00
Johannes Kirschbauer
ac07265ea4 clan/module: remove deprecated clanInternals.inventory 2025-09-18 15:35:39 +00:00
Johannes Kirschbauer
92ca540a42 clan/module: remove clanModules from clanInternals 2025-09-18 15:35:39 +00:00
Johannes Kirschbauer
757f2412a6 docs: bring back structured clan options 2025-09-17 15:15:32 +02:00
hsjobeki
f1416bdcba Merge pull request 'lib/types: add docs for custom type' (#5186) from lib-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5186
2025-09-17 09:07:45 +00:00
Johannes Kirschbauer
7a38e976a4 lib/types: add docs for custom type 2025-09-17 11:03:08 +02:00
Luis Hebendanz
559c13f41b Merge pull request 'kurogeek-flakeModules-clan-nixos-test' (#5177) from Qubasa/clan-core:kurogeek-flakeModules-clan-nixos-test into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5177
2025-09-16 15:20:16 +00:00
Qubasa
555c2e1bc9 clan-core: use importApply for testModule export 2025-09-16 17:14:33 +02:00
Johannes Kirschbauer
80bc3daf96 lib/jsonschema: remove unused arguments 2025-09-16 17:11:19 +02:00
Johannes Kirschbauer
a80df32c59 lib: cleanup readme 2025-09-16 16:02:10 +02:00
hsjobeki
39eb13eebb Merge pull request 'lib: move clan out of lib into flake' (#5169) from inv-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5169
2025-09-16 13:33:45 +00:00
Johannes Kirschbauer
daea2da358 lib: move clan out of lib into flake
This allows clanLib to stay agnostic and be more testable
2025-09-16 15:28:12 +02:00
hsjobeki
d995c0b118 Merge pull request 'inventory: remove deprecated frontmatter' (#5168) from inv-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5168
2025-09-16 13:05:46 +00:00
Johannes Kirschbauer
5e22830048 inventory: remove deprecated frontmatter 2025-09-16 14:59:39 +02:00
DavHau
15d117d06b Merge pull request 'generate_test_vars: fix + add tests' (#5163) from dave into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5163
2025-09-16 12:23:04 +00:00
hsjobeki
f2134754c5 Merge pull request 'inventory: make resolve module a clanLib function' (#5165) from inv-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5165
2025-09-16 11:14:40 +00:00
Johannes Kirschbauer
f49df8d574 inventory: make resolve module a clanLib function
Unclutter inventory logic
2025-09-16 13:09:56 +02:00
hsjobeki
6c2fa3e4ed Merge pull request 'inventory: inline manifest module' (#5164) from inv-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5164
2025-09-16 10:42:17 +00:00
Johannes Kirschbauer
0bce953c2f inventory: inline manifest module
Reducing the clutter of files
Its sometimes better to have all the options in one place if reusing is not a concern
2025-09-16 12:36:58 +02:00
DavHau
ea32fdbd93 generate_test_vars: move into clan_cli
Reduces overhead by not having to manage a separate package for this small tool
2025-09-16 16:37:41 +07:00
hsjobeki
a90197cfd4 Merge pull request 'inventory: unify modules' (#5154) from inventory-unify into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5154
2025-09-16 09:02:24 +00:00
Johannes Kirschbauer
5750ab8d3a lib: remove usages of flip
Makes the code more consistent to read.
Usage in 9 places is rather inconsistent style.
2025-09-15 13:17:09 +02:00
Johannes Kirschbauer
d3397af442 inventory: unify modules 2025-09-15 12:18:35 +02:00
pinpox
99dc4f6787 Fix update-vars script 2025-09-01 22:31:09 +02:00
pinpox
d2456be3dd Add certificates service 2025-09-01 15:49:53 +02:00
Johannes Kirschbauer
453f2649d3 clanInternals: expose builtin modules 2025-08-31 15:58:39 +02:00
Jörg Thalheim
d5b09f18ed RET504: fix 2025-08-26 15:55:23 +02:00
Jörg Thalheim
8f8426de52 PGH003: fix 2025-08-26 11:36:38 +02:00
Jörg Thalheim
fc66dc78c3 PLW0603: fix 2025-08-25 15:17:06 +02:00
Jörg Thalheim
34816013ad D106: fix 2025-08-25 14:56:48 +02:00
Mic92
05665b1c7e Merge pull request 'ruff-3-arg-fixes' (#4934) from ruff-3-arg-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4934
2025-08-25 12:54:04 +00:00
Jörg Thalheim
4986fe30c3 ARG002/ARG005: fix 2025-08-25 14:36:36 +02:00
Mic92
de33a07875 Merge pull request 'ruff-2-security-fixes' (#4931) from ruff-2-security-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4931
2025-08-25 12:30:20 +00:00
Jörg Thalheim
5233eb7fdb ARG002: fix 2025-08-25 14:24:21 +02:00
Jörg Thalheim
94a158b77a ARG001: fix 2025-08-25 14:24:21 +02:00
hsjobeki
98af47d0b5 Merge pull request 'docs: change wording, update links' (#4929) from cleanup-again into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4929
2025-08-25 12:18:55 +00:00
Johannes Kirschbauer
4470bb886e docs: move 'migrate-flake' to 'convert existing nixos' 2025-08-25 14:11:31 +02:00