def instantSave(self): ''' liest jobFile aus, speichert diese, gibt "finished"-message zurück und löscht den Job aus Jobliste''' f = open(self.jobFile, 'wb') f.close() #kann nicht tree sein (size(tree) nie 0) peetree = flpconfig.PEERGROUP[self.peer[0]][0] flputil.setTreeMTime(peetree, self.jobFile, self.setDirStamp) self.socket.send(flpconfig.SEP.join([flpconfig.PROG,flpconfig.FINMSG])) self.finished = True RequestJob.filejobs.remove(self.jobFile)
def instantSave(self): ''' liest jobFile aus, speichert diese, gibt "finished"-message zurück und löscht den Job aus Jobliste''' f = open(self.jobFile, 'wb') f.close() #kann nicht tree sein (size(tree) nie 0) peetree = flpconfig.PEERGROUP[self.peer[0]][0] flputil.setTreeMTime(peetree, self.jobFile, self.setDirStamp) self.socket.send(flpconfig.SEP.join([flpconfig.PROG, flpconfig.FINMSG])) self.finished = True RequestJob.filejobs.remove(self.jobFile)
def _trySave(self): ''' versucht daten auf das dateisystem zu schreiben ''' if self.timesTried < RequestJob.maxTries: if self.received == self.length: self.tempFile.seek(0) f = open(self.jobFile, 'wb') while True: data = self.tempFile.read(flpconfig.SIZE) if not data: break f.write(data) f.close() self.tempFile.close() #set own timestamp if not self.isTree: peetree = flpconfig.PEERGROUP[self.peer[0]][0] flputil.setTreeMTime(peetree, self.jobFile, self.setDirStamp) self.socket.send( flpconfig.SEP.join([flpconfig.PROG, flpconfig.FINMSG])) self.finished = True flpconfig.LOGGER.info("completed file request for " + self.jobFile + " to " + str(self.peer)) else: self.socket.send(flpconfig.FINMSG) self.timesTried += 1 self.state = Job.INIT self.do() flpconfig.LOGGER.info( 'Dateiübertragung fehlgeschlagen, neuer Request') else: # TODO: nach Fehlschlag aufräumen? flpconfig.LOGGER.info('Dateiübertragung endgültig fehlgeschlagen') self.failed = True RequestJob.filejobs.remove(self.jobFile)
def _trySave(self): ''' versucht daten auf das dateisystem zu schreiben ''' if self.timesTried < RequestJob.maxTries: if self.received == self.length: self.tempFile.seek(0) f = open(self.jobFile, 'wb') while True: data = self.tempFile.read(flpconfig.SIZE) if not data: break f.write(data) f.close() self.tempFile.close() #set own timestamp if not self.isTree: peetree = flpconfig.PEERGROUP[self.peer[0]][0] flputil.setTreeMTime(peetree, self.jobFile, self.setDirStamp) self.socket.send(flpconfig.SEP.join([flpconfig.PROG,flpconfig.FINMSG])) self.finished = True flpconfig.LOGGER.info("completed file request for " + self.jobFile + " to " + str(self.peer)) else: self.socket.send(flpconfig.FINMSG) self.timesTried += 1 self.state = Job.INIT self.do() flpconfig.LOGGER.info('Dateiübertragung fehlgeschlagen, neuer Request') else: # TODO: nach Fehlschlag aufräumen? flpconfig.LOGGER.info('Dateiübertragung endgültig fehlgeschlagen') self.failed = True RequestJob.filejobs.remove(self.jobFile)