X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fimport_keyring.py;h=25f72e401d1450a17c3cd9834201180ae145b93b;hb=a10398019d83fb13fbe230c944ed51470a35df34;hp=63c0724177fec1f49b690d64b4790576213ba9f7;hpb=06b17e68fd4a76e7a12f741f26654e55bff05c79;p=dak.git diff --git a/dak/import_keyring.py b/dak/import_keyring.py old mode 100644 new mode 100755 index 63c07241..25f72e40 --- a/dak/import_keyring.py +++ b/dak/import_keyring.py @@ -19,7 +19,8 @@ ################################################################################ -import daklib.database, daklib.logging +from daklib import database +from daklib import utils import sys, os, re import apt_pkg, pg, ldap, email.Utils @@ -27,7 +28,6 @@ import apt_pkg, pg, ldap, email.Utils Cnf = None Options = None projectB = None -Logger = None ################################################################################ @@ -138,7 +138,7 @@ class Keyring: keys[key]["uid"] = uid if id != None: continue - id = daklib.database.get_or_set_uid_id(uid) + id = database.get_or_set_uid_id(uid) byuid[id] = (uid, name) byname[uid] = (id, name) @@ -155,13 +155,13 @@ class Keyring: keys[x]["uid"] = format % "invalid-uid" else: uid = format % keys[x]["email"] - id = daklib.database.get_or_set_uid_id(uid) + id = database.get_or_set_uid_id(uid) byuid[id] = (uid, keys[x]["name"]) byname[uid] = (id, keys[x]["name"]) keys[x]["uid"] = uid if any_invalid: uid = format % "invalid-uid" - id = daklib.database.get_or_set_uid_id(uid) + id = database.get_or_set_uid_id(uid) byuid[id] = (uid, "ungeneratable user id") byname[uid] = (id, "ungeneratable user id") return (byname, byuid) @@ -173,6 +173,7 @@ def usage (exit_code=0): -h, --help show this help and exit. -L, --import-ldap-users generate uid entries for keyring from LDAP -U, --generate-users FMT generate uid entries from keyring as FMT""" + -D, --debian-maintainer mark generated uids as debian-maintainers sys.exit(exit_code) @@ -181,11 +182,12 @@ def usage (exit_code=0): def main(): global Cnf, projectB, Options - Cnf = daklib.utils.get_conf() + Cnf = utils.get_conf() Arguments = [('h',"help","Import-Keyring::Options::Help"), ('L',"import-ldap-users","Import-Keyring::Options::Import-Ldap-Users"), ('U',"generate-users","Import-Keyring::Options::Generate-Users", "HasArg"), - ] + ('D',"debian-maintainer","Import-Keyring::Options::Debian-Maintainer"), + ] for i in [ "help", "report-changes", "generate-users", "import-ldap-users" ]: if not Cnf.has_key("Import-Keyring::Options::%s" % (i)): @@ -209,7 +211,7 @@ def main(): ### Initialise projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])) - daklib.database.init(Cnf, projectB) + database.init(Cnf, projectB) projectB.query("BEGIN WORK") @@ -222,7 +224,7 @@ def main(): keyringname = keyring_names[0] keyring = Keyring(keyringname) - keyring_id = daklib.database.get_or_set_keyring_id( + keyring_id = database.get_or_set_keyring_id( keyringname.split("/")[-1]) ### Generate new uid entries if they're needed (from LDAP or the keyring) @@ -268,6 +270,11 @@ def main(): # For the keys in this keyring, add/update any fingerprints that've # changed. + # Determine if we need to set the DM flag + is_dm = "no" + if Cnf("Import-Keyring::Options::Debian-Maintainer"): + is_dm = "yes" + for f in fpr: newuid = fpr[f][0] newuiduid = db_uid_byid.get(newuid, [None])[0] @@ -277,9 +284,9 @@ def main(): if oldfid == -1: changes.append((newuiduid, "Added key: %s" % (f))) if newuid: - projectB.query("INSERT INTO fingerprint (fingerprint, uid, keyring) VALUES ('%s', %d, %d)" % (f, newuid, keyring_id)) + projectB.query("INSERT INTO fingerprint (fingerprint, uid, keyring, debian_maintainer) VALUES ('%s', %d, %d, %s)" % (f, newuid, keyring_id, is_dm)) else: - projectB.query("INSERT INTO fingerprint (fingerprint, keyring) VALUES ('%s', %d)" % (f, keyring_id)) + projectB.query("INSERT INTO fingerprint (fingerprint, keyring) VALUES ('%s', %d, %s)" % (f, keyring_id, is_dm)) else: if newuid and olduid != newuid: if olduid != -1: