95iscsi: Fix network setup code for iscsi

- The network script and config could be in
  "/etc/sysconfig/network-scripts", so try look for network config in
  all possible path.

- The regex used for sed is not working, so fix it too.

- Make bootproto a local variable

Signed-off-by: Kairui Song <kasong@redhat.com>
master
Kairui Song 2019-06-23 20:22:34 +08:00 committed by Harald Hoyer
parent 7934c6f918
commit 7b76fa924d
1 changed files with 9 additions and 2 deletions

View File

@ -74,6 +74,7 @@ install_iscsiroot() {
local devpath=$1 local devpath=$1
local scsi_path iscsi_lun session c d conn host flash local scsi_path iscsi_lun session c d conn host flash
local iscsi_session iscsi_address iscsi_port iscsi_targetname iscsi_tpgt local iscsi_session iscsi_address iscsi_port iscsi_targetname iscsi_tpgt
local bootproto


scsi_path=${devpath%%/block*} scsi_path=${devpath%%/block*}
[ "$scsi_path" = "$devpath" ] && return 1 [ "$scsi_path" = "$devpath" ] && return 1
@ -121,8 +122,14 @@ install_iscsiroot() {
local_address=$(ip -o route get to $iscsi_address | sed -n 's/.*src \([0-9a-f.:]*\).*/\1/p') local_address=$(ip -o route get to $iscsi_address | sed -n 's/.*src \([0-9a-f.:]*\).*/\1/p')
ifname=$(ip -o route get to $iscsi_address | sed -n 's/.*dev \([^ ]*\).*/\1/p') ifname=$(ip -o route get to $iscsi_address | sed -n 's/.*dev \([^ ]*\).*/\1/p')


#follow ifcfg settings for boot protocol # follow ifcfg settings for boot protocol
bootproto=$(sed -n "/BOOTPROTO/s/BOOTPROTO='\([[:alpha:]]*6\?\)4\?'/\1/p" /etc/sysconfig/network/ifcfg-$ifname) for _path in \
"/etc/sysconfig/network-scripts/ifcfg-$ifname" \
"/etc/sysconfig/network/ifcfg-$ifname" \
; do
[ -f "$_path" ] && bootproto=$(sed -n "s/BOOTPROTO='\?\([[:alpha:]]*6\?\)4\?/\1/p" "$_path")
done

if [ $bootproto ]; then if [ $bootproto ]; then
printf 'ip=%s:%s ' ${ifname} ${bootproto} printf 'ip=%s:%s ' ${ifname} ${bootproto}
else else