Commit Graph

131 Commits (32e5f8c7154e31bdb30faa301973601ca8a242b2)

Author SHA1 Message Date
Carol (Nichols || Goulding) 23782dc9b7 test: Add some tests around path building and encoding 2021-01-07 16:02:10 -05:00
Carol (Nichols || Goulding) 164c0e7357 fix: Use DELIMITER to create DELIMITER_BYTE 2021-01-07 15:23:51 -05:00
Carol (Nichols || Goulding) 37056a1753 feat: Decode PathPart's values when Displaying 2021-01-07 15:23:32 -05:00
Carol (Nichols || Goulding) b421de77c4 feat: Encode characters GCS recommends avoiding 2021-01-07 14:58:58 -05:00
Carol (Nichols || Goulding) 18ee1b561b feat: Use ObjectStorePath everywhere to feel out the API needed 2021-01-07 10:48:22 -05:00
Carol (Nichols || Goulding) e58607f015 fix: Add more info to a test failure message
I had stuff in my Google storage from when I was manually testing out
how paths are handled; it was hard to see that was the problem without
this extra failure text.
2021-01-07 09:21:00 -05:00
Carol (Nichols || Goulding) 44fb5b2b72 fix: Un-nest test modules
Now that the code is separated into modules, we don't need the modules
inside the test modules. So before this commit, the test names looked
like this:

```
test aws::tests::amazon_s3::s3_test_put_nonexistent_bucket ... ok
test gcp::test::google_cloud_storage::gcs_test ... ok
test disk::tests::file::length_mismatch_is_an_error ... ok
test memory::tests::in_memory::length_mismatch_is_an_error ... ok
```

and after this commit, the test names look like this:

```
test aws::tests::s3_test_put_nonexistent_bucket ... ok
test gcp::test::gcs_test ... ok
test disk::tests::length_mismatch_is_an_error ... ok
test memory::tests::length_mismatch_is_an_error ... ok
```
2021-01-07 09:20:57 -05:00
Carol (Nichols || Goulding) 55d64182f6 fix: Use @domodwyer's macro trick instead of conditional compilation 2021-01-07 09:20:09 -05:00
Carol (Nichols || Goulding) 5387499888 refactor: Reorganize imports 2021-01-07 09:20:04 -05:00
Carol (Nichols || Goulding) e36a7d3595 fix: Get Google Cloud tests compiling again 2021-01-07 09:19:58 -05:00
Paul Dix cf56c1ba9e feat: Add object store path abstraction 2021-01-07 09:19:50 -05:00
Paul Dix c1f8e89bf0 feat: Add list_with_delimiter to in memory object store
This adds the list_with_delimiter function to the in-memory object store. It also updates the function signature to require a prefix since it will always only want to list either the objects in the dir or the common prefixes.
2021-01-07 09:19:22 -05:00
Paul Dix 4b40d11e60 feat: Add list_with_delimiter to object store
This adds a new function list_with_delimiter to the object store. This commit contains just the implementation for S3, leaving the others to be completed in follow on commits.

This has a fixed delimiter to ensure a directory structure is created. This delimiter should be dependent on platform and which object store is used. For any of the cloud object stores or in memory, the delimiter should be /. For the future disk based implementation it should be dependendent on if you're running on Windows or Linux.

I didn't use Stream for the return type because I found it difficult to work with and I don't think it actually added anything useful. The return ListResult struct has the next token and I prefer that the caller explicitly makes calls that go over the network so they're more aware of what's going on, where a Stream abstracts that away so it's hidden behind the scenes. We can easilsy add a Stream based version on top of this existing API if we want.
2021-01-07 09:19:15 -05:00
Paul Dix d1ab5c0ee9 chore: refactor object_store crate
This pulls the different backing implmenetations into their own modules. They're about to get more complex so it felt like it was time to separate them out rather than building towards a single multi-thousand line lib.rs. The error type is only defined in lib and imported by the individual modules, which I think makes it easier to work with.
2021-01-07 09:19:07 -05:00
Carol (Nichols || Goulding) b11896b7e9
fix: Compiler errors missed in aws object store tests because CI wasn't checking them (#564) 2020-12-15 12:28:42 -05:00
Dom 4c35253fd5 style: unmangle wrapped diagrams
Adds #[rustfmt::skip] to comment blocks containing diagrams to skip wrapping.
2020-12-14 13:14:36 +00:00
Dom 6f473984d0 style: wrap comments
Runs rustfmt with the new config.
2020-12-11 18:22:26 +00:00
Dom c9a101ecae
Merge branch 'main' into brandonsov/add-bucket-location-to-object-store-errors 2020-12-10 18:14:27 +00:00
Brandon Sov 568065d63f style: rename location_string to location_copy 2020-12-10 09:41:24 -08:00
Brandon Sov 6247a01144 test: update typos 2020-12-10 09:24:42 -08:00
huming a5a3cd149d chore: some minor comments and rename 2020-12-10 10:48:57 +08:00
Brandon Sov 146bf59d8d test: simplify test error matching 2020-12-09 11:36:49 -08:00
Brandon Sov d179fe68d3 refactor: replace bucket_name clones with references 2020-12-09 11:03:19 -08:00
Brandon Sov af8569378f test: move common variable and function to general test usage 2020-12-09 11:01:51 -08:00
Brandon Sov 625542c310 fix: Update s3 error function to correct pattern 2020-12-09 10:14:50 -08:00
Brandon Sov 4be47b1ccc fix: Move functions to the conditional compilation flag to pass linter 2020-12-08 23:42:41 -08:00
Brandon Sov 62c14de2bc fix: Update pattern match to detect String 2020-12-08 23:42:33 -08:00
Brandon Sov 1a4b2eac26 fix: Report bucket/location when relevant with object store errors 2020-12-08 22:29:28 -08:00
Paul Dix fa3ecbd4ed
feat: Implement write buffer to Parquet snapshotting (#526)
* feat: Implement write buffer to Parquet snapshotting

This introduces snapshot to the server packages to manage snapshotting. It also introduces a new trait for representing a Partition. There is a very crude API wired up in http_routes for testing purposes. Follow on work will bring the server package into http_routes and rework the snapshot API.
2020-12-08 14:20:43 -05:00
Carol (Nichols || Goulding) 085f91000d fix: dotenv is both a build and a dev dependency 2020-11-20 13:18:28 -05:00
Andrew Lamb a3b88d5506
refactor: rename delorean_object_store --> object_store (#413) 2020-11-05 08:56:30 -05:00