Requirements = True # these triggers control IF statements later in the transform -xf.ExpireJob = false -xf.RemoveIfIdle = false +tmp.ExpireJob = False +tmp.RemoveIfIdle = False # modify routed job attributes # -delete CondorCE -set RoutedJob true +DELETE CondorCE +SET RoutedJob True # remove routed job if the client disappears for 48 hours or it is idle for 6 # -if $(xf.RemoveIfIdle) - set PeriodicRemove (LastClientContact - time() > 48*60*60) || (JobStatus == 1 && (time() - QDate) > 6*60) -else - delete PeriodicRemove -endif +IF $(tmp.RemoveIfIdle) + SET PeriodicRemove (LastClientContact - time() > 48*60*60) || (JobStatus == 1 && (time() - QDate) > 6*60) +ELSE + DELETE PeriodicRemove +ENDIF # insert HOME and OSG_* into environment # -xf.osg_env = OSG_GRID='/etc/osg/wn-client/' OSG_SQUID_LOCATION='fermicloud133.fnal.gov:3128' OSG_SITE_READ='None' OSG_APP='/share/osg/app' OSG_GLEXEC_LOCATION='None' OSG_DATA='UNAVAILABLE' -xf.osg_env = $(xf.osg_env) OSG_HOSTNAME='fermicloud136.fnal.gov' OSG_STORAGE_ELEMENT='False' OSG_SITE_NAME='herp' GLOBUS_LOCATION='/usr' OSG_WN_TMP='None' OSG_DEFAULT_SE='None' OSG_SITE_WRITE='None' -set osg_environment = "$(xf.osg_env)" +tmp.osg_env = OSG_GRID='/etc/osg/wn-client/' OSG_SQUID_LOCATION='fermicloud133.fnal.gov:3128' OSG_SITE_READ='None' OSG_APP='/share/osg/app' OSG_GLEXEC_LOCATION='None' OSG_DATA='UNAVAILABLE' +tmp.osg_env = $(tmp.osg_env) OSG_HOSTNAME='fermicloud136.fnal.gov' OSG_STORAGE_ELEMENT='False' OSG_SITE_NAME='herp' GLOBUS_LOCATION='/usr' OSG_WN_TMP='None' OSG_DEFAULT_SE='None' OSG_SITE_WRITE='None' +SET osg_environment "$(tmp.osg_env)" -xf.user_home_expr = userHome(Owner, "/") -xf.user_home = HOME=$EVAL(xf.user_home_expr) +tmp.user_home_expr = userHome(Owner, "/") +tmp.user_home = HOME=$EVAL(tmp.user_home_expr) -copy Environment orig_environment -set Environment "$(xf.user_home) $(my.orig_environment) $(my.osg_environment)" +COPY Environment orig_environment +SET Environment "$(tmp.user_home) $(MY.orig_environment) $(MY.osg_environment)" # pick up GlobusRSL settings, we will use those later in the transform # NOTE: is it a bug to leave this attribute behind? # # set InputRSL = ifThenElse(GlobusRSL is null, [], eval_rsl(GlobusRSL)); # or possibly this -if defined MY.GlobusRSL - set InputRSL eval_rsl(GlobusRSL) -else - set InputRSL [] -endif +IF DEFINED MY.GlobusRSL + SET InputRSL eval_rsl(GlobusRSL) +ELSE + SET InputRSL [] +ENDIF # Set new requirements -if $(xf.ExpireJob) - set Requirements (LastClientContact - time()) < 30*60 -else - set Requirements True -endif +IF $(tmp.ExpireJob) + SET Requirements (LastClientContact - time()) < 30*60 +ELSE + SET Requirements True +ENDIF # pass attributes (maxMemory,xcount,jobtype,queue) # via gWMS Factory described within ClassAd if undefined via RSL # Note default memory request of 2GB # -if defined MY.InputRSL.MaxMemory - Set RequestMemory $(MY.InputRSL.MaxMemory) -elif $(MY.MaxMemory) - Set RequestMemory MaxMemory -else - Set RequestMemory $(MY.default_maxMemory:2000) -endif - -if defined MY.InputRSL.Queue - Set remote_queue "$(MY.InputRSL.Queue)" -elif defined MY.Queue - Set remote_queue Queue -else - Set remote_queue "$(MY.default_queue)" -endif +IF DEFINED MY.InputRSL.MaxMemory + SET RequestMemory $(MY.InputRSL.MaxMemory) +ELIF $(MY.MaxMemory) + SET RequestMemory MaxMemory +ELSE + SET RequestMemory $(MY.default_maxMemory:2000) +ENDIF + +IF DEFINED MY.InputRSL.Queue + SET remote_queue "$(MY.InputRSL.Queue)" +ELIF DEFINED MY.Queue + SET remote_queue Queue +ELSE + SET remote_queue "$(MY.default_queue)" +ENDIF # Figure out the number of cores. HTCondor uses RequestCpus # blahp uses SMPGranularity and NodeNumber. Default is 1 core. # -if defined MY.InputRSL.xcount - xf.cpus = $(MY.InputRSL.xcount) -elif $(MY.xcount) - xf.cpus = $(MY.xcount) -else - xf.cpus = $(MY.default_xcount:1) -endif -Set RequestCpus = $(xf.cpus) -Set SMPGranularity = $(xf.cpus) -Set NodeNumber = $(xf.cpus) +IF DEFINED MY.InputRSL.xcount + tmp.cpus = $(MY.InputRSL.xcount) +ELIF $(MY.xcount) + tmp.cpus = $(MY.xcount) +ELSE + tmp.cpus = $(MY.default_xcount:1) +ENDIF +SET RequestCpus $(tmp.cpus) +SET SMPGranularity $(tmp.cpus) +SET NodeNumber $(tmp.cpus) # If remote_cerequirements is a string, BLAH will parse it as an expression before examining it # -set remote_cerequirements "CONDOR_CE == 1" +SET remote_cerequirements "CONDOR_CE == 1" # add a walltime to the remote_cerequirements expression if one is given. -xf.MaxWalltime_expr = 60 * (InputRSL.MaxWalltime ?: MaxWalltime ?: default_MaxWalltime ?: 0) -if $INT(xf.MaxWalltime_expr) - set remote_cerequirements "Walltime == $INT(xf.MaxWalltime_expr) && CondorCE == 1" -endif +tmp.MaxWalltime_expr = 60 * (InputRSL.MaxWalltime ?: MaxWalltime ?: default_MaxWalltime ?: 0) +IF $INT(tmp.MaxWalltime_expr) + SET remote_cerequirements "Walltime == $INT(tmp.MaxWalltime_expr) && CondorCE == 1" +ENDIF {endsnip}