{code} #!/bin/sh - CONDOR_CHIRP=`condor_config_val LIBEXEC`/condor_chirp +get_job_attr_blocking() { + while /bin/true + do + JobServerAddress=`$CONDOR_CHIRP get_job_attr $1` + if [ $? -ne 0 ]; then + echo "Chirp is broken!" 1>&2 + exit 1 + fi + if [ "$JobServerAddress" != "UNDEFINED" ]; then + echo "$JobServerAddress" + exit 0 + fi + sleep 2 + done +} + if [[ $_CONDOR_PROCNO = "0" ]] then - # I'm the server $CONDOR_CHIRP set_job_attr JobServerAddress '"This is my address"' - # Do server things here... - sleep 3600 + # Do other server things here... + sleep 60 exit 0 fi if [[ $_CONDOR_PROCNO = "1" ]] then - # I'm the client - until $CONDOR_CHIRP get_job_attr JobServerAddress > /dev/null 2>&1 - do - sleep 2 - done - - JobServerAddress=`$CONDOR_CHIRP get_job_attr JobServerAddress` + JobServerAddress=`get_job_attr_blocking JobServerAddress` + if [ $? -ne 0 ]; then + echo "Chirp is broken" + exit 1 + fi # I've got the address, do client things here like connect to the server.. echo "JobServerAddress is $JobServerAddress"