X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fadmin.py;h=eb765a660cb00ac807e0daaee0305539eeaf3662;hb=4fdf72399cd42db969bbc87ea187b4e594b4500a;hp=2bf6161724d93f2b3f743170d0e1a7513886c675;hpb=8b2fe19fdfc5671387432e6ffdf3c7fa130ec2d7;p=dak.git diff --git a/dak/admin.py b/dak/admin.py index 2bf61617..eb765a66 100755 --- a/dak/admin.py +++ b/dak/admin.py @@ -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)