You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
3.9 KiB
152 lines
3.9 KiB
From f86fa29cda6dcea1320de29864173d4de47c5bb7 Mon Sep 17 00:00:00 2001 |
|
From: Harald Hoyer <harald@redhat.com> |
|
Date: Tue, 9 Sep 2014 13:33:16 +0200 |
|
Subject: [PATCH] network/net-lib.sh:parse_iscsi_root() do not enforce target |
|
name |
|
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=1078867 |
|
|
|
cherry-picked from 29763cb72d17fe8d22766170ec06b32419829243 |
|
--- |
|
modules.d/40network/net-lib.sh | 112 +++++++++++++++------------------ |
|
1 file changed, 50 insertions(+), 62 deletions(-) |
|
|
|
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh |
|
index c8f92048..e2901dad 100755 |
|
--- a/modules.d/40network/net-lib.sh |
|
+++ b/modules.d/40network/net-lib.sh |
|
@@ -271,66 +271,46 @@ parse_iscsi_root() |
|
local v |
|
v=${1#iscsi:} |
|
|
|
-# extract authentication info |
|
+ # extract authentication info |
|
case "$v" in |
|
- *@*:*:*:*:*) |
|
- authinfo=${v%%@*} |
|
- v=${v#*@} |
|
- # allow empty authinfo to allow having an @ in iscsi_target_name like this: |
|
- # netroot=iscsi:@192.168.1.100::3260::iqn.2009-01.com.example:testdi@sk |
|
- if [ -n "$authinfo" ]; then |
|
- OLDIFS="$IFS" |
|
- IFS=: |
|
- set $authinfo |
|
- IFS="$OLDIFS" |
|
- if [ $# -gt 4 ]; then |
|
- warn "Wrong authentication info in iscsi: parameter!" |
|
- return 1 |
|
- fi |
|
- iscsi_username=$1 |
|
- iscsi_password=$2 |
|
- if [ $# -gt 2 ]; then |
|
- iscsi_in_username=$3 |
|
- iscsi_in_password=$4 |
|
- fi |
|
- fi |
|
- ;; |
|
- esac |
|
- |
|
-# extract target ip |
|
- case "$v" in |
|
- [[]*[]]:*) |
|
- iscsi_target_ip=${v#[[]} |
|
- iscsi_target_ip=${iscsi_target_ip%%[]]*} |
|
- v=${v#[[]$iscsi_target_ip[]]:} |
|
- ;; |
|
- *) |
|
- iscsi_target_ip=${v%%[:]*} |
|
- v=${v#$iscsi_target_ip:} |
|
- ;; |
|
+ *@*:*:*:*:*) |
|
+ authinfo=${v%%@*} |
|
+ v=${v#*@} |
|
+ # allow empty authinfo to allow having an @ in iscsi_target_name like this: |
|
+ # netroot=iscsi:@192.168.1.100::3260::iqn.2009-01.com.example:testdi@sk |
|
+ if [ -n "$authinfo" ]; then |
|
+ OLDIFS="$IFS" |
|
+ IFS=: |
|
+ set $authinfo |
|
+ IFS="$OLDIFS" |
|
+ if [ $# -gt 4 ]; then |
|
+ warn "Wrong authentication info in iscsi: parameter!" |
|
+ return 1 |
|
+ fi |
|
+ iscsi_username=$1 |
|
+ iscsi_password=$2 |
|
+ if [ $# -gt 2 ]; then |
|
+ iscsi_in_username=$3 |
|
+ iscsi_in_password=$4 |
|
+ fi |
|
+ fi |
|
+ ;; |
|
esac |
|
|
|
-# extract target name |
|
+ # extract target ip |
|
case "$v" in |
|
- *:iqn.*) |
|
- iscsi_target_name=iqn.${v##*:iqn.} |
|
- v=${v%:iqn.*}: |
|
- ;; |
|
- *:eui.*) |
|
- iscsi_target_name=iqn.${v##*:eui.} |
|
- v=${v%:iqn.*}: |
|
- ;; |
|
- *:naa.*) |
|
- iscsi_target_name=iqn.${v##*:naa.} |
|
- v=${v%:iqn.*}: |
|
- ;; |
|
- *) |
|
- warn "Invalid iscii target name, should begin with 'iqn.' or 'eui.' or 'naa.'" |
|
- return 1 |
|
- ;; |
|
+ [[]*[]]:*) |
|
+ iscsi_target_ip=${v#[[]} |
|
+ iscsi_target_ip=${iscsi_target_ip%%[]]*} |
|
+ v=${v#[[]$iscsi_target_ip[]]:} |
|
+ ;; |
|
+ *) |
|
+ iscsi_target_ip=${v%%[:]*} |
|
+ v=${v#$iscsi_target_ip:} |
|
+ ;; |
|
esac |
|
|
|
-# parse the rest |
|
+ # parse the rest |
|
OLDIFS="$IFS" |
|
IFS=: |
|
set $v |
|
@@ -338,17 +318,25 @@ parse_iscsi_root() |
|
|
|
iscsi_protocol=$1; shift # ignored |
|
iscsi_target_port=$1; shift |
|
- if [ $# -eq 3 ]; then |
|
- iscsi_iface_name=$1; shift |
|
- fi |
|
- if [ $# -eq 2 ]; then |
|
- iscsi_netdev_name=$1; shift |
|
+ |
|
+ if [ $# -gt 3 ] && [ -n "$1$2" ]; then |
|
+ iscsi_iface_name=$1; shift |
|
+ iscsi_netdev_name=$1; shift |
|
fi |
|
+ |
|
iscsi_lun=$1; shift |
|
- if [ $# -ne 0 ]; then |
|
- warn "Invalid parameter in iscsi: parameter!" |
|
- return 1 |
|
+ |
|
+ if [ $# -gt 2 ]; then |
|
+ warn "Invalid parameter in iscsi: parameter!" |
|
+ return 1 |
|
fi |
|
+ |
|
+ if [ $# -eq 2 ]; then |
|
+ iscsi_target_name="$1:$2" |
|
+ else |
|
+ iscsi_target_name="$1" |
|
+ fi |
|
+ |
|
} |
|
|
|
ip_to_var() {
|
|
|