| #!/bin/sh |
| # |
| # Print SCSI Enclosure Services (SES) info. The output is dependent on the name |
| # of the script/symlink used to call it. |
| # |
| helpstr=" |
| enc: Show disk enclosure w:x:y:z value. |
| slot: Show disk slot number as reported by the enclosure. |
| encdev: Show /dev/sg* device associated with the enclosure disk slot. |
| fault_led: Show value of the disk enclosure slot fault LED. |
| locate_led: Show value of the disk enclosure slot locate LED. |
| ses: Show disk's enc, enc device, slot, and fault/locate LED values." |
| |
| script="${0##*/}" |
| if [ "$1" = "-h" ] ; then |
| echo "$helpstr" | grep "$script:" | tr -s '\t' | cut -f 2- |
| exit |
| fi |
| |
| if [ "$script" = "ses" ] ; then |
| scripts='enc encdev slot fault_led locate_led' |
| else |
| scripts="$script" |
| fi |
| |
| for i in $scripts ; do |
| if [ -z "$VDEV_ENC_SYSFS_PATH" ] ; then |
| echo "$i=" |
| continue |
| fi |
| |
| val="" |
| case $i in |
| enc) |
| val=$(ls "$VDEV_ENC_SYSFS_PATH/../../" 2>/dev/null) |
| ;; |
| slot) |
| val=$(cat "$VDEV_ENC_SYSFS_PATH/slot" 2>/dev/null) |
| ;; |
| encdev) |
| val=$(ls "$VDEV_ENC_SYSFS_PATH/../device/scsi_generic" 2>/dev/null) |
| ;; |
| fault_led) |
| # JBODs fault LED is called 'fault', NVMe fault LED is called |
| # 'attention'. |
| if [ -f "$VDEV_ENC_SYSFS_PATH/fault" ] ; then |
| val=$(cat "$VDEV_ENC_SYSFS_PATH/fault" 2>/dev/null) |
| elif [ -f "$VDEV_ENC_SYSFS_PATH/attention" ] ; then |
| val=$(cat "$VDEV_ENC_SYSFS_PATH/attention" 2>/dev/null) |
| fi |
| ;; |
| locate_led) |
| val=$(cat "$VDEV_ENC_SYSFS_PATH/locate" 2>/dev/null) |
| ;; |
| esac |
| echo "$i=$val" |
| done |
| |