Bug #4488

[SDKs] arvados.keep.KeepClient.KeepService should know whether it is a proxy

Added by Tim Pierce almost 4 years ago. Updated over 1 year ago.

Assigned To:
Target version:
Start date:
Due date:
% Done:


Estimated time:
Story points:


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.

A better solution would be:
  • Extend KeepService to include service_type
  • When setting up service roots, the KeepClient instantiates full KeepService objects with appropriate timeout and proxy settings
  • KeepService.get and KeepService.put know which timeout settings to use and whether to include replication headers in a request

Related issues

Related to Arvados - Bug #4529: [SDKs] Ensure Python and Go SDKs in a given situation always choose either proxies or disks, never some of each.Closed


#1 Updated by Tom Clegg almost 4 years ago

In a given scenario the SDK should either connect only to proxies, or only to disks -- so this shouldn't be an issue. (See #4529)

#2 Updated by Tim Pierce almost 4 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.

#3 Updated by Tom Clegg almost 4 years ago

  • Target version deleted (Arvados Future Sprints)

#4 Updated by Tom Clegg over 1 year ago

  • Status changed from New to Closed

Also available in: Atom PDF