3 # Print SCSI Enclosure Services (SES) info. The output is dependent on the name
4 # of the script/symlink used to call it.
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."
15 if [ "$1" = "-h" ] ; then
16 echo "$helpstr" |
grep "$script:" |
tr -s '\t' | cut
-f 2-
20 if [ "$script" = "ses" ] ; then
21 scripts
='enc encdev slot fault_led locate_led'
26 for i
in $scripts ; do
27 # shellcheck disable=SC2154
28 if [ -z "$VDEV_ENC_SYSFS_PATH" ] ; then
36 if echo "$VDEV_ENC_SYSFS_PATH" |
grep -q '/sys/bus/pci/slots' ; then
37 val
="$VDEV_ENC_SYSFS_PATH"
39 val
="$(ls """$VDEV_ENC_SYSFS_PATH/..
/..
/""" 2>/dev/null)"
43 if echo "$VDEV_ENC_SYSFS_PATH" |
grep -q '/sys/bus/pci/slots' ; then
44 val
="$(basename """$VDEV_ENC_SYSFS_PATH""")"
46 val
="$(cat """$VDEV_ENC_SYSFS_PATH/slot
""" 2>/dev/null)"
50 val
=$
(ls "$VDEV_ENC_SYSFS_PATH/../device/scsi_generic" 2>/dev
/null
)
53 # JBODs fault LED is called 'fault', NVMe fault LED is called
55 if [ -f "$VDEV_ENC_SYSFS_PATH/fault" ] ; then
56 val
=$
(cat "$VDEV_ENC_SYSFS_PATH/fault" 2>/dev
/null
)
57 elif [ -f "$VDEV_ENC_SYSFS_PATH/attention" ] ; then
58 val
=$
(cat "$VDEV_ENC_SYSFS_PATH/attention" 2>/dev
/null
)
62 val
=$
(cat "$VDEV_ENC_SYSFS_PATH/locate" 2>/dev
/null
)