def Recommit(self, request, context): iscommit = FileManager.sys.vote(request.FID, request.CID) if iscommit: # update filetree filetree.FileTree.insertNode( FileManager.sys.FindByFID(request.FID).path, False) # ask dataserver commit chunklist = FileManager.sys.FindByFID(request.FID).getChunkList() for c in chunklist: did = c.StoreDID cid = c.ChunkId ip, port = FileManager.sys.SeekSocket(did) channel = grpc.insecure_channel(ip + ':' + str(port)) stub = DataForMaster_pb2_grpc.DFMStub(channel) stub.recommitChunk(DataForMaster_pb2.chunkID(CID=cid)) channel.close() # backup Backup.BackupManager.insertCreateTask(c.getFileID(), c.ChunkId) return MasterForData_pb2.recommitResponse(isCommit=iscommit)
def deleteChunkOnDataServer(stub, CID): # 删除成功返回 True, 否则 False pakage = DataForMaster_pb2.chunkID(CID=CID) return stub.deleteChunkOnDataServer(pakage)