Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge branch 'main' into admin-api | Alex Auvolat | 2022-05-18 | 10 | -29/+1138 |
|\ | |||||
| * | Add a K2V client library and CLI (#303) | trinity-1686a | 2022-05-18 | 10 | -29/+1138 |
| | | | | | | | | | | | | | | | | | | lib.rs could use getting split in modules, but I'm not sure how exactly Co-authored-by: trinity-1686a <trinity@deuxfleurs.fr> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/303 Co-authored-by: trinity-1686a <trinity.pointard@gmail.com> Co-committed-by: trinity-1686a <trinity.pointard@gmail.com> | ||||
* | | Refactor bucket emptiness check and add k2v check | Alex Auvolat | 2022-05-18 | 4 | -38/+49 |
| | | |||||
* | | 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 | 5 | -5/+39 |
| | | |||||
* | | Implement ConnectClusterNodes | Alex Auvolat | 2022-05-17 | 4 | -4/+44 |
| | | |||||
* | | 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 | 2 | -2/+93 |
|\| | |||||
| * | K2V: Fix `end` parameter and add tests (fix #305)fix-k2v-305 | Alex Auvolat | 2022-05-17 | 2 | -2/+93 |
| | | |||||
| * | Make background runner terminate correctly | Alex Auvolat | 2022-05-17 | 1 | -15/+22 |
| | | |||||
* | | 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 | 22 | -259/+209 |
| | | |||||
* | | Separate error types for k2v and signature | Alex Auvolat | 2022-05-13 | 14 | -13/+203 |
| | | |||||
* | | More error refactoring | Alex Auvolat | 2022-05-13 | 12 | -54/+37 |
| | | |||||
* | | Rename error::Error to s3::error::Error | Alex Auvolat | 2022-05-13 | 27 | -28/+27 |
| | | |||||
* | | Error refactoring | Alex Auvolat | 2022-05-13 | 24 | -206/+135 |
| | | |||||
* | | 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 | 7 | -50/+64 |
| | | |||||
* | | Fix clippy | Alex Auvolat | 2022-05-12 | 2 | -6/+2 |
| | | |||||
* | | Slightly more detailed error reporting from helper | Alex Auvolat | 2022-05-12 | 5 | -15/+22 |
| | | |||||
* | | 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 | 7 | -105/+227 |
| | | |||||
* | | 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 |
| | | |||||
* | | Update Cargo.nix and improve log message | Alex Auvolat | 2022-05-10 | 1 | -1/+1 |
| | | |||||
* | | Refactor code for apply/revert, implement Update/Apply/RevertLayout | Alex Auvolat | 2022-05-10 | 11 | -62/+175 |
| | | |||||
* | | Specify remaining cluster-related endpoints | Alex Auvolat | 2022-05-10 | 1 | -0/+2 |
| | | |||||
* | | Fmt & cleanup | Alex Auvolat | 2022-05-10 | 3 | -33/+58 |
| | | |||||
* | | Implement /status Admin endpoint | Alex Auvolat | 2022-05-10 | 5 | -49/+152 |
| | | |||||
* | | Make background runner terminate correctly | Alex Auvolat | 2022-05-10 | 2 | -15/+23 |
| | | |||||
* | | Refactor admin API to be in api/admin and use common code | Alex Auvolat | 2022-05-10 | 14 | -200/+221 |
|/ | |||||
* | First implementation of K2V (#293) | Alex | 2022-05-10 | 78 | -1141/+5520 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **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> | ||||
* | Update netapp to 0.4.4, fix #300v0.7.1netapp-0.4.4 | Alex Auvolat | 2022-05-09 | 1 | -1/+1 |
| | |||||
* | Fix `layout show` to not show changes when there are no changes (#297) | Alex | 2022-05-09 | 2 | -5/+22 |
| | | | | | | | | | fixes #295, partially Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/297 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 |
| |