X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fadmin.py;h=218eea578ed7ef9bf5f78a32898f745570c91827;hb=53a0ecd77854b162a27de42d4e47e36a059598a5;hp=f8f7223d0fb3031a2ebdb964e99bffdd854f3796;hpb=79fd1d3e5be43d70c3c72dee42981b0ff19047be;p=dak.git diff --git a/dak/admin.py b/dak/admin.py index f8f7223d..218eea57 100755 --- a/dak/admin.py +++ b/dak/admin.py @@ -77,6 +77,7 @@ Perform administrative work on the dak database. description, origin and codename are optional. suite-architecture / s-a: + s-a list show the architectures for all suites s-a list-suite ARCH show the suites an ARCH is in s-a list-arch SUITE show the architectures in a SUITE s-a add SUITE ARCH add ARCH to suite @@ -99,7 +100,8 @@ def __architecture_add(d, args): 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 "Adding to suites %s" % ", ".join(suites) + if len(suites) > 0: + print "Adding to suites %s" % ", ".join(suites) if not dryrun: try: s = d.session() @@ -231,22 +233,27 @@ 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]) + for j in s.query(Suite).order_by('suite_name'): + architectures = j.get_architectures(skipsrc = True, skipall = True) + print j.suite_name + ': ' + \ + ', '.join([a.arch_string for a in architectures]) 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()) + suite = get_suite(args[2].lower(), d.session()) + if suite is None: + die('E: suite %s is invalid' % args[2].lower()) + a = suite.get_architectures(skipsrc = True, skipall = True) for j in a: - # HACK: We should get rid of source from the arch table - if j.arch_string != 'source': - print j.arch_string + print j.arch_string def __suite_architecture_listsuite(d, args): die_arglen(args, 3, "E: suite-architecture list-suite requires an arch") - for j in get_architecture_suites(args[2].lower()): + architecture = get_architecture(args[2].lower(), d.session()) + if architecture is None: + die("E: architecture %s is invalid" % args[2].lower()) + for j in architecture.suites: print j.suite_name @@ -336,10 +343,13 @@ def show_config(command): if mode == 'db': connstr = "" - if cnf["DB::Host"]: + if cnf.has_key("DB::Service"): + # Service mode + connstr = "postgresql://service=%s" % cnf["DB::Service"] + elif cnf.has_key("DB::Host"): # TCP/IP connstr = "postgres://%s" % cnf["DB::Host"] - if cnf["DB::Port"] and cnf["DB::Port"] != "-1": + if cnf.has_key("DB::Port") and cnf["DB::Port"] != "-1": connstr += ":%s" % cnf["DB::Port"] connstr += "/%s" % cnf["DB::Name"] else: @@ -349,12 +359,17 @@ def show_config(command): connstr += "?port=%s" % cnf["DB::Port"] print connstr elif mode == 'db-shell': - e = ['PGDATABASE'] - print "PGDATABASE=%s" % cnf["DB::Name"] - if cnf["DB::Host"]: + e = [] + if cnf.has_key("DB::Service"): + e.append('PGSERVICE') + print "PGSERVICE=%s" % cnf["DB::Service"] + if cnf.has_key("DB::Name"): + e.append('PGDATABASE') + print "PGDATABASE=%s" % cnf["DB::Name"] + if cnf.has_key("DB::Host"): print "PGHOST=%s" % cnf["DB::Host"] e.append('PGHOST') - if cnf["DB::Port"] and cnf["DB::Port"] != "-1": + if cnf.has_key("DB::Port") and cnf["DB::Port"] != "-1": print "PGPORT=%s" % cnf["DB::Port"] e.append('PGPORT') print "export " + " ".join(e)