Skip to content

Commit 03af4eb

Browse files
authored
Bug/SK-1670 | When a client (using the same client_id) reconnects, the name does not update (#978)
1 parent 5acbd6d commit 03af4eb

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

fedn/network/api/v1/client_routes.py

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -504,10 +504,11 @@ def add_client():
504504
if combiner is None:
505505
return jsonify({"success": False, "message": "No combiner available."}), 400
506506

507-
if db.client_store.get(client_id) is None:
508-
logger.info("Adding client {}".format(client_id))
507+
existing_client = db.client_store.get(client_id)
508+
last_seen = datetime.now()
509509

510-
last_seen = datetime.now()
510+
if existing_client is None:
511+
logger.info("Adding client {}".format(client_id))
511512

512513
new_client = ClientDTO(
513514
client_id=client_id,
@@ -520,8 +521,27 @@ def add_client():
520521
last_seen=last_seen,
521522
)
522523

523-
added_client = db.client_store.add(new_client)
524-
client_id = added_client.client_id
524+
try:
525+
added_client = db.client_store.add(new_client)
526+
client_id = added_client.client_id
527+
except Exception as e:
528+
logger.error(f"Failed to add new client: {e}")
529+
return jsonify({"success": False, "message": "Failed to add new client"}), 500
530+
else:
531+
logger.info("Client {} already exists, updating client object".format(client_id))
532+
existing_client.name = name
533+
existing_client.combiner = combiner.name
534+
existing_client.combiner_preferred = preferred_combiner
535+
existing_client.ip = remote_addr
536+
existing_client.status = "available"
537+
existing_client.package = package
538+
existing_client.last_seen = last_seen
539+
540+
try:
541+
db.client_store.update(existing_client)
542+
except Exception as e:
543+
logger.error(f"Failed to update existing client: {e}")
544+
return jsonify({"success": False, "message": "Failed to update existing client"}), 500
525545

526546
payload = {
527547
"status": "assigned",

0 commit comments

Comments
 (0)