def ackAgent(self, satisfy=False): prNodeStatus = self.prMod.getStatus() prNodeStatusMsg = PRStatusUpdate.createStatusUpdate(MsgType.PR_STATUS_UPDATE, prNodeStatus[0], prNodeStatus[1], prNodeStatus[2], prNodeStatus[3], satisfy) logging.debug("\t[PR-LOG] ACK-AGENT3") logging.debug("\t[PR-LOG] Sending Status update to Agent ("+str(prNodeStatus[0])+")") #self.streamCmdOut.send_multipart([self.name, prNodeStatusMsg], callback=self.cmdOutRequestToSink) #self.streamCmdOut.flush() self.stupidVerificationSocket.send_multipart([self.name, prNodeStatusMsg]) updateAck = self.stupidVerificationSocket.recv_multipart() logging.debug( str(updateAck)) updateAck = cPickle.loads(updateAck[1]) logging.debug( str(updateAck)) assert prNodeStatus[0] == updateAck[PRStatusUpdate.SEQ] logging.debug("AfterQueue") logging.debug("Update ACK \t"+str(updateAck)) logging.debug("PrNodeStatus \t"+str(prNodeStatus))
def verifyOperation(update, hungryNodes, graphCounter): node = update[0] update = cPickle.loads(update[1]) if node not in NodeObjectStatus.keys(): NodeObjectStatus[node] = "N/A" print "Current Node Status(", node, ")", NodeObjectStatus[node] NodeObjectStatus[node] = update[PRStatusUpdate.STATUS] print "Changed Node Status(", node, ")", NodeObjectStatus[node] if update[PRStatusUpdate.SATISFY] == True: print 'Satisfy-Message' verifyOnlyOneNodeIsEating(hungryNodes) else: print 'Status-Update Message' updateGraph(node, update[PRStatusUpdate.LAST], update[PRStatusUpdate.NEXT]) updateDrawingGraph(node, update[PRStatusUpdate.LAST], update[PRStatusUpdate.NEXT]) tmpName = "0"*(3-len(str(graphCounter)))+str(graphCounter) title = stepLabel % (tmpName) print tmpName, findCycles(graphLast) f = graphLastFiles % (tmpName) drawGraph(graphNetXLast, f, title) f = graphNextFiles % (tmpName) drawGraph(graphNetXNext, f, title) graphCounter+=1 statusAck = PRStatusUpdate.createStatusACKMessage(update[PRStatusUpdate.SEQ]) return (node, statusAck)