def parse_globus_url(url):
    """Parse a Globus URL string of the format:
        globus://<UUID Endpoint>:<Path>
        globus://ddb59aef-6d04-11e5-ba46-22000b92c6ec:/share/godata/file1.txt

        returns a dict of the format:
        {
            'endpoint': 'ddb59aef-6d04-11e5-ba46-22000b92c6ec'
            'path': '/share/godata/file1.txt'
        }

        Raises ValueError if invalid format
    """
    if 'globus://' not in url:
        raise ValueError('url "{}" did not start with "globus://"'.format(url))
    url_chunks = url.replace('globus://', '').split(':')
    if len(url_chunks) < 2:
        raise ValueError('Unable to find ":" to split path from endpoint for '
                         '{}'.format(url))
    if len(url_chunks[0]) != 36:
        raise ValueError('Malformed Globus endpoint UUID does not'
                         'contain 36 characters: {}'
                         ''.format(url_chunks[0]))
    return url_chunks[0], ':'.join(url_chunks[1:])