def FileSearch(self, request, context): username = request.username filename = request.filename metadata = self.pickledbMetadataobj.getFileData(username) if metadata: if filename in metadata: return fileService_pb2.ack(success=True, message="File Found!") return fileService_pb2.ack(success=False, message="File not found")
def UploadFile(self, request_iterator, context): print("--------") activeIpList = self.activeNodeObj.getActiveIpsDict() if self.leader.isLeader(): print("here-----") chunk_id = 0 for chunk in request_iterator: print("In iterator") username = chunk.username filename = chunk.filename metadata = self.pickledbMetadataobj.getFileData(username) if metadata and chunk_id == 0: if filename in metadata: return fileService_pb2.ack( success=True, message="File Already Present!") destination = self.nodeSelect.leastUtilizedNode() if destination == 9999: return fileService_pb2.ack(success=False, message="No active nodes!") if str(destination) == str(self.serverAddress): chunk_id += 1 self.databaseHandlerObj.insertData( chunk.username, chunk.filename + str(chunk_id), chunk.data) self.broadcastMetadata(chunk.username, chunk.filename, str(chunk_id), str(destination)) else: chunk_id += 1 self.sendDataToDestination(chunk, destination, chunk_id) return fileService_pb2.ack(success=True, message="Saved data!") else: for request in request_iterator: self.databaseHandlerObj.insertData( request.username, request.filename + str(request.chunk_id), request.data) self.broadcastMetadata(request.username, request.filename, str(request.chunk_id), str(self.serverAddress)) return fileService_pb2.ack(success=True, message="Data has been saved!")
def FileDelete(self, request, context): username = request.username filename = request.filename if self.leader.isLeader(): metadata = self.pickledbMetadataobj.getData(username, filename) for item in metadata: if item[1] == self.serverAddress: fname = filename + str(item[0]) self.databaseHandlerObj.deleteData(username, fname) else: self.deleteDataFromNode(username, filename, item[0], item[1]) self.pickledbMetadataobj.deleteData(username, filename) return fileService_pb2.ack(success=True, message="Data deleted!") else: self.databaseHandlerObj.deleteData(username, filename) self.pickledbMetadataobj.deleteData( str(username), filename[:-len(request.sequence_no)]) return fileService_pb2.ack(success=True, message="Data deleted!")
def metadataUpdate(self, request, context): self.pickledbMetadataobj.insertData(request.username, request.filename, request.chunk_id, request.destination) return fileService_pb2.ack(success=True, message="MetaData has been saved!")