/[qa]/trunk/carnivore/extract_data
ViewVC logotype

Diff of /trunk/carnivore/extract_data

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2389 by myon, Thu Sep 3 14:54:31 2009 UTC revision 2390 by geissert, Wed Jul 28 20:16:21 2010 UTC
# Line 100  def weakRef(key, target): Line 100  def weakRef(key, target):
100                  can.append(target)                  can.append(target)
101    
102  def getKeyrings():  def getKeyrings():
103            """Extracts keys from various keyrings (DDs, DMs, emeritus and removed"""
104          for keyring, file in {'keyring': 'debian-keyring', \          for keyring, file in {'keyring': 'debian-keyring', \
105                          'emeritus': 'emeritus-keyring', \                          'emeritus': 'emeritus-keyring', \
106                          'removed': 'removed-keys' }.iteritems():                          'removed': 'removed-keys' }.iteritems():
107                  for type in [ 'gpg' , 'pgp' ]:                  for type in [ 'gpg' , 'pgp' ]:
108                          contents = os.popen("gpg --no-default-keyring \                          parseKeyring("/org/qa.debian.org/data/keyrings/keyrings/%s.%s" % (file, type), keyring)
109                                  --no-expensive-trust-checks \          # Add DM keyring
110                                  --keyring /org/qa.debian.org/data/keyrings/keyrings/%s.%s --list-keys \          parseKeyring("/org/qa.debian.org/data/keyrings/keyrings/debian-maintainers.gpg", "dm")
111                                  --with-colons --fingerprint" % (file, type))  
112                          fpr = None  def parseKeyring(keyring_file, keyring):
113                          entry = None          """Parses the given keyring_file, adding its keys to keyring set (used below)"""
114                          lastpub = None          contents = os.popen("gpg --no-default-keyring \
115                          for line in contents.readlines():                  --no-expensive-trust-checks \
116                                  items = line.split(':')                  --keyring %s --list-keys \
117                                  uid = None                  --with-colons --fingerprint" % keyring_file)
118                                  if items[0] == 'pub':          fpr = None
119                                          fpr = entry = None          entry = None
120                                          lastpub = items[9].strip()          lastpub = None
121                                          continue          for line in contents.readlines():
122                                  elif items[0] == 'fpr':                  items = line.split(':')
123                                          fpr = "gpg:" + items[9].strip()                  uid = None
124                                          extraInfo(fpr, "x:gpg:keyring:"+fpr[4:] + ":" + keyring)                  if items[0] == 'pub':
125                                          uid = lastpub                          fpr = entry = None
126                                  elif items[0] == 'uid':                          lastpub = items[9].strip()
127                                          uid = items[9].strip()                          continue
128                                  else:                  elif items[0] == 'fpr':
129                                          continue                          fpr = "gpg:" + items[9].strip()
130                                  # Do stuff with 'uid'                          extraInfo(fpr, "x:gpg:keyring:"+fpr[4:] + ":" + keyring)
131                                  weakRef("uid:"+uid, fpr)                          uid = lastpub
132                                  uid, email = parseUid(uid)                  elif items[0] == 'uid':
133                                  if email:                          uid = items[9].strip()
134                                          email = "email:" + email                  else:
135                                          merge(fpr, email)                          continue
136                                          extraInfo(fpr, "x:"+fpr+":"+email)                  # Do stuff with 'uid'
137                                  if uid:                  weakRef("uid:"+uid, fpr)
138                                          addName(uid, fpr)                  uid, email = parseUid(uid)
139                                          extraInfo(fpr, "realname:"+uid)                  if email:
140                                          extraInfo(fpr, "x:"+fpr+":realname:"+uid)                          email = "email:" + email
141                          contents.close()                          merge(fpr, email)
142                            extraInfo(fpr, "x:"+fpr+":"+email)
143                    if uid:
144                            addName(uid, fpr)
145                            extraInfo(fpr, "realname:"+uid)
146                            extraInfo(fpr, "x:"+fpr+":realname:"+uid)
147            contents.close()
148    
149  def getLdap():  def getLdap():
150          l = ldap.initialize("ldap://db.debian.org/")          l = ldap.initialize("ldap://db.debian.org/")
# Line 256  def writeReport(fd): Line 263  def writeReport(fd):
263                  ldap, realname, email, package = [], [], [], []                  ldap, realname, email, package = [], [], [], []
264                  extra, expl, warnings, mia = [], [], [], []                  extra, expl, warnings, mia = [], [], [], []
265                  gecos = ""                  gecos = ""
266                  keyring = {'keyring': [], 'emeritus': [], 'removed': [], 'ldap': []}                  keyring = {'keyring': [], 'emeritus': [], 'removed': [], 'ldap': [], 'dm':[]}
267                  for item in sets.Set(v[1]+v[2]):                  for item in sets.Set(v[1]+v[2]):
268                          if item[:5] == "ldap:":                          if item[:5] == "ldap:":
269                                  ldap.append(item[5:])                                  ldap.append(item[5:])

Legend:
Removed from v.2389  
changed lines
  Added in v.2390

  ViewVC Help
Powered by ViewVC 1.1.5