This PR adds a new group I/O class, TransportGroupIO suitable for use with a transport group to fix the removal of transport group logic from update.py in the previous PR.
Features of a Transport StorageGroup:
it may have any number of nodes. All node must have node.storage_type == 'T', but no restrictions are put on the I/O class of nodes. Nodes in the group which have a different storage_type are ignored.
all pulls to the StorageGroup must be local: non-local pull requests will be ignored
when handling pull requests, transport nodes are prioritised by increasing free space: the group will attempt to pull a file to the fullest node that it thinks it will fit on.
The name of the group is no longer special (previously, the group had to be named "transport") and more than one independent transport group can be made now, though I don't know how useful that would be.
This PR adds a new group I/O class,
TransportGroupIO
suitable for use with a transport group to fix the removal of transport group logic fromupdate.py
in the previous PR.Features of a Transport StorageGroup:
node.storage_type == 'T'
, but no restrictions are put on the I/O class of nodes. Nodes in the group which have a differentstorage_type
are ignored.The name of the group is no longer special (previously, the group had to be named "transport") and more than one independent transport group can be made now, though I don't know how useful that would be.