1
0
mirror of https://github.com/quay/quay.git synced 2026-01-26 06:21:37 +03:00
Files
quay/workers/repomirrorworker/models_interface.py
2020-02-05 19:55:07 -08:00

28 lines
1.0 KiB
Python

from abc import ABCMeta, abstractmethod
from collections import namedtuple
from six import add_metaclass
class RepoMirrorToken(namedtuple("NextRepoMirrorToken", ["min_id"])):
"""
RepoMirrorToken represents an opaque token that can be passed between runs of the repository
mirror worker to continue mirroring whereever the previous run left off.
Note that the data of the token is *opaque* to the repository mirror worker, and the worker
should *not* pull any data out or modify the token in any way.
"""
@add_metaclass(ABCMeta)
class RepoMirrorWorkerDataInterface(object):
@abstractmethod
def repositories_to_mirror(self, target_time, start_token=None):
"""
Returns a tuple consisting of an iterator of all the candidates to scan and a NextScanToken.
The iterator returns a tuple for each iteration consisting of the candidate Repository, the
abort signal, and the number of remaining candidates. If the iterator returned is None,
there are no candidates to process.
"""