To make code more clear, add a new wrapper function to let config write into file once, if kdump calls it repeatly with the same argument.
Make cleanup in function kdump_setup_iscsi_device.
Signed-off-by: Minfei Huang mhuang@redhat.com --- dracut-module-setup.sh | 37 ++++++++++++------------------------- kdump-lib.sh | 9 +++++++++ 2 files changed, 21 insertions(+), 25 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 9b398eb..0bf189b 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -497,15 +497,12 @@ kdump_get_iscsi_initiator() { # No ibft handling yet. kdump_setup_iscsi_device() { local path=$1 - local tgt_name; local tgt_ipaddr; - local username; local password; local userpwd_str; - local username_in; local password_in; local userpwd_in_str; - local netdev - local srcaddr - local idev - local netroot_str ; local initiator_str; + local tgt_name tgt_ipaddr + local username password userpwd_str + local username_in password_in userpwd_in_str + local netdev srcaddr + local netroot_str initiator_str local netroot_conf="${initdir}/etc/cmdline.d/50iscsi.conf" - local initiator_conf="/etc/iscsi/initiatorname.iscsi"
dinfo "Found iscsi component $1"
@@ -542,32 +539,22 @@ kdump_setup_iscsi_device() {
kdump_setup_netdev $netdev $srcaddr
- # prepare netroot= command line - # FIXME: Do we need to parse and set other parameters like protocol, port - # iscsi_iface_name, netdev_name, LUN etc. + [[ -f $netroot_conf ]] || touch $netroot_conf
if is_ipv6_address $tgt_ipaddr; then tgt_ipaddr="[$tgt_ipaddr]" fi - netroot_str="netroot=iscsi:${userpwd_str}${userpwd_in_str}@$tgt_ipaddr::::$tgt_name" - - [[ -f $netroot_conf ]] || touch $netroot_conf
- # If netroot target does not exist already, append. - if ! grep -q $netroot_str $netroot_conf; then - echo $netroot_str >> $netroot_conf - dinfo "Appended $netroot_str to $netroot_conf" - fi + # prepare netroot= command line + # FIXME: Do we need to parse and set other parameters like protocol, port + # iscsi_iface_name, netdev_name, LUN etc. + netroot_str="netroot=iscsi:${userpwd_str}${userpwd_in_str}@$tgt_ipaddr::::$tgt_name" + write_config_once "$netroot_str" "$netroot_conf"
# Setup initator initiator_str=$(kdump_get_iscsi_initiator) [ $? -ne "0" ] && derror "Failed to get initiator name" && return 1 - - # If initiator details do not exist already, append. - if ! grep -q "$initiator_str" $netroot_conf; then - echo "$initiator_str" >> $netroot_conf - dinfo "Appended "$initiator_str" to $netroot_conf" - fi + write_config_once "$netroot_str" "$netroot_conf" }
kdump_check_iscsi_targets () { diff --git a/kdump-lib.sh b/kdump-lib.sh index 4d34206..f6217a0 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -230,3 +230,12 @@ is_hostname() fi echo $1 | grep -q "[a-zA-Z]" } + +# $1: content to be appended to file +# $2: target file +write_config_once() +{ + if ! grep -q "$1" "$2"; then + echo "$1" >> "$2" + fi +}
On 09/19/15 at 02:03pm, Minfei Huang wrote:
To make code more clear, add a new wrapper function to let config write into file once, if kdump calls it repeatly with the same argument.
Make cleanup in function kdump_setup_iscsi_device.
Signed-off-by: Minfei Huang mhuang@redhat.com
dracut-module-setup.sh | 37 ++++++++++++------------------------- kdump-lib.sh | 9 +++++++++ 2 files changed, 21 insertions(+), 25 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 9b398eb..0bf189b 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -497,15 +497,12 @@ kdump_get_iscsi_initiator() { # No ibft handling yet. kdump_setup_iscsi_device() { local path=$1
- local tgt_name; local tgt_ipaddr;
- local username; local password; local userpwd_str;
- local username_in; local password_in; local userpwd_in_str;
- local netdev
- local srcaddr
- local idev
- local netroot_str ; local initiator_str;
- local tgt_name tgt_ipaddr
- local username password userpwd_str
- local username_in password_in userpwd_in_str
- local netdev srcaddr
- local netroot_str initiator_str local netroot_conf="${initdir}/etc/cmdline.d/50iscsi.conf"
local initiator_conf="/etc/iscsi/initiatorname.iscsi"
dinfo "Found iscsi component $1"
@@ -542,32 +539,22 @@ kdump_setup_iscsi_device() {
kdump_setup_netdev $netdev $srcaddr
- # prepare netroot= command line
- # FIXME: Do we need to parse and set other parameters like protocol, port
- # iscsi_iface_name, netdev_name, LUN etc.
[[ -f $netroot_conf ]] || touch $netroot_conf
if is_ipv6_address $tgt_ipaddr; then tgt_ipaddr="[$tgt_ipaddr]" fi
netroot_str="netroot=iscsi:${userpwd_str}${userpwd_in_str}@$tgt_ipaddr::::$tgt_name"
[[ -f $netroot_conf ]] || touch $netroot_conf
# If netroot target does not exist already, append.
if ! grep -q $netroot_str $netroot_conf; then
echo $netroot_str >> $netroot_conf
dinfo "Appended $netroot_str to $netroot_conf"
fi
# prepare netroot= command line
# FIXME: Do we need to parse and set other parameters like protocol, port
# iscsi_iface_name, netdev_name, LUN etc.
netroot_str="netroot=iscsi:${userpwd_str}${userpwd_in_str}@$tgt_ipaddr::::$tgt_name"
write_config_once "$netroot_str" "$netroot_conf"
# Setup initator initiator_str=$(kdump_get_iscsi_initiator) [ $? -ne "0" ] && derror "Failed to get initiator name" && return 1
- # If initiator details do not exist already, append.
- if ! grep -q "$initiator_str" $netroot_conf; then
echo "$initiator_str" >> $netroot_conf
dinfo "Appended "$initiator_str" to $netroot_conf"
- fi
- write_config_once "$netroot_str" "$netroot_conf"
}
kdump_check_iscsi_targets () { diff --git a/kdump-lib.sh b/kdump-lib.sh index 4d34206..f6217a0 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -230,3 +230,12 @@ is_hostname() fi echo $1 | grep -q "[a-zA-Z]" }
+# $1: content to be appended to file +# $2: target file +write_config_once()
append_config() is better? Just comment it about it will only append to target file once is enough.
+{
- if ! grep -q "$1" "$2"; then
echo "$1" >> "$2"
dinfo in original code is missing
- fi
+}
It is only used in one file so I think no need to move it to kdump-lib.sh though create a function is reasonable.
-- 2.1.0
kexec mailing list kexec@lists.fedoraproject.org https://lists.fedoraproject.org/mailman/listinfo/kexec
On 09/25/15 at 03:12pm, Dave Young wrote:
On 09/19/15 at 02:03pm, Minfei Huang wrote:
To make code more clear, add a new wrapper function to let config write into file once, if kdump calls it repeatly with the same argument.
Make cleanup in function kdump_setup_iscsi_device.
Signed-off-by: Minfei Huang mhuang@redhat.com
dracut-module-setup.sh | 37 ++++++++++++------------------------- kdump-lib.sh | 9 +++++++++ 2 files changed, 21 insertions(+), 25 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 9b398eb..0bf189b 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -497,15 +497,12 @@ kdump_get_iscsi_initiator() { # No ibft handling yet. kdump_setup_iscsi_device() { local path=$1
- local tgt_name; local tgt_ipaddr;
- local username; local password; local userpwd_str;
- local username_in; local password_in; local userpwd_in_str;
- local netdev
- local srcaddr
- local idev
- local netroot_str ; local initiator_str;
- local tgt_name tgt_ipaddr
- local username password userpwd_str
- local username_in password_in userpwd_in_str
- local netdev srcaddr
- local netroot_str initiator_str local netroot_conf="${initdir}/etc/cmdline.d/50iscsi.conf"
local initiator_conf="/etc/iscsi/initiatorname.iscsi"
dinfo "Found iscsi component $1"
@@ -542,32 +539,22 @@ kdump_setup_iscsi_device() {
kdump_setup_netdev $netdev $srcaddr
- # prepare netroot= command line
- # FIXME: Do we need to parse and set other parameters like protocol, port
- # iscsi_iface_name, netdev_name, LUN etc.
[[ -f $netroot_conf ]] || touch $netroot_conf
if is_ipv6_address $tgt_ipaddr; then tgt_ipaddr="[$tgt_ipaddr]" fi
netroot_str="netroot=iscsi:${userpwd_str}${userpwd_in_str}@$tgt_ipaddr::::$tgt_name"
[[ -f $netroot_conf ]] || touch $netroot_conf
# If netroot target does not exist already, append.
if ! grep -q $netroot_str $netroot_conf; then
echo $netroot_str >> $netroot_conf
dinfo "Appended $netroot_str to $netroot_conf"
fi
# prepare netroot= command line
# FIXME: Do we need to parse and set other parameters like protocol, port
# iscsi_iface_name, netdev_name, LUN etc.
netroot_str="netroot=iscsi:${userpwd_str}${userpwd_in_str}@$tgt_ipaddr::::$tgt_name"
write_config_once "$netroot_str" "$netroot_conf"
# Setup initator initiator_str=$(kdump_get_iscsi_initiator) [ $? -ne "0" ] && derror "Failed to get initiator name" && return 1
- # If initiator details do not exist already, append.
- if ! grep -q "$initiator_str" $netroot_conf; then
echo "$initiator_str" >> $netroot_conf
dinfo "Appended "$initiator_str" to $netroot_conf"
- fi
- write_config_once "$netroot_str" "$netroot_conf"
}
kdump_check_iscsi_targets () { diff --git a/kdump-lib.sh b/kdump-lib.sh index 4d34206..f6217a0 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -230,3 +230,12 @@ is_hostname() fi echo $1 | grep -q "[a-zA-Z]" }
+# $1: content to be appended to file +# $2: target file +write_config_once()
append_config() is better? Just comment it about it will only append to target file once is enough.
+{
- if ! grep -q "$1" "$2"; then
echo "$1" >> "$2"
dinfo in original code is missing
- fi
+}
It is only used in one file so I think no need to move it to kdump-lib.sh though create a function is reasonable.
Hmmm.. Maybe I can add this patch to iSCSI fixed patch set. Thus it is more reasonable to wrap new function.
Will post the new version with iSCSI fixed patchset.
Thanks Minfei