[copr] master: Refactor getting mock chroots by its attributest (83a2c9c)
bkabrda at fedoraproject.org
bkabrda at fedoraproject.org
Tue Jan 15 11:06:12 UTC 2013
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : master
>---------------------------------------------------------------
commit 83a2c9ca4028ad4e23029dad81aae77e262c55c0
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date: Mon Jan 14 11:45:13 2013 +0100
Refactor getting mock chroots by its attributest
>---------------------------------------------------------------
coprs_frontend/coprs/models.py | 6 ++++++
coprs_frontend/manage.py | 12 ++++++------
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/coprs_frontend/coprs/models.py b/coprs_frontend/coprs/models.py
index f3f1ca0..120cf15 100644
--- a/coprs_frontend/coprs/models.py
+++ b/coprs_frontend/coprs/models.py
@@ -193,6 +193,12 @@ class MockChroot(db.Model, Serializer):
def chroot_name(self):
return '{0}-{1}-{2}'.format(self.os_release, self.os_version, self.arch)
+ @classmethod
+ def get(cls, os_release, os_version, arch, active_only = False):
+ return cls.query.filter(cls.os_release==os_release,
+ cls.os_version==os_version,
+ cls.arch==arch).first()
+
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('coprs'))
diff --git a/coprs_frontend/manage.py b/coprs_frontend/manage.py
index 322cd61..e2461d8 100755
--- a/coprs_frontend/manage.py
+++ b/coprs_frontend/manage.py
@@ -54,6 +54,10 @@ class CreateChrootCommand(ChrootCommand):
split_chroot = chroot_name.split('-')
if len(split_chroot) < 3:
print 'Invalid chroot format, must be "{release}-{version}-{arch}".'
+ return
+ if models.MockChroot.get(*split_chroot):
+ print 'Already exists.'
+ return
new_chroot = models.MockChroot(os_release=split_chroot[0],
os_version=split_chroot[1],
arch=split_chroot[2],
@@ -67,9 +71,7 @@ class AlterChrootCommand(ChrootCommand):
split_chroot = chroot_name.split('-')
if len(split_chroot) < 3:
print 'Invalid chroot format, must be "{release}-{version}-{arch}".'
- chroot = models.MockChroot.query.filter(models.MockChroot.os_release==split_chroot[0],
- models.MockChroot.os_version==split_chroot[1],
- models.MockChroot.arch==split_chroot[2]).first()
+ chroot = models.MockChroot.get(*split_chroot)
if action == 'activate':
chroot.is_active = True
else:
@@ -93,9 +95,7 @@ class DropChrootCommand(ChrootCommand):
split_chroot = chroot_name.split('-')
if len(split_chroot) < 3:
print 'Invalid chroot format, must be "{release}-{version}-{arch}".'
- chroot = models.MockChroot.query.filter(models.MockChroot.os_release==split_chroot[0],
- models.MockChroot.os_version==split_chroot[1],
- models.MockChroot.arch==split_chroot[2]).first()
+ chroot = models.MockChroot.get(*split_chroot)
if chroot:
db.session.delete(chroot)
db.session.commit()
More information about the copr-devel
mailing list