From 31ed15a314ec5322312673560629adc6844d72eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Tue, 24 Nov 2015 08:18:36 +0100 Subject: [PATCH 1/2] Let disconnect crash once --- tests/gateway/test_manage.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/gateway/test_manage.py b/tests/gateway/test_manage.py index ac633c9..6b5ae16 100644 --- a/tests/gateway/test_manage.py +++ b/tests/gateway/test_manage.py @@ -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") From 46e60b4693e538c5c9a1cda5c640bf3db2db9eae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Gru=CC=88ndger?= Date: Tue, 24 Nov 2015 08:20:28 +0100 Subject: [PATCH 2/2] ddb import from ogn and from file --- ogn/collect/fetchddb.py | 17 ++++++++++++----- ogn/commands/database.py | 17 +++++++++++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/ogn/collect/fetchddb.py b/ogn/collect/fetchddb.py index f9c87ce..f228ed2 100644 --- a/ogn/collect/fetchddb.py +++ b/ogn/collect/fetchddb.py @@ -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() diff --git a/ogn/commands/database.py b/ogn/commands/database.py index f6c3ed6..0185f30 100644 --- a/ogn/commands/database.py +++ b/ogn/commands/database.py @@ -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)