Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: integrate acv2 feature branch #703

Merged
merged 41 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
f880f79
ci: disable codecov uploads (#3)
coryan Apr 24, 2024
3ea6a16
impl: add bidi streaming read patches (#1)
coryan Apr 24, 2024
f678970
chore: update patches to meet C++ requirements (#4)
coryan Apr 24, 2024
2969743
chore: update proto patches circa 2024-06-13 (#6)
cojenco Jul 12, 2024
ef3d194
feat: BidiRead initial scaffolding n ranges in 1 stream (#7)
cojenco Jul 26, 2024
2a0e94c
feat: add crc32c checksum to BidiRead (#9)
cojenco Jul 26, 2024
f580ee8
test: BidiRead object not found error handling (#10)
cojenco Aug 29, 2024
86e7229
feat: pack BidiReadObjectError in error details for out of range (#11)
cojenco Aug 29, 2024
0545b70
fix(grpc_server): Higher fidelity BidiReadObject. (#12)
cjc25 Sep 9, 2024
7f92a5e
feat(appendable): Appendable object proto support (#13)
cjc25 Sep 10, 2024
f67c33d
fix: Correctly handle aborts with multiple ranges. (#16)
cjc25 Sep 24, 2024
1bc7505
feat(grpc_retry): support retry bidi read object for conformance test…
shubham-diwakar Oct 1, 2024
39850ac
fix: Support client cancellation in BidiReadObject (#17)
cjc25 Oct 4, 2024
26ef0db
feat: Handle appendable objects in BidiWriteObject (#18)
cjc25 Oct 7, 2024
c91004d
fix: Correct BidiReadObject early termination. (#19)
cjc25 Oct 7, 2024
81e9e43
fix: Don't raise a bare string (#21)
cjc25 Oct 17, 2024
57aec0c
fix: Allow BidiWriteObjectRequest with no data. (#22)
cjc25 Oct 17, 2024
86db6be
build: update cloudbuild for private images (#23)
cojenco Oct 22, 2024
2008693
Merge branch 'upstream' into pre-launch-acv2
Oct 23, 2024
298b19b
chore: merge from public circa 2024-10-24 (#25)
cojenco Oct 24, 2024
cc704ab
test: enable GCS bucket logs (#26)
frankyn Oct 25, 2024
7b50966
feat(append): Import new proto patch. (#29)
cjc25 Oct 30, 2024
47c63fa
feat: Only RAPID supports appendable objects. (#30)
cjc25 Nov 4, 2024
5dc6590
feat(append): Support instructions for redirect. (#31)
cjc25 Nov 7, 2024
d6183b4
feat(append): Redirect-with-handle instructions. (#32)
cjc25 Nov 9, 2024
0a4b165
feat(append): Update Object with finalize_time. (#33)
cjc25 Nov 11, 2024
32029d2
feat(append): Appendable object creation. (#34)
cjc25 Nov 12, 2024
3041f73
fix: Correct finalize condition. (#35)
cjc25 Nov 13, 2024
6027b39
feat(append): Add tests for finalizing appends. (#36)
cjc25 Nov 13, 2024
d6fe248
fix: signal terminate in BidiReadObject (#37)
cojenco Nov 21, 2024
e96974d
docs: how to merge from public upstream (#40)
cojenco Nov 22, 2024
9247a57
feat: Support error code for single shot upload (#699) (#39)
cojenco Nov 22, 2024
76cf6ec
chore: Timeout with cancellation in BidiReadObject (#42)
cjc25 Nov 26, 2024
3c77efe
fix: Disable pipelining in BidiReadObject. (#43)
cjc25 Nov 27, 2024
1dec604
chore: Update bidi proto patch. (#44)
cjc25 Jan 6, 2025
367b4f8
Revert "docs: how to merge from public upstream (#40)"
cojenco Jan 6, 2025
2c0c2b7
Revert "test: enable GCS bucket logs (#26)"
cojenco Jan 6, 2025
24f070d
Revert "build: update cloudbuild for private images (#23)"
cojenco Jan 6, 2025
fe047dc
Merge branch 'main' into acv2-merge-upstream
cojenco Jan 6, 2025
9402826
Revert "feat: Only RAPID supports appendable objects. (#30)"
cojenco Jan 7, 2025
8221b84
update for public merge
cojenco Jan 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,21 +43,6 @@ jobs:
PYTHONPATH: "."
run: |
pytest --cov=./ --cov-report=xml
- name: Upload coverage to Codecov
if: ${{ matrix.python-version == '3.12' }}
uses: Wandalen/wretry.action@1a10d4835a1506f513ad8e7488aeb474ab20055c # v1.4.10
with:
action: codecov/codecov-action@v4
with: |
token: ${{ secrets.CODECOV_TOKEN }}
env_vars: OS,PYTHON
fail_ci_if_error: true
files: ./coverage.xml
flags: unittests
name: codecov-umbrella
verbose: true
attempt_limit: 5
attempt_delay: 10000
windows-tests:
runs-on: windows-2022
strategy:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ cov.xml
googleapis_storage_testbench.egg-info/
coverage.xml
.venv/
.googleapis/
39 changes: 31 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ is expected to be used by Storage library maintainers.
- [stall-at-256KiB](#stall-at-256kib)
- [return-503-after-256K](#return-503-after-256k)
- [return-503-after-256K/retry-N](#return-503-after-256kretry-n)
- [redirect-send-token-T](#redirect-send-token-t)
- [redirect-send-handle-and-token-T](#redirect-send-handle-and-token-t)
- [redirect-expect-token-T](#redirect-expect-token-t)
- [Retry Test API](#retry-test-api)
- [Creating a new Retry Test](#creating-a-new-retry-test)
- [Get a Retry Test resource](#get-a-retry-test-resource)
Expand Down Expand Up @@ -125,14 +128,8 @@ run the grpc_tools generator:

```shell
cd $HOME/storage-testbench

# This creates a new directory with the protos from `googleapis`. If
# the clone already exists use:
# git -C $HOME/googleapis pull
git -C $HOME clone https://github.com/googleapis/googleapis

pip install grpcio-tools
./update-protos.sh $HOME/googleapis
pip install --no-deps grpcio-tools
./update-protos.sh $PWD/.googleapis
```

Then commit the files generated in `google/**`:
Expand Down Expand Up @@ -182,6 +179,29 @@ failure instruction and return successfully. This is used to test failures durin
retry, the client cooperates by sending the retry counter in the failure
instructions.

### redirect-send-token-T

In gRPC, set initial metadata with `x-goog-emulator-instructions: redirect-send-token-tokenval`.
Testbench will fail redirectable RPCs with `routing_token` set to the value `T`
(`tokenval` in the example).

### redirect-send-handle-and-token-T

In gRPC, set initial metadata with `x-goog-emulator-instructions: redirect-send-handle-and-token-tokenval`.
Testbench will fail redirectable RPCs with `routing_token` set to the value `T`
(`tokenval` in the example) and a `write_handle` (`read_handle` is not currently
supported).

### redirect-expect-token-T

In gRPC, set initial metadata with `x-goog-emulator-instructions: redirect-expect-token-tokenval`.
Testbench will consume the instruction if the RPC also specifies
`x-goog-request-params: routing_token=T` (`routing_token=tokenval` in the
example).

Note that `x-goog-request-params` supports multiple key-value pairs, encoded
like URL query parameters.


## Retry Test API

Expand Down Expand Up @@ -253,6 +273,9 @@ curl -H "x-retry-test-id: 1d05c20627844214a9ff7cbcf696317d" "http://localhost:91
| return-broken-stream-after-YK | [HTTP] Testbench will fail after YKiB of downloaded data <br> [GRPC] Testbench will fail with `UNAVAILABLE` after YKiB of downloaded data
| return-reset-connection | [HTTP] Testbench will fail with a reset connection <br> [GRPC] Testbench will fail the RPC with `UNAVAILABLE`
| stall-for-Ts-after-YK | [HTTP] Testbench will stall for T second after reading YKiB of downloaded/uploaded data, e.g. stall-for-10s-after-12K stalls after reading/writing 12KiB of data <br> [GRPC] Not supported
| redirect-send-token-T | [HTTP] Unsupported [GRPC] Testbench will fail the RPC with `ABORTED` and include appropriate redirection error details.
| redirect-send-handle-and-token-T | [HTTP] Unsupported [GRPC] Testbench will fail the RPC with `ABORTED` and include appropriate redirection error details.


## Releasing the testbench

Expand Down
Loading
Loading