Commit Graph

46 Commits

Author SHA1 Message Date
f383c6f82d clan-cli: add CLAN_DIR environment variable
All checks were successful
checks / checks (pull_request) Successful in 5m6s
checks / checks-impure (pull_request) Successful in 1m58s
Add the `CLAN_DIR` environment variable.
With this the user can specify the location of the clan.
2024-04-30 12:00:47 +02:00
02dd132e08 vms: init graceful shutdown for GUI
All checks were successful
checks-impure / test (pull_request) Successful in 1m43s
checks / test (pull_request) Successful in 2m44s
- add python modules for qemu protocols: QMP (hardware interactions) and QGA (guest service interaction)
- refactor state directory: remove name from path (already contains url)
- add impure vm test for basic qmp interaction
- simplify existing vm persistance test (factor out shared code)
- integrate graceful shutdown into GUI

the GUI integration still needs to be improved later:
- add fallback in case system doesn't react to powerdown button
- shutdown GUI switch fails if VM hasn't been started yet, and then remains in a wrong position
2024-02-09 19:55:18 +07:00
59fa63eba9 Reapply "vm-state: fix and improve testing"
All checks were successful
checks-impure / test (pull_request) Successful in 1m39s
checks / test (pull_request) Successful in 2m40s
This reverts commit 99092f6e76.

vm-state: revert sysusers, improve testing

zerotier: enable persistence

vm-state: cleanup tests
2024-01-31 11:02:16 +07:00
80a335eb4c drop unused unfree_nixpkgs function 2024-01-30 10:30:25 +07:00
99092f6e76 Revert "vm-state: fix and improve testing"
All checks were successful
checks-impure / test (pull_request) Successful in 1m37s
checks / test (pull_request) Successful in 3m23s
This reverts commit 6adc68a354.
2024-01-29 15:16:10 +07:00
6adc68a354 vm-state: fix and improve testing
All checks were successful
checks-impure / test (pull_request) Successful in 1m34s
checks / test (pull_request) Successful in 3m6s
checks / test (push) Successful in 30s
checks-impure / test (push) Successful in 1m27s
Also adds qemu qga protocol implementation to execute commands
2024-01-26 19:41:05 +07:00
6b004fca6f machines.Machine: refactor flake_dir -> flake; use Machine class in vm 2024-01-24 15:49:12 +01:00
520ff0b334 VMs: ensure state dirs don't collide between clans
All checks were successful
checks-impure / test (pull_request) Successful in 1m20s
checks / test (pull_request) Successful in 2m37s
2024-01-09 17:22:48 +07:00
c29e0086a4 VMs: persist state folders on host
All checks were successful
checks-impure / test (pull_request) Successful in 1m24s
checks / test (pull_request) Successful in 2m40s
Done:
- move vm inspect attrs from system.clan.vm.config to clanCore.vm.inspect. This gives us proper name and type checking. everything in `system` is basically freeform, so the previous option definitions were never enforced
- when running VMs, mount state directory from ~/.config/clan/vmstate/{...} from the host to /var/vmstate inside the vm
- create bind mount inside the VM from /var/vmstate/{folder} to / for all folders defined in clanCore.state.<name>.folders

