add more info to sliceavg
[monitor.git] / statistics / parserpms.py
index 64144d7..ef885e8 100755 (executable)
@@ -36,7 +36,7 @@ def main():
     parser.set_defaults( select=None,
                          input=None,
                          frequency=False,
-                         package=False,
+                         package=True,
                         )
 
     parser.add_option("", "--input", dest="input", 
@@ -45,7 +45,7 @@ def main():
                         help="the pattern to pull out from rpm list")
     parser.add_option("", "--frequency", dest="frequency", action="store_true",
                         help="print the frequency of packages matched by select")
-    parser.add_option("", "--package", dest="package", action="store_true",
+    parser.add_option("", "--disablepackage", dest="package", action="store_false",
                         help="print the frequency of each pl package")
     (config, args) = parser.parse_args()
     if len(sys.argv) == 1 or config.input is None:
@@ -55,7 +55,7 @@ def main():
 
     rpmlist = fileutil.getListFromFile(config.input)
 
-    current_packages = ['NodeManager-1.8-5.planetlab',
+    current_packages_old = ['NodeManager-1.8-5.planetlab',
                 'NodeUpdate-0.5-4.planetlab', 'codemux-0.1-13.planetlab',
                 'fprobe-ulog-1.1.3-0.planetlab', 'ipod-2.2-1.planetlab',
                 'iproute-2.6.16-2.planetlab', 'iptables-1.3.8-9.planetlab',
@@ -69,12 +69,25 @@ def main():
                 'vserver-systemslices-planetlab-f8-i386-4.2-12.2009.05.27',
                 'vsys-0.9-3.planetlab', 'vsys-scripts-0.95-3.planetlab']
 
+    current_packages = ['NodeManager-1.8-12.planetlab.1',
+                'NodeUpdate-0.5-4.planetlab', 'codemux-0.1-13.planetlab',
+                'fprobe-ulog-1.1.3-0.planetlab', 'ipod-2.2-1.planetlab',
+                'iproute-2.6.16-2.planetlab', 'iptables-1.3.8-9.planetlab',
+                'kernel-2.6.22.19-vs2.3.0.34.39.planetlab',
+                'madwifi-0.9.4-2.6.22.19.3.planetlab', 'monitor-client-3.0-17.planetlab',
+                'monitor-runlevelagent-3.0-17.planetlab', 'pl_mom-2.3-1.planetlab',
+                'pl_sshd-1.0-11.planetlab', 'pyplnet-4.3-3.planetlab',
+                'util-vserver-pl-0.3-17.planetlab',
+                'vserver-planetlab-f8-i386-4.2-12.2009.06.23',
+                'vserver-systemslices-planetlab-f8-i386-4.2-12.2009.06.23',
+                'vsys-0.9-3.planetlab', 'vsys-scripts-0.95-11.planetlab']
+
     # PL RPMS
     if config.package:
         all_patterns = map(lambda x: ".*" + x + ".*", [ 'NodeManager', 
                 'NodeUpdate', 'codemux', 'fprobe', 'ipod',
                 'iproute', 'iptables', 'kernel', 'madwifi', 'monitor-client', 
-                'monitor-runlevelagent', 'monitor', 'oombailout', 'pl_mom', 
+                'monitor-runlevelagent', 'oombailout', 'pl_mom', 
                 'pl_sshd', 'pyplnet', 'util-vserver-pl', 'vserver-planetlab-f8-i386', 
                 'vserver-systemslices-planetlab-f8-i386', 'vsys-scripts', 'vsys'])
     else:
@@ -82,11 +95,12 @@ def main():
     
     for pattern in all_patterns:
         return_sums = {}
+        print "%s --------------------" % pattern
         for line in rpmlist:
             line = line.strip()
-            fields = line.split()
-            host = fields[1]
-            rpms = fields[2:]
+            fields = line.split(",")
+            host = fields[0]
+            rpms = fields[2].split()
             rpms.sort()
             rpms = pick_some_rpms(pattern, rpms)
             if len(rpms) != 0:
@@ -100,14 +114,22 @@ def main():
                 return_sums[sum]['diff'] = set(rpms) - set(current_packages) 
 
         if config.frequency:
-            print "Frequency for packages that matched: %s" % pattern
+            #print "Frequency for packages that matched: %s" % pattern
             sum_list = []
             for sum in return_sums:
                 sum_list.append((len(return_sums[sum]['hosts']), sum))
 
             sum_list.sort(lambda a,b: cmp(b[0], a[0]))
             for sum in sum_list:
-                print sum[0], sum[1], map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff'])
+                print sum[0], sum[1]
+                #if len(return_sums[sum[1]]['hosts']) < 5:
+                #    print sum[0], sum[1], map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff']) #, return_sums[sum[1]]['hosts']
+                #else:
+                #    print sum[0], sum[1], map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff'])
+                #print sum[0], sum[1], len(map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff']))
 
 if __name__ == "__main__":
-    main()
+    try:
+        main()
+    except IOError:
+        pass