diff --git a/CHANGES/972.feature b/CHANGES/972.feature new file mode 100644 index 00000000..4cdc5a7f --- /dev/null +++ b/CHANGES/972.feature @@ -0,0 +1 @@ +Updated tasks to always return JSON-serializable value. diff --git a/pulp_python/app/serializers.py b/pulp_python/app/serializers.py index 0f769484..d8387adf 100644 --- a/pulp_python/app/serializers.py +++ b/pulp_python/app/serializers.py @@ -457,6 +457,13 @@ def to_internal_value(self, data): """Converts set to list.""" return list(super().to_internal_value(data)) + def to_representation(self, value): + """Converts set to list for JSON serialization.""" + result = super().to_representation(value) + if isinstance(result, set): + result = list(result) + return result + class PythonRemoteSerializer(core_serializers.RemoteSerializer): """ diff --git a/pulp_python/app/tasks/publish.py b/pulp_python/app/tasks/publish.py index 79bcbfb7..3ab44501 100644 --- a/pulp_python/app/tasks/publish.py +++ b/pulp_python/app/tasks/publish.py @@ -9,6 +9,7 @@ from pulpcore.plugin.util import get_domain from pulp_python.app import models as python_models +from pulp_python.app.serializers import PythonPublicationSerializer from pulp_python.app.utils import write_simple_index, write_simple_detail @@ -36,6 +37,7 @@ def publish(repository_version_pk): write_simple_api(pub) log.info(_("Publication: {pk} created").format(pk=pub.pk)) + pub = PythonPublicationSerializer(instance=pub, context={"request": None}).data return pub