Story #7696

Updated by Brett Smith almost 5 years ago

The KeepClient in the Python SDK will only talk to services that have a known type: either disk, or proxy. It should connect to services of any type. For any type that isn't disk, it should follow the rules that we currently follow when connecting to proxies:

* Only allow one writer thread at a time.
* Use "proxy" timeouts.
* Respect the replication headers in the response.

Test case:
* Create some keep_services with service_type="fancynewblobstore"
* Ensure those keep services are used when reading and writing
* Ensure thread count == 1

Write the above test cases to ensure proper behavior for non-disk, non-proxy services, then make whatever code changes are necessary to make them pass. Right now, we believe this only requires adjusting a few if conditions in the code. Logic to follow the rules has been implemented, but it's being thwarted by earlier code that causes the client code to avoid using the service at all.