[copr] master: Let chroot commands accept multiple chroots as arguments (78beac9)

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


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

On branch  : master

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

commit 78beac97a43d1c45675e046e65f1d06ccf781d85
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Tue Jan 15 11:58:11 2013 +0100

    Let chroot commands accept multiple chroots as arguments


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

 coprs_frontend/manage.py |   78 +++++++++++++++++++++++++--------------------
 1 files changed, 43 insertions(+), 35 deletions(-)

diff --git a/coprs_frontend/manage.py b/coprs_frontend/manage.py
index e2461d8..be5a5b1 100755
--- a/coprs_frontend/manage.py
+++ b/coprs_frontend/manage.py
@@ -44,41 +44,46 @@ class DropDBCommand(Command):
 
 class ChrootCommand(Command):
     option_list = (
-        Option('chroot_name',
-               help='Chroot name, e.g. fedora-18-x86_64.'),
+        Option('chroot_names',
+               help='Chroot name, e.g. fedora-18-x86_64.',
+               nargs='+'),
     )
 
 class CreateChrootCommand(ChrootCommand):
     'Creates a mock chroot in DB'
-    def run(self, chroot_name):
-        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],
-                                       is_active=True)
-        db.session.add(new_chroot)
-        db.session.commit()
+    def run(self, chroot_names):
+        for chroot_name in chroot_names:
+            split_chroot = chroot_name.split('-')
+            if len(split_chroot) < 3:
+                print '{0} - Invalid chroot format, must be "{release}-{version}-{arch}".'.format(chroot_name)
+            elif models.MockChroot.get(*split_chroot):
+                print '{0} - already exists.'.format(chroot_name)
+            else:
+                new_chroot = models.MockChroot(os_release=split_chroot[0],
+                                               os_version=split_chroot[1],
+                                               arch=split_chroot[2],
+                                               is_active=True)
+                db.session.add(new_chroot)
+                db.session.commit()
 
 class AlterChrootCommand(ChrootCommand):
     'Activates or deactivates a chroot'
-    def run(self, chroot_name, action):
-        split_chroot = chroot_name.split('-')
-        if len(split_chroot) < 3:
-            print 'Invalid chroot format, must be "{release}-{version}-{arch}".'
-        chroot = models.MockChroot.get(*split_chroot)
-        if action == 'activate':
-            chroot.is_active = True
-        else:
-            chroot.is_active = False
-
-        db.session.add(chroot)
-        db.session.commit()
+    def run(self, chroot_names, action):
+        for chroot_name in chroot_names:
+            split_chroot = chroot_name.split('-')
+            if len(split_chroot) < 3:
+                print '{0} - invalid chroot format, must be "{release}-{version}-{arch}".'.format(chroot_name)
+            chroot = models.MockChroot.get(*split_chroot)
+            if not chroot:
+                print '{0} - chroot doesn\'t exist.'.format(chroot_name)
+            else:
+                if action == 'activate':
+                    chroot.is_active = True
+                else:
+                    chroot.is_active = False
+
+                db.session.add(chroot)
+                db.session.commit()
 
     option_list = ChrootCommand.option_list + (
             Option('--action',
@@ -91,14 +96,17 @@ class AlterChrootCommand(ChrootCommand):
 
 class DropChrootCommand(ChrootCommand):
     'Activates or deactivates a chroot'
-    def run(self, chroot_name):
-        split_chroot = chroot_name.split('-')
-        if len(split_chroot) < 3:
-            print 'Invalid chroot format, must be "{release}-{version}-{arch}".'
-        chroot = models.MockChroot.get(*split_chroot)
-        if chroot:
-            db.session.delete(chroot)
-            db.session.commit()
+    def run(self, chroot_names):
+        for chroot_name in chroot_names:
+            split_chroot = chroot_name.split('-')
+            if len(split_chroot) < 3:
+                print '{0} - invalid chroot format, must be "{release}-{version}-{arch}".'.format(chroot_name)
+            chroot = models.MockChroot.get(*split_chroot)
+            if not chroot:
+                print '{0} - chroot doesn\'t exist.'.format(chroot_name)
+            else:
+                db.session.delete(chroot)
+                db.session.commit()
 
 class DisplayChrootsCommand(Command):
     'Displays current mock chroots'



More information about the copr-devel mailing list