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
# 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
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