'Fetch the submanifest, parse it, and return it.
Raise exception on failures.'

def _fetch_sub_slo_segments(self, req, version, acc, con, obj):

    sub_req = make_subrequest(req.environ, path='/'.join(['', version, acc, con, obj]), method='GET', headers={'x-auth-token': req.headers.get('x-auth-token')}, agent='%(orig)s    SLO    MultipartGET', swift_source='SLO')
    sub_resp = sub_req.get_response(self.slo.app)
    if (not is_success(sub_resp.status_int)):
        close_if_possible(sub_resp.app_iter)
        raise ListingIterError(('ERROR:    while    fetching    %s,    GET    of    submanifest    %s    failed    with    status    %d' % (req.path, sub_req.path, sub_resp.status_int)))
    try:
        with closing_if_possible(sub_resp.app_iter):
            return json.loads(''.join(sub_resp.app_iter))
    except ValueError as err:
        raise ListingIterError(('ERROR:    while    fetching    %s,    JSON-decoding    of    submanifest    %s    failed    with    %s' % (req.path, sub_req.path, err)))
