* Switch reading from S3 to io.Copy from io.ReadFull
If the Content-Length header wasn't being sent back, the current
behavior could panic. It's unclear when it will not be sent; it appears
to be CORS dependent. But this works around it by not trying to
preallocate a buffer of a specific size and instead just read until EOF.
In addition I noticed that Close wasn't being called.
https://docs.aws.amazon.com/sdk-for-go/api/service/s3/#GetObjectOutput
specifies that Body is an io.ReadCloser so I added a call to Close.
Fixes#4222
* Add some extra efficiency
Allow the storage backend for MySQL to use a custom connection lifetime and max idle connection value if the parameter is specified in the config file of vault otherwise do not set in order to leave at default value.
Some commands didn't setup a local test server since they didn't need
it. Other commands didn't setup a local test server because Seth forgot.
Long story short, I kept seeing weird requests to my Vault server when I
ran tests, and that should never happen. This ensures all test requests
will go to a test Vault instance.
Benchmarks show this adds 0.4s to the command test suite.
* Handle removal of parent index on revoke-orphan and tidy operations
* Refactor handleTidy to use same for loop children deletion of invalid parent entry
* Update comments
* Add logic for revoke-orphan and tidy to turn no-parent tokens into orphans
* Add orphan check to test
* Update test comments
* Fix TestTokenStore_Revoke_Orphan test
* Address feedback, add explicit delete when parent prefix is empty
* Revert explicit delete, add comment on why it's not done
* Update comment to indicate ok on marking token as orphan
* Fix test
We ran into some confusion about what we should be setting the api_addr config value to. I feel this general recommendation should nudge any others into a better understanding of what this value should point to.