Commit Graph

214 Commits

Author SHA1 Message Date
Qubasa
9f464dd14e Added ipdb as breakpoint console. Improved logging. 2023-10-27 19:19:45 +02:00
Qubasa
af3f04736b Improved logging messages. Added ClanError if flake create or machine create already exist 2023-10-27 19:18:45 +02:00
Qubasa
8482bc79f6 Secrets tests passing. nix fmt doesn't complain 2023-10-27 19:18:45 +02:00
Qubasa
03cabda2d4 Improved test logging with frame inspection 2023-10-27 19:18:45 +02:00
Qubasa
8cc1c2c4bd Fixed cyclic dependencie AND swapped pytest-parallel for pytest-xdist to fix deadlock in tests 2023-10-27 19:18:45 +02:00
Qubasa
2ca54afe7f Added new type FlakeName 2023-10-27 19:18:45 +02:00
Qubasa
32e60f5adc Added flake_name:str argument everywhere, nix fmt doesn't complain anymore 2023-10-27 19:15:40 +02:00
Qubasa
711c70d1f0 Added state directory. 2023-10-27 19:11:27 +02:00
Qubasa
fa5f39f226 API: Added Path validators. api/flake/create inits git repo. Fixed vscode interpreter problem 2023-10-27 19:11:27 +02:00
DavHau
0e5c7d2d13 api/machines: split off config validation into separate endpoint
- This speeds up PUT /machines{name}/config as it doesn't do the expensive check anymore
- instead use PUT /machines/{name}/verify which allows a dry-run evaluation of a config which is passed without writing it to disk
2023-10-25 17:48:37 +01:00
DavHau
25708d1a1a /api/clan_modules: init
- add GET /api/clan_modules entry point returning a list of modules available for import
2023-10-25 17:22:35 +01:00
DavHau
bf176ad277 api/machines: allow importing extra modules
- add top-level option `clanImports` to clanCore
- clanImports can be set and checked as any other option
- buildClan resolves the clanImports from the settings.json before calling evalModules to prevent infinite recursions
- new endpoint PUT machines/{name}/schema to allow getting the schema for a specific list of imports
- to retrieve the currently imported modules, cimply do a GET or PU on machines/{name}/config which will return `clanImports` as part of the config

Still missing: get list of available modules
2023-10-25 16:36:30 +01:00
DavHau
9f6e01671f PUT /machines/{name}/config; ensure is idempotent 2023-10-24 18:48:14 +01:00
DavHau
588bde069f PUT api/machines/{name}/config: ensure only valid config is ever written
- add CLAN_MACHINE_SETTINGS_FILE variable to temporarily override the machine settings file
- do a dry-run evaluation first with the new config before persisting it.
2023-10-24 18:40:48 +01:00
DavHau
a539fb6dc6 machines: add endpoint machines/{name}/ verify 2023-10-24 16:31:37 +01:00
Qubasa
b49433958b API: Added /api/flake/create. Fixed vscode search settings. Moved clan create to clan flake create 2023-10-09 14:01:34 +02:00
DavHau
ceb6bdd474 clan join: test create vm for clan join
This adds a vm create test for the `clan join` scenario where:
  - there is no local clan to write changes to
  - a machine from a remote flake needs to be built and run
  - no users and no secrets need to be or can be managed (no flake to write files to)
2023-10-06 19:15:25 +02:00
lassulus
bdb0a6484a tests: add fixtures to test_vms_cli 2023-10-05 15:56:15 +02:00
Jörg Thalheim
41106a67e2 test_secrets_password_store: create gpghome with save permissions 2023-10-04 19:56:18 +02:00
lassulus
99433ac290 test_vms_api: supply age key for secret creation 2023-10-04 18:13:25 +02:00
lassulus
e8c9f27515 tests test_flake: disable dhcp 2023-10-04 17:52:06 +02:00
DavHau
544322ee6e webui: open browser in new window
This gets closer to an app like feeling
2023-10-04 17:26:55 +02:00
Jörg Thalheim
04ba80f614 improve task manager to report exceptions better 2023-10-04 16:49:58 +02:00
Jörg Thalheim
1575e4a391 rename test_basic to test_create_flake 2023-10-04 11:01:12 +02:00
Jörg Thalheim
4abb7d7bf0 make vm test also work in ci 2023-10-03 18:50:14 +02:00
Jörg Thalheim
b2ef8bf1a3 also test that updating a group works 2023-10-03 16:15:36 +00:00
Jörg Thalheim
2502422bc1 add test for vm cli 2023-10-03 17:24:08 +02:00
Jörg Thalheim
361ad990ab clan-cli/tests: skip tests if has no /dev/kvm 2023-10-03 17:24:08 +02:00
Qubasa
cb2815c4d0 nix fmt 2023-10-03 14:39:29 +02:00
Qubasa
8e98c50ccd Merge branch 'Qubasa-main' of git.clan.lol:clan/clan-core 2023-10-03 13:24:31 +02:00
Qubasa
da72ec18ad API: Added test for inspect_flake 2023-10-03 13:19:20 +02:00
Qubasa
c1c68ee1d8 Fixed failing tests 2023-10-03 13:15:01 +02:00
Qubasa
167533d9ee API: Added test for inspect_flake 2023-10-03 12:50:47 +02:00
Qubasa
653ad99b22 Fixed failing tests 2023-10-03 11:51:31 +02:00
Johannes Kirschbauer
16f44900a3 Beyoncé rule 2023-10-03 11:21:34 +02:00
Qubasa
ce7ae81a35 API: Added endpoint & test for /api/flake/attrs 2023-10-01 12:50:54 +02:00
Qubasa
f224deace9 API: Improved vm_status and added some tests. Skip vm tests in VM 2023-09-30 11:08:42 +02:00
lassulus
6e3f2b1ce2 tests: add test_secrets_password_store 2023-09-29 20:05:35 +02:00
lassulus
89b7ffce6c clan-cli secrets upload: secrets are populated into tmpdir 2023-09-29 20:05:35 +02:00
Jörg Thalheim
739d3b3578 zerotier: document mdns ports; drop duplicate udp firewall rules
the nixos module already opens the zerotier port
2023-09-28 17:58:42 +02:00
Jörg Thalheim
be6592c82c also generate zerotier secret for vm 2023-09-28 17:57:44 +02:00
Jörg Thalheim
2375bafbae pregenerate ssh_host keys for tests
Then we are free to choose where to put the ssh config
2023-09-28 16:31:59 +02:00
Jörg Thalheim
85f7e2f2cd clanInternals.machines: expose information as json 2023-09-27 18:42:49 +02:00
Jörg Thalheim
59f0a912ea fix clan-pytest build 2023-09-27 16:20:05 +02:00
Jörg Thalheim
e970dcb658 move temporary directory to .direnv 2023-09-27 16:13:04 +02:00
Jörg Thalheim
2f73e6b472 drop requirement for importing qemu-vm.nix 2023-09-27 14:54:01 +02:00
Jörg Thalheim
4317e681cf cli: fix remaining typing errors 2023-09-27 09:47:50 +00:00
Jörg Thalheim
b343650771 make vm terminate after boot 2023-09-27 09:47:50 +00:00
Qubasa
08eab785c6 Completely working log streaming 2023-09-27 09:47:50 +00:00
Qubasa
8d390af122 Working log streaming 2023-09-27 09:47:50 +00:00