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

        params = {
            'offset': self.paginator.offset,
            'limit': self.paginator.limit,
        }
        for key, value in self.request.query_params.lists():
            if key == 'keywords':
                key = 'q'
            if isinstance(value, list):
                params[key] = ','.join(value)
            else:
                params[key] = value

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

        response = api.list(
            is_highest=True,
            exclude_fields='docs_blob',
            **params
        )

        namespaces = set(collection['namespace'] for collection in response.results)
        namespaces = self._query_namespaces(namespaces)

        data = serializers.CollectionListSerializer(
            response.results, many=True,
            context={'namespaces': namespaces}
        ).data
        return self.paginator.paginate_proxy_response(data, response.count)
Example #2
0
    def retrieve(self, request, *args, **kwargs):
        namespace, name = self.kwargs['collection'].split('/')
        namespace_obj = get_object_or_404(models.Namespace, name=namespace)

        params_dict = self.request.query_params.dict()

        version = params_dict.get('version', '')

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

        params = {
            'namespace': namespace,
            'name': name,
        }

        if version == '':
            params['is_highest'] = True
            params[
                'certification'] = constants.CertificationStatus.CERTIFIED.value
        else:
            params['version'] = version

        response = api.list(**params)

        if not response.results:
            raise NotFound()

        all_versions = api.list(
            namespace=namespace,
            name=name,
            fields='version,id,pulp_created,artifact',
            certification=constants.CertificationStatus.CERTIFIED.value)

        all_versions = [{
            'version': collection['version'],
            'id': collection['id'],
            'created': collection['pulp_created']
        } for collection in all_versions.results]

        collection = response.results[0]

        data = serializers.CollectionDetailSerializer(collection,
                                                      context={
                                                          'namespace':
                                                          namespace_obj,
                                                          'all_versions':
                                                          all_versions
                                                      }).data

        return Response(data)
Example #3
0
    def retrieve(self, request, *args, **kwargs):
        namespace, name, version = self.kwargs['version'].split('/')

        api = galaxy_pulp.PulpCollectionsApi(pulp.get_client())
        response = api.list(namespace=namespace,
                            name=name,
                            version=version,
                            limit=1)

        if not response.results:
            raise NotFound()

        data = serializers.CollectionVersionDetailSerializer(
            response.results[0]).data
        return Response(data)
Example #4
0
    def retrieve(self, request, *args, **kwargs):
        namespace, name = self.kwargs['collection'].split('/')
        namespace_obj = get_object_or_404(models.Namespace, name=namespace)

        params_dict = self.request.query_params.dict()

        version = params_dict.get('version', '')

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

        response = api.list(namespace=namespace, name=name)

        if not response.results:
            raise NotFound()

        all_versions = [{
            'version': collection['version'],
            'id': collection['id'],
            'created': collection['_created']
        } for collection in response.results]

        if version != '':
            matching_collections = [
                collection for collection in response.results
                if collection['version'] == version
            ]
        else:
            matching_collections = response.results

        if not matching_collections:
            raise NotFound()

        highest_matching_collection = matching_collections[-1]

        data = serializers.CollectionDetailSerializer(
            highest_matching_collection,
            context={
                'namespace': namespace_obj,
                'all_versions': all_versions
            }).data

        return Response(data)
Example #5
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,
        })

        # pulp uses ordering, but the UI is standardized around sort
        if params.get('sort'):
            params['ordering'] = params.get('sort')
            del params['sort']

        api = galaxy_pulp.PulpCollectionsApi(pulp.get_client())
        response = api.list(exclude_fields='docs_blob', **params)

        data = serializers.CollectionVersionSerializer(response.results,
                                                       many=True).data
        return self.paginator.paginate_proxy_response(data, response.count)
Example #6
0
    def list(self, request, *args, **kwargs):
        namespace, name = self.kwargs['collection'].split('/')

        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.PulpCollectionsApi(pulp.get_client())
        response = api.list(namespace=namespace, name=name, **params)

        if response.count == 0:
            raise NotFound()

        data = serializers.CollectionVersionBaseSerializer(response.results,
                                                           many=True).data
        return self.paginator.paginate_proxy_response(data, response.count)