pulpcore.plugin.serializers

All serializers documented here should be imported directly from the pulpcore.plugin.serializers namespace.

class pulpcore.plugin.serializers.ArtifactSerializer(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

validate(data)

Validate file by size and by all checksums provided.

Parameters

data (django.http.QueryDict) – QueryDict mapping Artifact model fields to their values

Raises

rest_framework.exceptions.ValidationError – When the expected file size or any of the checksums don’t match their actual values.

class pulpcore.plugin.serializers.AsyncOperationResponseSerializer(*args, **kwargs)

Serializer for asynchronous operations.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.BaseDistributionSerializer(*args, **kwargs)

The Serializer for the BaseDistribution model.

The serializer deliberately omits the “remote” field, which is used for pull-through caching only. Plugins implementing pull-through caching will have to add the field in their derived serializer class like this:

remote = DetailRelatedField(
    required=False,
    help_text=_('Remote that can be used to fetch content when using pull-through caching.'),
    queryset=models.Remote.objects.all(),
    allow_null=True
)

Initialize a BaseDistributionSerializer and emit deprecation warnings

class pulpcore.plugin.serializers.ContentChecksumSerializer(*args, **kwargs)

Provide a serializer with artifact checksum fields for single artifact content.

If you use this serializer, it’s recommended that you prefetch artifacts:

Content.objects.prefetch_related(“_artifacts”).all()

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.ContentGuardSerializer(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.DetailRelatedField(*args, **kwargs)

RelatedField for use when relating to Master/Detail models

When using this field on a Serializer, relate it to the Master model in a Master/Detail relationship, and it will automatically cast objects to their Detail type before generating URLs for them.

Subclasses must indicate the Master model they represent by declaring a queryset in their class body, usually <MasterModelImplementation>.objects.all().

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

get_object(*args, **kwargs)

Return the object corresponding to a matched URL.

Takes the matched URL conf arguments, and should return an object instance, or raise an ObjectDoesNotExist exception.

use_pk_only_optimization()

If the lookup field is pk, DRF substitutes a PKOnlyObject as an optimization. This optimization breaks with Detail fields like this one which need access to their Meta class to get the relevant view_name.

class pulpcore.plugin.serializers.DistributionSerializer(*args, **kwargs)

The Serializer for the Distribution model.

The serializer deliberately omits the the publication and repository_version field due to plugins typically requiring one or the other but not both.

To include the publication field, it is recommended plugins define the field:

publication = DetailRelatedField(
    required=False,
    help_text=_("Publication to be served"),
    view_name_pattern=r"publications(-.*/.*)?-detail",
    queryset=models.Publication.objects.exclude(complete=False),
    allow_null=True,
)

To include the repository_version field, it is recommended plugins define the field:

repository_version = RepositoryVersionRelatedField(
    required=False, help_text=_("RepositoryVersion to be served"), allow_null=True
)

Additionally, the serializer omits the remote field, which is used for pull-through caching feature and only by plugins which use publications. Plugins implementing a pull-through caching should define the field in their derived serializer class like this:

remote = DetailRelatedField(
    required=False,
    help_text=_('Remote that can be used to fetch content when using pull-through caching.'),
    queryset=models.Remote.objects.all(),
    allow_null=True
)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.ExportSerializer(*args, **kwargs)

Base serializer for Exports.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.ExporterSerializer(*args, **kwargs)

Base serializer for Exporters.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

static validate_path(value, check_is_dir=False)

Check if path is in ALLOWED_EXPORT_PATHS.

Parameters
  • value – The user-provided value path to be validated.

  • check_is_dir – If true, insure path ends with a directory

Raises

ValidationError – When path is not in the ALLOWED_EXPORT_PATHS setting.

Returns

The validated value.

class pulpcore.plugin.serializers.FilesystemExporterSerializer(*args, **kwargs)

Base serializer for FilesystemExporters.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.IdentityField(*args, **kwargs)

IdentityField for use in the pulp_href field of non-Master/Detail Serializers.

The get_url method is overriden so relative URLs are returned.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

get_url(obj, view_name, request, *args, **kwargs)

Given an object, return the URL that hyperlinks to the object.

May raise a NoReverseMatch if the view_name and lookup_field attributes are not configured to correctly match the URL conf.

class pulpcore.plugin.serializers.ImportSerializer(*args, **kwargs)

Serializer for Imports.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.ImporterSerializer(*args, **kwargs)

Base serializer for Importers.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.LabelsField(*args, **kwargs)

Serializer field for pulp_labels.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

to_internal_value(data)

Ensures that data conforms to key/value dict.

Parameters

data (dict) – A dictionary that maps label key to label value

Returns

A validated data dict for labels mapping keys to values

Raises

rest_framework.serializers.ValidationError – if data is invalid (eg not a dict)

to_representation(labels)

Serializes list of labels to a dict.

Parameters

labels (list of pulpcore.app.models.Label) – A list of labels to serialize

Returns

A dict that maps label keys to label values

class pulpcore.plugin.serializers.ModelSerializer(*args, **kwargs)

Base serializer for use with pulpcore.app.models.Model

This ensures that all Serializers provide values for the ‘pulp_href` field.

The class provides a default for the ref_name attribute in the ModelSerializers’s Meta class. This ensures that the OpenAPI definitions of plugins are namespaced properly.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

create(validated_data)

Created the resource from validated_data.

Parameters

validated_data (dict) – Validated data to create instance

Returns

The created of resource

Return type

instance

update(instance, validated_data)

Update the resource from validated_data.

Parameters

validated_data (dict) – Validated data to update instance

Returns

The updated instance of resource

Return type

instance

class pulpcore.plugin.serializers.MultipleArtifactContentSerializer(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

create(validated_data)

Create the content and associate it with all its Artifacts.

Parameters

validated_data (dict) – Data to save to the database

class pulpcore.plugin.serializers.NestedRelatedField(*args, **kwargs)

NestedRelatedField for use when relating to nested resources.

When using this field in a serializer, it serializes the related resource as a relative URL.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

get_url(obj, view_name, request, *args, **kwargs)

Given an object, return the URL that hyperlinks to the object.

May raise a NoReverseMatch if the view_name and lookup_field attributes are not configured to correctly match the URL conf.

class pulpcore.plugin.serializers.NoArtifactContentSerializer(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.NoArtifactContentUploadSerializer(*args, **kwargs)

A serializer for content types with no Artifact.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

create(validated_data)

Create a new content and remove the already parsed file from validated_data.

class pulpcore.plugin.serializers.ProgressReportSerializer(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.PublicationDistributionSerializer(*args, **kwargs)

Initialize a PublicationDistributionSerializer and emit deprecation warnings

class pulpcore.plugin.serializers.PublicationExportSerializer(*args, **kwargs)

Serializer for exporting publications.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.PublicationSerializer(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.RelatedField(*args, **kwargs)

RelatedField when relating to non-Master/Detail models

When using this field on a serializer, it will serialize the related resource as a relative URL.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

get_url(obj, view_name, request, *args, **kwargs)

Given an object, return the URL that hyperlinks to the object.

May raise a NoReverseMatch if the view_name and lookup_field attributes are not configured to correctly match the URL conf.

class pulpcore.plugin.serializers.RemoteSerializer(*args, **kwargs)

Every remote defined by a plugin should have a Remote serializer that inherits from this class. Please import from pulpcore.plugin.serializers rather than from this module directly.

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

validate(data)

Check, that proxy credentials are only provided completely and if a proxy is configured.

validate_proxy_url(value)

Check, that the proxy_url does not contain credentials.

validate_url(value)

Check if the ‘url’ is a file:// path, and if so, ensure it’s an ALLOWED_IMPORT_PATH.

The ALLOWED_IMPORT_PATH is specified as a Pulp setting.

Parameters

value – The user-provided value for ‘url’ to be validated.

Raises

ValidationError – When the url starts with file://, but is not a subfolder of a path in the ALLOWED_IMPORT_PATH setting.

Returns

The validated value.

class pulpcore.plugin.serializers.RepositorySerializer(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.RepositorySyncURLSerializer(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

class pulpcore.plugin.serializers.RepositoryVersionDistributionSerializer(*args, **kwargs)

Initialize a RepositoryVersionDistributionSerializer and emit deprecation warnings

class pulpcore.plugin.serializers.RepositoryVersionRelatedField(*args, **kwargs)

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

get_object(view_name, view_args, view_kwargs)

Return the object corresponding to a matched URL.

Takes the matched URL conf arguments, and should return an object instance, or raise an ObjectDoesNotExist exception.

class pulpcore.plugin.serializers.SingleArtifactContentSerializer(*args, **kwargs)

Initializer for SingleArtifactContentSerializer

create(validated_data)

Create the content and associate it with its Artifact.

Parameters

validated_data (dict) – Data to save to the database

class pulpcore.plugin.serializers.SingleArtifactContentUploadSerializer(*args, **kwargs)

A serializer for content_types with a single Artifact.

The Artifact can either be specified via it’s url, or a new file can be uploaded. Additionally a repository can be specified, to which the content unit will be added.

When using this serializer, the creation of the real content must be wrapped in a task that locks the Artifact and when specified, the repository.

Initializer for SingleArtifactContentUploadSerializer.

deferred_validate(data)

Validate the content unit by deeply analyzing the specified Artifact.

This is only called when validating without a request context to prevent stalling an ongoing http request. It should be overwritten by plugins to extract metadata from the actual content in much the same way as validate.

validate(data)

Validate that we have an Artifact or can create one.

class pulpcore.plugin.serializers.SingleContentArtifactField(*args, **kwargs)

A serializer field for the ‘_artifacts’ ManyToManyField on the Content model (single-artifact).

When a field is instantiated, we store the arguments that were used, so that we can present a helpful representation of the object.

get_attribute(instance)

Returns the field from the instance that should be serialized using this serializer field.

This serializer looks up the list of artifacts and returns only one, if any exist. If more than one exist, it throws and exception because this serializer is being used in an improper context.

Parameters

instance (pulpcore.app.models.Content) – An instance of Content being serialized.

Returns

A single Artifact model related to the instance of Content.

class pulpcore.plugin.serializers.ValidateFieldsMixin

A mixin for validating unknown serializers’ fields.

pulpcore.plugin.serializers.validate_unknown_fields(initial_data, defined_fields)

This will raise a ValidationError if a serializer is passed fields that are unknown. The csrfmiddlewaretoken field is silently ignored.