from abc import ABCMeta, abstractmethod from six import add_metaclass @add_metaclass(ABCMeta) class RegistryDataInterface(object): """ Interface for code to work with the registry data model. The registry data model consists of all tables that store registry-specific information, such as Manifests, Blobs, Images, and Labels. """ @abstractmethod def find_matching_tag(self, repository_ref, tag_names): """ Finds an alive tag in the repository matching one of the given tag names and returns it or None if none. """ @abstractmethod def get_most_recent_tag(self, repository_ref): """ Returns the most recently pushed alive tag in the repository, if any. If none, returns None. """