[copr] master: Handle removing mock_chroot from copr chroots appropriately (2b34a10)

bkabrda at fedoraproject.org bkabrda at fedoraproject.org
Thu Jan 24 12:01:25 UTC 2013


Repository : http://git.fedorahosted.org/cgit/copr.git

On branch  : master

>---------------------------------------------------------------

commit 2b34a10b744b3553257646618168ca3b860eb151
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Thu Jan 24 11:13:06 2013 +0100

    Handle removing mock_chroot from copr chroots appropriately


>---------------------------------------------------------------

 coprs_frontend/coprs/logic/coprs_logic.py |    9 +--------
 coprs_frontend/coprs/models.py            |    4 +++-
 2 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/coprs_frontend/coprs/logic/coprs_logic.py b/coprs_frontend/coprs/logic/coprs_logic.py
index c25bd72..615be26 100644
--- a/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/coprs_frontend/coprs/logic/coprs_logic.py
@@ -156,11 +156,4 @@ class CoprsChrootLogic(object):
         # delete no more present
         for mock_chroot in current_chroots:
             if mock_chroot not in new_chroots:
-                models.CoprChroot.query.filter(models.CoprChroot.copr_id==copr.id).\
-                                        filter(models.CoprChroot.mock_chroot_id==mock_chroot.id).\
-                                        delete()
-            # TODO: fails because of
-            # http://docs.sqlalchemy.org/en/rel_0_7/orm/session.html#deleting-from-collections
-            # figure out how to overcome it nicely without having to commit the session
-            # (deleting the copr_chroot object from copr.copr_chroots doesn't seem to help)
-            db.session.commit()
+                copr.mock_chroots.remove(mock_chroot)
diff --git a/coprs_frontend/coprs/models.py b/coprs_frontend/coprs/models.py
index 8b99942..f75586f 100644
--- a/coprs_frontend/coprs/models.py
+++ b/coprs_frontend/coprs/models.py
@@ -203,4 +203,6 @@ class CoprChroot(db.Model, Serializer):
     mock_chroot_id = db.Column(db.Integer, db.ForeignKey('mock_chroot.id'), primary_key = True)
     mock_chroot = db.relationship('MockChroot', backref = db.backref('copr_chroots'))
     copr_id = db.Column(db.Integer, db.ForeignKey('copr.id'), primary_key = True)
-    copr = db.relationship('Copr', backref = db.backref('copr_chroots'))
+    copr = db.relationship('Copr', backref = db.backref('copr_chroots',
+                                                        single_parent=True,
+                                                        cascade='all,delete,delete-orphan'))



More information about the copr-devel mailing list