[kexec-tools: 3/3] Resolves: bz805773 cleanup module_setup.sh, move code blocks to functions.

Dave Young yangrr at fedoraproject.org
Mon May 14 02:42:29 UTC 2012


commit 70dbef86563ace5b71a6df6f415286a11d8ccb51
Author: Dave Young <dyoung at redhat.com>
Date:   Mon May 14 10:36:18 2012 +0800

    Resolves: bz805773
    cleanup module_setup.sh, move code blocks to functions.
    
    [v1->v2]: vivek: add kdump_ prefix to kdump functions because dracut
              source this file
    
    Signed-off-by: Dave Young <dyoung at redhat.com>
    Acked-by: Vivek Goyal <vgoyal at redhat.com>

 dracut-module-setup.sh |   90 ++++++++++++++++++++++++++++--------------------
 1 files changed, 53 insertions(+), 37 deletions(-)
---
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
index 03e3894..ff06112 100755
--- a/dracut-module-setup.sh
+++ b/dracut-module-setup.sh
@@ -17,7 +17,7 @@ depends() {
     return 0
 }
 
-to_udev_name() {
+kdump_to_udev_name() {
     local dev="$1"
 
     case "$dev" in
@@ -31,61 +31,78 @@ to_udev_name() {
     echo ${dev#/dev/}
 }
 
-is_bridge() {
+kdump_is_bridge() {
      [ -d /sys/class/net/"$1"/bridge ]
 }
 
-is_bond() {
+kdump_is_bond() {
      [ -d /sys/class/net/"$1"/bonding ]
 }
 
-install() {
+#Function:kdump_install_net
+#$1: config values of net line in kdump.conf
+kdump_install_net() {
     local _server
     local _netdev
+    local config_val="$1"
+
+    if strstr "$config_val" "@"; then
+        _server=`echo $config_val | sed 's/.*@//' | cut -d':' -f1`
+        else
+            _server=$(echo $config_val | sed -e 's#\(.*\):.*#\1#')
+        fi
+
+    _need_dns=`echo $_server|grep "[a-zA-Z]"`
+    [ -n "$_need_dns" ] && _server=`getent hosts $_server|cut -d' ' -f1`
 
+    _netdev=`/sbin/ip route get to $_server 2>&1`
+    [ $? != 0 ] && echo "Bad kdump location: $config_val" && exit 1
+
+    #the field in the ip output changes if we go to another subnet
+    if [ -n "`echo $_netdev | grep via`" ]
+    then
+        # we are going to a different subnet
+        _netdev=`echo $_netdev|awk '{print $5;}'|head -n 1`
+    else
+        # we are on the same subnet
+        _netdev=`echo $_netdev|awk '{print $3}'|head -n 1`
+    fi
+
+    _netmac=`ip addr show $_netdev 2>/dev/null|awk '/ether/{ print $2 }'`
+    echo " ip=$_netdev:dhcp ifname=$_netdev:$_netmac rd.neednet=1" > ${initdir}/etc/cmdline.d/40ip.conf
+
+    if kdump_is_bridge "$_netdev"; then
+        echo " bridge=$_netdev:$(cd /sys/class/net/$_netdev/brif/; echo *)" > ${initdir}/etc/cmdline.d/41bridge.conf
+    elif kdump_is_bond "$_netdev"; then
+        echo " bond=$_netdev:\"$(cat /sys/class/net/$_netdev/bonding/slaves)\"" > ${initdir}/etc/cmdline.d/42bond.conf
+        #TODO
+        #echo "bondoptions=\"$bondoptions\"" >> /tmp/$$-bond
+    else
+        :
+    fi
+}
+
+#install kdump.conf and what user specifies in kdump.conf
+kdump_install_conf() {
     sed -ne '/^#/!p' /etc/kdump.conf > /tmp/$$-kdump.conf
+
     while read config_opt config_val;
     do
         case "$config_opt" in
         ext[234]|xfs|btrfs|minix|raw)
-            sed -i -e "s#$config_val#/dev/$(to_udev_name $config_val)#" /tmp/$$-kdump.conf
+            sed -i -e "s#$config_val#/dev/$(kdump_to_udev_name $config_val)#" /tmp/$$-kdump.conf
             ;;
         net)
-            if strstr "$config_val" "@"; then
-                _server=`echo $config_val | sed 's/.*@//' | cut -d':' -f1`
-            else
-                _server=$(echo $config_val | sed -e 's#\(.*\):.*#\1#')
-            fi
-
-            _need_dns=`echo $_server|grep "[a-zA-Z]"`
-            [ -n "$_need_dns" ] && _server=`getent hosts $_server|cut -d' ' -f1`
-
-            _netdev=`/sbin/ip route get to $_server 2>&1`
-            [ $? != 0 ] && echo "Bad kdump location: $config_val" && exit 1
-            #the field in the ip output changes if we go to another subnet
-            if [ -n "`echo $_netdev | grep via`" ]
-            then
-                # we are going to a different subnet
-                _netdev=`echo $_netdev|awk '{print $5;}'|head -n 1`
-            else
-                # we are on the same subnet
-                _netdev=`echo $_netdev|awk '{print $3}'|head -n 1`
-            fi
-            _netmac=`ip addr show $_netdev 2>/dev/null|awk '/ether/{ print $2 }'`
-            echo " ip=$_netdev:dhcp ifname=$_netdev:$_netmac rd.neednet=1" > ${initdir}/etc/cmdline.d/40ip.conf
-            if is_bridge "$_netdev"; then
-                echo " bridge=$_netdev:$(cd /sys/class/net/$_netdev/brif/; echo *)" > ${initdir}/etc/cmdline.d/41bridge.conf
-            elif is_bond "$_netdev"; then
-                echo " bond=$_netdev:\"$(cat /sys/class/net/$_netdev/bonding/slaves)\"" > ${initdir}/etc/cmdline.d/42bond.conf
-                #TODO
-                #echo "bondoptions=\"$bondoptions\"" >> /tmp/$$-bond
-            else
-                :
-            fi
+            kdump_install_net "$config_val"
             ;;
         esac
     done < /etc/kdump.conf
 
+    inst "/tmp/$$-kdump.conf" "/etc/kdump.conf"
+}
+
+install() {
+    kdump_install_conf
     inst "$moddir/monitor_dd_progress" "/kdumpscripts/monitor_dd_progress"
     chmod +x ${initdir}/kdumpscripts/monitor_dd_progress
     inst "/bin/dd" "/bin/dd"
@@ -94,6 +111,5 @@ install() {
     inst "/bin/sync" "/bin/sync"
     inst "/bin/cut" "/bin/cut"
     inst "/sbin/makedumpfile" "/sbin/makedumpfile"
-    inst "/tmp/$$-kdump.conf" "/etc/kdump.conf"
     inst_hook pre-pivot 9999 "$moddir/kdump.sh"
 }


More information about the scm-commits mailing list