Skip to content

Commit d0e93df

Browse files
committed
Delete generated resources when workflow run is deleted
1 parent eb9365d commit d0e93df

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

rodan-main/code/rodan/models/resource.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
from django.urls import reverse
77
from rodan.constants import task_status
88
from rodan.models.resourcelabel import ResourceLabel
9+
from rodan.models.output import Output
910
from rodan.models.user import User
11+
from django.db.models.signals import post_delete
12+
from django.dispatch import receiver
1013

1114
import logging
1215

@@ -298,3 +301,12 @@ def get_viewer(self):
298301
def viewer_relurl(self):
299302
if self.get_viewer() is not None:
300303
return reverse("resource-viewer-acquire", args=(self.uuid,))
304+
305+
@receiver(post_delete, sender=Output)
306+
def post_output_delete(sender, instance, **kwargs):
307+
"""
308+
Deletes resource when associated output is deleted. Cascade delete does not work due to on_delete=PROTECT in Output model.
309+
In newer Django versions, we can use on_delete=models.RESTRICT in Output model to allow cascade delete to work.
310+
"""
311+
if instance.resource:
312+
instance.resource.delete()

0 commit comments

Comments
 (0)