diff --git a/arkindex/ponos/api.py b/arkindex/ponos/api.py index 0c123b10825fa28396d35168c5404dbb3a5aebb0..9334dc0e822b2bdffcce4f75cc8d985e5615a00a 100644 --- a/arkindex/ponos/api.py +++ b/arkindex/ponos/api.py @@ -251,6 +251,7 @@ class TaskRestart(ProcessACLMixin, CreateAPIView): copy.save() # Copy the original task + copy.original_task_id = copy.id copy.id = uuid.uuid4() copy.slug = basename copy.state = State.Pending diff --git a/arkindex/ponos/migrations/0008_task_original_task.py b/arkindex/ponos/migrations/0008_task_original_task.py new file mode 100644 index 0000000000000000000000000000000000000000..36e072befc6b65990efdaa08baa133a6d09d3aa9 --- /dev/null +++ b/arkindex/ponos/migrations/0008_task_original_task.py @@ -0,0 +1,19 @@ +# Generated by Django 4.1.7 on 2024-04-23 12:19 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("ponos", "0007_remove_task_has_docker_socket"), + ] + + operations = [ + migrations.AddField( + model_name="task", + name="original_task", + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="restarts", to="ponos.task"), + ), + ] diff --git a/arkindex/ponos/models.py b/arkindex/ponos/models.py index 2eaaee05e7e0f7ad6467795492b1a23b3ba2ae1f..bfc1864aaabc5b8a49d8b598b6a68ab4a66d958c 100644 --- a/arkindex/ponos/models.py +++ b/arkindex/ponos/models.py @@ -313,13 +313,20 @@ class Task(models.Model): related_name="children", symmetrical=False, ) - container = models.CharField( max_length=64, null=True, blank=True, ) + original_task = models.ForeignKey( + "self", + on_delete=models.SET_NULL, + null=True, + blank=True, + related_name="restarts" + ) + created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) expiry = models.DateTimeField(default=expiry_default) diff --git a/arkindex/ponos/serializers.py b/arkindex/ponos/serializers.py index 932cc7c0c9586702826cabe665afc0adba0c47f9..392e993f4332c4d405d6b40fa951ec1fdbf3a60f 100644 --- a/arkindex/ponos/serializers.py +++ b/arkindex/ponos/serializers.py @@ -89,6 +89,7 @@ class TaskSerializer(TaskLightSerializer): "agent", "gpu", "extra_files", + "original_task_id" ) read_only_fields = TaskLightSerializer.Meta.read_only_fields + ( "logs", @@ -96,6 +97,7 @@ class TaskSerializer(TaskLightSerializer): "agent", "gpu", "extra_files", + "original_task_id" ) @extend_schema_field(serializers.CharField())