changeset 745:91aabd647610

Delete attachments when builds are cancelled/invalidated. These methods should all be pulled together at some point.
author wbell
date Thu, 22 Apr 2010 01:46:25 +0000
parents 0bec85f087e6
children 7f698d867321
files bitten/master.py bitten/queue.py bitten/web_ui.py
diffstat 3 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/bitten/master.py
+++ b/bitten/master.py
@@ -210,6 +210,9 @@
         for step in list(BuildStep.select(self.env, build=build.id, db=db)):
             step.delete(db=db)
         build.update(db=db)
+
+        Attachment.delete_all(self.env, 'build', build.resource.id, db)
+
         db.commit()
 
         for listener in BuildSystem(self.env).listeners:
@@ -330,6 +333,7 @@
             filename = attach_elem.attr.get('filename')
             resource_id = attach_elem.attr.get('resource') == 'config' \
                                     and build.config or build.resource.id
+
             try: # Delete attachment if it already exists
                 old_attach = Attachment(self.env, 'build',
                                     parent_id=resource_id, filename=filename)
--- a/bitten/queue.py
+++ b/bitten/queue.py
@@ -24,6 +24,8 @@
 import time
 
 from trac.util.datefmt import to_timestamp
+from trac.attachment import Attachment
+
 
 from bitten.model import BuildConfig, TargetPlatform, Build, BuildStep
 
@@ -287,6 +289,8 @@
             for step in list(BuildStep.select(self.env, build=build.id, db=db)):
                 step.delete(db=db)
             build.update(db=db)
+
+            Attachment.delete_all(self.env, 'build', build.resource.id, db)
         db.commit()
 
     def should_delete_build(self, build, repos):
--- a/bitten/web_ui.py
+++ b/bitten/web_ui.py
@@ -16,7 +16,7 @@
 
 import pkg_resources
 from genshi.builder import tag
-from trac.attachment import AttachmentModule
+from trac.attachment import AttachmentModule, Attachment
 from trac.core import *
 from trac.mimeview.api import Context
 from trac.resource import Resource
@@ -650,6 +650,8 @@
         build.slave_info = {}
         build.update()
 
+        Attachment.delete_all(self.env, 'build', build.resource.id, db)
+
         db.commit()
 
         req.redirect(req.href.build(build.config))
Copyright (C) 2012-2017 Edgewall Software