119119
120120
121121def _send_to_compute_worker (submission , is_scoring , target_group = None ):
122+ < << << << HEAD
122123 logger .info ("Site Worker ==> STARTING" )
124+ == == == =
125+ logger .info (
126+ "Site Worker ==> STARTING submission_id=%s is_scoring=%s "
127+ "target_group_param=%s submission.queue=%s parent=%s" ,
128+ submission .pk ,
129+ is_scoring ,
130+ getattr (target_group , "pk" , None ),
131+ getattr (getattr (submission , "queue" , None ), "name" , None ),
132+ getattr (submission .parent , "pk" , None ) if submission .parent else None ,
133+ )
134+ >> >> >> > 0 dc476f1 (debug serveur status routing of scoring )
123135
124136 run_args = {
125137 "user_pk" : submission .owner .pk ,
@@ -285,6 +297,7 @@ def _send_to_compute_worker(submission, is_scoring, target_group=None):
285297 target_vhost = None
286298 try :
287299 if target_group :
300+ << << << < HEAD
288301 if getattr (target_group , 'queue' , None ):
289302 run_args ['queue' ] = target_group .queue .name
290303 target_vhost = getattr (target_group .queue , 'vhost' , None )
@@ -310,6 +323,111 @@ def _send_to_compute_worker(submission, is_scoring, target_group=None):
310323 else :
311324 logger .debug ("Submission %s owner %s: no matching group with queue for competition %s" ,
312325 submission .pk , submission .owner .pk , competition .pk )
326+ == == == =
327+ if getattr (target_group , "queue" , None ):
328+ run_args ["queue" ] = target_group .queue .name
329+ target_vhost = getattr (target_group .queue , "vhost" , None )
330+ try :
331+ submission .queue = target_group .queue
332+ submission .save (update_fields = ["queue" ])
333+ logger .debug ("Persisted submission.queue=%s for submission %s" , getattr (target_group .queue , "name" , None ), submission .pk )
334+ except Exception :
335+ logger .exception ("Failed to persist submission.queue for submission %s" , submission .pk )
336+ logger .info (
337+ "Submission %s forced to group %s queue=%s vhost=%s" ,
338+ submission .pk ,
339+ getattr (target_group , "pk" , None ),
340+ run_args .get ("queue" ),
341+ target_vhost ,
342+ )
343+ else :
344+ persisted_queue = None
345+ try :
346+ persisted_queue = getattr (submission , "queue" , None )
347+ except Exception :
348+ persisted_queue = None
349+
350+ if persisted_queue :
351+ try :
352+ run_args ["queue" ] = persisted_queue .name
353+ target_vhost = getattr (persisted_queue , "vhost" , None )
354+ logger .info (
355+ "Submission %s resolved queue=%s vhost=%s (by persisted submission.queue)" ,
356+ submission .pk ,
357+ run_args .get ("queue" ),
358+ target_vhost ,
359+ )
360+ except Exception :
361+ logger .exception ("Error reading persisted submission.queue for submission %s" , submission .pk )
362+ else :
363+ competition = submission .phase .competition
364+ user_group_ids = list (submission .owner .groups .values_list ("id" , flat = True ))
365+ logger .debug (
366+ "User %s group ids for competition %s: %s" ,
367+ submission .owner .pk ,
368+ competition .pk ,
369+ user_group_ids ,
370+ )
371+
372+ comp_user_groups_qs = (
373+ competition .participant_groups
374+ .filter (id__in = user_group_ids )
375+ .select_related ("queue" )
376+ )
377+
378+ group = (
379+ comp_user_groups_qs .filter (queue__isnull = False ).first ()
380+ or comp_user_groups_qs .first ()
381+ )
382+
383+ if group and getattr (group , "queue" , None ):
384+ run_args ["queue" ] = group .queue .name
385+ target_vhost = getattr (group .queue , "vhost" , None )
386+ logger .info (
387+ "Submission %s resolved group=%s queue=%s vhost=%s (by owner membership)" ,
388+ submission .pk ,
389+ group .pk ,
390+ group .queue .name ,
391+ target_vhost ,
392+ )
393+ else :
394+ logger .debug (
395+ "Submission %s: no matching group with queue for competition %s via owner membership" ,
396+ submission .pk ,
397+ competition .pk ,
398+ )
399+
400+ if submission .parent :
401+ try :
402+ sibling = (
403+ Submission .objects
404+ .filter (parent = submission .parent )
405+ .exclude (pk = submission .pk )
406+ .filter (queue__isnull = False )
407+ .select_related ("queue" )
408+ .first ()
409+ )
410+ if sibling and getattr (sibling , "queue" , None ):
411+ run_args ["queue" ] = sibling .queue .name
412+ target_vhost = getattr (sibling .queue , "vhost" , None )
413+ # optionally persist to current child for future
414+ try :
415+ submission .queue = sibling .queue
416+ submission .save (update_fields = ["queue" ])
417+ logger .debug ("Persisted submission.queue from sibling=%s to submission=%s" , sibling .pk , submission .pk )
418+ except Exception :
419+ logger .exception ("Failed to persist submission.queue (from sibling) for submission %s" , submission .pk )
420+
421+ logger .info (
422+ "Submission %s resolved queue=%s vhost=%s (by sibling child %s)" ,
423+ submission .pk ,
424+ run_args .get ("queue" ),
425+ target_vhost ,
426+ sibling .pk ,
427+ )
428+ except Exception :
429+ logger .exception ("Error while trying to resolve queue from sibling for submission %s" , submission .pk )
430+ > >> >> >> 0 dc476f1 (debug serveur status routing of scoring )
313431 except Exception :
314432 logger .exception ("Error while resolving competition/group for submission %s" , submission .pk )
315433
0 commit comments