コード例 #1
0
    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)
コード例 #2
0
def deleteChunkOnDataServer(stub, CID):
    # 删除成功返回 True, 否则 False
    pakage = DataForMaster_pb2.chunkID(CID=CID)
    return stub.deleteChunkOnDataServer(pakage)