Added simplified ConfFile entry using myops_setup_sh
[myops.git] / web / collect / client / get_bootcd_version.sh
1 #!/bin/bash
2
3 kernel=$1
4 if [ -f /etc/planetlab/plc_config ]; then
5         source /etc/planetlab/plc_config
6 else
7         PLC_SLICE_PREFIX='pl'
8 fi
9
10 function get_version () {
11
12    DEVICE=$1
13    cd /tmp
14    if [ -f /mnt/boot/pl_version ]; then
15          cat /mnt/boot/pl_version 
16    fi
17 }
18 function get_kernel_version () {
19
20    DEVICE=$1
21    cd /tmp
22    if [ -f /mnt/boot/kernel ]; then
23          strings /mnt/boot/kernel | grep planetlab
24    else
25          echo "No kernel at /mnt/boot/kernel"
26    fi
27 }
28
29 function mount_works () {
30    DEVICE=$1
31    msg="mount: you must specify the filesystem type"
32    r=`mount $DEVICE /mnt/boot 2>&1`
33    if [ "$r" == "$msg" ] ; then 
34        return 1;
35    else
36        return 0;
37    fi
38 }
39
40 mkdir -p /mnt/boot
41 DL=`/home/${PLC_SLICE_PREFIX}_myops/sysinfo/systeminfo.py | sort -n | awk '{print $2}' | head -1`
42 if [ -z "$kernel" ] ; then
43     V="No BootImage Found"
44 else
45     V="Unable to find kernel image"
46 fi
47 (
48     flock -x 400
49     for dev in /dev/cdrom /dev/cdrom1 $DL ${DL}4 ${DL}1; do
50         if [ -b $dev ] ; then
51             if mount_works $dev ; then
52                 if [ -z "$kernel" ] ; then
53                     V=$( get_version $dev )
54                 else
55                     V=$( get_kernel_version $dev )
56                 fi
57                 r=`umount /mnt/boot 2>&1`
58                 msg2="umount: /mnt/boot: device is busy"
59                 if [ "$r" == "$msg2" ] ; then 
60                     r=`umount /mnt/boot 2>&1`
61                 fi
62                 break
63             fi
64         fi
65     done
66
67     if [ -z "$kernel" ] ; then
68         if [ -z "$V" ] ; then
69             wc=$( dmesg | grep "Buffer I/O error"  | wc -l )
70             if [ $wc -gt 0 ] ; then
71                 echo "Multiple IO errors prevent reading: $wc"
72             else 
73                 echo "No BootImage Found"
74             fi
75         else
76             echo $V
77         fi
78     else
79         echo $V
80     fi
81 ) 400>/var/lock/myops.mount