diff --git a/app/pulp/app/models/__init__.py b/app/pulp/app/models/__init__.py index 9e1b1b3436..103a9979dc 100644 --- a/app/pulp/app/models/__init__.py +++ b/app/pulp/app/models/__init__.py @@ -13,4 +13,4 @@ from .task import ReservedResource, Worker, Task, TaskTag, TaskLock # NOQA # Moved here to avoid a circular import with Task -from .progress import ProgressBar, ProgressSpinner # NOQA +from .progress import ProgressBar, ProgressReport, ProgressSpinner # NOQA diff --git a/app/pulp/app/serializers/__init__.py b/app/pulp/app/serializers/__init__.py index 84d4305d21..232ecf86cf 100644 --- a/app/pulp/app/serializers/__init__.py +++ b/app/pulp/app/serializers/__init__.py @@ -9,6 +9,7 @@ NotesKeyValueRelatedField, ScratchpadKeyValueRelatedField) # NOQA from pulp.app.serializers.consumer import ConsumerSerializer # NOQA from pulp.app.serializers.content import ContentSerializer, ArtifactSerializer # NOQA +from pulp.app.serializers.progress import ProgressReportSerializer # NOQA from pulp.app.serializers.repository import (ImporterSerializer, PublisherSerializer, # NOQA RepositoryGroupSerializer, RepositorySerializer) # NOQA from pulp.app.serializers.task import TaskSerializer, WorkerSerializer # NOQA diff --git a/app/pulp/app/serializers/progress.py b/app/pulp/app/serializers/progress.py new file mode 100755 index 0000000000..ab076481a2 --- /dev/null +++ b/app/pulp/app/serializers/progress.py @@ -0,0 +1,44 @@ +from gettext import gettext as _ + +from rest_framework import serializers + +from pulp.app import models +from pulp.app.serializers import ModelSerializer + + +class ProgressReportSerializer(ModelSerializer): + + message = serializers.CharField( + help_text=_("The message shown to the user for the progress report."), + read_only=True + ) + + state = serializers.CharField( + help_text=_("The current state of the progress report. The possible values are:" + " 'waiting', 'skipped', 'running', 'completed', 'failed' and 'canceled'." + " The default is 'waiting'."), + read_only=True + ) + + total = serializers.IntegerField( + help_text=_("The total count of items to be handled by the ProgressBar."), + read_only=True + ) + + done = serializers.IntegerField( + help_text=_("The count of items already processed. Defaults to 0."), + read_only=True + ) + + task = serializers.HyperlinkedRelatedField( + help_text=_("The task associated with this progress report."), + read_only=True, + view_name='tasks-detail' + ) + + class Meta: + model = models.ProgressReport + # this serializer is meant to be nested inside Task serializer, + # so it will not have its own endpoint, that's why + # we need to explicitly define fields to exclude '_href' field. + fields = ('message', 'state', 'total', 'done', 'task')