def _raise_contrail_error(info, obj_name):
    exc_name = info.get('exception')

    if exc_name:
        LOG.exception(str(exc_name) + str(info) + str(obj_name))
        if str(exc_name) == 'OverQuota':
            info['exception'] = str(info['exception'])
            if 'msg' in info:
                info['msg'] = str(info['msg'])
            if 'overs' in info:
                info['overs'] = [str(info['overs'][0])]
        if exc_name == 'BadRequest' and 'resource' not in info:
            info['resource'] = obj_name
        if exc_name == 'VirtualRouterNotFound':
            raise HttpResponseError(info)
        if exc_name == 'NotAuthorized':
            raise NotAuthorized(**info)
        if hasattr(neutron_exc, exc_name):
            raise getattr(neutron_exc, exc_name)(**info)
        if hasattr(l3, exc_name):
            raise getattr(l3, exc_name)(**info)
        if hasattr(securitygroup, exc_name):
            raise getattr(securitygroup, exc_name)(**info)
        if hasattr(allowedaddresspairs, exc_name):
            raise getattr(allowedaddresspairs, exc_name)(**info)
        if neutron_lib_exc and hasattr(neutron_lib_exc, exc_name):
            raise getattr(neutron_lib_exc, exc_name)(**info)
        if neutron_lib_l3_exc and hasattr(neutron_lib_l3_exc, exc_name):
            raise getattr(neutron_lib_l3_exc, exc_name)(**info)
    raise NeutronException(**info)
def _raise_contrail_error(info, obj_name):
    exc_name = info.get('exception')
    if exc_name:
        if exc_name == 'BadRequest' and 'resource' not in info:
            info['resource'] = obj_name
        if exc_name == 'VirtualRouterNotFound':
            raise HttpResponseError(info)
        if hasattr(neutron_exc, exc_name):
            raise getattr(neutron_exc, exc_name)(**info)
        if hasattr(l3, exc_name):
            raise getattr(l3, exc_name)(**info)
        if hasattr(securitygroup, exc_name):
            raise getattr(securitygroup, exc_name)(**info)
        if hasattr(allowedaddresspairs, exc_name):
            raise getattr(allowedaddresspairs, exc_name)(**info)
        if neutron_lib_exc and hasattr(neutron_lib_exc, exc_name):
            raise getattr(neutron_lib_exc, exc_name)(**info)
    raise NeutronException(**info)
def _raise_contrail_error(info, obj_name):
    exc_name = info.get('exception', 'No exception name provided')

    if exc_name == 'VirtualRouterNotFound':
        raise HttpResponseError(info)
    elif exc_name == 'NotAuthorized':
        raise NotAuthorized(**info)
    elif str(exc_name) == 'OverQuota':
        info['exception'] = str(info['exception'])
        if 'msg' in info:
            info['msg'] = str(info['msg'])
        if 'overs' in info:
            info['overs'] = [str(info['overs'][0])]
    elif exc_name == 'BadRequest' and 'resource' not in info:
        info['resource'] = obj_name

    if hasattr(neutron_exc, exc_name):
        raise getattr(neutron_exc, exc_name)(**info)
    elif hasattr(l3, exc_name):
        raise getattr(l3, exc_name)(**info)
    elif hasattr(securitygroup, exc_name):
        raise getattr(securitygroup, exc_name)(**info)
    elif hasattr(allowedaddresspairs, exc_name):
        raise getattr(allowedaddresspairs, exc_name)(**info)
    elif hasattr(port_security_extn, exc_name):
        raise getattr(port_security_extn, exc_name)(**info)
    elif neutron_lib_exc and hasattr(neutron_lib_exc, exc_name):
        raise getattr(neutron_lib_exc, exc_name)(**info)
    elif neutron_lib_l3_exc and hasattr(neutron_lib_l3_exc, exc_name):
        raise getattr(neutron_lib_l3_exc, exc_name)(**info)
    elif firewall_v2_exc and hasattr(firewall_v2_exc, exc_name):
        raise getattr(firewall_v2_exc, exc_name)(**info)
    elif neutron_trunk_exc and hasattr(neutron_trunk_exc, exc_name):
        raise getattr(neutron_trunk_exc, exc_name)(**info)
    else:
        try:
            raise NeutronException(**info)
        except Exception:
            LOG.exception(
                "Contrail raised unknown exception '%s' with args: "
                "%s", exc_name, info)