Commit Graph

138 Commits

Author SHA1 Message Date
Jörg Thalheim
7f1590c729 PERF403: fix 2025-08-25 15:06:32 +02:00
Jörg Thalheim
ea2d6aab65 ruff: apply automatic fixes 2025-08-25 11:34:41 +02: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
DavHau
b74193514d ssh: refactor callers to use new Host interface 2025-08-05 13:16:59 +02:00
lassulus
1a5b77d47a refactor: generalize Tor support to SOCKS5 proxy in network module
- Replace Tor-specific implementation with generic SOCKS5 proxy support
- Change `tor_socks` boolean to `socks_port` and `socks_wrapper` parameters
- Move Tor functionality to clan_lib.network.tor submodule
- Add connection context managers to NetworkTechnologyBase
- Improve network abstraction with proper remote() and connection() methods
- Update all callers to use new SOCKS5 proxy interface
- Fix network ping command to properly handle connection contexts

This allows for more flexible proxy configurations beyond just Tor,
while maintaining backward compatibility for Tor usage.
2025-07-24 22:26:44 +02:00
Qubasa
cfba97eee5 clan-cli: Reference HostKeyCheck literal instead of duplicating the list everywhere 2025-07-16 13:12:48 +07:00
Qubasa
e8b5e2c2c5 clan-cli: Fixup clan install which depends on ssh_parseargs.
clan-cli: Remove --ssh-option for now, as it can't work in current state

