X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fimport_ldap_fingerprints.py;h=cdffbd0a6894adc3437197e22fa3f2d22dfbccaf;hb=b612f3da207fa0d75a5d3b204ac8f02bb244231a;hp=7e754d481987a1f73b50d594cdde51f67d418657;hpb=3b1f0efc3965793443da9260e8f80f895b7dccd1;p=dak.git diff --git a/dak/import_ldap_fingerprints.py b/dak/import_ldap_fingerprints.py index 7e754d48..cdffbd0a 100755 --- a/dak/import_ldap_fingerprints.py +++ b/dak/import_ldap_fingerprints.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Sync fingerprint and uid tables with a debian.org LDAP DB +""" Sync fingerprint and uid tables with a debian.org LDAP DB """ # Copyright (C) 2003, 2004, 2006 James Troup # This program is free software; you can redistribute it and/or modify @@ -48,15 +48,13 @@ import commands, ldap, pg, re, sys import apt_pkg from daklib import database from daklib import utils +from daklib.regexes import re_gpg_fingerprint, re_debian_address ################################################################################ Cnf = None projectB = None -re_gpg_fingerprint = re.compile(r"^\s+Key fingerprint = (.*)$", re.MULTILINE) -re_debian_address = re.compile(r"^.*<(.*)@debian\.org>$", re.MULTILINE) - ################################################################################ def usage(exit_code=0): @@ -120,11 +118,11 @@ def main(): db_uid_name = {} ldap_fin_uid_id = {} q = projectB.query(""" -SELECT f.fingerprint, f.id, u.uid, u.debian_maintainer FROM fingerprint f, uid u WHERE f.uid = u.id +SELECT f.fingerprint, f.id, u.uid FROM fingerprint f, uid u WHERE f.uid = u.id UNION SELECT f.fingerprint, f.id, null FROM fingerprint f where f.uid is null""") for i in q.getresult(): (fingerprint, fingerprint_id, uid) = i - db_fin_uid[fingerprint] = (uid, fingerprint_id, debian_maintainer) + db_fin_uid[fingerprint] = (uid, fingerprint_id) q = projectB.query("SELECT id, name FROM uid") for i in q.getresult(): @@ -145,14 +143,14 @@ SELECT f.fingerprint, f.id, u.uid, u.debian_maintainer FROM fingerprint f, uid u for fingerprint in fingerprints: ldap_fin_uid_id[fingerprint] = (uid, uid_id) if db_fin_uid.has_key(fingerprint): - (existing_uid, fingerprint_id, is_dm) = db_fin_uid[fingerprint] + (existing_uid, fingerprint_id) = db_fin_uid[fingerprint] if not existing_uid: q = projectB.query("UPDATE fingerprint SET uid = %s WHERE id = %s" % (uid_id, fingerprint_id)) print "Assigning %s to 0x%s." % (uid, fingerprint) elif existing_uid == uid: pass - elif is_dm = "t": - q = projectB.query("UPDATE fingerprint SET uid = %s AND debian_maintainer = 'f' WHERE id = %s" % (uid_id, fingerprint_id)) + elif '@' not in existing_uid: + q = projectB.query("UPDATE fingerprint SET uid = %s WHERE id = %s" % (uid_id, fingerprint_id)) print "Promoting DM %s to DD %s with keyid 0x%s." % (existing_uid, uid, fingerprint) else: utils.warn("%s has %s in LDAP, but projectB says it should be %s." % (uid, fingerprint, existing_uid))