summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-10-05[style] rename exception to match standardsdrebs
We have been using "Error" instead of "Exception" in exception names, so this commit is only enforcing an unwritten policy.
2017-10-05[bug] refuse to start if blobs is misconfiguredVictor Shyba
As kali pointed out, one can disable blobs after enabling it, which would cause data loss as blobs documents would become unreacheable. This commit adds a warning and refuses to start the server. -- Resolves: #8866
2017-10-05[style] fix typos on filenames and commentsVictor Shyba
2017-10-05[bug] set as PROCESSING during processing flowVictor Shyba
It was previously setting to PROCESSED. Also added some tests to check if the underlying wrapped calls matches the intent. -- Resolves: #8955
2017-10-05[feature] notify, retry and fail from invalid tagVictor Shyba
Notify, log something meaninful and retry at most 3 times before marking the download as unusable (FAILED_DOWNLOAD). -- Related: #8825
2017-10-05[feature] retry during upload + proper waitVictor Shyba
Added retry to upload and modified retry implementation to comply with discussed spec. According to it, we should wait between retries, something like 1s, 10s, .. up to 1 minute. -- Resolves: #8822
2017-10-05[feature] retry during downloadVictor Shyba
-- Related: #8822
2017-10-05[feature] send/fetch missing using local statusesVictor Shyba
Instead of querying the server, fetch_missing and send_missing now uses the PENDING_DOWNLOAD and PENDING_UPLOAD statuses to guide itself on what to do. This allows the sync mechanism to control when/how to query data from server and reuse the query data during the sync. -- Related: #8822
2017-10-05[feature] blob get/put handle unavailable statusesVictor Shyba
PENDING_DOWNLOAD is an empty blob, so during blob_manager.get we need to return empty as it's not available. This status is used during sync. During put, if we have an empty unavailable blob, then we delete and replace with is being put, marking it as SYNCED. -- Related: #8822
2017-10-05[refactor] change default dict paramsVictor Shyba
As raised by kali, they can bring some bugs and avoiding it is pretty easy. -- Resolves: #8957
2017-10-05[feature] improve preamble comparisonsVictor Shyba
We were comparing the raw content of preambles. This commit adds a way to compare excluding time so comparisons don't suffer from false negatives caused by time deltas. -- Resolves: #8920
2017-10-05[feature] persist pending_download remote listingVictor Shyba
-- Related: #8822
2017-10-05[feature] filter out unavailable blobs on listingVictor Shyba
-- Related: #8822
2017-10-05[feature] concurrent blob download/uploadVictor Shyba
-- Related: #8932
2017-09-30[bug] fix argument passing in blobs queriesdrebs
2017-09-29[refactor] make parameters of blobmanager methods explicitdrebs
2017-09-29[bug] check all http response status codesdrebs
2017-09-29[bug] raise when trying to get flags of unexisting blobdrebs
2017-09-28[doc] add api reference to the docsdrebs
2017-09-14[pkg] standardize location of services tokens filedrebs
Introduction of local services authentication added a configuration file containing the auth tokens for each service. There were different names for that file, and this commit standardizes all of them to the same value: /etc/soledad/services.tokens
2017-09-14[pkg] use /var/lib/soledad/blobs to store blobsdrebs
Soledad Server was previously using something in /srv to store blobs in the server side. Debian/lintian doesn't like that at all, so we are changing to /var/lib/soledad/blobs. Closes: #8948
2017-09-13[refactor] remove dead code and improve namingVictor Shyba
From code review. -- Related: #8945
2017-09-11[bug] use sql file handler from adbapi threadpoolVictor Shyba
This commit makes all write calls happen inside the same thread that opened the blob handle. Doing it outside using FileBodyProducer will yield and run the writes across random reactor threads. This is an attempt to fix #8945 -- Resolves: #8945
2017-09-11[bug] do not allow concurrent schema creationVictor Shyba
Moved schema creation and migrations to the pragma locked call, so we avoid it running concurrently on a thread pool. -- Resolves: #8945
2017-09-11[bug] close consumer on FileBodyProducerVictor Shyba
It isn't closed by Twisted like the producer is. -- Resolves: #8924 -- Related: #8932
2017-09-11[style] fixes from code reviewVictor Shyba
2017-09-11[feature] save sync status on client sideVictor Shyba
Adds two new columns for sync status and retries. Also some initial rough logic for upload retry limiting. -- Resolves: #8823 -- Related: #8822
2017-09-08[bug] allow POST to blobs resource8938drebs
2017-09-05[doc] document environment variablesdrebs
2017-09-05[feat] toggle http persistence depending on environment variabledrebs
2017-09-05[feat] use a persistent connetion pool in http agentdrebs
2017-09-05[feat] use cookies in the client syncerdrebs
2017-09-05[feat] cache session data in serverdrebs
2017-09-05[bug] ensure the number of threads in blobs thread pooldrebs
The number of threads in the blobs databae thread pool can't be smaller than the number of attemps to write concurrently to the database, otherwise different kinds of concurrency problems may arise. By setting the minimum and maximum number of threads to the same number, we make sure there will always be that number of available threads for interaction with the blobs db.
2017-09-05[bug] use a different name for each user's blobs dbdrebs
2017-09-05[refactor] follow new resource class style namingdrebs
2017-09-05[bug] add schema to incoming couchdb backendVictor Shyba
Schema was using a default value instead of using the one passed as a parameter. Additional test for formatter is also included. -- Related: #8867
2017-09-05[bug] avoid cross uuid checks on incomingVictor Shyba
Incoming API is supposed to be able to, given a valid service token, write a incoming document into any user database. Leaving the parameter as 'uuid' triggers defensive code against unauthorized accesses between users. This commit renames the parameter so this isn't checked. -- Related: #8867
2017-09-05[style] improve naming and fixes from code reviewVictor Shyba
-- Related: #8867
2017-09-05[bug] check for conflicting ports + systemd fixesVictor Shyba
-- Related: #8867
2017-09-05[bug] remove incoming child from SoledadResourceVictor Shyba
-- Related: #8867
2017-09-05[pkg] move server.tac to server src folderVictor Shyba
This way the file gets copied during package install. -- Related: #8867
2017-09-05[refactor] add localhost endpoint to server tacVictor Shyba
-- Related: #8867
2017-09-05[feature] add a local realm with file auth checkerVictor Shyba
-- Related: #8867
2017-09-05[feature] new config option for tokens auth fileVictor Shyba
-- Related: #8867
2017-08-31[feat] get config file name from environmentdrebs
For tests, we may want to configure the server with non-default options, and the easiest way to do this is by creating a configuration file in a temporary directory and passing the file name by means of an environment variable. This commit changes the server config file loading scheme to account for a variable called SOLEDAD_SERVER_CONFIG_FILE. If that variable is set, the configuration is read from the file pointed by it. Otherwise, /etc/soledad/soledad-server.conf is used.
2017-08-31[bug] revert pool size change pushed by mistakedrebs
2017-08-25[bug] increase number of connections in local blobs db pooldrebs
If the number of threads on the connection pool is small and the local blobs db is stressed, different concurrent access problems may arise.
2017-08-23[bug] revert setting of default config that enabled blobs prematurelyKali Kaneko
We do not want to enable blobs on any server that, by mistake, deploys from master or from a released version in the 0.10.x series. for testing it's more sensible to allow instantiating the server with a custom config file.
2017-08-23[bug] add missing DELETE permission for blobsdrebs