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

Support additional XML API endpoints #51

Open
brycefisher opened this issue Mar 25, 2024 · 2 comments
Open

Support additional XML API endpoints #51

brycefisher opened this issue Mar 25, 2024 · 2 comments

Comments

@brycefisher
Copy link

brycefisher commented Mar 25, 2024

Hi Full Story Dev,

From scouring the interwebs, it's my opinion that this is the highest quality open source GCS emulator available today. Thank you!!

My Goal

For one of my projects, I've leveraging the https://github.com/ncruces/go-gcp/gmutex package to do some distributed locking. I'd love to be able to run integration tests against the gcsemu cli to avoid needing credentials and improve test execution time.

My Problem

However, that package relies on the following Google Cloud Storage XML API endpoints which are not available in this project yet:

Proposed Solution

Would you be willing to accept a contribution that added support for these endpoints? I've been hacking on a fork and making some progress.

Since the XML API has some differences in how conditions are passed to the server via query params and a different path structure, I'd probably:

I'd probably use the test suite for this project and from gmutex and examining the docs to validate I've implemented the behavior correctly.


I understand this is a big ask, and I completely understand if you'd rather decline a contribution of this nature. Let me know if you're willing to consider and discuss. Many thanks for all the excellent work on this project to date!

@dragonsinth
Copy link
Member

Hi Bryce, glad you're finding this useful! We can definitely accept contributions to add more GCS API surface area.

My advice would be to check out TestRealStore -- the idea is that you create a test bucket in real GCS that you have access to, provide it as an environment variable, and then run tests against the real bucket. This validates that your tests are correct and useful. Then you can implement changes to the emulator to get your new tests to pass.

@brycefisher
Copy link
Author

Oh, I love this! That's incredible. I'll start looking into using TestRealStore to getting working tests. This is an impressive way to approach this project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants