Exemplo n.º 1
0
    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))
Exemplo n.º 2
0
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)