rpms/dstat/devel dstat-0.6.9-counts.patch, NONE, 1.1 dstat.spec, 1.13, 1.14

Zdenek Prikryl zprikryl at fedoraproject.org
Tue Dec 23 11:29:32 UTC 2008


Author: zprikryl

Update of /cvs/extras/rpms/dstat/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv9430

Modified Files:
	dstat.spec 
Added Files:
	dstat-0.6.9-counts.patch 
Log Message:
Fixed wrong total disk counts (#476935)


dstat-0.6.9-counts.patch:

--- NEW FILE dstat-0.6.9-counts.patch ---
--- 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]) )


Index: dstat.spec
===================================================================
RCS file: /cvs/extras/rpms/dstat/devel/dstat.spec,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- dstat.spec	4 Dec 2008 17:53:32 -0000	1.13
+++ dstat.spec	23 Dec 2008 11:28:58 -0000	1.14
@@ -4,13 +4,14 @@
 Summary: Versatile resource statistics tool
 Name: dstat
 Version: 0.6.9
-Release: 2%{?dist}
+Release: 3%{?dist}
 License: GPLv2
 Group: System Environment/Base
 URL: http://dag.wieers.com/home-made/dstat/
 
 Source: http://dag.wieers.com/home-made/dstat/dstat-%{version}.tar.bz2
 Patch0: dstat-0.6.8-dbus.patch
+Patch1: dstat-0.6.9-counts.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root%(%{__id_u} -n)
 
 BuildArch: noarch
@@ -35,6 +36,7 @@
 %prep
 %setup -q
 %patch0 -p1 -b .dbus
+%patch1 -p1 -b .counts
 
 %build
 # Make sure the docs are in unix format
@@ -65,6 +67,9 @@
 %{_datadir}/dstat/*.py*
 
 %changelog
+* Tue Dec 23 2008 Zdenek Prikryl <zprikryl at redhat.com> - 0.6.9-3
+- Fixed wrong total disk counts (#476935)
+
 * Thu Dec 04 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm at gmail.com> - 0.6.9-2
 - Rebuild for Python 2.6
 




More information about the fedora-extras-commits mailing list