Skip to content

Commit

Permalink
Add the field sha256 to serializers and implement filters for this field
Browse files Browse the repository at this point in the history
  • Loading branch information
lubosmj committed Feb 28, 2020
1 parent 50b410a commit b42c41a
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 12 deletions.
1 change: 1 addition & 0 deletions CHANGES/6187.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added the field 'sha256' to the public API and enabled users to filter content by this field
2 changes: 1 addition & 1 deletion docs/_static/api.json

Large diffs are not rendered by default.

23 changes: 12 additions & 11 deletions pulp_rpm/app/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
)
from pulpcore.plugin.serializers import (
ArtifactSerializer,
ContentChecksumSerializer,
DetailRelatedField,
ModelSerializer,
MultipleArtifactContentSerializer,
Expand Down Expand Up @@ -69,7 +70,7 @@
from pulp_rpm.app.shared_utils import _prepare_package


class PackageSerializer(SingleArtifactContentUploadSerializer):
class PackageSerializer(SingleArtifactContentUploadSerializer, ContentChecksumSerializer):
"""
A Serializer for Package.
Expand Down Expand Up @@ -273,8 +274,8 @@ class Meta:
'name', 'epoch', 'version', 'release', 'arch', 'pkgId', 'checksum_type',
'summary', 'description', 'url', 'changelogs', 'files',
'requires', 'provides', 'conflicts', 'obsoletes',
'suggests', 'enhances', 'recommends', 'supplements',
'location_base', 'location_href',
'suggests', 'enhances', 'recommends', 'sha256',
'supplements', 'location_base', 'location_href',
'rpm_buildhost', 'rpm_group', 'rpm_license',
'rpm_packager', 'rpm_sourcerpm', 'rpm_vendor',
'rpm_header_start', 'rpm_header_end', 'is_modular',
Expand Down Expand Up @@ -350,7 +351,7 @@ class Meta:
model = UpdateCollection


class UpdateRecordSerializer(SingleArtifactContentUploadSerializer):
class UpdateRecordSerializer(SingleArtifactContentUploadSerializer, ContentChecksumSerializer):
"""
A Serializer for UpdateRecord.
"""
Expand Down Expand Up @@ -546,7 +547,7 @@ class Meta:
fields = SingleArtifactContentUploadSerializer.Meta.fields + (
'id', 'updated_date', 'description', 'issued_date',
'fromstr', 'status', 'title', 'summary', 'version',
'type', 'severity', 'solution', 'release', 'rights',
'type', 'sha256', 'severity', 'solution', 'release', 'rights',
'pushcount', 'pkglist', 'references', 'reboot_suggested'
)
model = UpdateRecord
Expand Down Expand Up @@ -885,7 +886,7 @@ class Meta:
model = PackageLangpacks


class ModulemdSerializer(SingleArtifactContentUploadSerializer):
class ModulemdSerializer(SingleArtifactContentUploadSerializer, ContentChecksumSerializer):
"""
Modulemd serializer.
"""
Expand Down Expand Up @@ -927,12 +928,12 @@ class ModulemdSerializer(SingleArtifactContentUploadSerializer):
class Meta:
fields = SingleArtifactContentUploadSerializer.Meta.fields + (
'name', 'stream', 'version', 'context', 'arch',
'artifacts', 'dependencies', 'packages'
'artifacts', 'dependencies', 'packages', 'sha256'
)
model = Modulemd


class ModulemdDefaultsSerializer(SingleArtifactContentUploadSerializer):
class ModulemdDefaultsSerializer(SingleArtifactContentUploadSerializer, ContentChecksumSerializer):
"""
ModulemdDefaults serializer.
"""
Expand All @@ -949,7 +950,7 @@ class ModulemdDefaultsSerializer(SingleArtifactContentUploadSerializer):

class Meta:
fields = SingleArtifactContentUploadSerializer.Meta.fields + (
'module', 'stream', 'profiles'
'module', 'stream', 'profiles', 'sha256'
)
model = ModulemdDefaults

Expand Down Expand Up @@ -1105,7 +1106,7 @@ class Meta:
)


class RepoMetadataFileSerializer(SingleArtifactContentUploadSerializer):
class RepoMetadataFileSerializer(SingleArtifactContentUploadSerializer, ContentChecksumSerializer):
"""
RepoMetadataFile serializer.
"""
Expand All @@ -1122,6 +1123,6 @@ class RepoMetadataFileSerializer(SingleArtifactContentUploadSerializer):

class Meta:
fields = SingleArtifactContentUploadSerializer.Meta.fields + (
'data_type', 'checksum_type', 'checksum'
'data_type', 'checksum_type', 'checksum', 'sha256'
)
model = RepoMetadataFile
13 changes: 13 additions & 0 deletions pulp_rpm/app/viewsets.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from django_filters import CharFilter
from drf_yasg.utils import swagger_auto_schema
from rest_framework import viewsets, mixins
from rest_framework.decorators import action
Expand Down Expand Up @@ -62,6 +63,8 @@ class PackageFilter(ContentFilter):
FilterSet for Package.
"""

sha256 = CharFilter(field_name="_artifacts__sha256")

class Meta:
model = Package
fields = {
Expand All @@ -72,6 +75,7 @@ class Meta:
'arch': ['exact', 'in', 'ne'],
'pkgId': ['exact', 'in'],
'checksum_type': ['exact', 'in', 'ne'],
'sha256': ['exact'],
}


Expand Down Expand Up @@ -158,13 +162,16 @@ class UpdateRecordFilter(ContentFilter):
FilterSet for UpdateRecord.
"""

sha256 = CharFilter(field_name="_artifacts__sha256")

class Meta:
model = UpdateRecord
fields = {
'id': ['exact', 'in'],
'status': ['exact', 'in', 'ne'],
'severity': ['exact', 'in', 'ne'],
'type': ['exact', 'in', 'ne'],
'sha256': ['exact'],
}


Expand Down Expand Up @@ -336,11 +343,14 @@ class ModulemdFilter(ContentFilter):
FilterSet for Modulemd.
"""

sha256 = CharFilter(field_name="_artifacts__sha256")

class Meta:
model = Modulemd
fields = {
'name': ['exact', 'in'],
'stream': ['exact', 'in'],
'sha256': ['exact'],
}


Expand All @@ -360,11 +370,14 @@ class ModulemdDefaultsFilter(ContentFilter):
FilterSet for ModulemdDefaults.
"""

sha256 = CharFilter(field_name="_artifacts__sha256")

class Meta:
model = ModulemdDefaults
fields = {
'module': ['exact', 'in'],
'stream': ['exact', 'in'],
'sha256': ['exact'],
}


Expand Down

0 comments on commit b42c41a

Please sign in to comment.