############################################# # # Your generic all-in-one monitoring object: # # It knows where it is, and what to call. # # ############################### #import Ganga.Utility.logging #logger = Ganga.Utility.logging.getLogger() try: import apmon # logger.debug("ApMon imported successfully") except Exception, x: print "Could not import apmon and therefore no information was sent: %s" % str(x) # break # logger.warning("Could not import apmon and therefore no information was sent: %s" % str(x)) class DL: def __init__(self): self._jobID = 0 pass def send(self, jobID=0, workdir='', datagram={}): ml_sensor = apmon.ApMon("./destinations.conf") if datagram: ml_sensor.sendParameters("SimpleCluster", "Job ID: %s" % (jobID), datagram) ml_sensor.free() if jobID and workdir: ### Must be working on a Local-type backend ### Therefore: change into workdir and exit after finished import os print "Determined you must be using a Local-type backend, jobID: %s" % jobID if workdir == os.getcwd(): self.sendGaudi(jobID) else: cwd = os.getcwd() os.chdir(workdir) self.sendGaudi(jobID) os.chdir(workdir) elif jobID and not datagram: ### Must be on LSF-type backend, nothing special to do print "Determined you must be using an LSF-type backend, jobID: %s" % jobID self.sendGaudi(jobID) def sendGaudi(self, jobID=0): import ListenerResults ListenerResults.ListenerResults(jobID)