[SDKs] arvados.keep.KeepClient.KeepService should know whether it is a proxy
As it currently stands, if a KeepClient finds that any one of its back end is a proxy, it
KeepClient assumes that all of them are. Although this is temporarily a safe assumption, it sets invisible dependencies that may cause the client to behave in subtly wrong ways in a mixed proxy/server environment.
- When setting up service roots, the KeepClient instantiates full
KeepServiceobjects with appropriate timeout and proxy settings
KeepService.putknow which timeout settings to use and whether to include replication headers in a request
#2 Updated by Tim Pierce about 3 years ago
I don't see how that works in the case of a federated environment, where a client may find itself talking to disks in a local Arvados install but proxies for a remote install.
At any rate, this change would still make the underlying code cleaner by allowing a KeepService to encapsulate all of the things it needs to know in order to communicate properly with the back-end, and would make it more robust in the face of a poorly set up environment. It may only be a nice-to-have, but I think it's a really nice to have.