def list(self, request): """List all dns zones belonging to a region""" serializer = DnsFilterSerializer(data=request.query_params) serializer.is_valid(raise_exception=True) api_session = get_api_session(request) designate = designate_client(api_session, region_name=serializer.validated_data.pop( 'region_name', None)) search_params, page_limit, custom_filtering_params = get_filter_params( request) criterion = {**search_params, **serializer.validated_data} try: zones = designate.zones.list(criterion=criterion, limit=page_limit) except (designate_exceptions.NotFound, designate_exceptions.ResourceNotFound) as e: LOG.error(e) raise NotFound(detail=_('No zones found')) except (designate_exceptions.Base, ClientException) as e: LOG.error('Unable to list zones, reason {0}'.format(e)) raise ValidationError(detail=_( 'Unable to list zones. Please contact support for more info')) else: rsp = { 'objects': DnsSerializer(instance=zones, many=True).data, 'permissions': permissions_cache.get_view_permissions(request.user, self.basename), 'hasMore': zones.next_page } return Response(rsp)
def list(self, request, *args, **kwargs): response = super().list(request=request, *args, **kwargs) response.data['permissions'] = permissions_cache.get_view_permissions( request.user, self.basename) # TODO(manu): remove region choices once filtering in frontend is based on records search region_name, region_options = self.get_regions(request) region_filtering_options = [] for region in region_options: region_filtering_options.append({ 'display': region['id'], 'value': region['id'], }) filter_options = { 'region': region_filtering_options, 'status': statuses_dict_to_statuses_choices( InstanceStatus.status_map.items()), 'task_state': statuses_dict_to_statuses_choices( InstanceTask.task_state_filtering_opts_map.items()) } response.data['filter_options'] = filter_options return response
def permissions(self, request): view_permissions = permissions_cache.get_view_permissions( request.user, self.basename) return Response(data=view_permissions)
def list(self, request, *args, **kwargs): response = super().list(request=request, *args, **kwargs) response.data['permissions'] = permissions_cache.get_view_permissions( request.user, self.basename) return response