################################################################################
-import psycopg2
+import psycopg2, time
################################################################################
print "Adding DM fields to database"
try:
- c = self.db.cursor()
- c.execute("ALTER TABLE source ADD COLUMN dm_upload_allowed BOOLEAN DEFAULT 'no' NOT NULL;")
- c.execute("ALTER TABLE fingerprint ADD COLUMN is_dm BOOLEAN DEFAULT 'false' NOT NULL;")
+ c = self.db.cursor()
+ c.execute("ALTER TABLE source ADD COLUMN dm_upload_allowed BOOLEAN DEFAULT 'no' NOT NULL;")
+ c.execute("ALTER TABLE keyrings ADD COLUMN debian_maintainer BOOLEAN DEFAULT 'false' NOT NULL;")
- print "Migrating DM data to source table. This might take some time ..."
+ print "Migrating DM data to source table. This might take some time ..."
- c.execute("UPDATE source SET dm_upload_allowed = 't' WHERE id = (SELECT source FROM src_uploaders);")
- c.execute("UPDATE config SET value = '1' WHERE name = 'db_revision'")
- self.db.commit()
+ c.execute("UPDATE source SET dm_upload_allowed = 't' WHERE id IN (SELECT source FROM src_uploaders);")
+ c.execute("UPDATE config SET value = '1' WHERE name = 'db_revision'")
- print "REMINDER: Remember to run the updated byhand-dm crontab to update Debian Maintainer information"
+ print "Migrating DM uids to normal uids"
+ c.execute("SELECT uid FROM uid WHERE uid LIKE 'dm:%'")
+ rows = c.fetchall()
+ for r in rows:
+ uid = r[0]
+ c.execute("UPDATE uid SET uid = '%s' WHERE uid = '%s'" % (uid[3:], uid))
+
+ self.db.commit()
+
+ print "IMPORTANT: Set the debian_maintainer flag in the config file for keyrings that are DMs!"
+ print " Failure to do so will result in DM's having full upload abilities!"
+ print "REMINDER: Remember to run the updated byhand-dm crontab to update Debian Maintainer information"
+ print ""
+ print "Pausing for five seconds ..."
+ time.sleep (5)
except psycopg2.ProgrammingError, msg:
self.db.rollback()
print """Usage: dak import-keyring [OPTION]... [KEYRING]
-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"""
+ -U, --generate-users FMT generate uid entries from keyring as FMT"""
sys.exit(exit_code)
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)):
keyringname = keyring_names[0]
keyring = Keyring(keyringname)
+ if Cnf.has_key("Import-Keyring::"+keyringname+"::Debian-Maintainer"):
+ projectB.query("UPDATE keyrings SET debian_maintainer = '%s' WHERE name = '%s'" % (Cnf["Import-Keyring::"+keyringname+"::Debian-Maintainer"], keyringname.split("/")[-1]))
+
keyring_id = database.get_or_set_keyring_id(
keyringname.split("/")[-1])
# 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]
if oldfid == -1:
changes.append((newuiduid, "Added key: %s" % (f)))
if newuid:
- projectB.query("INSERT INTO fingerprint (fingerprint, uid, keyring, debian_maintainer) VALUES ('%s', %d, %d, %s)" % (f, newuid, keyring_id, is_dm))
+ projectB.query("INSERT INTO fingerprint (fingerprint, uid, keyring) VALUES ('%s', %d, %d)" % (f, newuid, keyring_id))
else:
- projectB.query("INSERT INTO fingerprint (fingerprint, keyring) VALUES ('%s', %d, %s)" % (f, keyring_id, is_dm))
+ projectB.query("INSERT INTO fingerprint (fingerprint, keyring) VALUES ('%s', %d)" % (f, keyring_id))
else:
if newuid and olduid != newuid:
if olduid != -1: