def sendAllFiles(self): fileObjectList = [] for subdir, dirs, files in os.walk(self._dir): for file in files: fileKey = self.assignHashKey(file) fileObjectList.append(fileObject(file,fileKey)) os.remove(self._dir + "/" + file) self._successor.getAllFiles(fileObjectList)
def getFiles(self): "Called upon join of a predecessor.Returns a\ fileObject list of the files that should be moved\ to the predecessor. Additionally, it removes the files from\ the local Process." fileObjectList= [] for subdir, dirs, files in os.walk(self._dir): for file in files: fileKey = self.assignHashKey(file) if self.isInRange(self._localClient.getKey(), self._predecessor.getKey(), fileKey): fileObjectList.append(fileObject(file,fileKey)) os.remove(self._dir + "/" + file) #logging.debug("Returning file list of size {0} to predecessor".format(len(fileObjectList))) return fileObjectList
def fileInsert(self,fileName): "Given the name of a file, this method inserts the\ file into the CHORD DHT" file = fileObject(fileName,self.assignHashKey(fileName)) fileSuccessor = self.lookup(file.getKey()) print "Key of file {0} is {1}".format(fileName,file.getKey()) if fileSuccessor.getKey() == self._localClient.getKey(): self.localFileInsert(fileName) logging.debug("File {0} successfully inserted locally".format(file.getName())) else: logging.debug("Inserting file: {0} to node {1}".format(file.getName(),fileSuccessor.getKey())) if fileSuccessor.passFile(file): #logging.debug("File copied successfully") return True else: #logging.error("File copy failed") return False