import logging import features from data.database import Image, ImageStorage, Repository, User from util.registry.replication import queue_storage_replication def backfill_replication(): encountered = set() query = (Image .select(Image, ImageStorage, Repository, User) .join(ImageStorage) .switch(Image) .join(Repository) .join(User)) for image in query: if image.storage.uuid in encountered: continue print "Enqueueing image storage %s to be replicated" % (image.storage.uuid) encountered.add(image.storage.uuid) queue_storage_replication(image.repository.namespace_user.username, image.storage) if __name__ == '__main__': logging.basicConfig(level=logging.INFO) if not features.STORAGE_REPLICATION: print "Storage replication is not enabled" else: backfill_replication()