Hi Thomas,
At least for JOB_ROUTER_ROUTE_NAMES the general HTCondor docs [0] explicitly say those are processed in the order of the list:
> Routes will be matched to jobs in the order their names are declared in this list.
For the JOB_ROUTER_*_ROUTE_TRANSFORM_NAMES itâs technically not spelled out, but seems pretty clear to have similar behaviour:
> An ordered list of the names of transforms that should be applied when a job is being routed [â]
So the router will first go through all JOB_ROUTER_PRE_ROUTE_TRANSFORM_NAMES, then through JOB_ROUTER_ROUTE_NAMES until the first match, then through all JOB_ROUTER_POST_ROUTE_TRANSFORM_NAMES.
We do use JOB_ROUTER_*_ROUTE_TRANSFORM_NAMES to patch a few attributes set by the CE (ð) so itâs definitely possible to overwrite/extend attributes in later routes.
Cheers,
Max
[0] https://htcondor.readthedocs.io/en/latest/admin-manual/configuration-macros.html#condor-job-router-configuration-file-entries
> On 16. Jul 2024, at 12:31, Thomas Hartmann <thomas.hartmann@xxxxxxx> wrote:
>
> Hi all,
>
> we are rewriting currently our CondorCE routes in the new synatx and I have a quick question. When having a number of routes, how are they actually ordered (or can they be ordered during loading the config)? ð
>
> Let's say, I have different routes, which could match for the same job - so that the different routes have REQUIREMENTS on different original job ads - but which are not necessarily excluding each other.
>
> IIRC Routes are not chained and I would guess that the first route matching its requirement wins and the job goes down this route (with a PRE ROUTE maybe applied before).
>
> If so, is there a suggested way to "order" routes to priotize these or ensure that the correct route is taken (without overloading the requirements)?
> E.g., in [1] there would be three routes getting added to JOB_ROUTER_ROUTE_NAMES. Would the routes then be applied in their order as in JOB_ROUTER_ROUTE_NAMES - or would JOB_ROUTER_ROUTE_NAMES get sorted alphanumerical and the routes then get tried to be matched in their alphanumerical order?
>
> On PRE ROUTEs - is it safe to assume that ads set in the pre_route can be overwritten/extended in following routes? Or would it be better to set only transient pre route ad, that is evaluated & set in the following routes into the actual ad?
>
> Cheers,
> Thomas
>
>
> [1]
>
> JOB_ROUTER_ROUTE_FOO_01DEFAULTS @=end
> SET adForAll = "valueForAll"
> SET requirements = "NODE_IS_HEALTHY"
> @end
>
> FOO_01PRIO @=end
> ...
> REQUIREMENTS (something == true)
> EVALSET requirements = "${requirements} && getFastBox == true"
> @end
>
> FOO_03BAZ @=end
> ...
> REQUIREMENTS (bazAd == true)
> @end
>
> FOO_90REST @=end
> ...
> @end
>
> JOB_ROUTER_PRE_ROUTE_TRANSFORM_NAMES = $(JOB_ROUTER_PRE_ROUTE_TRANSFORM_NAMES) FOO_90REST FOO_01DEFAULTS FOO_03BAZ
>
> JOB_ROUTER_ROUTE_NAMES = $(JOB_ROUTER_ROUTE_NAMES) FOO_01PRIO
> _______________________________________________
> HTCondor-users mailing list
> To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
> subject: Unsubscribe
> You can also unsubscribe by visiting
> https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users
>
> The archives can be found at:
> https://lists.cs.wisc.edu/archive/htcondor-users/
Attachment:
smime.p7s
Description: S/MIME cryptographic signature