Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make authorization token mandatory for admin API | Alex Auvolat | 2022-05-23 | 1 | -8/+18 |
| | |||||
* | Refactor bucket emptiness check and add k2v check | Alex Auvolat | 2022-05-18 | 2 | -24/+2 |
| | |||||
* | Fix fmt | Alex Auvolat | 2022-05-18 | 3 | -9/+3 |
| | |||||
* | Rename error varian for Clippy | Alex Auvolat | 2022-05-18 | 4 | -29/+29 |
| | |||||
* | Implement ImportKey | Alex Auvolat | 2022-05-17 | 4 | -0/+37 |
| | |||||
* | Implement ConnectClusterNodes | Alex Auvolat | 2022-05-17 | 3 | -0/+36 |
| | |||||
* | Prefix all APIs with `v0/` | Alex Auvolat | 2022-05-17 | 1 | -24/+24 |
| | |||||
* | Add PutBucketWebsite and DeleteBucketWebsite to admin api | Alex Auvolat | 2022-05-17 | 3 | -0/+73 |
| | |||||
* | Specify and implement {Global,Local}{Alias,Unalias}Bucket | Alex Auvolat | 2022-05-17 | 3 | -9/+114 |
| | |||||
* | refactor | Alex Auvolat | 2022-05-17 | 1 | -19/+9 |
| | |||||
* | Fix error code | Alex Auvolat | 2022-05-17 | 2 | -2/+2 |
| | |||||
* | Return website config in GetBucketInfo, use serde(rename_all) | Alex Auvolat | 2022-05-17 | 3 | -55/+67 |
| | |||||
* | Merge branch 'main' into admin-api | Alex Auvolat | 2022-05-17 | 1 | -1/+5 |
|\ | |||||
| * | K2V: Fix `end` parameter and add tests (fix #305)fix-k2v-305 | Alex Auvolat | 2022-05-17 | 1 | -1/+5 |
| | | |||||
* | | Remove useless string conversions | Alex Auvolat | 2022-05-13 | 6 | -29/+23 |
| | | |||||
* | | Revert useless thing | Alex Auvolat | 2022-05-13 | 1 | -3/+1 |
| | | |||||
* | | More precisions in errors & small refactoring | Alex Auvolat | 2022-05-13 | 6 | -43/+35 |
| | | |||||
* | | Json body for custom errors | Alex Auvolat | 2022-05-13 | 3 | -11/+67 |
| | | |||||
* | | More error refactoring | Alex Auvolat | 2022-05-13 | 20 | -250/+202 |
| | | |||||
* | | Separate error types for k2v and signature | Alex Auvolat | 2022-05-13 | 14 | -13/+203 |
| | | |||||
* | | More error refactoring | Alex Auvolat | 2022-05-13 | 11 | -54/+15 |
| | | |||||
* | | Rename error::Error to s3::error::Error | Alex Auvolat | 2022-05-13 | 25 | -24/+23 |
| | | |||||
* | | Error refactoring | Alex Auvolat | 2022-05-13 | 22 | -180/+122 |
| | | |||||
* | | Common error type and admin error type that uses it | Alex Auvolat | 2022-05-13 | 11 | -29/+249 |
| | | |||||
* | | Possibility of different error types for different APIs | Alex Auvolat | 2022-05-13 | 6 | -49/+62 |
| | | |||||
* | | Fix clippy | Alex Auvolat | 2022-05-12 | 2 | -6/+2 |
| | | |||||
* | | Slightly more detailed error reporting from helper | Alex Auvolat | 2022-05-12 | 1 | -0/+5 |
| | | |||||
* | | Simplify | Alex Auvolat | 2022-05-12 | 2 | -16/+6 |
| | | |||||
* | | BucketAllowKey and BucketDenyKey | Alex Auvolat | 2022-05-12 | 4 | -7/+92 |
| | | |||||
* | | DeleteBucket | Alex Auvolat | 2022-05-12 | 2 | -0/+63 |
| | | |||||
* | | CreateBucket | Alex Auvolat | 2022-05-12 | 2 | -4/+105 |
| | | |||||
* | | ListBucket and GetBucketInfo | Alex Auvolat | 2022-05-12 | 5 | -13/+241 |
| | | |||||
* | | Implement CreateKey, DeleteKey and rudimentary UpdateKey | Alex Auvolat | 2022-05-11 | 2 | -11/+89 |
| | | |||||
* | | First key endpoints: ListKeys and GetKeyInfo | Alex Auvolat | 2022-05-11 | 4 | -3/+195 |
| | | |||||
* | | Add API access key admin endpoints | Alex Auvolat | 2022-05-11 | 4 | -24/+68 |
| | | |||||
* | | Refactor code for apply/revert, implement Update/Apply/RevertLayout | Alex Auvolat | 2022-05-10 | 4 | -12/+91 |
| | | |||||
* | | Specify remaining cluster-related endpoints | Alex Auvolat | 2022-05-10 | 1 | -0/+2 |
| | | |||||
* | | Fmt & cleanup | Alex Auvolat | 2022-05-10 | 2 | -32/+58 |
| | | |||||
* | | Implement /status Admin endpoint | Alex Auvolat | 2022-05-10 | 4 | -2/+85 |
| | | |||||
* | | Refactor admin API to be in api/admin and use common code | Alex Auvolat | 2022-05-10 | 5 | -0/+193 |
|/ | |||||
* | First implementation of K2V (#293) | Alex | 2022-05-10 | 30 | -981/+2401 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Specification:** View spec at [this URL](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/k2v/doc/drafts/k2v-spec.md) - [x] Specify the structure of K2V triples - [x] Specify the DVVS format used for causality detection - [x] Specify the K2V index (just a counter of number of values per partition key) - [x] Specify single-item endpoints: ReadItem, InsertItem, DeleteItem - [x] Specify index endpoint: ReadIndex - [x] Specify multi-item endpoints: InsertBatch, ReadBatch, DeleteBatch - [x] Move to JSON objects instead of tuples - [x] Specify endpoints for polling for updates on single values (PollItem) **Implementation:** - [x] Table for K2V items, causal contexts - [x] Indexing mechanism and table for K2V index - [x] Make API handlers a bit more generic - [x] K2V API endpoint - [x] K2V API router - [x] ReadItem - [x] InsertItem - [x] DeleteItem - [x] PollItem - [x] ReadIndex - [x] InsertBatch - [x] ReadBatch - [x] DeleteBatch **Testing:** - [x] Just a simple Python script that does some requests to check visually that things are going right (does not contain parsing of results or assertions on returned values) - [x] Actual tests: - [x] Adapt testing framework - [x] Simple test with InsertItem + ReadItem - [x] Test with several Insert/Read/DeleteItem + ReadIndex - [x] Test all combinations of return formats for ReadItem - [x] Test with ReadBatch, InsertBatch, DeleteBatch - [x] Test with PollItem - [x] Test error codes - [ ] Fix most broken stuff - [x] test PollItem broken randomly - [x] when invalid causality tokens are given, errors should be 4xx not 5xx **Improvements:** - [x] Descending range queries - [x] Specify - [x] Implement - [x] Add test - [x] Batch updates to index counter - [x] Put K2V behind `k2v` feature flag Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/293 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me> | ||||
* | fix clippyfix-multipart-fragmentation | Alex Auvolat | 2022-04-19 | 1 | -1/+1 |
| | |||||
* | Prettier code for defragmentation | Alex Auvolat | 2022-04-19 | 1 | -104/+102 |
| | |||||
* | Defragmentation in UploadPartCopy: first pass (not pretty but it compiles) | Alex Auvolat | 2022-04-19 | 1 | -63/+122 |
| | |||||
* | remove size limitation in UploadPartCopy (#280) | withinboredom | 2022-04-19 | 1 | -12/+0 |
| | | | | | | | | | | | This removes the >1mb s3_copy restriction. This restriction doesn't seem to be documented anywhere (I could be wrong). It also causes some software to fail (such as #248). Co-authored-by: Rob Landers <landers.robert@gmail.com> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/280 Co-authored-by: withinboredom <landers.robert@gmail.com> Co-committed-by: withinboredom <landers.robert@gmail.com> | ||||
* | fix a clippy lint | Alex Auvolat | 2022-03-28 | 1 | -1/+1 |
| | |||||
* | Move block manager to separate module | Alex Auvolat | 2022-03-23 | 2 | -1/+2 |
| | |||||
* | add test framework for arbitraty S3 requests | trinity-1686a | 2022-03-23 | 2 | -9/+8 |
| | | | | and implement some basic test with it | ||||
* | garage_api: Update streaming payload stream unit tests | KokaKiwi | 2022-03-23 | 1 | -1/+1 |
| | |||||
* | garage_api: Handle streaming payload early in request handling | KokaKiwi | 2022-03-23 | 3 | -57/+61 |
| |