Added Solaris support in Gnucomo report scripts.
[gnucomo.git] / scripts / gnucomo_hardware
1 #!/bin/sh
2 #
3 # Gnucomo hardware reporting script
4 #
5 # Create a parameter report with 4 values:
6
7
8 ### FUNCTIONS ####
9 HP_PROLIANT()
10 #Works on G5, G6, G7
11 {
12    DMIBIOSVER=`dmidecode -s bios-version`
13    DMIMAN=`dmidecode -s system-manufacturer`
14    DMIPROD=`dmidecode -s system-product-name`
15    DMISER=`dmidecode -s system-serial-number`
16    USPREL=`cat /etc/issue | grep USP | awk '{print $1 " " $2}'`
17    USPKERN=`uname -r`
18
19    echo "      <gcmt:parameter name='System_info'>"
20    echo "         <gcmt:description>System information</gcmt:description>"
21    echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
22    echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
23    echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
24    echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
25    echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
26    echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
27 }
28
29 #
30 #  The default Linux way without assuming specific hardware.
31 #
32 LINUX()
33 {
34    DMIBIOSVER=`dmidecode -s bios-version`
35    DMIMAN=`dmidecode -s system-manufacturer`
36    DMIPROD=`dmidecode -s system-product-name`
37    DMISER=`dmidecode -s system-serial-number`
38    USPREL=`cat /etc/issue | head -1`
39    USPKERN=`uname -r`
40
41    echo "      <gcmt:parameter name='System_info'>"
42    echo "         <gcmt:description>System information</gcmt:description>"
43    echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
44    echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
45    echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
46    echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
47    echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
48    echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
49 }
50
51
52 SUN_SPARC_ENTERPRISE_T5120()
53 {
54    DMIBIOSVER=`prtpicl -c chassis -v | grep FW-version | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
55    DMIMAN=`prtpicl -c chassis -v | grep :MfgName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
56    DMIPROD=`prtpicl -c chassis -v | grep :Description | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
57    DMISER=`prtpicl -c chassis -v | grep :SerialNumber | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
58    USPREL=`uname -sr`
59    USPKERN=`uname -v`
60
61    echo "      <gcmt:parameter name='System_info'>"
62    echo "         <gcmt:description>System information</gcmt:description>"
63    echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
64    echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
65    echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
66    echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
67    echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
68    echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
69 }
70
71 SUN_SPARC_ENTERPRISE_T5220()
72 {
73    DMIBIOSVER=`prtpicl -c chassis -v | grep FW-version | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
74    DMIMAN=`prtpicl -c chassis -v | grep :MfgName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
75    DMIPROD=`prtpicl -c chassis -v | grep :ModelName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
76    DMISER=`prtpicl -c chassis -v | grep :SerialNumber | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
77    USPREL=`uname -sr`
78    USPKERN=`uname -v`
79
80    echo "      <gcmt:parameter name='System_info'>"
81    echo "         <gcmt:description>System information</gcmt:description>"
82    echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
83    echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
84    echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
85    echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
86    echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
87    echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
88 }
89
90 SUN_FIRE_V()
91 {
92    DMIBIOSVER="N/A"
93    DMIMAN="Sun Microsystems, Inc. "
94    DMIPROD=`uname -i | cut -d"," -f2`
95    DMISER=`prtpicl -c chassis-serial-number -v | grep SerialNumber | awk '{print $2}'`
96    USPREL=`uname -sr`
97    USPKERN=`uname -v`
98
99    echo "      <gcmt:parameter name='System_info'>"
100    echo "         <gcmt:description>System information</gcmt:description>"
101    echo "         <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
102    echo "         <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
103    echo "         <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
104    echo "         <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
105    echo "         <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
106    echo "         <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
107 }
108
109 PATH=$PATH:/usr/sbin
110
111 HOST=`hostname`
112 TIME=`date`
113 OS=`uname`
114
115 echo "<?xml version='1.0'?>"
116 echo "<gcmt:message xmlns:gcmt='http://gnucomo.org/transport/'>"
117 echo "  <gcmt:header>"
118 echo "      <gcmt:messagetype>XML</gcmt:messagetype>"
119 echo "      <gcmt:hostname>$HOST</gcmt:hostname>"
120 echo "      <gcmt:time>$TIME</gcmt:time>"
121 echo "   </gcmt:header>"
122 echo "   <gcmt:data>"
123
124 echo "   <gcmt:parameters gcmt:class='hardware'>"
125
126 # insert correct system info here:
127
128 case $OS in
129    "Linux")
130       #starting linux detection procedure
131       PROD=`dmidecode -s system-product-name`
132       case $PROD in
133          "ProLiant DL380"*)
134             HP_PROLIANT
135             ;;
136          "hp workstation xw8200")
137             HP_PROLIANT
138             ;;
139          *)
140             LINUX
141             ;;
142       esac
143       ;;
144    "SunOS")
145       #starting sun detection procedure
146       PROD=`uname -i`
147       case $PROD in
148          "SUNW,SPARC-Enterprise-T5220")
149             SUN_SPARC_ENTERPRISE_T5220
150             ;;
151          "SUNW,SPARC-Enterprise-T5120")
152             SUN_SPARC_ENTERPRISE_T5120
153             ;;
154          "SUNW,Sun-Fire-V245")
155             SUN_FIRE_V
156             ;;
157       esac
158       ;;
159 esac
160
161
162
163 echo "      </gcmt:parameter>"
164
165 echo "   </gcmt:parameters>"
166 echo "  </gcmt:data>"
167 echo "</gcmt:message>"
168