Blob Blame History Raw
--- dstat-0.6.9/dstat	2008-12-02 21:23:05.000000000 +0100
+++ dstat-0.6.9/dstat.counts	2008-12-15 22:32:33.000000000 +0100
@@ -630,6 +630,7 @@ class dstat_cpu24(dstat):
 class dstat_disk(dstat):
     def __init__(self):
         self.format = ('f', 5, 1024)
+        self.diskfilter = re.compile('(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)')
         self.open('/proc/diskstats')
         self.nick = ('read', 'writ')
         self.discover = self.discover()
@@ -658,7 +659,7 @@ class dstat_disk(dstat):
             varlist = []
             blockdevices = [os.path.basename(filename) for filename in glob.glob('/sys/block/*')]
             for name in self.discover:
-                if re.match('(md[0-9]+|dm-[0-9]+)', name): continue
+                if self.diskfilter.match(name): continue
                 if name not in blockdevices: continue
                 varlist.append(name)
 #           if len(varlist) > 2: varlist = varlist[0:2]
@@ -676,7 +677,7 @@ class dstat_disk(dstat):
             if l[5] == '0' and l[9] == '0': continue
             name = l[2]
             if l[3:] == ['0',] * 11: continue
-            if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+            if not self.diskfilter.match(name):
                 self.cn2['total'] = ( self.cn2['total'][0] + long(l[5]), self.cn2['total'][1] + long(l[9]) )
             if name in self.vars and name != 'total':
                 self.cn2[name] = ( self.cn2[name][0] + long(l[5]), self.cn2[name][1] + long(l[9]) )
@@ -696,6 +697,7 @@ class dstat_disk(dstat):
 class dstat_disk24(dstat):
     def __init__(self):
         self.format = ('f', 5, 1024)
+        self.diskfilter = re.compile('(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)')
         self.open('/proc/partitions')
         self.nick = ('read', 'writ')
         self.discover = self.discover()
@@ -724,7 +726,7 @@ class dstat_disk24(dstat):
         else:
             varlist = []
             for name in self.discover:
-                if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+                if not self.diskfilter.match(name):
                     varlist.append(name)
 #           if len(varlist) > 2: varlist = varlist[0:2]
             varlist.sort()
@@ -739,7 +741,7 @@ class dstat_disk24(dstat):
             l = line.split()
             if len(l) < 15 or l[0] == 'major' or int(l[1]) % 16 != 0: continue
             name = l[3]
-            if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+            if not self.diskfilter.match(name):
                 self.cn2['total'] = ( self.cn2['total'][0] + long(l[6]), self.cn2['total'][1] + long(l[10]) )
             if name in self.vars:
                 self.cn2[name] = ( self.cn2[name][0] + long(l[6]), self.cn2[name][1] + long(l[10]) )
@@ -760,6 +762,7 @@ class dstat_disk24(dstat):
 class dstat_disk24old(dstat):
     def __init__(self):
         self.format = ('f', 5, 1024)
+        self.diskfilter = re.compile('(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)')
         self.open('/proc/stat')
         self.nick = ('read', 'writ')
         self.regexp = re.compile('^\((\d+),(\d+)\):\(\d+,\d+,(\d+),\d+,(\d+)\)$')
@@ -795,7 +798,7 @@ class dstat_disk24old(dstat):
         else:
             varlist = []
             for name in self.discover:
-                if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+                if not self.diskfilter.match(name):
                     varlist.append(name)
 #           if len(varlist) > 2: varlist = varlist[0:2]
             varlist.sort()
@@ -817,7 +820,7 @@ class dstat_disk24old(dstat):
                 l = m.groups()
                 if len(l) < 4: continue
                 name = dev(int(l[0]), int(l[1]))
-                if not re.match('(md[0-9]+)', name):
+                if not self.diskfilter.match(name):
                     self.cn2['total'] = ( self.cn2['total'][0] + long(l[2]), self.cn2['total'][1] + long(l[3]) )
                 if name in self.vars and name != 'total':
                     self.cn2[name] = ( self.cn2[name][0] + long(l[2]), self.cn2[name][1] + long(l[3]) )
@@ -1021,6 +1024,7 @@ class dstat_int24(dstat):
 class dstat_io(dstat):
     def __init__(self):
         self.format = ('f', 5, 1000)
+        self.diskfilter = re.compile('(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)')
         self.open('/proc/diskstats')
         self.nick = ('read', 'writ')
         self.discover = self.discover()
@@ -1049,7 +1053,7 @@ class dstat_io(dstat):
             varlist = []
             blockdevices = [os.path.basename(filename) for filename in glob.glob('/sys/block/*')]
             for name in self.discover:
-                if re.match('(md[0-9]+|dm-[0-9]+)', name): continue
+                if self.diskfilter.match(name): continue
                 if name not in blockdevices: continue
                 varlist.append(name)
 #           if len(varlist) > 2: varlist = varlist[0:2]
@@ -1067,7 +1071,7 @@ class dstat_io(dstat):
             if l[3] == '0' and l[7] == '0': continue
             name = l[2]
             if l[3:] == ['0',] * 11: continue
-            if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+            if not self.diskfilter.match(name):
                 self.cn2['total'] = ( self.cn2['total'][0] + long(l[3]), self.cn2['total'][1] + long(l[7]) )
             if name in self.vars and name != 'total':
                 self.cn2[name] = ( self.cn2[name][0] + long(l[3]), self.cn2[name][1] + long(l[7]) )