X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dak%2Fadmin.py;h=f8f7223d0fb3031a2ebdb964e99bffdd854f3796;hb=4830d9be143c7645ea932b53fae095e275ad7814;hp=2bb1f1853187af821ccf06c317bf40cc6de8aefd;hpb=0216544ee8c5aca451b9133f908adb686cd8f68d;p=dak.git diff --git a/dak/admin.py b/dak/admin.py index 2bb1f185..f8f7223d 100755 --- a/dak/admin.py +++ b/dak/admin.py @@ -96,10 +96,10 @@ def __architecture_list(d, args): sys.exit(0) def __architecture_add(d, args): - die_arglen(args, 3, "E: adding an architecture requires a name and a description") + die_arglen(args, 4, "E: adding an architecture requires a name and a description") print "Adding architecture %s" % args[2] suites = [str(x) for x in args[4:]] - print suites + print "Adding to suites %s" % ", ".join(suites) if not dryrun: try: s = d.session() @@ -108,12 +108,9 @@ def __architecture_add(d, args): a.description = str(args[3]) s.add(a) for sn in suites: - su = get_suite(sn ,s) + su = get_suite(sn, s) if su is not None: - archsu = SuiteArchitecture() - archsu.arch_id = a.arch_id - archsu.suite_id = su.suite_id - s.add(archsu) + a.suites.append(su) else: warn("W: Cannot find suite %s" % su) s.commit() @@ -267,10 +264,7 @@ def __suite_architecture_add(d, args): if not dryrun: try: - sa = SuiteArchitecture() - sa.arch_id = arch.arch_id - sa.suite_id = suite.suite_id - s.add(sa) + suite.architectures.append(arch) s.commit() except IntegrityError, e: die("E: Can't add suite-architecture entry (%s, %s) - probably already exists" % (args[2].lower(), args[3].lower())) @@ -287,10 +281,15 @@ def __suite_architecture_rm(d, args): s = d.session() if not dryrun: try: - 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())) - s.delete(sa) + suite_name = args[2].lower() + suite = get_suite(suite_name, s) + if suite is None: + die('E: no such suite %s' % suite_name) + arch_string = args[3].lower() + architecture = get_architecture(arch_string, s) + if architecture not in suite.architectures: + die("E: architecture %s not found in suite %s" % (arch_string, suite_name)) + suite.architectures.remove(architecture) s.commit() except IntegrityError, e: die("E: Can't remove suite-architecture entry (%s, %s) - it's probably referenced" % (args[2].lower(), args[3].lower()))