]> git.decadent.org.uk Git - dak.git/blobdiff - dak/admin.py
Fix check_indices_files_exist in check-archive.
[dak.git] / dak / admin.py
index 2bf6161724d93f2b3f743170d0e1a7513886c675..eb765a660cb00ac807e0daaee0305539eeaf3662 100755 (executable)
@@ -25,7 +25,6 @@ import apt_pkg
 
 from daklib import utils
 from daklib.dbconn import *
-from daklib.config import Config
 
 ################################################################################
 
@@ -65,6 +64,10 @@ Perform administrative work on the dak database.
                             If SUITELIST is given, add to each of the
                             suites at the same time
 
+  suite / s:
+     s list                 show a list of suites
+     s show SUITE           show config details for a suite
+
   suite-architecture / s-a:
      s-a list-suite ARCH    show the suites an ARCH is in
      s-a list-arch SUITE    show the architectures in a SUITE
@@ -92,7 +95,6 @@ def __architecture_add(d, args):
     if not dryrun:
         try:
             s = d.session()
-            s.begin()
             a = Architecture()
             a.arch_string = str(args[2]).lower()
             a.description = str(args[3])
@@ -119,7 +121,6 @@ def __architecture_rm(d, args):
     if not dryrun:
         try:
             s = d.session()
-            s.begin()
             a = get_architecture(args[2].lower(), s)
             if a is None:
                 die("E: Cannot find architecture %s" % args[2])
@@ -153,6 +154,49 @@ dispatch['a'] = architecture
 
 ################################################################################
 
+def __suite_list(d, args):
+    s = d.session()
+    for j in s.query(Suite).order_by('suite_name').all():
+        print j.suite_name
+
+def __suite_show(d, args):
+    if len(args) < 2:
+        die("E: showing an suite entry requires a suite")
+
+    s = d.session()
+    su = get_suite(args[2].lower())
+    if su is None:
+        die("E: can't find suite entry for %s" % (args[2].lower()))
+
+    print su.details()
+
+def suite(command):
+    args = [str(x) for x in command]
+    Cnf = utils.get_conf()
+    d = DBConn()
+
+    die_arglen(args, 2, "E: suite needs at least a command")
+
+    mode = args[1].lower()
+
+    if mode == 'list':
+        __suite_list(d, args)
+    elif mode == 'show':
+        __suite_show(d, args)
+    else:
+        die("E: suite command unknown")
+
+dispatch['suite'] = suite
+dispatch['s'] = suite
+
+################################################################################
+
+def __suite_architecture_list(d, args):
+    s = d.session()
+    for j in s.query(Suite).order_by('suite_name').all():
+        print j.suite_name + ' ' + \
+              ','.join([a.architecture.arch_string for a in j.suitearchitectures])
+
 def __suite_architecture_listarch(d, args):
     die_arglen(args, 3, "E: suite-architecture list-arch requires a suite")
     a = get_suite_architectures(args[2].lower())
@@ -182,7 +226,6 @@ def __suite_architecture_add(d, args):
 
     if not dryrun:
         try:
-            s.begin()
             sa = SuiteArchitecture()
             sa.arch_id = arch.arch_id
             sa.suite_id = suite.suite_id
@@ -203,7 +246,6 @@ def __suite_architecture_rm(d, args):
     s = d.session()
     if not dryrun:
         try:
-            s.begin()
             sa = get_suite_architecture(args[2].lower(), args[3].lower(), s)
             if sa is None:
                 die("E: can't find suite-architecture entry for %s, %s" % (args[2].lower(), args[3].lower()))
@@ -214,7 +256,7 @@ def __suite_architecture_rm(d, args):
         except SQLAlchemyError, e:
             die("E: Can't remove suite-architecture entry (%s, %s) - %s" % (args[2].lower(), args[3].lower(), e))
 
-    print "Removed suite-architecture entry for %s, %s" % (args[2].lower(), args[3].lower()) 
+    print "Removed suite-architecture entry for %s, %s" % (args[2].lower(), args[3].lower())
 
 
 def suite_architecture(command):
@@ -226,7 +268,9 @@ def suite_architecture(command):
 
     mode = args[1].lower()
 
-    if mode == 'list-arch':
+    if mode == 'list':
+        __suite_architecture_list(d, args)
+    elif mode == 'list-arch':
         __suite_architecture_listarch(d, args)
     elif mode == 'list-suite':
         __suite_architecture_listsuite(d, args)