summaryrefslogtreecommitdiff
path: root/server
AgeCommit message (Collapse)Author
2017-06-24[pkg] unify client and server into a single python packagedrebs
We have been discussing about this merge for a while. Its main goal is to simplify things: code navigation, but also packaging. The rationale is that the code is more cohesive in this way, and there's only one source package to install. Dependencies that are only for the server or the client will not be installed by default, and they are expected to be provided by the environment. There are setuptools extras defined for the client and the server. Debianization is still expected to split the single source package into 3 binaries. Another avantage is that the documentation can now install a single package with a single step, and therefore include the docstrings into the generated docs. - Resolves: #8896
2017-05-23[refactor] improve backend naming and error handlingVictor Shyba
2017-05-12[refactor] make blobs resource backend configurableVictor Shyba
- Resolves: #8804
2017-05-09[refactor] move interfaces outKali Kaneko
- rename add_tag method - reorder blob interface methods for clarity - use mkdir_p from leap.common
2017-05-04[doc] cleanup old documentationdrebs
2017-05-02[feature] add and integrate DELETE to blobs serverVictor Shyba
Add a DELETE method for blobs server and integrate it into client's BlobManager. - Resolves: #8846
2017-05-01[refactor] unify path validationVictor Shyba
2017-05-01[feature] blobs path validationVictor Shyba
Check if user and blob_id are valid strings, then check if the resulting path is a subdirectory of blobs configured path. - Related: #8800
2017-04-26[bug] proper logging of _blobs resource errorsVictor Shyba
2017-04-26[feature] sanitize resource argumentsVictor Shyba
_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
2017-04-26[feature] use Twisted getProcessOutput on backendVictor Shyba
This makes process communication async during quota measurement, as specified on #8832 - Related: #8832
2017-04-04[bug] enable '/blobs/{uuid}' for GET on url_mapperVictor Shyba
2017-04-04[style] fix wrong identationVictor Shyba
2017-04-04[docs] improve docstrings and comments from reviewVictor Shyba
2017-04-04[feature] add blobs listingVictor Shyba
2017-04-04[feature] use 409 status code for existing blob idVictor Shyba
Raising was generating 500, which is a generic status code for server side errors. This commit adds proper status code of 409 while handling the error on client side by translating the code into a proper exception class.
2017-04-04[test] upload/download integration testVictor Shyba
2017-04-04[bug] create dirs before checking disk usageVictor Shyba
2017-04-04[refactor] quota and size configurable on constructorVictor Shyba
2017-04-04[refactor] pass configured blobs resource to server auth classdrebs
2017-04-04[bug] use postpath to get blobs user and id in serverdrebs
2017-04-04[feat] allow blobs urls in serverdrebs
2017-04-04[refactor] create blobs directory on server resource initializationdrebs
2017-04-04[doc] remove excessive signal doc from client apidrebs
2017-04-04[bug] return 0 quota if user's blob dir doesn't existdrebs
2017-04-04[feat] make blobs server path configurabledrebs
2017-04-04[feat] add log to blobs serverdrebs
2017-04-04[feat] improve blobs standalone testing optionsdrebs
2017-04-04[feature] send tag header from serverVictor Shyba
2017-04-04[bug] fix path and config on blobsVictor Shyba
2017-04-04[bug] fix resource parameterVictor Shyba
2017-04-04[style] pep8 fixesVictor Shyba
2017-04-04[bug] fix blobs putdrebs
2017-04-04[feature] implement basic fs quota per userKali Kaneko
this is simplistic, but adds a minimal protection against trivial DoS. the call to the ps command should be fast, but could use some profiling for the case of some ten of thousands files. - Resolves: #8778
2017-04-04[feature] close mvp loop with clientKali Kaneko
2017-04-04[feature] working naive implementation of the backendKali Kaneko
- Resolves: #8757, #8771, #8772
2017-03-17[docs] add efkin to authors, changelog entry for py3 testsKali Kaneko
2017-03-17[refactor] Improve python3 compatibilityefkin
With this commit all tests on py34 tox environment are collected.
2017-03-17[test] Prepare new tox environmentefkin
At this point tests are not yet collectable in the new environment. But no regressions observed.
2017-02-27[style] move path config closer to blobs resource instantiationdrebs
2017-02-27[feat] add configurable blobs path in serverdrebs
- Resolves: #8777
2017-02-17[bug] reuse wsgi threadpoolKali Kaneko
it seems evident that the functions were thought to pass a threadpool along, but it finally wasn't properly passed and so there was a new threadpool created to handle every resource. I have removed the creation from the factory because I don't think it makes sense to create a threadpool on the fly, it's prone to errors. - Resolves: #8774
2017-02-17[refactor] create resources only onceKali Kaneko
it doesn't make sense to create the resources for every request, we can reuse the same resource and create it in the constructor. - Resolves: #8770
2017-02-15[style] pep8Victor Shyba
2017-02-15[tests] fix testsKali Kaneko
2017-02-15[docs] add a to-do about perfKali Kaneko
2017-02-15[feature] add robots.txtKali Kaneko
-Resolves: #6178
2017-02-15[feature] authenticate as anonymous if no token in headerKali Kaneko
and serve / banner and robots to anon users. instead of returning 401 for all cases, I treat the unauthenticated case as a special case, and switch the service tree apart. this allows to serve a different resource tree to unauthenticated users. the new URLs are registered with the mapper. I don't really like that dependency, could be handled by twisted alone, but meh. - Resolves: #8764
2017-02-15[feature] add version to the bannerKali Kaneko
2017-02-15[bug] add expected attribute to authentication wrapper in entrypointKali Kaneko
the authentication wrapper is goin to look for the _credentialFactories attribute. it will raise an exception if not found - Resolves: #8766