[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