Merge pull request #9 from Meisterschueler/master

ddb import
pull/12/merge
Meisterschueler 2015-11-24 08:30:14 +01:00
commit ac6afd9b4a
3 zmienionych plików z 26 dodań i 9 usunięć

Wyświetl plik

@ -5,15 +5,18 @@ from ogn.collect.celery import app
from ogn.model import Device
from ogn.utils import get_ddb
from ogn.model.address_origin import AddressOrigin
logger = get_task_logger(__name__)
@app.task
def update_ddb_data():
logger.info("Update ddb data.")
def update_ddb_from_ogn():
logger.info("Update ddb data from ogn.")
app.session.query(Device).delete()
app.session.query(Device) \
.filter(Device.address_origin == AddressOrigin.ogn_ddb) \
.delete()
devices = get_ddb()
logger.debug("New Devices: %s" % str(devices))
@ -25,10 +28,14 @@ def update_ddb_data():
@app.task
def import_ddb_data(filename='custom_ddb.txt'):
def update_ddb_from_file():
logger.info("Import ddb data from file.")
devices = get_ddb(filename)
app.session.query(Device) \
.filter(Device.address_origin == AddressOrigin.userdefined) \
.delete()
devices = get_ddb('ogn/custom_ddb.txt')
app.session.bulk_save_objects(devices)
app.session.commit()

Wyświetl plik

@ -3,7 +3,7 @@ from ogn.model import Base
from manager import Manager
manager = Manager()
from ogn.collect.fetchddb import update_ddb_data
from ogn.collect.fetchddb import update_ddb_from_ogn, update_ddb_from_file
@manager.command
@ -15,9 +15,18 @@ def init():
@manager.command
def updateddb():
"""Update the ddb data."""
def update_ddb_ogn():
"""Update devices with data from ogn."""
print("Updating ddb data...")
result = update_ddb_data.delay()
result = update_ddb_from_ogn.delay()
counter = result.get()
print("Imported %i devices." % counter)
@manager.command
def update_ddb_file():
"""Update devices with data from local file."""
print("Updating ddb data...")
result = update_ddb_from_file.delay()
counter = result.get()
print("Imported %i devices." % counter)

Wyświetl plik

@ -26,6 +26,7 @@ class GatewayTest(unittest.TestCase):
def test_run_multiple_errors(self, mock_gateway):
instance = mock_gateway.return_value
instance.run.side_effect = [BrokenPipeError(), socket.error(), KeyboardInterrupt()]
instance.disconnect.side_effect = [True, True, OSError()]
run("user_2")