Project

General

Profile

Actions

Idea #7473

open

[FUSE] [SDKs] Ensure FUSE and other SDK clients work with a default replication level != 2

Added by Brett Smith about 9 years ago. Updated 9 months ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
FUSE
Target version:
Start date:
Due date:
Story points:
-
Release:
Release relationship:
Auto

Description

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.

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/put.py) 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
api_client._rootDesc.get('defaultCollectionReplication', 2))

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.

Actions

Also available in: Atom PDF