Added Solaris support in Gnucomo report scripts.
[gnucomo.git] / scripts / gnucomo_hardware
diff --git a/scripts/gnucomo_hardware b/scripts/gnucomo_hardware
new file mode 100755 (executable)
index 0000000..2ec1492
--- /dev/null
@@ -0,0 +1,168 @@
+#!/bin/sh
+#
+# Gnucomo hardware reporting script
+#
+# Create a parameter report with 4 values:
+
+
+### FUNCTIONS ####
+HP_PROLIANT()
+#Works on G5, G6, G7
+{
+   DMIBIOSVER=`dmidecode -s bios-version`
+   DMIMAN=`dmidecode -s system-manufacturer`
+   DMIPROD=`dmidecode -s system-product-name`
+   DMISER=`dmidecode -s system-serial-number`
+   USPREL=`cat /etc/issue | grep USP | awk '{print $1 " " $2}'`
+   USPKERN=`uname -r`
+
+   echo "      <gcmt:parameter name='System_info'>"
+   echo "         <gcmt:description>System information</gcmt:description>"
+   echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+   echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+   echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+   echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+   echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+   echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+#
+#  The default Linux way without assuming specific hardware.
+#
+LINUX()
+{
+   DMIBIOSVER=`dmidecode -s bios-version`
+   DMIMAN=`dmidecode -s system-manufacturer`
+   DMIPROD=`dmidecode -s system-product-name`
+   DMISER=`dmidecode -s system-serial-number`
+   USPREL=`cat /etc/issue | head -1`
+   USPKERN=`uname -r`
+
+   echo "      <gcmt:parameter name='System_info'>"
+   echo "         <gcmt:description>System information</gcmt:description>"
+   echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+   echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+   echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+   echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+   echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+   echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+
+SUN_SPARC_ENTERPRISE_T5120()
+{
+   DMIBIOSVER=`prtpicl -c chassis -v | grep FW-version | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+   DMIMAN=`prtpicl -c chassis -v | grep :MfgName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+   DMIPROD=`prtpicl -c chassis -v | grep :Description | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+   DMISER=`prtpicl -c chassis -v | grep :SerialNumber | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+   USPREL=`uname -sr`
+   USPKERN=`uname -v`
+
+   echo "      <gcmt:parameter name='System_info'>"
+   echo "         <gcmt:description>System information</gcmt:description>"
+   echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+   echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+   echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+   echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+   echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+   echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+SUN_SPARC_ENTERPRISE_T5220()
+{
+   DMIBIOSVER=`prtpicl -c chassis -v | grep FW-version | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+   DMIMAN=`prtpicl -c chassis -v | grep :MfgName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+   DMIPROD=`prtpicl -c chassis -v | grep :ModelName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+   DMISER=`prtpicl -c chassis -v | grep :SerialNumber | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+   USPREL=`uname -sr`
+   USPKERN=`uname -v`
+
+   echo "      <gcmt:parameter name='System_info'>"
+   echo "         <gcmt:description>System information</gcmt:description>"
+   echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+   echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+   echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+   echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+   echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+   echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+SUN_FIRE_V()
+{
+   DMIBIOSVER="N/A"
+   DMIMAN="Sun Microsystems, Inc. "
+   DMIPROD=`uname -i | cut -d"," -f2`
+   DMISER=`prtpicl -c chassis-serial-number -v | grep SerialNumber | awk '{print $2}'`
+   USPREL=`uname -sr`
+   USPKERN=`uname -v`
+
+   echo "      <gcmt:parameter name='System_info'>"
+   echo "         <gcmt:description>System information</gcmt:description>"
+   echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+   echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+   echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+   echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+   echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+   echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+PATH=$PATH:/usr/sbin
+
+HOST=`hostname`
+TIME=`date`
+OS=`uname`
+
+echo "<?xml version='1.0'?>"
+echo "<gcmt:message xmlns:gcmt='http://gnucomo.org/transport/'>"
+echo "  <gcmt:header>"
+echo "      <gcmt:messagetype>XML</gcmt:messagetype>"
+echo "      <gcmt:hostname>$HOST</gcmt:hostname>"
+echo "      <gcmt:time>$TIME</gcmt:time>"
+echo "   </gcmt:header>"
+echo "   <gcmt:data>"
+
+echo "   <gcmt:parameters gcmt:class='hardware'>"
+
+# insert correct system info here:
+
+case $OS in
+   "Linux")
+      #starting linux detection procedure
+      PROD=`dmidecode -s system-product-name`
+      case $PROD in
+         "ProLiant DL380"*)
+            HP_PROLIANT
+            ;;
+         "hp workstation xw8200")
+            HP_PROLIANT
+            ;;
+         *)
+            LINUX
+            ;;
+      esac
+      ;;
+   "SunOS")
+      #starting sun detection procedure
+      PROD=`uname -i`
+      case $PROD in
+         "SUNW,SPARC-Enterprise-T5220")
+            SUN_SPARC_ENTERPRISE_T5220
+            ;;
+         "SUNW,SPARC-Enterprise-T5120")
+            SUN_SPARC_ENTERPRISE_T5120
+            ;;
+         "SUNW,Sun-Fire-V245")
+            SUN_FIRE_V
+            ;;
+      esac
+      ;;
+esac
+
+
+
+echo "      </gcmt:parameter>"
+
+echo "   </gcmt:parameters>"
+echo "  </gcmt:data>"
+echo "</gcmt:message>"
+