diff -r 7685cec9fd3c -r f2ddfa555b0f doc/api/python/parsedatalistening-pysrc.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/api/python/parsedatalistening-pysrc.html Fri Sep 11 11:54:49 2009 +0100
@@ -0,0 +1,479 @@
+
+
+
+
+ parsedatalistening
+
+
+
+
+
+
+
+
+
+
+
+ Module parsedatalistening
+
+ |
+
+
+ |
+
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20 import urllib
+ 21 import gzip
+ 22 import tempfile
+ 23 import os
+ 24 import sys
+ 25 import xml.etree.ElementTree as ElementTree
+ 26 from processing import Pool, freezeSupport
+ 27
+ 33
+ 35 - def __init__(self, id, user, success, targets):
+
36 self.id = id
+
37 self.user = user
+
38 self.success = success
+
39 self.targets = targets
+
40
+ 42 f = gzip.open(infile, 'r')
+
43 success = True
+
44 username = ''
+
45 targets = []
+
46 for event, elem in ElementTree.iterparse(f):
+
47 if elem.tag == 'build':
+
48 name = elem.get('status')
+
49 if name != 'successful':
+
50 success = False
+
51 if elem.tag == 'target':
+
52 name = elem.get('name')
+
53 id = elem.get('id')
+
54 if name != None:
+
55 targets.append(Target(name, id, 0))
+
56 if elem.tag == 'targetRef':
+
57 ref = elem.get('reference')
+
58 if ref != None:
+
59 for t in targets:
+
60 if t.start == ref:
+
61 t.start = int(elem.get('startTime'))
+
62 t.end = int(elem.get('endTime'))
+
63 if elem.tag == 'property':
+
64 if elem.get('name') == 'user.name':
+
65 username = elem.get('value')
+
66
+
67 elem.clear()
+
68
+
69 f.close()
+
70
+
71 return Build(infile, username, success, targets)
+
72
+ 73 if __name__ == '__main__':
+ 74 freezeSupport()
+ 75
+ 76 outdir = os.path.join(tempfile.gettempdir(), 'helium_data')
+ 77 if not os.path.exists(outdir):
+ 78 os.mkdir(outdir)
+ 79
+ 80 files = []
+ 81 pool = Pool()
+ 82
+ 83 for n in range(1, 100):
+ 84
+ 85 try:
+ 86
+ 87 infile = os.path.join(outdir, '%(#)08d_data.xml.gz' % {"#": n})
+ 88
+ 89 if not os.path.exists(infile):
+ 90 urllib.urlretrieve("http://helium.nmp.nokia.com/data/internaldata/%(#)08d_data.xml.gz" % {"#": n}, infile)
+ 91
+ 92 files.append(infile)
+ 93
+ 94 except Exception, e:
+ 95 print e
+ 96
+ 97 builds = pool.map(parseXml, files)
+ 98
+ 99 targets = {}
+100 targetsfailing = {}
+101 users = {}
+102
+103 for build in builds:
+104
+105 if users.has_key(build.user):
+106 users[build.user] = users[build.user] + 1
+107 else:
+108 users[build.user] = 1
+109
+110 for value in build.targets:
+111
+112
+113
+114
+115
+116 if targets.has_key(value.name):
+117
+118 (no, time) = targets[value.name]
+119 targets[value.name] = (no + 1, time + (value.end - value.start))
+120 else:
+121 targets[value.name] = (1, (value.end - value.start))
+122
+123 if not build.success:
+124 if targetsfailing.has_key(value.name):
+125 targetsfailing[value.name] = targetsfailing[value.name] + 1
+126 else:
+127 targetsfailing[value.name] = 1
+128
+129 print 'Users:'
+130
+131 for key in users.keys():
+132 print '%05d' % users[key] + ' ' + key
+133
+134 print 'Calls,Targets,TimeSeconds'
+135
+136 for key in targets.keys():
+137 (no, time) = targets[key]
+138 print '%05d' % no + ',' + key + ',%07d' % int(time/1000)
+139
+140 print 'Targets failing:'
+141
+142 for key in targetsfailing.keys():
+143 print '%05d' % targetsfailing[key] + ' ' + key
+144
+
+
+
+
+
+
+
+
+
+