summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-07-10[pkg] bump dependencies0.7.1Ivan Alejandro
bump leap.common min required version, new change needed 'collect_plugins'.
2015-07-10[pkg] fold in changesIvan Alejandro
2015-07-10Merge branch 'master' into developIvan Alejandro
master and develop "diverged" because a merge commit, this moves us back to good track.
2015-07-01[bug] catch 'point is undefined' error on couchdrebs
When trying to use an unexisting list function, to alter a view, the error is not a missing document error, but an obscure "TypeError" saying that "point is undefined" because of the way the javascript code in couchdb server tries to find the list function. This commit adds a catch for that error and raises the proper exception in the soledad couch module.
2015-06-30[bug] fix https tests by using new http clientdrebs
2015-06-30[feature] add close() method to client http targetdrebs
HTTP client cached connections will hang around in the reactor if they are not properly cleaned up, and might raise a "reactor unclean" message on shutdown. This commit adds a close() method to the client http target that will cleanup those connections.
2015-06-30[bug] add close() to mocked shared db test utildrebs
2015-06-26[fix] Make test_server parallelizableVictor Shyba
Using real uuid to separate Locks on each test allow them to be run in parallel. Using real uuid also allows parallel syncs. This is being done to allow test suite to run in parallel on future.
2015-06-15[style] minor style fixes for correctionKali Kaneko
after suggestions in the review
2015-06-15[refactor] use twisted logging facility to log failureKali Kaneko
2015-06-15[pkg] changes and version_compat bumpKali Kaneko
2015-06-15[refactor] move collect_plugins to leap.commonKali Kaneko
2015-06-15[feature] filter documents before passing them to the pluginKali Kaneko
2015-06-15[feature] use raw operation, returns no resultKali Kaneko
2015-06-15[feature] add post-sync hooks using twisted pluginsKali Kaneko
implementing a generic plugin interface to allow other modules to react to soledad syncs, receiving a list of document ids that they've subscribed to. - Resolves: #6996 - Releases: 0.7.1
2015-06-15[bug] allow reuse of decr poolKali Kaneko
2015-06-09[pkg] remove PyOpenSSL version pinningdrebs
Once upon a time we needed to pin the PyOpenSSL version to avoid unneeded crypto deps (see https://leap.se/code/issues/5368#note-5). Since then, jessie was released and PyOpenSSL 0.14 is now shipped with it. We have removed that pinning from the debian package, and it is not needed here.
2015-06-08[pkg] fix typo on leap.common versionIvan Alejandro
2015-06-04Merge tag '0.7.0'drebs
Tag version 0.7.0. Conflicts: CHANGELOG client/src/leap/soledad/client/__init__.py client/src/leap/soledad/client/sqlcipher.py client/src/leap/soledad/client/target.py server/pkg/soledad-server
2015-06-04Merge tag '0.7.0' into developdrebs
Tag version 0.7.0. Conflicts: client/pkg/requirements.pip common/pkg/requirements.pip
2015-06-03[feature] increase the async encryption perioddrebs
When async decrypting, we want to finish as fast as possible. When encrypting, though, we don't have such a rush. With an encryption loop period of 2 seconds, we're able to encrypt 30 documents in one minute (the current bitmask client sync period), which is meaningful: should moderatelly use the processor while not syncing and relief from some work when actually syncing.
2015-06-03[bug] do not block when getting doc for async encdrebs
Previous to this change, the actual encryption method used to run on its own thread. When the close method was called from another thread, the queue could be deleted after the encryption method loop had started, but before the queue was checked for new items. By removing that thread and moving the encryption loop to the reactor, that race condition should disappear. Closes: #7088.
2015-06-03[bug] use exception from correct moduledrebs
Queue exceptions are not in multiprocessing.Queue module, but in plain Queue instead.
2015-06-03[bug] use correct sync enc pool queue attributedrebs
2015-06-01[pkg] bump dependency versionsdrebs
2015-06-01[pkg] fold in changes0.7.0drebs
2015-06-01[pkg] bump dependency versionsdrebs
2015-05-27[feat] adapt to new events api on commonIvan Alejandro
- Related: #6359
2015-05-27[refactor] move the twisted http code to leap.commonRuben Pollan
2015-05-26[feat] Retry to start couch and clean properlyVictor Shyba
Now the CouchDB based tests will try 3 times before give up due to timeout or some temporary error. The stop function will also execute properly even if the process wasn't created, leaving no lost files or folders behind.
2015-05-26[bug] dictionary cant be modified during iterationVictor Shyba
I tested that code and this cant happen. We need to iterate keys and then ask 'del'. The previous method raised: RuntimeError: dictionary changed size during iteration
2015-05-26[bug] Empty comes from QueueVictor Shyba
When handling this exception Python got lost because the import was incorrect. Queue.Empty comes from Queue, not from multiprocessing.Queue
2015-05-26[bug] Avoid infinite loop starting couch for testsVictor Shyba
As described in #4691, sometimes couch just hangs and all testing freezes. This is due to no output from couch (sometimes meaning that an error on boot wasn't logged). This adds a timeout and checks for it while booting for tests. Closes #4691
2015-05-26[bug] fixes changes made by PR #211 due to bug 6833Victor Shyba
CouchServerState does not use two extra parameters anymore. Tests are now reflecting this change. Relate to #6833
2015-05-25[bug] tests now accept any couchdb versionVictor Shyba
The .ini used before was very old and did not contain all the config values that couch needs. Using -n resets the configuration file chain, making it use what is provided without including the system defaults needed. To make it work with all versions the util will now copy default.ini to temp dir and use it as additional config, overwriting only what is needed with couchdb.ini.template provided.
2015-05-25Merge remote-tracking branch 'leapcode/pr/216' into developKali Kaneko
this branch includes many changes that improve the asynchronous retrieval of the sync docs, and the parallel decryption of the encrypted documents.
2015-05-25[bug] remove client syncer call to close methoddrebs
2015-05-25[feature] add pool of http/https connectionsdrebs
Instead of opening one TCP connection for each HTTP request, we want to reuse connections. Also, we need to be able to verify SSL certificates. This commit implements both features in the twisted http client sync.
2015-05-22[refactor] remove inline enc/dec from client pooldrebs
The whole idea of the encrypter/decrypter pool is to be able to use multiple cores to allow parallel encryption/decryption. Previous to this commit, the encryptor/decryptor pools could be configured to not use workers and instead do encryption/decryption inline. That was meant for testing purposes and defeated the purpose of the pools. This commit removes the possibility of inline encrypting/decrypting when using the pools. It also refactors the enc/dec pool code so any failures while using the pool are correctly grabbed and raised to the top of the sync deferred chain.
2015-05-21[refactor] remove unneeded proxy for insert_doc_cbdrebs
When we initialized the async decrypter pool in the target's init method we needed a proxy to ensure we could update the insert doc callback with the correct method later on. Now we initialize the decrypter only when we need it, so we don't need this proxy anymore. This commit removes the unneeded proxy.
2015-05-20[bug] ensure async decryption failures are loggeddrebs
We have to make sure any failures in asynchronous decryption code is grabbed and properly transmitted up the deferred chain so it can be logged. This commit adds errbacks in the decryption pool that grab any failure and a check on the http target the failure if that is the case.
2015-05-20[feature] ensure reactor stops on client db scriptdrebs
2015-05-20[bug] wrap unauth errors as invalid token errorsdrebs
2015-05-20[bug] ensure sync failures are not ignoreddrebs
2015-05-20[refactor] cleanup sync, remove unused stuffdrebs
This commit does the following: * Remove the autocreate parameter from the sync() method. * Remove the syncing lock from the sync module because it did the same job as the lock in the sqlcipher module. * Remove the close/stop methods from sync module as they don't make sense after we started to use twisted in client-side sync.
2015-05-20[feature] use twisted.web.client in client syncdrebs
This change uses twisted deferreds for the whole syncing process and paves the way to implementing other transport schemes. It removes a lot of threaded code that used locks and was very difficult to maintain, and lets twisted to the dirty work. Furthermore, all blocking network i/o is now handled asynchronously by the twisted. This commit removes the possibility of interrupting a sync, and we should reimplement it using cancellable deferreds if we need it.
2015-05-20[feature] use twisted adbapi for async encryptiondrebs
The access to the sync db was modified to use twisted.enterprise.adbapi, but only the asynchronous decryption of incoming documents during sync was adapted. This commit modifies the asynchornous encryption of documents to also use the adbapi for accessing the sync db.
2015-05-20[feature] add --create-doc to client db scriptdrebs
2015-05-20[bug] remove unused pending documents exceptiondrebs
When we started implementing the sync db, one of the ideas was to reuse the data in the database in the case of a sync interruption. We don't do that now and thus the pending documents exception is unneeded. This commit removes that exception from the code.
2015-05-20[bug] remove illegal CR from auth headerKali Kaneko
The b64 encoding of the auth token was introducing an illegal character (\n), which was breaking the authentication step since an exception was being raised - when that multi-line header was attempted to be built. this commit fixes that bug. - Resolves: #6959