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
Jörg Thalheim
6a2dfb8176
S101: fix
2025-08-25 14:11:25 +02:00
Jörg Thalheim
dc5485d9f1
ruff: replace asserts outside of tests with Exceptions
2025-08-25 13:06:04 +02:00
DavHau
c308fd63a7
vars: delete old var when changing share
...
When changing a password from non-shared to shared, we want to remove the old one
2025-08-25 10:37:46 +00:00
Jörg Thalheim
0ec2c32ff8
ruff: apply automatic unsafe fixes
2025-08-25 11:34:41 +02:00
Jörg Thalheim
ea2d6aab65
ruff: apply automatic fixes
2025-08-25 11:34:41 +02:00
Mic92
5a5ec468c7
Merge pull request 'clan-cli: use automatic networking for vars upload and machines update' ( #4792 ) from networking_4 into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4792
2025-08-20 12:42:56 +00:00
DavHau
527b4b2e40
vars: ensure shared generators don't depend on machine specific generators
...
A dependency relation like this would not make sense as it would not be clear which machines generator the shared generator would depend on
2025-08-20 15:39:17 +07: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
lassulus
448c22c280
clan-cli: use automatic networking for vars upload and machines update
...
This uses the networking module to find the best_host, as we already do
with ssh and install. So if we don't supply a --target-host and a
networking module is configured, the remote should be autodetected.
Since vars upload doesn't have a --target-host argument, we always try
to use get_best_remote
2025-08-19 23:40:57 +02:00
DavHau
815c6c9438
vars: move generation functions to clan_lib
2025-08-19 18:05:53 +07:00
DavHau
9ce563aa08
vars: log var updates under specific machine
...
This makes it easier in the logs to identify which machine a var update belongs to
2025-08-19 11:03:36 +00: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
aadc8a1d63
vars: refactor - remove _generate_vars_for_machine function
...
This became unnecessary by now
2025-08-19 07:41:31 +00:00
DavHau
aaca8f4763
vars: refactor - move generator specific code to Generator class
...
Several functions in generate.py were specific to generator instances. Let's move them into the Generator class
2025-08-19 07:41:31 +00: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
4312e3fc2f
vars: move generator class and bound methods into seperate module
2025-08-14 11:05:42 +02:00
Johannes Kirschbauer
e28f280036
vars: remove unused conditional import
2025-08-13 19:24:53 +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
Jörg Thalheim
1177e84dcc
vars/generate: print the files that were found when files are missing
...
this helps fixing typos in the generator scripts
2025-08-13 12:29:52 +02:00
DavHau
24194011ac
vars: refactor - remove unnecessary return values
...
The boolean return value signaling if anything was ran or not isn't that useful. We are not doing anything with it.
2025-08-13 12:54:05 +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
DavHau
5684ddf104
vars: health check also for API not just cli
2025-08-12 11:28:02 +00:00
DavHau
1abdd45821
vars: add doc comments for fix() and health_check()
2025-08-12 09:13:54 +00:00
DavHau
e28b8dc944
vars: refactor - health checks on multiple generators
2025-08-12 13:12:49 +07:00
DavHau
ee8e44d255
vars/generators: refactor - identify generators by name + machine
...
This brings us one step closer towards re-generating over multiple machines reliably
2025-08-11 21:02:55 +07:00
DavHau
073027f7c6
vars/generate: refactor - mark private as private
2025-08-11 11:46:25 +07:00
DavHau
d0374c0d7c
vars/keygen: add --no-interactive flags
...
This is useful to force on-interactive mode with automatic key selection. In unit tests this is necessary. When debugging a test on a real terminal interactive mode is not desired
2025-08-11 11:29:25 +07:00
Johannes Kirschbauer
454b09a67e
Vars: remove unused return
2025-08-10 00:19:08 +02:00
Johannes Kirschbauer
787781c2ad
Vars: remove spurious 'fake_prompt' with mocked method
2025-08-10 00:18:01 +02:00
Johannes Kirschbauer
91646b323a
API/generators: adjust filtering to match cli logic
2025-08-09 19:58:23 +02:00
Johannes Kirschbauer
d007b0f1b3
API/generators: expose display attribute of prompts
2025-08-09 19:56:23 +02:00
Johannes Kirschbauer
915178765b
Vars: rename classmethod to get_machine_generators
2025-08-07 15:31:17 +02:00
DavHau
b74193514d
ssh: refactor callers to use new Host interface
2025-08-05 13:16:59 +02:00
Johannes Kirschbauer
ab3158ca07
vars/decrypt_dependencies: simplify
2025-08-01 04:01:43 +00:00
hsjobeki
434ce1af49
Merge pull request 'vars/list: doogfood get_machines into cli' ( #4549 ) from vars-dog into main
...
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4549
2025-07-31 17:19:42 +00:00
Johannes Kirschbauer
cf6c3604ca
generators_from_flake: vars always bind to store
2025-07-31 16:16:36 +02:00
Johannes Kirschbauer
e2e4837b29
docs: add vars/gaph doc-strings
2025-07-31 15:26:22 +02:00
Johannes Kirschbauer
96fc3d409a
vars/list: untangle generators_from_flake and get_generators
2025-07-31 15:17:57 +02:00
Johannes Kirschbauer
392f244361
vars/list: doogfood get_machines into cli
...
This is important otherwise cli diverges from api
2025-07-31 14:02:50 +02:00
a-kenji
35315d9596
pkgs/clan/cli: Add clan flake validation to clan vars check
...
This now gives a clearer error than:
```
Traceback (most recent call last):
File "/nix/store/mznnb8il3njp6jxn5i57d0myjdh6cs0i-clan-cli/bin/.clan-wrapped", line 9, in <module>
sys.exit(main())
~~~~^^
File "/nix/store/mznnb8il3njp6jxn5i57d0myjdh6cs0i-clan-cli/lib/python3.13/site-packages/clan_cli/cli.py", line 516, in main
args.func(args)
~~~~~~~~~^^^^^^
File "/nix/store/mznnb8il3njp6jxn5i57d0myjdh6cs0i-clan-cli/lib/python3.13/site-packages/clan_cli/vars/check.py", line 113, in check_command
ok = check_vars(args.machine, args.flake, generator_name=args.generator)
File "/nix/store/mznnb8il3njp6jxn5i57d0myjdh6cs0i-clan-cli/lib/python3.13/site-packages/clan_cli/vars/check.py", line 103, in check_vars
status = vars_status(machine_name, flake, generator_name=generator_name)
File "/nix/store/mznnb8il3njp6jxn5i57d0myjdh6cs0i-clan-cli/lib/python3.13/site-packages/clan_cli/vars/check.py", line 41, in vars_status
generators = Generator.generators_from_flake(machine.name, machine.flake)
File "/nix/store/mznnb8il3njp6jxn5i57d0myjdh6cs0i-clan-cli/lib/python3.13/site-packages/clan_cli/vars/generate.py", line 67, in generators_from_flake
generators_data = flake.select_machine(
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'select_machine'
```
When not being in a flake.
2025-07-29 10:25:28 +02:00
lassulus
7dd9e6b97c
clan-cli vars: show which var we are getting in debug log
2025-07-24 22:24:15 +02:00
DavHau
cc69892e3b
create clan: better info about existing sop keys
...
When creating a new clan, the key selection now looks like this:
```
Found existing admin keys on this machine:
1: type: AGE
pubkey: age1xyz...
source: /home/grmpf/.config/sops/age/keys.txt
2: type: PGP
pubkey: abc...
source: SOPS_PGP_FP
Select keys to use (comma-separated list of numbers, or leave empty to select all):
```
This is achieved by adding a `source` attribute to `SopsKey`.
2025-07-23 13:22:19 +07:00
Jörg Thalheim
377056e80c
clan flakes create: initialize keys automatically ( #4435 )
...
fixes https://git.clan.lol/clan/clan-core/issues/2665
fixes https://git.clan.lol/clan/clan-core/issues/4407
Co-authored-by: DavHau <d.hauer.it@gmail.com >
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4435
Co-authored-by: Jörg Thalheim <joerg@thalheim.io >
Co-committed-by: Jörg Thalheim <joerg@thalheim.io >
2025-07-23 04:44:55 +00:00
a-kenji
cd8a1d9a32
pkgs/cli: Autocomplete various vars subcommands
...
Add autocomplete for `vars` for the following subcommands:
```
clan vars get [machine] [var_id]
clan vars set [machine] [var_id]
```
2025-07-22 18:03:55 +02:00
a-kenji
8178c41c7b
pkgs/clan: Add clan validation to vars
...
Add clan validation to vars and facts subcommmands
2025-07-15 14:01:41 +02:00