X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Ffind_null_maintainers.py;h=3894f574bfabcb907ef74001520452ba9ff5e357;hb=a1605d90114be9fdf8b6942ae4e3a8c376e808fd;hp=3c85cc86f59f3f022435a2de03f506185538f5fc;hpb=e2ae71066cbb134753d7bfceb16e87d0b76dfd6e;p=dak.git diff --git a/dak/find_null_maintainers.py b/dak/find_null_maintainers.py index 3c85cc86..3894f574 100755 --- a/dak/find_null_maintainers.py +++ b/dak/find_null_maintainers.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Check for users with no packages in the archive +""" Check for users with no packages in the archive """ # Copyright (C) 2003, 2006 James Troup # This program is free software; you can redistribute it and/or modify @@ -19,14 +19,12 @@ ################################################################################ -import ldap, pg, sys, time +import ldap, sys, time import apt_pkg -import daklib.utils -################################################################################ - -Cnf = None -projectB = None +from daklib.dbconn import * +from daklib.config import Config +from daklib.utils import fubar ################################################################################ @@ -48,47 +46,47 @@ def get_ldap_value(entry, value): return ret[0] def main(): - global Cnf, projectB + cnf = Config() - Cnf = daklib.utils.get_conf() Arguments = [('h',"help","Find-Null-Maintainers::Options::Help")] for i in [ "help" ]: - if not Cnf.has_key("Find-Null-Maintainers::Options::%s" % (i)): - Cnf["Find-Null-Maintainers::Options::%s" % (i)] = "" + if not cnf.has_key("Find-Null-Maintainers::Options::%s" % (i)): + cnf["Find-Null-Maintainers::Options::%s" % (i)] = "" - apt_pkg.ParseCommandLine(Cnf, Arguments, sys.argv) + apt_pkg.parse_commandline(cnf.Cnf, Arguments, sys.argv) - Options = Cnf.SubTree("Find-Null-Maintainers::Options") + Options = cnf.subtree("Find-Null-Maintainers::Options") if Options["Help"]: - usage() + usage() + + if not cnf.has_key('Import-LDAP-Fingerprints::LDAPServer'): + fubar("Import-LDAP-Fingerprints::LDAPServer not configured") + + if not cnf.has_key('Import-LDAP-Fingerprints::LDAPDn'): + fubar("Import-LDAP-Fingerprints::LDAPDn not configured") - projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])) + session = DBConn().session() - before = time.time() - sys.stderr.write("[Getting info from the LDAP server...") - LDAPDn = Cnf["Import-LDAP-Fingerprints::LDAPDn"] - LDAPServer = Cnf["Import-LDAP-Fingerprints::LDAPServer"] + print "Getting info from the LDAP server..." + LDAPDn = cnf["Import-LDAP-Fingerprints::LDAPDn"] + LDAPServer = cnf["Import-LDAP-Fingerprints::LDAPServer"] l = ldap.open(LDAPServer) l.simple_bind_s("","") Attrs = l.search_s(LDAPDn, ldap.SCOPE_ONELEVEL, - "(&(keyfingerprint=*)(gidnumber=%s))" % (Cnf["Import-Users-From-Passwd::ValidGID"]), - ["uid", "cn", "mn", "sn", "createtimestamp"]) - sys.stderr.write("done. (%d seconds)]\n" % (int(time.time()-before))) + "(&(keyfingerprint=*)(gidnumber=%s))" % (cnf["Import-Users-From-Passwd::ValidGID"]), + ["uid", "cn", "mn", "sn", "createTimestamp"]) db_uid = {} db_unstable_uid = {} - before = time.time() - sys.stderr.write("[Getting UID info for entire archive...") - q = projectB.query("SELECT DISTINCT u.uid FROM uid u, fingerprint f WHERE f.uid = u.id;") - sys.stderr.write("done. (%d seconds)]\n" % (int(time.time()-before))) - for i in q.getresult(): + print "Getting UID info for entire archive..." + q = session.execute("SELECT DISTINCT u.uid FROM uid u, fingerprint f WHERE f.uid = u.id") + for i in q.fetchall(): db_uid[i[0]] = "" - before = time.time() - sys.stderr.write("[Getting UID info for unstable...") - q = projectB.query(""" + print "Getting UID info for unstable..." + q = session.execute(""" SELECT DISTINCT u.uid FROM suite su, src_associations sa, source s, fingerprint f, uid u WHERE f.uid = u.id AND sa.source = s.id AND sa.suite = su.id AND su.suite_name = 'unstable' AND s.sig_fpr = f.id @@ -96,8 +94,7 @@ UNION SELECT DISTINCT u.uid FROM suite su, bin_associations ba, binaries b, fingerprint f, uid u WHERE f.uid = u.id AND ba.bin = b.id AND ba.suite = su.id AND su.suite_name = 'unstable' AND b.sig_fpr = f.id""") - sys.stderr.write("done. (%d seconds)]\n" % (int(time.time()-before))) - for i in q.getresult(): + for i in q.fetchall(): db_unstable_uid[i[0]] = "" now = time.time() @@ -105,7 +102,7 @@ SELECT DISTINCT u.uid FROM suite su, bin_associations ba, binaries b, fingerprin for i in Attrs: entry = i[1] uid = entry["uid"][0] - created = time.mktime(time.strptime(entry["createtimestamp"][0][:8], '%Y%m%d')) + created = time.mktime(time.strptime(entry["createTimestamp"][0][:8], '%Y%m%d')) diff = now - created # 31536000 is 1 year in seconds, i.e. 60 * 60 * 24 * 365 if diff < 31536000 / 2: