@tthrow
    def QueryArchiveStatus(self, archive):
        docs = self.cache.get_adf(archive)
        status = self.cache.archive_status(archive, docs)
        eta = description = ''
        remaining = progress = 0

        getLogger().debug("cached status: {}".format(status))
        if status == ttypes.ArchiveStatus.Completed:
            progress = docs['archive'].meta.size
        elif UploadState.has_state(archive):
            state = UploadState.get(archive)
            if state.exc is not None:
                status = ttypes.ArchiveStatus.Failed
            if state.active():
                status = ttypes.ArchiveStatus.InProgress
            getLogger().debug("state status: {}".format(status))
            progress = state.progress
            remaining = state.size - progress
            if state in ServerProgressHandler.uploads:
                elapsed = ServerProgressHandler.uploads[state].seconds_elapsed
                if progress > 0:
                    eta = str(int(elapsed * state.size / progress - elapsed))
        else:
            remaining = docs['archive'].meta.size
        return ttypes.TransferStatus(
            description, eta, remaining, progress, status)
TransferStatus QueryArchiveStatus(1: string ArchiveLocalID)
dataset/ETHPy150Open longaccess/longaccess-client/lacli/server/__init__.py/LaServerCommand.QueryArchiveStatus