clan-cli: Remove nix_config from test as its impure
2025-07-14 20:47:49 +07:00
Qubasa
9630b6dbe4 clan-cli: Make 'clan ssh' read out the targetHost to connect to 2025-07-14 19:35:48 +07:00
Johannes Kirschbauer
6560738502 api/machine checks: rename, add checkResult 2025-07-07 13:13:00 +02:00
lassulus
045b250f9a Revert "make host key check an enum instead of an literal type"
This reverts commit 3d83017acd.
2025-07-06 14:51:19 +02:00
Jörg Thalheim
3d83017acd make host key check an enum instead of an literal type
this is more typesafe at runtime.
2025-07-04 14:36:05 +02:00
a-kenji
73db293ec7 pkgs/clan: Fix clan ssh subcommand 2025-06-27 15:39:38 +02:00
Qubasa
168e1d8c96 clan-cli: Move hardware.py to clan_lib/machines 2025-06-24 11:07:37 +02:00
Qubasa
071151f300 clan-lib: Rename parse_deployment_address to parse_ssh_uri 2025-06-23 15:32:35 +02:00
Qubasa
255f2da358 clan-lib: Remove override args from parse_deployment_address, instead use the Remote.override method where necessary 2025-06-23 15:28:22 +02:00
Qubasa
054ea67fb7 clan-cli: Simplify HostKeyCheck to a Literal instead of an Enum 2025-06-23 15:08:44 +02:00
Qubasa
274c552365 clan-lib: machines.py: Remove host_key attribute 2025-06-19 17:55:56 +02:00
Qubasa
ee802ad723 clan-cli: Use Remote class in DeployInfo, add tests for qrcode parser and json parser 2025-06-09 19:27:01 +02:00
lassulus
8ce860f0d3 Revert "clan-cli: Use Remote class in DeployInfo, add tests for qrcode parser and json parser"
This reverts commit b1ef5f00bf.
2025-06-09 11:28:15 +02:00
Qubasa
b1ef5f00bf clan-cli: Use Remote class in DeployInfo, add tests for qrcode parser and json parser 2025-06-07 00:51:24 +02:00
Jörg Thalheim
ddab4b5b94 re-store controllmaster in various places where it got removed. 2025-05-28 16:21:30 +02:00
Jörg Thalheim
f3cdcef523 no longer require controlmaster for interactive ssh
we only run one ssh command, so control master is not needed
2025-05-28 16:21:30 +02:00
Jörg Thalheim
cedc5113ea add sudo_askpass_proxy 2025-05-28 16:21:30 +02:00
Qubasa
8b1968cca6 clan-cli: Move Machine object to clan_lib 2025-05-22 19:11:19 +02:00
Qubasa
e14f30bdc0 clan-cli: Rename Host -> Remote move to clan_lib and mark as frozen 2025-05-22 14:08:27 +02:00
lassulus
a4895a4d96 clan-cli: clan_cli.async_run -> clan_lib.async_run 2025-05-20 15:05:11 +02:00
lassulus
9ecf98171b Merge pull request 'clan_lib_colors' (#3713) from clan_lib_colors into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3713
2025-05-20 11:59:18 +00:00
Jörg Thalheim
2f2af072e4 upload: hide upload command by default 2025-05-20 13:37:46 +02:00
Jörg Thalheim
e2af063528 upload: stream tarball rather than read at once 2025-05-20 13:37:46 +02:00
lassulus
9063e4aae9 clan-cli: clan_cli.colors -> clan_lib.colors 2025-05-20 12:52:12 +02:00
Jörg Thalheim
c5ba64bd30 host.run: improve quoting of bash command 2025-05-20 10:56:44 +02:00
lassulus
9a0c6f55bd clan-cli: clan_cli.cmd -> clan_lib.cmd 2025-05-19 19:07:24 +02:00
lassulus
cb74273da4 clan-cli: move clan_cli.nix to clan_lib.nix 2025-05-19 18:40:36 +02:00
Jörg Thalheim
daa0e0f4e6 machines/upload: start to use builtin sudo 2025-05-19 11:18:15 +02:00
Johannes Kirschbauer
fe0507b47c refactor: move clan_cli.error to clan_lib.error 2025-05-16 16:14:39 +02:00
Jörg Thalheim
3d743960a4 upload: don't try to re-create directory if it already exists
This allows bind mounts i.e. needed for preserveration/impermanence
2025-05-16 15:39:09 +02:00
Jörg Thalheim
50dc6c4c50 fix ssh master on macos 2025-05-14 20:30:36 +02:00
Qubasa
01f9bb358e clan-cli: Use machine object everywhere instead of name + flake 2025-05-09 13:13:14 +02:00
Jörg Thalheim
f3c673d165 only apply ssh control master to local ssh connection 2025-05-06 13:11:30 +02:00
Jörg Thalheim
5846f5d63a Host: actual setup ssh controlmaster
before we were not entering the context manager
2025-05-06 13:11:30 +02:00
Jörg Thalheim
be79d75c08 bind ssh controlmaster to live time of CLI 2025-05-04 16:28:14 +02:00
Jörg Thalheim
dc4268dbf2 fix ssh control master check (#3488)
Co-authored-by: pinpox <git@pablo.tools>
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3488
Co-authored-by: Jörg Thalheim <joerg@thalheim.io>
Co-committed-by: Jörg Thalheim <joerg@thalheim.io>
2025-05-04 12:49:53 +00:00
Jörg Thalheim
9af16037a2 Revert "Merge pull request 'Fix deploying with sudo + password' (#3470) from target-host into main"
This reverts commit fbc0f9cde5, reversing
changes made to b47c25c620.
2025-05-04 13:37:39 +02:00
Jörg Thalheim
39880f9434 fix upload when sudo prompts are needed 2025-05-04 10:51:49 +02:00
Mic92
b47c25c620 Merge pull request 'Miscellaneous ssh fixes.' (#3487) from misc-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3487
2025-05-04 08:51:31 +00:00
Jörg Thalheim
fb4421427b Host: always set needs_user_terminal for ssh commands, only override prefix if given by user 2025-05-04 10:39:39 +02:00
Jörg Thalheim
35ee7986d7 rename connect_ssh_shell to interactive_ssh
better name than secure shell shell
2025-05-04 10:28:43 +02:00
Jörg Thalheim
75cb031e6e move password/tor_socks into Host attributes
we set those parameters usually just once.
2025-05-04 10:28:43 +02:00