From 24f6f8229d6c17eb3e568f272baadf78e9c6a5e0 Mon Sep 17 00:00:00 2001
From: Vermaas <vermaas@astron.nl>
Date: Thu, 4 May 2023 11:08:20 +0200
Subject: [PATCH] add cleanup_policy field

---
 .../migrations/0023_task_cleanup_policy.py     | 18 ++++++++++++++++++
 atdb/taskdatabase/models.py                    |  2 +-
 atdb/taskdatabase/serializers.py               |  6 +++---
 atdb/taskdatabase/views.py                     |  1 +
 4 files changed, 23 insertions(+), 4 deletions(-)
 create mode 100644 atdb/taskdatabase/migrations/0023_task_cleanup_policy.py

diff --git a/atdb/taskdatabase/migrations/0023_task_cleanup_policy.py b/atdb/taskdatabase/migrations/0023_task_cleanup_policy.py
new file mode 100644
index 00000000..36b2db53
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0023_task_cleanup_policy.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.1.4 on 2023-05-04 09:04
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0022_workflow_tag'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='task',
+            name='cleanup_policy',
+            field=models.CharField(blank=True, max_length=30, null=True),
+        ),
+    ]
diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py
index ad14b9dd..852002c2 100644
--- a/atdb/taskdatabase/models.py
+++ b/atdb/taskdatabase/models.py
@@ -73,7 +73,6 @@ class Task(models.Model):
     # Task control properties
     task_type = models.CharField(max_length=20, default="regular")
     filter = models.CharField(max_length=30, blank=True, null=True)
-    #environment = models.JSONField(null=True, blank=True)
     environment = models.CharField(max_length=255, blank=True, null=True)
     new_status = models.CharField(max_length=50, default="defining", null=True)
     status = models.CharField(db_index=True, default="unknown", max_length=50,blank=True, null=True)
@@ -84,6 +83,7 @@ class Task(models.Model):
 
     priority = models.IntegerField(default=100, null=True)
     purge_policy = models.CharField(max_length=5, default="no", blank=True, null=True)
+    cleanup_policy = models.CharField(max_length=30, blank=True, null=True)
     stage_request_id = models.IntegerField(null=True)
 
     # LOFAR properties
diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py
index d12f0229..7b947d59 100644
--- a/atdb/taskdatabase/serializers.py
+++ b/atdb/taskdatabase/serializers.py
@@ -39,7 +39,7 @@ class TaskWriteSerializer(serializers.ModelSerializer):
     class Meta:
         model = Task
         fields = ('id','task_type','filter','predecessor','successors',
-                  'project','sas_id','priority','purge_policy','resume',
+                  'project','sas_id','priority','purge_policy','cleanup_policy','resume',
                   'new_workflow_id','new_workflow_uri','workflow',
                   'stage_request_id',
                   'status','new_status','quality',
@@ -94,7 +94,7 @@ class TaskReadSerializer(serializers.ModelSerializer):
         model = Task
         fields = ['id','task_type','creationTime','filter',
                   'predecessor','predecessor_status','successors',
-                  'project','sas_id','priority','purge_policy','resume',
+                  'project','sas_id','priority','purge_policy','cleanup_policy','resume',
                   'workflow',
                   'stage_request_id',
                   'status','new_status','quality',
@@ -125,7 +125,7 @@ class TaskReadSerializerFast(serializers.ModelSerializer):
     class Meta:
         model = Task
         fields = ['id','task_type','creationTime','filter','predecessor','predecessor_status',
-                  'project','sas_id','priority','purge_policy','resume',
+                  'project','sas_id','priority','purge_policy','cleanup_policy','resume',
                   'workflow',
                   'stage_request_id',
                   'status','new_status','quality',
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index a64eea07..13934199 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -62,6 +62,7 @@ class TaskFilter(filters.FilterSet):
             'status': ['exact', 'icontains', 'in', 'startswith'],
             'quality': ['exact', 'icontains', 'in', 'startswith'],
             'purge_policy': ['exact'],
+            'cleanup_policy': ['exact','icontains','in'],
             'priority': ['exact', 'lte', 'gte'],
             'resume': ['exact'],
             # http://localhost:8000/atdb/tasks/?predecessor__isnull=True
-- 
GitLab