Feature #6667
closed[SDKs] Support HTTP proxy configuration using env vars
Description
In some setups, client cannot make HTTP requests directly to Arvados, but can connect through a (non-transparent) HTTP proxy. One of the benefits of following HTTP specs (which we go out of our way to do) is that we can work well through proxies!
Many command line tools obey the "http_proxy" environment variable. This would be a good start.
Python API requests¶
The arvados client code in the Python SDK (and therefore arv-copy, arv-put, etc) uses the googleapiclient package, which uses httplib2. We should be able to enable use of conventional environment variables like this
apiclient_discovery.build(..., http=httplib2.Http(proxy_info=httplib2.proxy_info_from_environment()))
Python Keep requests¶
This code uses pycurl. TODO: investigate what, if anything, is needed here.
arv-copy¶
It would be ideal if arv-copy could use different source/destination proxy configs. Keeping this in mind, the SDK api()
method should allow the caller to override the http and/or proxy_info arguments above.
Ruby SDK¶
TODO: investigate what, if anything, is needed here.