]> git.decadent.org.uk Git - dak.git/blobdiff - dak/admin.py
dak's "Dict" is a synonym of the 'dict' builtin
[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 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
 
                             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
   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()
     if not dryrun:
         try:
             s = d.session()
-            s.begin()
             a = Architecture()
             a.arch_string = str(args[2]).lower()
             a.description = str(args[3])
             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()
     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])
             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())
 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:
 
     if not dryrun:
         try:
-            s.begin()
             sa = SuiteArchitecture()
             sa.arch_id = arch.arch_id
             sa.suite_id = suite.suite_id
             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 = 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()))
             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))
 
         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):
 
 
 def suite_architecture(command):
@@ -226,7 +268,9 @@ def suite_architecture(command):
 
     mode = args[1].lower()
 
 
     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)
         __suite_architecture_listarch(d, args)
     elif mode == 'list-suite':
         __suite_architecture_listsuite(d, args)