TODOs:
- make sure directories in ~/.config/clan/vmstate never collide (include hash of clan-url, etc.)
- port impure test to python
2024-01-08 18:38:07 +07:00
ef827af89c Fixed unsafe dirs.py urlquoting, improved cmd.py run func 2024-01-02 17:21:06 +01:00
e7bd86a9d5 dirs.py: remove outdated comment
All checks were successful
checks-impure / test (pull_request) Successful in 1m12s
checks / test (pull_request) Successful in 2m48s
2024-01-02 14:25:37 +07:00
fcadaca010 cli: Switched b64 encoding of gcroot names to urlparse
All checks were successful
checks-impure / test (pull_request) Successful in 1m11s
checks / test (pull_request) Successful in 2m49s
2023-12-31 13:51:13 +01:00
c4799f1e9a Added gcroot for clan Icon and VM
All checks were successful
checks-impure / test (pull_request) Successful in 1m12s
checks / test (pull_request) Successful in 2m52s
2023-12-31 00:49:57 +01:00
e98f037dd8 clan_cli: remove incorrect clan_flake check
Some checks failed
checks-impure / test (pull_request) Successful in 1m1s
checks / test (pull_request) Failing after 1m5s
2023-12-16 21:46:19 +01:00
583311fcda nix fmt
Some checks failed
checks-impure / test (pull_request) Successful in 1m7s
checks / test (pull_request) Failing after 1m57s
2023-12-01 15:46:27 +01:00
3db73d3396 Added better error handling in --flake argument 2023-12-01 15:45:05 +01:00
f1b223d0a1 modernisation for python 3.11 2023-11-29 13:29:45 +00:00
999ad67277 api/flake/add: init
All checks were successful
checks-impure / test (pull_request) Successful in 1m31s
checks / test (pull_request) Successful in 2m3s
Adds an endpoint to memoize clans.
clan flakes can be added to the history either via the endpoint or by executing `clan flakes add`
2023-11-17 17:05:15 +07:00
1ea13646ea clan_cli: flake_name -> flake_dir
Some checks failed
checks / test (pull_request) Failing after 1m7s
checks-impure / test (pull_request) Successful in 1m31s
2023-11-15 16:23:28 +01:00
c0be813a4c dirs: opportuniscally create directories
All checks were successful
checks-impure / test (pull_request) Successful in 1m39s
checks / test (pull_request) Successful in 2m35s
2023-11-10 12:55:46 +01:00
657cdd6e67 drop unused clan_data_dir 2023-11-10 12:55:46 +01:00
df1acebd87 move flake configuration to .config/clan/flakes rather than $XDG_DATA_DIRS
All checks were successful
checks-impure / test (pull_request) Successful in 1m34s
checks / test (pull_request) Successful in 2m31s
2023-11-10 12:50:51 +01:00
af0714132d clan: use .local/share as default for XDG_DATA_HOME 2023-11-09 17:45:24 +01:00
0206210b7e fix error message if clan flake does not exist 2023-11-09 17:44:44 +01:00
7b3d3e20b4 clan-cli secrets: flake_name -> flake_dir
All checks were successful
checks / test (pull_request) Successful in 46s
checks-impure / test (pull_request) Successful in 1m26s
2023-11-05 16:58:48 +01:00
65eaece901 Merge pull request 'clanModules: add xfce/dino' (#444) from Mic92-main into main
All checks were successful
assets1 / test (push) Successful in 9s
checks-impure / test (push) Successful in 1m21s
checks / test (push) Successful in 1m57s
2023-10-31 12:56:32 +00:00
cb87ccbfc4 improve error message if flake_dir does not exists 2023-10-31 13:53:54 +01:00
17176f25de cli machines update: find flake dir automatic if not provided, support flake as path
Some checks failed
checks-impure / test (pull_request) Failing after 1m34s
checks / test (pull_request) Successful in 2m20s
2023-10-29 20:52:38 +01:00
f9b1a8fa89 Removing find_git_repo 2023-10-27 19:26:03 +02:00
d02acbe04b nix fmt 2023-10-27 19:19:45 +02:00
8482bc79f6 Secrets tests passing. nix fmt doesn't complain 2023-10-27 19:18:45 +02:00
8cc1c2c4bd Fixed cyclic dependencie AND swapped pytest-parallel for pytest-xdist to fix deadlock in tests 2023-10-27 19:18:45 +02:00
2ca54afe7f Added new type FlakeName 2023-10-27 19:18:45 +02:00
32e60f5adc Added flake_name:str argument everywhere, nix fmt doesn't complain anymore 2023-10-27 19:15:40 +02:00
fdcd7ad1d9 Updated to main 2023-10-27 19:15:11 +02:00
fa5f39f226 API: Added Path validators. api/flake/create inits git repo. Fixed vscode interpreter problem 2023-10-27 19:11:27 +02:00
e3b2424d9d make git optional again 2023-09-22 16:07:39 +02:00
0196fd72c3 git.commit_file: fix file path & repo path finding
All checks were successful
checks-impure / test (pull_request) Successful in 11s
checks / test (pull_request) Successful in 1m3s
2023-09-22 13:42:04 +02:00
3bdd3af248 cli: fix nixpkgs unfree import
All checks were successful
checks-impure / test (pull_request) Successful in 12s
checks / test (pull_request) Successful in 1m55s
2023-09-06 17:37:41 +02:00
35c5f248d1 cli/deps_flake: resolve symlink prior to execution
All checks were successful
checks-impure / test (pull_request) Successful in 6s
checks / test (pull_request) Successful in 50s
2023-09-06 17:05:21 +02:00
fcbc3ec899 clan-cli: use dependency flake instead of registry
All checks were successful
checks / test (pull_request) Successful in 1m53s
checks-impure / test (pull_request) Successful in 25s
2023-09-06 14:47:28 +02:00
fb7c77690a replace environment variable with nixpkgs directory
In this directory we generate all the files that we need to load nixpkgs.
This seems more robust than all those environment variables that may or not may be set.
2023-08-26 11:45:09 +02:00
7c388f977e dirs: fix user_config_dir on macos
All checks were successful
build / test (push) Successful in 14s
2023-07-29 14:21:36 +02:00
88a2c2656a get_clan_flake_toplevel: fix check
All checks were successful
build / test (push) Successful in 12s
2023-07-28 12:36:01 +02:00
5e5fbfcf06 write test for get_clan_flake_toplevel 2023-07-28 10:22:25 +00:00
a61d0c5a42 add dirs module to get toplevel flake and configuration dir 2023-07-26 14:34:39 +02:00