X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=1bf82931577f0fb5c1918371821cec945dca9c33;hb=159be8fa02c62b9a9114c78edddc0913df21d636;hp=eee7a4ea7bf2966c35b530605db1ed980753414c;hpb=ea5573c53aa22b9812489bddf63344324fa907ca;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index eee7a4ea..1bf82931 100644 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -1155,9 +1155,6 @@ def get_ldap_name(entry): ################################################################################ class Keyring(object): - gpg_invocation = "gpg --no-default-keyring --keyring %s" +\ - " --with-colons --fingerprint --fingerprint" - keys = {} fpr_lookup = {} @@ -1187,11 +1184,14 @@ class Keyring(object): if not self.keyring_id: raise Exception('Must be initialized with database information') - k = os.popen(self.gpg_invocation % keyring, "r") + cmd = ["gpg", "--no-default-keyring", "--keyring", keyring, + "--with-colons", "--fingerprint", "--fingerprint"] + p = daklib.daksubprocess.Popen(cmd, stdout=subprocess.PIPE) + key = None need_fingerprint = False - for line in k: + for line in p.stdout: field = line.split(":") if field[0] == "pub": key = field[4] @@ -1211,6 +1211,10 @@ class Keyring(object): self.fpr_lookup[field[9]] = key need_fingerprint = False + r = p.wait() + if r != 0: + raise subprocess.CalledProcessError(r, cmd) + def import_users_from_ldap(self, session): import ldap cnf = Config()