Called to create a symlink `target -> source` (e.g. ln -s existing_file linkname). In jottafuse, we upload the _contents_ of source.

        This is a handy shortcut for streaming uploads directly from disk, without reading the file
        into memory first

def symlink(self, linkname, existing_file):
        """Called to create a symlink `target -> source` (e.g. ln -s existing_file linkname). In jottafuse, we upload the _contents_ of source.

        This is a handy shortcut for streaming uploads directly from disk, without reading the file
        into memory first"""
        log.info("***SYMLINK* %s (link) -> %s (existing)", linkname, existing_file)
        sourcepath = os.path.abspath(existing_file)
        if not os.path.exists(sourcepath): # broken symlink
            raise OSError(errno.ENOENT, '')
        try:
            with open(sourcepath) as sourcefile:
                self.client.up(linkname, sourcefile)
                return ESUCCESS
        except Exception as e:
            log.exception(e)

        raise OSError(errno.ENOENT, '')