diff --git a/src/leap/soledad/client/_db/blobs/sql.py b/src/leap/soledad/client/_db/blobs/sql.py index c9a025a2ff6865fae98be20ccf50517440fe6b9d..c5b0b64ba6506a80f1e2e14e522f161debc8279b 100644 --- a/src/leap/soledad/client/_db/blobs/sql.py +++ b/src/leap/soledad/client/_db/blobs/sql.py @@ -156,9 +156,11 @@ class SQLiteBlobBackend(object): def update_batch_sync_status(self, blob_id_list, sync_status, namespace=''): - insert = 'INSERT INTO sync_state (blob_id, namespace, sync_status)' + if not blob_id_list: + return + insert = 'INSERT or REPLACE INTO sync_state' first_blob_id, blob_id_list = blob_id_list[0], blob_id_list[1:] - insert += ' VALUES (?, ?, ?)' + insert += ' (blob_id, namespace, sync_status) VALUES (?, ?, ?)' values = (first_blob_id, namespace, sync_status) for blob_id in blob_id_list: insert += ', (?, ?, ?)' diff --git a/src/leap/soledad/client/_db/blobs/sync.py b/src/leap/soledad/client/_db/blobs/sync.py index 838b87e52e27b383bd41923ff4ab716827e333b4..bfdc5fbeee123ca8c0843a7873adf108892b34c4 100644 --- a/src/leap/soledad/client/_db/blobs/sync.py +++ b/src/leap/soledad/client/_db/blobs/sync.py @@ -62,10 +62,15 @@ class BlobsSynchronizer(object): d2 = self.local_list(namespace=namespace) remote_list, local_list = yield defer.gatherResults([d1, d2]) pending_download_ids = tuple(set(remote_list) - set(local_list)) + pending_upload_ids = tuple(set(local_list) - set(remote_list)) yield self.local.update_batch_sync_status( pending_download_ids, SyncStatus.PENDING_DOWNLOAD, namespace=namespace) + yield self.local.update_batch_sync_status( + pending_upload_ids, + SyncStatus.PENDING_UPLOAD, + namespace=namespace) @defer.inlineCallbacks def send_missing(self, namespace=''):