diff options
author | Victor Shyba <victor1984@riseup.net> | 2017-08-10 19:10:31 -0300 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2017-08-11 18:52:10 -0400 |
commit | f94519c0c9fbbf50b272e62b5e8d0998d25275fc (patch) | |
tree | 6eea508cdf175eac775a9d8cebbc04cca2399cdf | |
parent | 9703a03cff56f7ea0e97f6275637d137bbcc2544 (diff) |
[refactor] make blobs client unaware of 'default'
This value was hardcoded on client, but it's assumed to be default by
the server and there is no need for it to be hardcoded.
-- Resolves: #8882
-rw-r--r-- | src/leap/soledad/client/_db/blobs.py | 35 | ||||
-rw-r--r-- | testing/tests/blobs/test_blob_manager.py | 4 |
2 files changed, 14 insertions, 25 deletions
diff --git a/src/leap/soledad/client/_db/blobs.py b/src/leap/soledad/client/_db/blobs.py index 1b4d9114..4a3cd913 100644 --- a/src/leap/soledad/client/_db/blobs.py +++ b/src/leap/soledad/client/_db/blobs.py @@ -224,13 +224,11 @@ class BlobManager(object): data = yield self._client.get(uri, params=params) defer.returnValue((yield data.json())) - def local_list(self, namespace='default'): - assert namespace + def local_list(self, namespace=''): return self.local.list(namespace) @defer.inlineCallbacks - def send_missing(self, namespace='default'): - assert namespace + def send_missing(self, namespace=''): our_blobs = yield self.local_list(namespace) server_blobs = yield self.remote_list(namespace=namespace) missing = [b_id for b_id in our_blobs if b_id not in server_blobs] @@ -242,8 +240,7 @@ class BlobManager(object): yield self._encrypt_and_upload(blob_id, fd) @defer.inlineCallbacks - def fetch_missing(self, namespace='default'): - assert namespace + def fetch_missing(self, namespace=''): # TODO: Use something to prioritize user requests over general new docs our_blobs = yield self.local_list(namespace) server_blobs = yield self.remote_list(namespace=namespace) @@ -255,8 +252,7 @@ class BlobManager(object): yield self.get(blob_id, namespace) @defer.inlineCallbacks - def put(self, doc, size, namespace='default'): - assert namespace + def put(self, doc, size, namespace=''): if (yield self.local.exists(doc.blob_id, namespace)): error_message = "Blob already exists: %s" % doc.blob_id raise BlobAlreadyExistsError(error_message) @@ -318,8 +314,7 @@ class BlobManager(object): defer.returnValue((yield response.json())) @defer.inlineCallbacks - def get(self, blob_id, namespace='default'): - assert namespace + def get(self, blob_id, namespace=''): local_blob = yield self.local.get(blob_id, namespace=namespace) if local_blob: logger.info("Found blob in local database: %s" % blob_id) @@ -364,8 +359,7 @@ class BlobManager(object): logger.info("Finished upload: %s" % (blob_id,)) @defer.inlineCallbacks - def _download_and_decrypt(self, blob_id, namespace='default'): - assert namespace + def _download_and_decrypt(self, blob_id, namespace=''): logger.info("Staring download of blob: %s" % blob_id) # TODO this needs to be connected in a tube uri = urljoin(self.remote, self.user + '/' + blob_id) @@ -389,7 +383,7 @@ class BlobManager(object): defer.returnValue((fd, size)) @defer.inlineCallbacks - def delete(self, blob_id, namespace='default', **params): + def delete(self, blob_id, namespace='', **params): """ Deletes a blob from local and remote storages. :param blob_id: @@ -401,7 +395,6 @@ class BlobManager(object): :return: A deferred that fires when the operation finishes. :rtype: twisted.internet.defer.Deferred """ - assert namespace params['namespace'] = namespace logger.info("Staring deletion of blob: %s" % blob_id) yield self._delete_from_remote(blob_id, **params) @@ -441,8 +434,7 @@ class SQLiteBlobBackend(object): pass @defer.inlineCallbacks - def put(self, blob_id, blob_fd, size=None, namespace='default'): - assert namespace + def put(self, blob_id, blob_fd, size=None, namespace=''): logger.info("Saving blob in local database...") insert = 'INSERT INTO blobs (blob_id, namespace, payload) ' insert += 'VALUES (?, ?, zeroblob(?))' @@ -461,18 +453,16 @@ class SQLiteBlobBackend(object): defer.returnValue(done) @defer.inlineCallbacks - def get(self, blob_id, namespace='default'): + def get(self, blob_id, namespace=''): # TODO we can also stream the blob value using sqlite # incremental interface for blobs - and just return the raw fd instead - assert namespace select = 'SELECT payload FROM blobs WHERE blob_id = ? AND namespace= ?' result = yield self.dbpool.runQuery(select, (blob_id, namespace,)) if result: defer.returnValue(BytesIO(str(result[0][0]))) @defer.inlineCallbacks - def list(self, namespace='default'): - assert namespace + def list(self, namespace=''): query = 'select blob_id from blobs where namespace = ?' result = yield self.dbpool.runQuery(query, (namespace,)) if result: @@ -490,13 +480,12 @@ class SQLiteBlobBackend(object): defer.returnValue([]) @defer.inlineCallbacks - def exists(self, blob_id, namespace='default'): + def exists(self, blob_id, namespace=''): query = 'SELECT blob_id from blobs WHERE blob_id = ? AND namespace= ?' result = yield self.dbpool.runQuery(query, (blob_id, namespace,)) defer.returnValue(bool(len(result))) - def delete(self, blob_id, namespace='default'): - assert namespace + def delete(self, blob_id, namespace=''): query = 'DELETE FROM blobs WHERE blob_id = ? AND namespace = ?' return self.dbpool.runQuery(query, (blob_id, namespace,)) diff --git a/testing/tests/blobs/test_blob_manager.py b/testing/tests/blobs/test_blob_manager.py index 3f0bf8c4..087c17e6 100644 --- a/testing/tests/blobs/test_blob_manager.py +++ b/testing/tests/blobs/test_blob_manager.py @@ -50,7 +50,7 @@ class BlobManagerTestCase(unittest.TestCase): bad_blob_id = 'inexsistent_id' result = yield self.manager.get(bad_blob_id) self.assertIsNone(result) - args = bad_blob_id, 'default' + args = bad_blob_id, '' self.manager._download_and_decrypt.assert_called_once_with(*args) @defer.inlineCallbacks @@ -143,5 +143,5 @@ class BlobManagerTestCase(unittest.TestCase): yield self.manager.delete(blob_id) local_list = yield self.manager.local_list() self.assertEquals(0, len(local_list)) - params = {'namespace': 'default'} + params = {'namespace': ''} self.manager._delete_from_remote.assert_called_with(blob_id, **params) |