def respondWithHeaders(self, LastSyncTimestamp, Languages): if LastSyncTimestamp != 'null': LastSyncTimestamp = datetime.utcfromtimestamp( float(LastSyncTimestamp)) # + timedelta(minutes = 1) else: LastSyncTimestamp = 'NO-TIMESTAMP' cprint('FROM REMOTE: OLD LOCAL TIMESTAMP: %s' % (LastSyncTimestamp if LastSyncTimestamp != 'NO-TIMESTAMP' else LastSyncTimestamp), 'white', 'on_yellow', attrs=['bold']) print('\n') d = Mercury.getHeaders(LastSyncTimestamp, Languages) currentPacketNumber = 1 totalPacketNumber = 1 # start from one. def calculatePacketCounts(dbReply, bucketSize): global totalPacketNumber totalPacketNumber = len(dbReply) / bucketSize if len(dbReply) % bucketSize > 0: totalPacketNumber += 1 if len(dbReply) == 0: totalPacketNumber = 1 print('the reply includes %s headers' % len(dbReply)) print('total packet numbers: %s' % totalPacketNumber) return dbReply d.addCallback(calculatePacketCounts, globals.headerPacketCount) def bucketise(dbReply, bucketSize, CPNo): def process(slicedDbReply, currentPacketNumber): # here I need to fire the bucket given. def construct(bucket): positiveHeadersArray = [] neutralHeadersArray = [] negativeHeadersArray = [] topicHeadersArray = [] for h in bucket: if h['DIRECTION'] == 'POSITIVE': del h['DIRECTION'] hJson = ujson.dumps(h) positiveHeadersArray.append(hJson) elif h['DIRECTION'] == 'NEUTRAL': del h['DIRECTION'] hJson = ujson.dumps(h) neutralHeadersArray.append(hJson) elif h['DIRECTION'] == 'NEGATIVE': del h['DIRECTION'] hJson = ujson.dumps(h) negativeHeadersArray.append(hJson) elif h['DIRECTION'] == 'TOPIC': del h['DIRECTION'] hJson = ujson.dumps(h) topicHeadersArray.append(hJson) return { 'PositiveHeaders': positiveHeadersArray, 'NeutralHeaders': neutralHeadersArray, 'NegativeHeaders': negativeHeadersArray, 'TopicHeaders': topicHeadersArray } # Here i need to get the bucket, produce a valid amp packet with the data given and return that. # I ALSO CONVERT TO JSON HERE. def send(reply): # here I send the amp packet produced. global totalPacketNumber cprint('THIS IS PACKAGE NUMBERED: %d' % CPNo, 'white', 'on_red') reply['TotalNumberOfPackets'] = totalPacketNumber reply['CurrentPacketNo'] = currentPacketNumber print('reply: ', reply) # here I need to fire receiveheaders methods onto the remote for each of the packets. self.callRemote( networkAPI.ReceiveHeaders, PositiveHeaders=reply['PositiveHeaders'], NeutralHeaders=reply['NeutralHeaders'], NegativeHeaders=reply['NegativeHeaders'], TopicHeaders=reply['TopicHeaders'], TotalNumberOfPackets=reply['TotalNumberOfPackets'], CurrentPacketNo=reply['CurrentPacketNo']) return {} return send(construct(slicedDbReply)) if len(dbReply) > bucketSize: bucketise(dbReply[bucketSize:], bucketSize, CPNo + 1) # next batch. return process(dbReply[0:bucketSize], CPNo) # current batch. else: return process(dbReply[0:bucketSize], CPNo) # current batch. d.addCallback(bucketise, globals.headerPacketCount, currentPacketNumber) d.addErrback(self.closeConnection, 'INBOUND', Mercury.getHeaders.__name__) return d
def respondWithHeaders(self, LastSyncTimestamp, Languages): if LastSyncTimestamp != 'null': LastSyncTimestamp = datetime.utcfromtimestamp(float(LastSyncTimestamp))# + timedelta(minutes = 1) else: LastSyncTimestamp = 'NO-TIMESTAMP' cprint('FROM REMOTE: OLD LOCAL TIMESTAMP: %s' %(LastSyncTimestamp if LastSyncTimestamp != 'NO-TIMESTAMP' else LastSyncTimestamp), 'white', 'on_yellow', attrs=['bold']) print('\n') d = Mercury.getHeaders(LastSyncTimestamp, Languages) currentPacketNumber = 1 totalPacketNumber = 1 # start from one. def calculatePacketCounts(dbReply, bucketSize): global totalPacketNumber totalPacketNumber = len(dbReply)/bucketSize if len(dbReply)%bucketSize > 0: totalPacketNumber+= 1 if len(dbReply) == 0: totalPacketNumber = 1 print('the reply includes %s headers' %len(dbReply)) print('total packet numbers: %s' %totalPacketNumber) return dbReply d.addCallback(calculatePacketCounts, globals.headerPacketCount) def bucketise(dbReply, bucketSize, CPNo): def process(slicedDbReply, currentPacketNumber): # here I need to fire the bucket given. def construct(bucket): positiveHeadersArray = [] neutralHeadersArray = [] negativeHeadersArray = [] topicHeadersArray = [] for h in bucket: if h['DIRECTION'] == 'POSITIVE': del h['DIRECTION'] hJson = ujson.dumps(h) positiveHeadersArray.append(hJson) elif h['DIRECTION'] == 'NEUTRAL': del h['DIRECTION'] hJson = ujson.dumps(h) neutralHeadersArray.append(hJson) elif h['DIRECTION'] == 'NEGATIVE': del h['DIRECTION'] hJson = ujson.dumps(h) negativeHeadersArray.append(hJson) elif h['DIRECTION'] == 'TOPIC': del h['DIRECTION'] hJson = ujson.dumps(h) topicHeadersArray.append(hJson) return { 'PositiveHeaders': positiveHeadersArray, 'NeutralHeaders': neutralHeadersArray, 'NegativeHeaders': negativeHeadersArray, 'TopicHeaders': topicHeadersArray } # Here i need to get the bucket, produce a valid amp packet with the data given and return that. # I ALSO CONVERT TO JSON HERE. def send(reply): # here I send the amp packet produced. global totalPacketNumber cprint('THIS IS PACKAGE NUMBERED: %d' %CPNo, 'white', 'on_red') reply['TotalNumberOfPackets'] = totalPacketNumber reply['CurrentPacketNo'] = currentPacketNumber print('reply: ',reply) # here I need to fire receiveheaders methods onto the remote for each of the packets. self.callRemote(networkAPI.ReceiveHeaders, PositiveHeaders = reply['PositiveHeaders'], NeutralHeaders = reply['NeutralHeaders'], NegativeHeaders = reply['NegativeHeaders'], TopicHeaders = reply['TopicHeaders'], TotalNumberOfPackets = reply['TotalNumberOfPackets'], CurrentPacketNo = reply['CurrentPacketNo'] ) return {} return send(construct(slicedDbReply)) if len(dbReply) > bucketSize: bucketise(dbReply[bucketSize:], bucketSize, CPNo + 1) # next batch. return process(dbReply[0:bucketSize], CPNo) # current batch. else: return process(dbReply[0:bucketSize], CPNo) # current batch. d.addCallback(bucketise, globals.headerPacketCount, currentPacketNumber) d.addErrback(self.closeConnection, 'INBOUND', Mercury.getHeaders.__name__) return d
def respondWithHeaders(self, LastSyncTimestamp, Languages): #Check if handshake actually occurred. If not, abort. if not self.connectedNode: self.abortConnection( Exception('AetherError: Illegal request from remote.'), 'L<-R', 'respondWithHeaders') return {} if LastSyncTimestamp != 'null': LastSyncTimestamp = datetime.utcfromtimestamp( float(LastSyncTimestamp)) else: LastSyncTimestamp = 'NO-TIMESTAMP' print( 'L<-R: Headers request, Timestamp: ', LastSyncTimestamp if LastSyncTimestamp != 'NO-TIMESTAMP' else 'Initial Connection', ' N:', self.connectedNode['NodeId']) d = Mercury.getHeaders(LastSyncTimestamp, Languages) currentPacketNumber = 1 totalPacketNumber = 1 # start from one. def calculatePacketCounts(dbReply, bucketSize): global totalPacketNumber totalPacketNumber = len(dbReply) / bucketSize if len(dbReply) % bucketSize > 0: totalPacketNumber += 1 if len(dbReply) == 0: totalPacketNumber = 1 return dbReply d.addCallback(calculatePacketCounts, HEADER_PACKET_COUNT) def bucketise(dbReply, bucketSize, CPNo): def process(slicedDbReply, currentPacketNumber): # Here I need to fire the bucket given. def construct(bucket): positiveHeadersArray = [] neutralHeadersArray = [] negativeHeadersArray = [] topicHeadersArray = [] for h in bucket: if h['DIRECTION'] == 'POSITIVE': del h['DIRECTION'] hJson = ujson.dumps(h) positiveHeadersArray.append(hJson) elif h['DIRECTION'] == 'NEUTRAL': del h['DIRECTION'] hJson = ujson.dumps(h) neutralHeadersArray.append(hJson) elif h['DIRECTION'] == 'NEGATIVE': del h['DIRECTION'] hJson = ujson.dumps(h) negativeHeadersArray.append(hJson) elif h['DIRECTION'] == 'TOPIC': del h['DIRECTION'] hJson = ujson.dumps(h) topicHeadersArray.append(hJson) return { 'PositiveHeaders': positiveHeadersArray, 'NeutralHeaders': neutralHeadersArray, 'NegativeHeaders': negativeHeadersArray, 'TopicHeaders': topicHeadersArray } # Here i need to get the bucket, produce a valid amp packet with the data given and return that. # I also convert to JSON here. def send(reply): # Here I send the amp packet produced. global totalPacketNumber print('L->R: Header reply, Package number: ', CPNo, ' N:', self.connectedNode['NodeId']) reply['TotalNumberOfPackets'] = totalPacketNumber reply['CurrentPacketNo'] = currentPacketNumber self.callRemote( networkAPI.ReceiveHeaders, PositiveHeaders=reply['PositiveHeaders'], NeutralHeaders=reply['NeutralHeaders'], NegativeHeaders=reply['NegativeHeaders'], TopicHeaders=reply['TopicHeaders'], TotalNumberOfPackets=reply['TotalNumberOfPackets'], CurrentPacketNo=reply['CurrentPacketNo']) return {} return send(construct(slicedDbReply)) if len(dbReply) > bucketSize: bucketise(dbReply[bucketSize:], bucketSize, CPNo + 1) # next batch. return process(dbReply[0:bucketSize], CPNo) # current batch. else: return process(dbReply[0:bucketSize], CPNo) # current batch. d.addCallback(bucketise, HEADER_PACKET_COUNT, currentPacketNumber) d.addErrback(self.abortConnection, 'L<-R', Mercury.getHeaders.__name__) #return d # bad local return? return {}
def respondWithHeaders(self, LastSyncTimestamp, Languages): #Check if handshake actually occurred. If not, abort. if not self.connectedNode: self.abortConnection(Exception('AetherError: Illegal request from remote.'), 'L<-R', 'respondWithHeaders') return {} if LastSyncTimestamp != 'null': LastSyncTimestamp = datetime.utcfromtimestamp(float(LastSyncTimestamp)) else: LastSyncTimestamp = 'NO-TIMESTAMP' print('L<-R: Headers request, Timestamp: ', LastSyncTimestamp if LastSyncTimestamp != 'NO-TIMESTAMP' else 'Initial Connection', ' N:', self.connectedNode['NodeId']) d = Mercury.getHeaders(LastSyncTimestamp, Languages) currentPacketNumber = 1 totalPacketNumber = 1 # start from one. def calculatePacketCounts(dbReply, bucketSize): global totalPacketNumber totalPacketNumber = len(dbReply)/bucketSize if len(dbReply)%bucketSize > 0: totalPacketNumber+= 1 if len(dbReply) == 0: totalPacketNumber = 1 return dbReply d.addCallback(calculatePacketCounts, globals.headerPacketCount) def bucketise(dbReply, bucketSize, CPNo): def process(slicedDbReply, currentPacketNumber): # Here I need to fire the bucket given. def construct(bucket): positiveHeadersArray = [] neutralHeadersArray = [] negativeHeadersArray = [] topicHeadersArray = [] for h in bucket: if h['DIRECTION'] == 'POSITIVE': del h['DIRECTION'] hJson = ujson.dumps(h) positiveHeadersArray.append(hJson) elif h['DIRECTION'] == 'NEUTRAL': del h['DIRECTION'] hJson = ujson.dumps(h) neutralHeadersArray.append(hJson) elif h['DIRECTION'] == 'NEGATIVE': del h['DIRECTION'] hJson = ujson.dumps(h) negativeHeadersArray.append(hJson) elif h['DIRECTION'] == 'TOPIC': del h['DIRECTION'] hJson = ujson.dumps(h) topicHeadersArray.append(hJson) return { 'PositiveHeaders': positiveHeadersArray, 'NeutralHeaders': neutralHeadersArray, 'NegativeHeaders': negativeHeadersArray, 'TopicHeaders': topicHeadersArray } # Here i need to get the bucket, produce a valid amp packet with the data given and return that. # I also convert to JSON here. def send(reply): # Here I send the amp packet produced. global totalPacketNumber print('L->R: Header reply, Package number: ', CPNo, ' N:', self.connectedNode['NodeId']) reply['TotalNumberOfPackets'] = totalPacketNumber reply['CurrentPacketNo'] = currentPacketNumber self.callRemote(networkAPI.ReceiveHeaders, PositiveHeaders = reply['PositiveHeaders'], NeutralHeaders = reply['NeutralHeaders'], NegativeHeaders = reply['NegativeHeaders'], TopicHeaders = reply['TopicHeaders'], TotalNumberOfPackets = reply['TotalNumberOfPackets'], CurrentPacketNo = reply['CurrentPacketNo'] ) return {} return send(construct(slicedDbReply)) if len(dbReply) > bucketSize: bucketise(dbReply[bucketSize:], bucketSize, CPNo + 1) # next batch. return process(dbReply[0:bucketSize], CPNo) # current batch. else: return process(dbReply[0:bucketSize], CPNo) # current batch. d.addCallback(bucketise, globals.headerPacketCount, currentPacketNumber) d.addErrback(self.abortConnection, 'L<-R', Mercury.getHeaders.__name__) #return d # bad local return? return {}
def respondWithHeaders(self, LastSyncTimestamp, Languages): # Check if handshake actually occurred. If not, abort. if not self.connectedNode: self.abortConnection(Exception("AetherError: Illegal request from remote."), "L<-R", "respondWithHeaders") return {} if LastSyncTimestamp != "null": LastSyncTimestamp = datetime.utcfromtimestamp(float(LastSyncTimestamp)) else: LastSyncTimestamp = "NO-TIMESTAMP" print( "L<-R: Headers request, Timestamp: ", LastSyncTimestamp if LastSyncTimestamp != "NO-TIMESTAMP" else "Initial Connection", " N:", self.connectedNode["NodeId"], ) d = Mercury.getHeaders(LastSyncTimestamp, Languages) currentPacketNumber = 1 totalPacketNumber = 1 # start from one. def calculatePacketCounts(dbReply, bucketSize): global totalPacketNumber totalPacketNumber = len(dbReply) / bucketSize if len(dbReply) % bucketSize > 0: totalPacketNumber += 1 if len(dbReply) == 0: totalPacketNumber = 1 return dbReply d.addCallback(calculatePacketCounts, HEADER_PACKET_COUNT) def bucketise(dbReply, bucketSize, CPNo): def process(slicedDbReply, currentPacketNumber): # Here I need to fire the bucket given. def construct(bucket): positiveHeadersArray = [] neutralHeadersArray = [] negativeHeadersArray = [] topicHeadersArray = [] for h in bucket: if h["DIRECTION"] == "POSITIVE": del h["DIRECTION"] hJson = ujson.dumps(h) positiveHeadersArray.append(hJson) elif h["DIRECTION"] == "NEUTRAL": del h["DIRECTION"] hJson = ujson.dumps(h) neutralHeadersArray.append(hJson) elif h["DIRECTION"] == "NEGATIVE": del h["DIRECTION"] hJson = ujson.dumps(h) negativeHeadersArray.append(hJson) elif h["DIRECTION"] == "TOPIC": del h["DIRECTION"] hJson = ujson.dumps(h) topicHeadersArray.append(hJson) return { "PositiveHeaders": positiveHeadersArray, "NeutralHeaders": neutralHeadersArray, "NegativeHeaders": negativeHeadersArray, "TopicHeaders": topicHeadersArray, } # Here i need to get the bucket, produce a valid amp packet with the data given and return that. # I also convert to JSON here. def send(reply): # Here I send the amp packet produced. global totalPacketNumber print("L->R: Header reply, Package number: ", CPNo, " N:", self.connectedNode["NodeId"]) reply["TotalNumberOfPackets"] = totalPacketNumber reply["CurrentPacketNo"] = currentPacketNumber self.callRemote( networkAPI.ReceiveHeaders, PositiveHeaders=reply["PositiveHeaders"], NeutralHeaders=reply["NeutralHeaders"], NegativeHeaders=reply["NegativeHeaders"], TopicHeaders=reply["TopicHeaders"], TotalNumberOfPackets=reply["TotalNumberOfPackets"], CurrentPacketNo=reply["CurrentPacketNo"], ) return {} return send(construct(slicedDbReply)) if len(dbReply) > bucketSize: bucketise(dbReply[bucketSize:], bucketSize, CPNo + 1) # next batch. return process(dbReply[0:bucketSize], CPNo) # current batch. else: return process(dbReply[0:bucketSize], CPNo) # current batch. d.addCallback(bucketise, HEADER_PACKET_COUNT, currentPacketNumber) d.addErrback(self.abortConnection, "L<-R", Mercury.getHeaders.__name__) # return d # bad local return? return {}