Johannes Kirschbauer
05951ffdb9
api/install: set install date after install
2025-08-20 13:39:32 +02:00
DavHau
de0b1b2d70
vars: fix regenerating a specific generator
...
This was broken after re-designing the API -> added a test
2025-08-20 14:49:27 +07:00
DavHau
7b61a668e9
vars: refactor: use Machine objects instead of base_dir strings
...
Replace base_dir string parameters with Machine objects throughout the vars
module for better type safety and consistency.
2025-08-20 11:59:18 +07:00
Brian McGee
d2b94ced5a
feat(api): define list machine options as data class
2025-08-19 16:51:30 +01:00
Brian McGee
9aebf02f05
feat(ui): display machine install state and install button
2025-08-19 15:09:34 +01:00
DavHau
815c6c9438
vars: move generation functions to clan_lib
2025-08-19 18:05:53 +07:00
DavHau
ab274ce932
vars: refactor - remove generate_vars() in favor of run_generators()
...
The motivation is to have one shared entry point for the CLI as well as API/GUI
2025-08-19 16:26:53 +07:00
DavHau
ee87f20471
vars: refactor - remove create_machine_vars_interactive in favor of run_generators
...
The motivation is to create one powerful entrypoint shared by the GUI as well as the CLI in order to not having to maintain too much separate code paths.
As a next step, generate_vars can probably also be removed.
2025-08-19 13:26:38 +07:00
Johannes Kirschbauer
f82d18d649
API: rename util file to 'type_to_jsonschema'
2025-08-18 19:30:43 +02:00
Johannes Kirschbauer
287a303484
API/schema: make type conversion more strict in terms of undefined fields
2025-08-18 19:29:54 +02:00
Johannes Kirschbauer
1213608f30
API: init support for narrowing union types
...
This allows to relax constraints on functions using overloaded interfaces
I.e. for unifying logic this allows passing 'callable | dict'
Conretely useful for prompt values that are asked on demand in the cli, vs upfront in the ui
2025-08-18 19:28:47 +02:00
Johannes Kirschbauer
2f27b3941e
lib/inventory: limit access to defined keys
2025-08-16 12:56:30 +02:00
Johannes Kirschbauer
9fe457ebd5
lib/clanModules: update nix_models
2025-08-16 11:59:16 +02:00
Johannes Kirschbauer
4a51aa9316
clanModules: remove unused test code
2025-08-16 11:58:55 +02:00
Luis Hebendanz
cc41185f98
Merge pull request 'flake.py: Error messages are now always ClanSelectErrors. Improved error messages' ( #4773 ) from Qubasa/clan-core:improve_select_error into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4773
2025-08-15 06:50:46 +00:00
Qubasa
606aae7212
flake.py: Error messages are now always ClanSelectErrors. Improved error messages
...
flake.py: Fix unbound variable
flake.py: Fix test_create.py test
2025-08-15 13:46:12 +07:00
Jörg Thalheim
fbb28afb2f
clan-cli/flash: make tests runnable in sandbox
2025-08-14 16:23:22 +02:00
hsjobeki
7fdbd2e3eb
Merge pull request 'dirs: remove unused conditional import' ( #4736 ) from import-cleanup-dirs into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4736
2025-08-13 17:46:19 +00:00
hsjobeki
7daebd5ee0
Merge pull request 'networking: remove unused conditional import' ( #4737 ) from networking-import into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4737
2025-08-13 17:46:04 +00:00
hsjobeki
cc8dd0564b
Merge pull request 'askpass: use protocol as interface' ( #4739 ) from interface-askpass into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4739
2025-08-13 17:43:01 +00:00
Johannes Kirschbauer
6fa2a977df
askpass: use protocol as interface
...
Avoids a cyclic dependency on the Remote class
Strips down the dependency closure by explizitly declaring what functions it needs
2025-08-13 19:21:18 +02:00
Johannes Kirschbauer
65dba2508f
dirs: remove unused conditional import
2025-08-13 19:04:32 +02:00
Johannes Kirschbauer
9884643070
networking: remove unused conditional import
2025-08-13 19:03:35 +02:00
Johannes Kirschbauer
5083992f7b
lib: remove unused TYPE_CHECKING
2025-08-13 18:26:57 +02:00
Johannes Kirschbauer
6bd8839128
lib/Remote: Unify class method _parse_ssh_uri with class file
2025-08-13 18:26:28 +02:00
DavHau
72d3ad09a4
vars: refactor - pass Machine objects to run_generators
2025-08-13 12:45:47 +00:00
DavHau
a535450ec0
vars: refactor - unify get_generators and _get_closure
2025-08-13 12:45:47 +00:00
Mic92
d3b423328f
Merge pull request 'Add wireguard service module' ( #3354 ) from init-wireguard-service into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3354
2025-08-13 10:55:48 +00:00
DavHau
adccef4757
install: fix torify package not available
2025-08-13 12:04:14 +07:00
lassulus
a50b25eea2
clan-cli network: refactor, use new networking in ssh and install commands
2025-08-13 12:04:14 +07:00
lassulus
017989841d
refactor: remove DeployInfo class and use Network/Remote directly
...
- Remove DeployInfo class entirely, replacing with direct Remote usage
- Update parse_qr_json_to_networks to return dict with network and remote
- Refactor all code to work with Remote lists instead of DeployInfo
- Add get_remote_for_machine context manager for network connections
- Update tests to use new Network/Remote structure
2025-08-13 12:04:14 +07:00
lassulus
c14a5fcc69
refactor: move ssh/upload.py from cli to lib
...
Move the upload module to clan_lib to better organize SSH-related
utilities. Updated all imports across the codebase.
2025-08-13 12:04:14 +07:00
Jörg Thalheim
88871bea69
clan_lib/flash: remove trailing whitespace
2025-08-12 17:14:52 +02:00
Johannes Kirschbauer
9880847d43
install: add progress to ui
2025-08-12 16:35:34 +02:00
a-kenji
8aa88b22ab
pkgs/clan/lib(install): implement separate nixos-anywhere install phases
...
Split the `nixos-anywhere` phases into it's components,
so we provide the user with better feedback.
Closes : #4682
2025-08-12 16:35:34 +02:00
hsjobeki
2adf65482d
Merge pull request 'feat(api): add list_inventory_tags' ( #4692 ) from feat/machine-tags-writeability into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4692
2025-08-12 11:33:49 +00:00
Johannes Kirschbauer
f74e444120
api/tags: add docs
2025-08-12 13:19:11 +02:00
Johannes Kirschbauer
0ef57bfc8e
api/tags: add init.py for pytest
2025-08-12 13:07:36 +02:00
Johannes Kirschbauer
a9d1ff83f2
api/tags: split list into options and non-configurable tags
2025-08-12 12:41:15 +02:00
DavHau
89cb22147c
Revert "machines update: support --target-host localhost"
...
This reverts commit a2818d4946cc66a08b9dd7a1ab95dc48ea708fe3.
Setting `--target-host localhost` breaks with:
sudo: no askpass program specified, try setting SUDO_ASKPASS
2025-08-12 17:39:40 +07:00
Johannes Kirschbauer
cbd3b08296
api/tags: add from all possible sources
2025-08-12 11:05:10 +01:00
Brian McGee
2608bee30a
feat(api): add list_inventory_tags
2025-08-12 11:05:10 +01:00
Luis Hebendanz
9737ce51b1
Merge pull request 'Fix clan select hiding error messages' ( #4704 ) from Qubasa/clan-core:clan_select_error_msg into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4704
2025-08-12 07:46:35 +00:00
Qubasa
3c1c6c1942
flake.py: Add a custom error message for missing clan export
...
test_clan_create_api: Fix check for SelectCmdError
2025-08-12 14:41:26 +07:00
Qubasa
0904c9da60
flake.py: Don't hide error messages
2025-08-12 14:18:19 +07:00
Luis Hebendanz
73e03c21f7
Merge pull request 'templates: Fix missing export of clan = clan.config;' ( #4703 ) from Qubasa/clan-core:fix_templates2 into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4703
2025-08-12 07:05:07 +00:00
Qubasa
743f05a1b5
templates: Fix missing export of clan = clan.config;
2025-08-12 13:50:09 +07:00
DavHau
26559ff88b
Merge pull request 'machines update: support --target-host localhost' ( #4623 ) from jfly/clan-core:localhost-as-target-host-without-ssh into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4623
2025-08-12 05:10:53 +00:00
DavHau
df90fb20a0
clan-lib/hosts: reintroduce test for localhost
2025-08-12 10:18:55 +07:00
Johannes Kirschbauer
4f29f2e2ca
api/machines: add tests for tags readOnly
2025-08-11 18:07:02 +02:00