Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
Add a DELETE method for blobs server and integrate it into client's
BlobManager.
- Resolves: #8846
|
|
- Related: #8846
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Check if user and blob_id are valid strings, then check if the resulting
path is a subdirectory of blobs configured path.
- Related: #8800
|
|
- Related: #8812
|
|
BlobManager tests covers them indirectly, but testing them directly may
help locating source of bugs.
- Related: #8812
|
|
- Related: #8812
|
|
- Related: #8812
|
|
We can't let the local DB try an isertion before making sure doc isn't
already there.
- Resolves: #8845
|
|
|
|
|
|
|
|
|
|
_validate will check if user_id and blob_id are letter, numbers, dashes
and underscores. It is called on render_GET and render_POST, validating
incoming arguments before handling on backend.
- Resolves: #8832
|
|
This makes process communication async during quota measurement, as
specified on #8832
- Related: #8832
|
|
During a meeting with pixelated we were asked to ensure that the u1db
revision system was working for the shared database. This commit adds a
test to make sure that documents in the shared database can be updated
successfully if the include the correct revision, but will fail if the
include the incorrect revision.
Resolves: #8842.
|
|
it was passing way too many arguments in py2.
- Resolves: #8843
|
|
When hundreds of concurrent document creations are spawned during tests,
test runs in slower machines may fail with "db is locked" error.
Increasing the timeout and number of retries in the sqlcipher adbapi
level may help avoiding that.
|
|
Docker scripts are only used for CI and do not need to be in this
repository. Beause of that, we decided to moved the docker scripts to a
private repository where dockerfiles for other parts of leap also live.
|
|
|
|
SQLCipher synchronous benchmark tests were introduced when we started
developing benchmark tests to compare synchronous and asynchronous code.
Synchronous access to sqlcipher database is not used in soledad, and
those tests are much slower than asynchronous tests (more than 10 times
using ssd drive), so we want to avoid running them on ci. This commit
introduces a "synchronous" marker and avoid running tests markes as such
in ci environment.
|
|
There were some changes needed in pytest-benchmark so we could
successfully use it for soledad benchmarks graphing:
https://github.com/ionelmc/pytest-benchmark/pull/73
https://github.com/ionelmc/pytest-benchmark/pull/74
https://github.com/ionelmc/pytest-benchmark/pull/75
The contributions were accepted but not released yet, so this commit
uses the code from upstream git repository's master branch.
|
|
|
|
|
|
|
|
|
|
|
|
Issue #8758 rounded doc size considering we would add some kind of
padding to the document. Since we arent removing the pad, this commit
makes the client discover the size from the decrypted amount. Proper
padding and strip should be done in the future.
- Related: #8758
- Related: #8814
|
|
Check what server has, what we have, compare, fetch missing.
- Related: #8808
|
|
|
|
- Related: #8807
|
|
This method will gather a list of local docs and a list of remote docs,
compare them and send docs which server doesn't have.
- Related: #8807
|
|
The debian package for libsqlcipher does not enable the use of usleep(),
and that might cause timeouts when doing concurrent access to sqlcipher
databases.
See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859685
In benchmark tests we use twisted's asynchronous dbapi for creating
thousands of documents, and if usleep() is not enabled this operation is
very likelly to fail with a "db is locked" error.
This commit adds a workaround for benchmark tests by reinstalling
pysqlcipher with the "--bundled" option, what causes libsqlcipher to be
built and bundled in the python package, with usleep() enabled.
Resolves: #8835
|
|
this commit deliberately *duplicates* the dependency information between
the setup.py and requirements.pip.
The rationale behind it is that one of them is the generic dependency
information, to be passed to system helpers in order to package it.
The requirements.pip has any pinning information that we want to impose
during development, and it behaves as a well-known set.
Read https://caremad.io/posts/2013/07/setup-vs-requirement/ for more
explanations.
- Resolves: #8830
|
|
doc_id wasn't being stored, loaded or used anywhere except for
authentication. This commit removes it and uses a fixed value for rev
since blobs is supposed to be immutable.
- Resolves: #8813
|
|
|
|
|
|
|
|
|