Example #1
0
def horizon(request):
    """ The main Horizon context processor. Required for Horizon to function.

    Adds three variables to the request context:

    ``authorized_tenants``
        A list of tenant objects which the current user has access to.

    ``object_store_configured``
        Boolean. Will be ``True`` if there is a service of type
        ``object-store`` in the user's ``ServiceCatalog``.

    ``network_configured``
        Boolean. Will be ``True`` if ``settings.QUANTUM_ENABLED`` is ``True``.

    Additionally, it sets the names ``True`` and ``False`` in the context
    to their boolean equivalents for convenience.

    .. warning::

        Don't put API calls in context processors; they will be called once
        for each template/template fragment which takes context that is used
        to render the complete output.
    """
    context = {"True": True, "False": False}

    # Auth/Keystone context
    context.setdefault('authorized_tenants', [])
    if request.user.is_authenticated():
        context['authorized_tenants'] = request.user.authorized_tenants

    # Object Store/Swift context
    catalog = getattr(request.user, 'service_catalog', [])
    object_store = catalog and api.get_service_from_catalog(
        catalog, 'object-store')
    context['object_store_configured'] = object_store

    # Quantum context
    # TODO(gabriel): Convert to service catalog check when Quantum starts
    #                supporting keystone integration.
    context['network_configured'] = getattr(settings, 'QUANTUM_ENABLED', None)

    # Region context/support
    available_regions = getattr(settings, 'AVAILABLE_REGIONS', None)
    regions = {
        'support': available_regions > 1,
        'endpoint': request.session.get('region_endpoint'),
        'name': request.session.get('region_name')
    }
    context['region'] = regions

    return context
def horizon(request):
    """ The main Horizon context processor. Required for Horizon to function.

    Adds three variables to the request context:

    ``authorized_tenants``
        A list of tenant objects which the current user has access to.

    ``object_store_configured``
        Boolean. Will be ``True`` if there is a service of type
        ``object-store`` in the user's ``ServiceCatalog``.

    ``network_configured``
        Boolean. Will be ``True`` if ``settings.QUANTUM_ENABLED`` is ``True``.

    Additionally, it sets the names ``True`` and ``False`` in the context
    to their boolean equivalents for convenience.

    .. warning::

        Don't put API calls in context processors; they will be called once
        for each template/template fragment which takes context that is used
        to render the complete output.
    """
    context = {"True": True,
               "False": False}

    # Auth/Keystone context
    context.setdefault('authorized_tenants', [])
    if request.user.is_authenticated():
        context['authorized_tenants'] = request.user.authorized_tenants

    # Object Store/Swift context
    catalog = getattr(request.user, 'service_catalog', [])
    object_store = catalog and api.get_service_from_catalog(catalog,
                                                            'object-store')
    context['object_store_configured'] = object_store

    # Quantum context
    # TODO(gabriel): Convert to service catalog check when Quantum starts
    #                supporting keystone integration.
    context['network_configured'] = getattr(settings, 'QUANTUM_ENABLED', None)

    # Region context/support
    available_regions = getattr(settings, 'AVAILABLE_REGIONS', None)
    regions = {'support': available_regions > 1,
               'endpoint': request.session.get('region_endpoint'),
               'name': request.session.get('region_name')}
    context['region'] = regions

    return context
Example #3
0
    # Auth/Keystone context
    context.setdefault('authorized_tenants', [])
    if request.user.is_authenticated():
        try:
            tenants = api.tenant_list_for_token(request,
                                                request.user.token,
                                                endpoint_type='internalURL')
            context['authorized_tenants'] = tenants
        except Exception, e:
            if hasattr(request.user, 'message_set'):
                if not hasattr(e, 'message'):
                    e.message = str(e)
                messages.error(request, _("Unable to retrieve tenant list: %s")
                               % e.message)
            else:
                LOG.exception('Could not retrieve tenant list.')

    # Object Store/Swift context
    catalog = getattr(request.user, 'service_catalog', [])
    object_store = catalog and api.get_service_from_catalog(catalog,
                                                            'object-store')
    context['object_store_configured'] = object_store

    # Quantum context
    # TODO(gabriel): Convert to service catalog check when Quantum starts
    #                supporting keystone integration.
    context['network_configured'] = getattr(settings, 'QUANTUM_ENABLED', None)

    return context
Example #4
0
    context = {"True": True, "False": False}

    # Auth/Keystone context
    context.setdefault('authorized_tenants', [])
    if request.user.is_authenticated():
        try:
            tenants = api.tenant_list_for_token(request,
                                                request.user.token,
                                                endpoint_type='internalURL')
            context['authorized_tenants'] = tenants
        except Exception, e:
            if hasattr(request.user, 'message_set'):
                messages.error(
                    request,
                    _("Unable to retrieve tenant list: %s") % e.message)
            else:
                LOG.exception('Could not retrieve tenant list.')

    # Object Store/Swift context
    catalog = getattr(request.user, 'service_catalog', [])
    object_store = catalog and api.get_service_from_catalog(
        catalog, 'object-store')
    context['object_store_configured'] = object_store

    # Quantum context
    # TODO(gabriel): Convert to service catalog check when Quantum starts
    #                supporting keystone integration.
    context['network_configured'] = getattr(settings, 'QUANTUM_ENABLED', None)

    return context