#!/bin/bash # Copyright (c) 2016 Red Hat, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Author: Lin Li source ../include/ec.sh || exit 200 function main (){ local exit_status=1 Multipath_installation || Fail "fail to install device-mapper-multipath" Print_kernel_info Print_multipath_pkginfo local stdout stderr Log "create the multipathed disk via scsi_debug" _init || Fail "fail to create the multipathed disk" Cmd "multipath -ll" Log "fail the multipathed disk" Cmd "echo 0 > /sys/bus/pseudo/drivers/scsi_debug/max_luns" Log "check the output of multipath & multipath -ll $mpath" #will print the unexpected output if the issue is still there #multipath to scan disks Cmd "multipath ; multipath -ll $mpath" stdout=${_STDOUT} stderr=${_STDERR} #mark as pass if no scsi_id error message observered echo $stdout $stderr | grep '/lib/udev/scsi_id exitted' 1>/dev/null || exit_status=0 Cmd "echo 2 > /sys/bus/pseudo/drivers/scsi_debug/max_luns" Cmd "multipath ; multipath -ll $mpath" _destroy return $exit_status } main || Fail "still print the message: scsi_id exitted while scanning the failed path" Pass