fix(storage): consistent endpoint computation #5095
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The interaction of
ClientOptions::set_endpoint()
and theCLOUD_STORAGE_TESTBENCH_ENDPOINT
environment variable was inconsistentacross endpoints. For JSON endpoints
set_endpoint()
overrode theCLOUD_STORAGE_TESTBENCH_ENDPOINT
value, while for XML endpoints it wasthe opposite.
In other libraries the environment variable always wins, so we are
changing the behavior here. This behavior was never documented, and it
was buggy, this is not a breaking change per-se, but should be
highlighted in the CHANGELOG.
I refactored the code to compute the different endpoints to standalone
functions. That makes them easier to test.
I used friend functions in
internal::
over member functions inClientOptions
because we will (some day) remove the XML endpoints andI do not want to make
XmlFoo()
part of the public interface.Fixes #5094 part of the work for #5072
This change is