inject all ssh keys by default is non are provided

This commit is contained in:
Maxime Van Hees
2025-07-16 10:57:19 +02:00
parent 1839cfd002
commit 34e810b611
4 changed files with 20 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ pub enum Request {
RebootServer(HetznerClient, i64),
ResetServer(HetznerClient, i64),
EnableRescueMode(HetznerClient, i64, Vec<i64>),
EnableRescueModeWithAllKeys(HetznerClient, i64),
DisableRescueMode(HetznerClient, i64),
ListSshKeys(HetznerClient),
}
@@ -58,7 +59,22 @@ pub fn run_worker(
Response::ResetServer(result)
}
Request::EnableRescueMode(client, server_id, ssh_keys) => {
let result = rt.block_on(client.enable_rescue_mode_for_server(server_id, ssh_keys)).map_err(|e| e.to_string());
let result = rt
.block_on(client.enable_rescue_mode_for_server(server_id, ssh_keys))
.map_err(|e| e.to_string());
Response::EnableRescueMode(result)
}
Request::EnableRescueModeWithAllKeys(client, server_id) => {
let result = rt
.block_on(async {
let ssh_keys = client.list_ssh_keys().await?;
let ssh_key_ids: Vec<i64> = ssh_keys.into_iter().map(|k| k.0.id).collect();
println!("Passing in the following ssh key ids: {:#?}", ssh_key_ids);
client
.enable_rescue_mode_for_server(server_id, ssh_key_ids)
.await
})
.map_err(|e: Box<dyn std::error::Error>| e.to_string());
Response::EnableRescueMode(result)
}
Request::DisableRescueMode(client, server_id) => {

View File

@@ -120,7 +120,7 @@ pub fn register_hetzner_api(
.register_fn("enable_rescue_mode", {
let bridge = api_bridge.clone();
move |client: &mut HetznerClient, server_id: i64| {
bridge.call(Request::EnableRescueMode(client.clone(), server_id, Vec::new()), |response| {
bridge.call(Request::EnableRescueModeWithAllKeys(client.clone(), server_id), |response| {
match response {
Response::EnableRescueMode(result) => result.map_err(|e| e.into()),
_ => Err("Unexpected response".into()),