]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - cmd/zpool/zpool.d/ses
Vendor import of openzfs master @ 184df27eef0abdc7ab2105b21257f753834b936b
[FreeBSD/FreeBSD.git] / cmd / zpool / zpool.d / ses
1 #!/bin/sh
2 #
3 # Print SCSI Enclosure Services (SES) info. The output is dependent on the name
4 # of the script/symlink used to call it.
5 #
6 helpstr="
7 enc:            Show disk enclosure w:x:y:z value.
8 slot:           Show disk slot number as reported by the enclosure.
9 encdev:         Show /dev/sg* device associated with the enclosure disk slot.
10 fault_led:      Show value of the disk enclosure slot fault LED.
11 locate_led:     Show value of the disk enclosure slot locate LED.
12 ses:            Show disk's enc, enc device, slot, and fault/locate LED values."
13
14 script=$(basename "$0")
15 if [ "$1" = "-h" ] ; then
16         echo "$helpstr" | grep "$script:" | tr -s '\t' | cut -f 2-
17         exit
18 fi
19
20 if [ "$script" = "ses" ] ; then
21         scripts='enc encdev slot fault_led locate_led'
22 else
23         scripts="$script"
24 fi
25
26 for i in $scripts ; do
27         if [ -z "$VDEV_ENC_SYSFS_PATH" ] ; then
28                 echo "$i="
29                 continue
30         fi
31
32         val=""
33         case $i in
34         enc)
35                 val=$(ls "$VDEV_ENC_SYSFS_PATH/../../" 2>/dev/null)
36                 ;;
37         slot)
38                 val=$(cat "$VDEV_ENC_SYSFS_PATH/slot" 2>/dev/null)
39                 ;;
40         encdev)
41                 val=$(ls "$VDEV_ENC_SYSFS_PATH/../device/scsi_generic" 2>/dev/null)
42                 ;;
43         fault_led)
44                 val=$(cat "$VDEV_ENC_SYSFS_PATH/fault" 2>/dev/null)
45                 ;;
46         locate_led)
47                 val=$(cat "$VDEV_ENC_SYSFS_PATH/locate" 2>/dev/null)
48                 ;;
49         esac
50         echo "$i=$val"
51 done
52