Story #7473

Updated by Tom Clegg over 5 years ago

We have a report that when an API server is configured with default_collection_replication: 1, and knows about one Keep service, any attempt to write to the FUSE mount returns I/O errors. This seems to be happening because the FUSE server does not respect this option in the API server, and tries to replicate everything twice.

h3. Implementation

Add tests to the Python SDK to ensure the defaultCollectionReplication given in the discovery document is used as the default if a client does not specify a number of copies. If those tests fail, make them pass. (Currently, arv-put (in commands/ uses the discovery doc to get the default. But the KeepClient class in the SDK should do this by itself: i.e., if put() is called with copies=None or no copies arg at all then use
<code class="python">api_client._rootDesc.get('defaultCollectionReplication', 2)</code>)

Add tests to ensure
that FUSE behaves correctly when the API server's default replication level is 1 (lower than the "default default" 2), and when it's 3 (higher than 2).

If those tests fail, make them pass.