示例#1
0
    def list(self, request, *args, **kwargs):
        self.paginator.init_from_request(request)

        params = self.request.query_params.dict()
        params.update({
            'offset':
            self.paginator.offset,
            'limit':
            self.paginator.limit,
            'certification':
            constants.CertificationStatus.CERTIFIED.value
        })

        api = galaxy_pulp.GalaxyCollectionVersionsApi(pulp.get_client())
        response = api.list(
            prefix=settings.X_PULP_API_PREFIX,
            namespace=self.kwargs['namespace'],
            name=self.kwargs['name'],
            **params,
        )

        # Consider an empty list of versions as a 404 on the Collection
        if not response.results:
            raise NotFound()

        self._fix_list_urls(response.results)
        return self.paginator.paginate_proxy_response(response.results,
                                                      response.count)
示例#2
0
 def retrieve(self, request, *args, **kwargs):
     api = galaxy_pulp.GalaxyCollectionVersionsApi(pulp.get_client())
     response = api.get(
         prefix=settings.API_PATH_PREFIX,
         namespace=self.kwargs['namespace'],
         name=self.kwargs['name'],
         version=self.kwargs['version'],
     )
     response['download_url'] = self._transform_pulp_url(request, response['download_url'])
     return Response(response)
示例#3
0
    def list(self, request, *args, **kwargs):
        self.paginator.init_from_request(request)

        params = self.request.query_params.dict()
        params.update({
            'offset': self.paginator.offset,
            'limit': self.paginator.limit,
        })

        api = galaxy_pulp.GalaxyCollectionVersionsApi(pulp.get_client())
        response = api.list(
            prefix=settings.API_PATH_PREFIX,
            namespace=self.kwargs['namespace'],
            name=self.kwargs['name'],
            **params,
        )
        return self.paginator.paginate_proxy_response(response.results,
                                                      response.count)
示例#4
0
    def set_certified(self, request, *args, **kwargs):
        namespace, name, version = self.kwargs['version'].split('/')
        namespace_obj = get_object_or_404(models.Namespace, name=namespace)
        self.check_object_permissions(request, namespace_obj)

        api = galaxy_pulp.GalaxyCollectionVersionsApi(pulp.get_client())
        serializer = serializers.CertificationSerializer(
            data=request.data, context={'request': request})
        serializer.is_valid(raise_exception=True)
        certification = serializer.validated_data.get('certification')

        response = api.set_certified(
            prefix=settings.X_PULP_API_PREFIX,
            namespace=namespace,
            name=name,
            version=version,
            certification_info=galaxy_pulp.CertificationInfo(certification),
        )
        return Response(response)
示例#5
0
    def set_certified(self, request, *args, **kwargs):
        namespace, name = self.kwargs['collection'].split('/')
        version = self.kwargs['version']

        namespace_obj = get_object_or_404(models.Namespace, name=namespace)
        self.check_object_permissions(request, namespace_obj)

        api = galaxy_pulp.GalaxyCollectionVersionsApi(pulp.get_client())

        if self.request.method == "PUT":
            api_method = api.set_certified
        else:
            api_method = api.unset_certified

        response = api_method(
            prefix=settings.API_PATH_PREFIX,
            namespace=namespace,
            name=name,
            version=version,
        )
        return Response(response)