diff --git a/gateway/api/migrations/0014_runtimejob.py b/gateway/api/migrations/0014_runtimejob.py new file mode 100644 index 000000000..0b453775d --- /dev/null +++ b/gateway/api/migrations/0014_runtimejob.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.2 on 2024-01-20 01:44 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ("api", "0013_program_groups_catalogentry"), + ] + + operations = [ + migrations.CreateModel( + name="RuntimeJob", + fields=[ + ( + "runtime_job", + models.CharField(max_length=100, primary_key=True, serialize=False), + ), + ( + "job", + models.ForeignKey( + blank=True, + default=None, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="api.job", + ), + ), + ], + ), + ] diff --git a/gateway/api/models.py b/gateway/api/models.py index a30a7f97d..768d8d1c9 100644 --- a/gateway/api/models.py +++ b/gateway/api/models.py @@ -172,3 +172,18 @@ class CatalogEntry(models.Model): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True, null=True) program = models.ForeignKey(to=Program, on_delete=models.SET_NULL, null=True) + + +class RuntimeJob(models.Model): + """Runtime Job model.""" + + job = models.ForeignKey( + to=Job, + on_delete=models.SET_NULL, + default=None, + null=True, + blank=True, + ) + runtime_job = models.CharField( + primary_key=True, max_length=100, blank=False, null=False + ) diff --git a/gateway/api/serializers.py b/gateway/api/serializers.py index 597425905..657a3a062 100644 --- a/gateway/api/serializers.py +++ b/gateway/api/serializers.py @@ -8,7 +8,7 @@ from django.conf import settings from rest_framework import serializers -from .models import Program, Job, JobConfig +from .models import Program, Job, JobConfig, RuntimeJob class JobConfigSerializer(serializers.ModelSerializer): @@ -78,3 +78,12 @@ def update(self, instance, validated_data): def create(self, validated_data): pass + + +class RuntimeJobSerializer(serializers.ModelSerializer): + """ + Serializer for the runtime job model. + """ + + class Meta: + model = RuntimeJob diff --git a/gateway/api/v1/serializers.py b/gateway/api/v1/serializers.py index 67b1b6d6d..b19c337eb 100644 --- a/gateway/api/v1/serializers.py +++ b/gateway/api/v1/serializers.py @@ -50,3 +50,14 @@ class Meta(serializers.JobConfigSerializer.Meta): "auto_scaling", "python_version", ] + + +class RuntimeJobSerializer(serializers.RuntimeJobSerializer): + """ + Runtime job serializer first version. Serializer for the runtime job model. + """ + + job = JobSerializer(many=False) + + class Meta(serializers.RuntimeJobSerializer.Meta): + fields = ["job", "runtime_job"]