[copr] master: Add some login for manipulating the mock chroots (65d894a)

bkabrda at fedoraproject.org bkabrda at fedoraproject.org
Tue Jan 15 11:06:26 UTC 2013


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

On branch  : master

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

commit 65d894a8c4b35f7a183374e7ea344a8226a75164
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Mon Jan 14 14:46:37 2013 +0100

    Add some login for manipulating the mock chroots


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

 coprs_frontend/coprs/logic/coprs_logic.py |   35 +++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/coprs_frontend/coprs/logic/coprs_logic.py b/coprs_frontend/coprs/logic/coprs_logic.py
index cc47c1e..45ea492 100644
--- a/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/coprs_frontend/coprs/logic/coprs_logic.py
@@ -104,3 +104,38 @@ class CoprsPermissionLogic(object):
     @classmethod
     def delete(cls, user, copr_permission):
         db.session.delete(copr_permission)
+
+class CoprChrootLogic(object):
+    @classmethod
+    def mock_chroots_from_names(cls, user, names):
+        db_chroots = models.MockChroot.query.all()
+        mock_chroots = []
+        for ch in db_chroots:
+            if ch.chroot_name in names:
+                mock_chroots.append(ch)
+
+        return mock_chroots
+
+    @classmethod
+    def new(cls, user, mock_chroot):
+        db.session.add(mock_chroot)
+
+    @classmethod
+    def new_from_names(cls, user, copr, names):
+        for mock_chroot in cls.mock_chroots_from_names(user, names):
+            db.session.add(models.CoprChroot(copr=copr, mock_chroot=mock_chroot))
+
+    @classmethod
+    def update_from_names(cls, user, copr, names):
+        current_chroots = copr.mock_chroots
+        new_chroots = cls.mock_chroots_from_names(user, names)
+        # add non-existing
+        for mock_chroot in new_chroots:
+            if mock_chroot not in current_chroots:
+                db.session.add(models.CoprChroot(copr=copr, mock_chroot=mock_chroot))
+        # 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()



More information about the copr-devel mailing list