ogn-python/ogn/collect/database.py

39 wiersze
1023 B
Python
Czysty Zwykły widok Historia

from celery.utils.log import get_task_logger
2016-02-03 22:09:11 +00:00
from ogn.model import Device, AddressOrigin
from ogn.utils import get_ddb
2016-02-03 22:09:11 +00:00
from ogn.collect.celery import app
2016-02-03 22:09:11 +00:00
logger = get_task_logger(__name__)
def update_devices(session, origin, devices):
session.query(Device) \
.filter(Device.address_origin == origin) \
.delete()
session.bulk_save_objects(devices)
session.commit()
return len(devices)
@app.task
def import_ddb():
"""Import registered devices from the DDB."""
logger.info("Import registered devices fom the DDB...")
counter = update_devices(app.session, AddressOrigin.ogn_ddb, get_ddb())
logger.info("Imported {} devices.".format(counter))
@app.task
def import_file(path='tests/custom_ddb.txt'):
"""Import registered devices from a local file."""
logger.info("Import registered devices from '{}'...".format(path))
counter = update_devices(app.session, AddressOrigin.user_defined, get_ddb(path))
logger.info("Imported {} devices.".format(counter))