def process_sync(sync_id): sync = Sync.get(sync_id) if not sync: return if Transfer.find_one({'sync_id': sync['_id'], 'finished': None}): set_retry(sync) return src = get_uris(**sync['src']) if not src: set_retry(sync) return dst = get_uris(**sync['dst']) if not dst: set_retry(sync) return dst = dst[0] parameters = { 'exclusions': sync.get('exclusions'), 'delete': sync.get('delete'), } is_mount = (sync['dst'].get('uuid') or sync['src'].get('uuid')) is not None transfer_id = Transfer.add(src, dst, sync_id=sync['_id'], parameters=parameters, is_mount=is_mount) logger.info('added transfer %s to %s', src, dst) sync['transfer_id'] = transfer_id sync['processed'] = datetime.utcnow() sync['reserved'] = datetime.utcnow() + timedelta(hours=sync['recurrence']) Sync.save(sync, safe=True)
def set_retry(sync): delta = Settings.get_settings('sync')['sync_retry_delta'] sync['reserved'] = datetime.utcnow() + timedelta(minutes=delta) Sync.save(sync, safe=True)