Age | Commit message (Collapse) | Author |
|
This commit is complementary to the previous one. It adds a test for the
reported bug (listing default namespace was listing others) and fixes
it.
-- Related: #8882
|
|
All blobs were being stored in a single folder when using namespaces,
this commits adds path partitioning as discussed on #8882, which should
help with a large number of files (each folder will hold a smaller
subset, allowing the use of better filesystem walk strategies).
Also, the default empty namespace is now called 'default' to prevent it
from listing other namespaces contents. So everything will always use
namespaces, with the option to use it explicitly or just fall to the
default one.
-- Related: #8882
|
|
|
|
|
|
|
|
|
|
Adds a IncomingBox implementation that can be used by the incoming loop
to interact with the server. Includes end to end test from message
creation on Incoming API to callback consumer.
-- Related: #8914
|
|
|
|
Clients will query for blobs flagged PENDING so they can start
processing. This commit adds flagging, but still in a hacky way as the
backend requires the flags as a json string inside a request. A refactor
to separate request handling from the backend itself will solve it in
the near future.
-- Related: #8874
|
|
|
|
This class implements a process flow between the ones defined at #8881
and #8874. It uses a LoopingCall to keep running in a loop and accepts
IIncomingBoxConsumers defined by soledad users, such as leap mail.
- Resolves: #8874
|
|
Improves error handling, add missing header to __init__.py and remove
mkdirs from flags methods. This is a commit from code review on !117.
|
|
Improve test naming, creates a "count" method and filter flags files
properly.
|
|
filter_flag parameter can now be used to filter listing blobs by a
specific flags. Eg: I can ask for blobs on incoming namespace flagged as pending.
-- Resolves: #8913
|
|
Using a parameter, just like the other methods are doing.
-- Resolves: #8873
|
|
By using `only_count=True` parameter, instead of returning a full list,
server just count the amount of blobs.
-- Resolves: #8871
|
|
IncomingBox spec has a flags feature for the processing flow of
messages. This commit adds it using a .flags file.
-- Resolves: #8869
|
|
Refactor suggested from !105 review.
|
|
|
|
|
|
|
|
'namespace' argument is supported by backend but not yet exposed on API
for clients. Since IncomingBox makes heavy usage of it, this commit
exposes the argument as a query string for clients to use it.
|
|
Listing by date is useful for listing newest/oldest documents on blobs
storage and should be used for listing new IncomingMessages as described
on specification.
-- Resolves: #8879
|
|
|
|
We started with CouchDB due legacy system relying on it. This commit
adds the possibility of adding blobs as a IncomingAPI backend if blobs
is enabled on config file.
-- Resolves: #8868
|
|
This move allows server to use it on #8868 as described in #8890
-- Relates: #8890
|
|
Extracted preamble code for making space to #8890 changes.
-- Related: #8890
|
|
|
|
|
|
|
|
|
|
|
|
As sqlcipher benchmark tests take longer, we want to limit the number of
repetitions. Previous to this change, these tests were being calibrated
automatically and would run 5 times becuase it is the default minimum
number of times for pytest-benchmark. By changing the runner to pedantic
mode, now they will be run 4 times, the same number of times as
benchmark sync tests.
|
|
|
|
|
|
We noticed that instrumentation added for watching resources has an
impact in time statistics (i.e. it increases average and stddev). This
commit makes the benchmark tests run twice: once for measuring time and
a second time for measuring resources.
|
|
This commit adds the --watch-resources command line option for
benchmarks tests, and allows to running the benchmark test suite with
and without resource monitoring instrumentation code.
This is needed because resource consumption monitoring impacts the mean
time and standard deviation of time taken to run benchmarked tests.
|
|
pysqlcipher just has to be reinstalled for benchmark tests if current
installed version fails the HAVE_USLEEP flag test. This commit moves the
code for checking and reinstalling to a script and bypasses the
reinstallation when it is unneeded.
|
|
|
|
This needs OpenSSL >= 1.1, otherwise it will keep using the scrypt
dependency.
We should think about deprecating scrypt as a dependency when we can be
sure that the adoption of libssl 1.1 is wide enough. I think that at
some point (soledad 0.11 or so) we can drop the scrypt dependency, which
was being somehow problematic at times (the _scrypt.so was not appearing
when installing with pip, needed workarounds). From that moment on, we
can raise an error if an old libssl is found and no scrypt can be
imported - leaving that to the user/packager.
In debian stretch and afterwards, you can get that version by installing
libssl-dev
- Related: #8472
|
|
|
|
|
|
Adds an extra parameter called "namespace" on the backend interface and
on FileSystemBlobsBackend. This parameter overrides default id
partitioning and uses a separate folder for a custom namespace.
-- Resolves: #8889
|
|
According to /incoming specification, this parameter doesn't exists. It
was added on MX side and brought here on transition. This commit
explicitly removes it, leaving a track on history that it got removed
during transition. Further work on MX will also remove the "NONE"
encryption scheme, which is part of dead code.
|
|
|
|
Use the same formatting as MX was using for backwards compatibility.
-- Resolves: #8828
|
|
-- Resolves: #8827
|
|
Adds the routing code for exposing /incoming from SoledadResource.
- Related: #8827
|
|
|
|
|