[svn] r5307 - in trunk/tools/dstat: . examples

packagers at lists.rpmforge.net packagers at lists.rpmforge.net
Mon Apr 23 16:09:01 CEST 2007


Author: dag
Date: 2007-04-23 16:09:00 +0200 (Mon, 23 Apr 2007)
New Revision: 5307

Added:
   trunk/tools/dstat/examples/devtest.py
Modified:
   trunk/tools/dstat/ChangeLog
   trunk/tools/dstat/dstat
Log:
Improved dev() for kernel 2.4 device names. (Filippo Giunchedi)

Modified: trunk/tools/dstat/ChangeLog
===================================================================
--- trunk/tools/dstat/ChangeLog	2007-04-21 17:22:44 UTC (rev 5306)
+++ trunk/tools/dstat/ChangeLog	2007-04-23 14:09:00 UTC (rev 5307)
@@ -3,6 +3,7 @@
 - Fixed a file descriptor problem on kernel 2.4. (Liviu Daia)
 - Install manpage as part of the make install phase. (Scott Baker)
 - Use SIG_IGN instead of SIG_DFL to disable alarm signal.
+- Improved dev() for kernel 2.4 device names. (Filippo Giunchedi)
 
 * 0.6.5 - Torrox - released 17/04/2007
 - Added VMware ESX plugins (Bert de Bruijn)

Modified: trunk/tools/dstat/dstat
===================================================================
--- trunk/tools/dstat/dstat	2007-04-21 17:22:44 UTC (rev 5306)
+++ trunk/tools/dstat/dstat	2007-04-23 14:09:00 UTC (rev 5307)
@@ -1626,24 +1626,53 @@
 		return 'sdX'
 	return device
 
-def scsi_dev(nr):
-	"Convert sequential number into scsi device names"
-	if nr < 26:
-		return 'sd' + chr(ord('a') + nr)
-	else:
-		return 'sd' + chr(ord('a') - 1 + nr / 26) + chr(ord('a') + nr % 26)
-
 def dev(maj, min):
 	"Convert major/minor pairs into device names"
+	ram = [1, ]
+	ide = [3, 22, 33, 34, 56, 57, 88, 89, 90, 91]
+	loop = [7, ]
 	scsi = [8, 65, 66, 67, 68, 69, 70, 71, 128, 129, 130, 131, 132, 133, 134, 135]
-	ide = [3, 22, 33, 34, 56, 57, 88, 89, 90, 91]
+	md = [9, ]
+	ida = [72, 73, 74, 75, 76, 77, 78, 79]
+	ubd = [98,]
+	cciss = [104,]
+	dm =  [253,]
 	if maj in scsi:
-		nr = scsi.index(maj) * 16 + min
-#		nr = scsi.index(maj) * 16 + min / 16
-		return scsi_dev(nr)
+		disc = chr(ord('a') + scsi.index(maj) * 16 + min / 16)
+		part = min % 16
+		if not part: return 'sd%s' % disc
+		return 'sd%s%d' % (disc, part)
 	elif maj in ide:
-		nr = ide.index(maj) * 2 + min / 64
-		return 'hd' + chr(ord('a') + nr)
+		disc = chr(ord('a') + ide.index(maj) * 2 + min / 64)
+		part = min % 64
+		if not part: return 'hd%s' % disc
+		return 'hd%s%d' % (disc, part)
+	elif maj in dm:
+		return 'dm-%d' % min
+	elif maj in md:
+		return 'md%d' % min
+	elif maj in loop:
+		return 'loop%d' % min
+	elif maj in ram:
+		return 'ram%d' % min
+	elif maj in cciss:
+		disc = cciss.index(maj) * 16 + min / 16
+		part = min % 16
+		if not part: return 'c0d%d' % disc
+		return 'c0d%dp%d' % (disc, part)
+	elif maj in ida:
+		cont = ida.index(maj)
+		disc = min / 16
+		part = min % 16
+		if not part: return 'ida%d-%d' % (cont, disc)
+		return 'ida%d-%d-%d' % (cont, disc, part)
+	elif maj in ubd:
+		disc = ubd.index(maj) * 16 + min / 16
+		part = min % 16
+		if not part: return 'ubd%d' % disc
+		return 'ubd%d-%d' % (disc, part)
+	else:
+		return 'dev%d-%d' % (maj, min)
 
 #def mountpoint(dev):
 #	"Return the mountpoint of a mounted device/file"

Added: trunk/tools/dstat/examples/devtest.py
===================================================================
--- trunk/tools/dstat/examples/devtest.py	                        (rev 0)
+++ trunk/tools/dstat/examples/devtest.py	2007-04-23 14:09:00 UTC (rev 5307)
@@ -0,0 +1,32 @@
+#!/usr/bin/python
+
+import sys
+sys.path.insert(0, '/usr/share/dstat/')
+import dstat, time
+
+devices = ( 
+	(  1,   0, 'ram0'),
+	(  1,   1, 'ram1'),
+	(  3,   1, 'hda1'),
+	( 33,   0, 'hde'),
+	(  7,   0, 'loop0'),
+	(  7,   1, 'loop1'),
+	(  8,   0, '/dev/sda'),
+	(  8,   1, '/dev/sda1'),
+	(  8,  18, '/dev/sdb2'),
+	(  8,  37, '/dev/sdc5'),
+	(  9,   0, 'md0'),
+	(  9,   1, 'md1'),
+	(  9,   2, 'md2'),
+	( 74,  16, '/dev/ida/c2d1'),
+	( 77, 241, '/dev/ida/c5d15p1'),
+	( 98,   0, 'ubd/disc0/disc'),
+	( 98,  16, 'ubd/disc1/disc'),
+	(104,   0, 'cciss/c0d0'),
+	(104,   2, 'cciss/c0d0p2'),
+	(253,   0, 'dm-0'),
+	(253,   1, 'dm-1'),
+)
+
+for maj, min, device in devices:
+	print device, '->', dstat.dev(maj, min)


Property changes on: trunk/tools/dstat/examples/devtest.py
___________________________________________________________________
Name: svn:executable
   + *



More information about the svn-commits mailing list