I don't think you want to use an if statement for this. The if statement will use the OpSys of the submit machine, but I think you want to use the OpSys of the execute machine instead.
To use the OpSys of the execute machine, you can use $$() expansion.
java_vm_args = $$([ IfThenElse(Opsys=="LINUX", "-agentpath:/var/lib/libjvmquake-linux-x86_64.so", "") ])
The $$() is evaluated each time the job runs using attributes from the execute node that the job will run on.
From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx> on behalf of frankie.lc@xxxxxxxxx <frankie.lc@xxxxxxxxx>
Sent: Thursday, February 17, 2022 7:05 PM
To: HTCondor-Users Mail List <htcondor-users@xxxxxxxxxxx>
Subject: [HTCondor-users] conditionals on condor_submit (complex)
I'm trying to submit a Java job that has different java_vm_args if on Linux.
universe = java
executable = fat-jar.jar
arguments = startFatJar
jar_files = fat-jar.jar
# if machine running is linux add an agentpath
if(OpSys == "LINUX")
java_vm_args = -agentpath:/var/lib/libjvmquake-linux-x86_64.so
But it fails with this message:
$ condor_submit condor_job
ERROR: on Line 9 of submit file: OpSys == "LINUX" is not a valid if condition because complex conditionals are not supported
Is there anyway around this?
Many thanks for the help,