Package: partman

This is a re-submit to add the package header line.  Disreard
the previous email w/ this same subject line.  Sorry.

Partman doesn't know how to display the info for various integrated
raid controllers.  In particular, it cannot display for the HP SMART
controller (cciss).  This patch properly parses and displays the
controller.

Patch set follows as attachment

Jim

-- 
*************
Jim Lieb                        Wild Open Source Inc.
[EMAIL PROTECTED]               Cell: 831.295.9317
Office: 831.421.0883            Fax:  831.421.0885
Index: partman/debian/changelog
===================================================================
--- partman/debian/changelog	(revision 21745)
+++ partman/debian/changelog	(working copy)
@@ -1,3 +1,10 @@
+partman (57) unstable; urgency=HIGH
+
+  * Jim Lieb
+    - add correct name handling of cciss raid controllers
+
+ -- Jim Lieb <[EMAIL PROTECTED]>  Wed,  8 Sep 2004 16:00:00 -0700
+
 partman (56) unstable; urgency=low
 
   * Joey Hess
Index: partman/definitions.sh
===================================================================
--- partman/definitions.sh	(revision 21745)
+++ partman/definitions.sh	(working copy)
@@ -501,6 +501,40 @@
 	    db_metaget partman/text/scsi_partition description
 	    printf "$RET" ${scsinum} ${bus} ${target} ${lun} ${part} ${linux}
 	    ;;
+	/dev/cciss/*)
+	    # /dev/cciss/hostN/targetM/disc is 2.6 form
+	    # /dev/cciss/discM/disk seems to be 2.4 form
+	    line=`echo $1 | sed 's,/dev/cciss/\([a-z]*\)\([0-9]*\)/\(.*\),\1 \2 \3,'`
+	    cont=`echo "$line" | cut -d" " -f2`
+	    host=`echo "$line" | cut -d" " -f1`
+	    line=`echo "$line" | cut -d" " -f3`
+	    if [ "$host" = host ] ; then
+	       line=`echo "$line" | sed 's,target\([0-9]*\)/\([a-z]*\)\(.*\),\1 \2 \3,'`
+	       lun=`echo  "$line" | cut -d" " -f1`
+	       disc=`echo "$line" | cut -d" " -f2`
+	       part=`echo "$line" | cut -d" " -f3`
+	    else
+	       line=`echo "$line" | sed 's,disc\([0-9]*\)/\([a-z]*\)\(.*\),\1 \2 \3,'`
+	       lun=`echo  "$line" | cut -d" " -f1`
+	       if [ "$lun" > 15 ] ; then
+	          cont=$(($lun / 16))
+		  lun=$(($lun % 16))
+	       else
+		  cont=0
+	       fi
+	       disc=`echo "$line" | cut -d" " -f2`
+	       part=`echo "$line" | cut -d" " -f3`
+	    fi
+	    linux=$(mapdevfs $1)
+	    linux=${linux#/dev/}
+	    if [ "$disc" = disc ] ; then
+	       db_metaget partman/text/scsi_disk description
+	       printf "$RET" ".CCISS" "-" ${cont} ${lun} ${linux}
+	    else
+	       db_metaget partman/text/scsi_partition description
+	       printf "$RET" ".CCISS" "-" ${cont} ${lun} ${part} ${linux}
+	    fi
+	    ;;
 	/dev/md/*)
 	    device=`echo "$1" | sed -e "s/.*md\/\?\(.*\)/\1/"`
 	    type=`grep "^md${device}[ :]" /proc/mdstat | sed -e "s/^.* : active raid\([[:alnum:]]\).*/\1/"`

Reply via email to