'Process a volume\'s data that can be read from a file-like object.
This is a blocking API for now.
Only remotely owned volumes (i.e. volumes whose ``uuid`` do not match
this service\'s) can be received.
:param unicode volume_node_id: The volume\'s owner\'s node ID.
:param VolumeName volume_name: The volume\'s name.
:param input_file: A file-like object, typically ``sys.stdin``, from
which to read the data.
:raises ValueError: If the uuid of the volume matches our own;
remote nodes can\'t overwrite locally-owned volumes.'

def receive(self, volume_node_id, volume_name, input_file):

    if (volume_node_id == self.node_id):
        raise ValueError()
    volume = Volume(node_id=volume_node_id, name=volume_name, service=self)
    with volume.get_filesystem().writer() as writer:
        for chunk in iter((lambda : input_file.read((1024 * 1024))), ''):
            writer.write(chunk)
