From 7c1f3a79db8bb28cc3ccb86940ae93df2e1fce24 Mon Sep 17 00:00:00 2001 From: Jannik Straube Date: Wed, 23 Apr 2025 15:30:39 +0200 Subject: [PATCH 1/2] temp adjust discovery restrictions with new gpu setup --- crates/discovery/src/api/routes/node.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/crates/discovery/src/api/routes/node.rs b/crates/discovery/src/api/routes/node.rs index 54ab4edb..e6273755 100644 --- a/crates/discovery/src/api/routes/node.rs +++ b/crates/discovery/src/api/routes/node.rs @@ -45,6 +45,31 @@ pub async fn register_node( .json(ApiResponse::new(true, "Node registered successfully")); } + let mut existing_clone = existing_node.node.clone(); + match &update_node.compute_specs { + Some(compute_specs) => { + if let Some(ref mut existing_compute_specs) = existing_clone.compute_specs { + match &compute_specs.gpu { + Some(gpu_specs) => { + existing_compute_specs.gpu = Some(gpu_specs.clone()); + } + None => { + existing_compute_specs.gpu = None; + } + } + } + } + None => { + existing_clone.compute_specs = None; + } + } + + if existing_clone == update_node { + log::info!("Node {} is already active in a pool", update_node.id); + return HttpResponse::Ok() + .json(ApiResponse::new(true, "Node registered successfully")); + } + warn!( "Node {} tried to change discovery but is already active in a pool", update_node.id From e0f2cb18872b1e0e1fc5cd934e103e02f81c4b5b Mon Sep 17 00:00:00 2001 From: Jannik Straube Date: Wed, 23 Apr 2025 15:32:26 +0200 Subject: [PATCH 2/2] add comment --- crates/discovery/src/api/routes/node.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/discovery/src/api/routes/node.rs b/crates/discovery/src/api/routes/node.rs index e6273755..851444be 100644 --- a/crates/discovery/src/api/routes/node.rs +++ b/crates/discovery/src/api/routes/node.rs @@ -44,7 +44,9 @@ pub async fn register_node( return HttpResponse::Ok() .json(ApiResponse::new(true, "Node registered successfully")); } - + // Temp. adjustment: The gpu object has changed and includes a vec of indices now. + // This now causes the discovery svc to reject nodes that have just updated their software. + // This is a temporary fix to ensure the node is accepted even though the indices are different. let mut existing_clone = existing_node.node.clone(); match &update_node.compute_specs { Some(compute_specs) => {