The following code gives more information about how assertServerRunning is put into operation.
# (1) def individualScan( motor1, motor2): ... class infoBlock(): pass if __name__ == '__main__': # # (2) prepare the list of info blocks # infoBlocks = [] for dev in [ "haspp99:10000/p99/motor/exp.01", "haspp99:10000/p99/motor/exp.02"]: try: p = PyTango.DeviceProxy( dev) except: print "main: failed to get proxy to %s, exiting" % dev sys.exit(255) ib = infoBlock() ib.dbHost = p.get_db_host() ib.serverName = p.info().server_id infoBlocks.append( ib) # # loop over the scans # while True: try: if not individualScan( "haspp99:10000/p99/motor/exp.01", "haspp99:10000/p99/motor/exp.02"): break # # (3) the landing point # except PyTango.DevFailed: for ib in infoBlocks: if not HasyUtils.assertServerRunning( ib.serverName, ib.dbHost): print "main: assertServerRunning failed" sys.exit(255)