26 lines
830 B
Python
26 lines
830 B
Python
import logging
|
|
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
|
|
from data.database import ImageStorage, ImageStoragePlacement, ImageStorageLocation
|
|
from peewee import *
|
|
|
|
from app import app
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
GROUP_SIZE = 1000
|
|
|
|
storage_needing_placements = (ImageStorage
|
|
.select()
|
|
.join(ImageStoragePlacement, JOIN_LEFT_OUTER)
|
|
.group_by(ImageStorage)
|
|
.having(fn.Count(ImageStoragePlacement.id) == 0))
|
|
|
|
default_location = ImageStorageLocation.get(name=app.config['DS_BACKFILL_LOCATION'])
|
|
|
|
while storage_needing_placements.count() > 0:
|
|
logger.debug('Starting group of %s', GROUP_SIZE)
|
|
for needs_placement in list(storage_needing_placements.limit(GROUP_SIZE)):
|
|
logger.debug('Adding placement: %s', needs_placement.id)
|
|
ImageStoragePlacement.create(storage=needs_placement, location=default_location)
|