#!/usr/local/bin/python
 
import os
import string
import sys
 
logfile=open('/usr/local/nagios/DCS/loadl.status','w')
reslist=[]
# iterate over 1..8
for i in range(1,9):
        host="esmf0"+str(i)+"m"
#       just for testing to see what this script will do when there's an
#       error
#       if host == 'esmf03m':
#               port = 3000
#       else:
#               port = 9605
        port = 9605
        pipe=os.popen("/usr/local/nagios/libexec/check_tcp -H "+host+" -p "+str(port),"r")
        state_descrip = string.strip(pipe.readline())
        retval = pipe.close()
        # this is a bit strange: Python makes the return value of popen
        # "None" if the
        # exit status is 0
        if retval == None:
                retval = 0
        sretval = str(retval/256)
        reslist.append(sretval)
        logfile.write(host+' '+sretval+' '+state_descrip+'\n')
 
logfile.close()
 
data=string.joinfields(reslist,",")
 
pipe = os.popen("/usr/local/nagios/libexec/check_cluster2 --service --label 'loadleveler' -w 1 -c 1 -d "+data,"r")
result_text = pipe.readline()
status_code = pipe.close()
# this is a bit strange: Python makes the return value of popen "None"
# if the
# exit status is 0
if status_code == None:
        status_code = 0
sys.stdout.write(result_text)
status_code = status_code/256
sys.exit(status_code)
	esmf01m 0 TCP OK - 0 second response time on port 9605 esmf02m 0 TCP OK - 0 second response time on port 9605 esmf03m 0 TCP OK - 0 second response time on port 9605 esmf04m 0 TCP OK - 0 second response time on port 9605 esmf05m 0 TCP OK - 0 second response time on port 9605 esmf06m 0 TCP OK - 0 second response time on port 9605 esmf07m 0 TCP OK - 0 second response time on port 9605 esmf08m 0 TCP OK - 0 second response time on port 9605
The first column of zeros is the exit status from the check_tcp plugin, which is what gets fed into check_cluster2 by the wrapper script.