X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fadmin.py;h=c6128b9befb0fc3c86792e41c9472538b1809bfa;hb=b52daab0399566081e50d41f0ffe5c3c1e2ed2d0;hp=1dc7e7bc3a449512245db15a684287800df8e4f3;hpb=b0e0cacf61b1468bae70a4d2f71941784bd85fb8;p=dak.git diff --git a/dak/admin.py b/dak/admin.py index 1dc7e7bc..c6128b9b 100755 --- a/dak/admin.py +++ b/dak/admin.py @@ -80,8 +80,13 @@ Perform administrative work on the dak database. s show SUITE show config details for a suite s add SUITE VERSION [ label=LABEL ] [ description=DESCRIPTION ] [ origin=ORIGIN ] [ codename=CODENAME ] - add suite SUITE, version VERSION. label, - description, origin and codename are optional. + [ signingkey=SIGNINGKEY ] + add suite SUITE, version VERSION. + label, description, origin, codename + and signingkey are optional. + + s add-all-arches SUITE VERSION... as "s add" but adds suite-architecture + relationships for all architectures suite-architecture / s-a: s-a list show the architectures for all suites @@ -193,7 +198,7 @@ def __suite_show(d, args): print su.details() -def __suite_add(d, args): +def __suite_add(d, args, addallarches=False): die_arglen(args, 4, "E: adding a suite requires at least a name and a version") suite_name = args[2].lower() version = args[3] @@ -211,19 +216,36 @@ def __suite_add(d, args): s = d.session() suite = Suite() suite.suite_name = suite_name + suite.overridecodename = suite_name suite.version = version suite.label = get_field('label') suite.description = get_field('description') suite.origin = get_field('origin') suite.codename = get_field('codename') + signingkey = get_field('signingkey') + if signingkey is not None: + suite.signingkeys = [signingkey.upper()] + suite.srcformats = s.query(SrcFormat).all() s.add(suite) - s.commit() + s.flush() except IntegrityError, e: die("E: Integrity error adding suite %s (it probably already exists)" % suite_name) except SQLAlchemyError, e: die("E: Error adding suite %s (%s)" % (suite_name, e)) print "Suite %s added" % (suite_name) + if addallarches: + arches = [] + q = s.query(Architecture).order_by('arch_string') + for arch in q.all(): + suite.architectures.append(arch) + arches.append(arch.arch_string) + + print "Architectures %s added to %s" % (','.join(arches), suite_name) + + s.commit() + + def suite(command): args = [str(x) for x in command] Cnf = utils.get_conf() @@ -238,7 +260,9 @@ def suite(command): elif mode == 'show': __suite_show(d, args) elif mode == 'add': - __suite_add(d, args) + __suite_add(d, args, False) + elif mode == 'add-all-arches': + __suite_add(d, args, True) else: die("E: suite command unknown")