[rhel7/master v2] Move save_netinfo into a hook (#1048231)

Brian C. Lane bcl at redhat.com
Tue Feb 4 17:13:42 UTC 2014


There were a couple of issues here - echoing a command into a hookfile
isn't the right way to setup a hook anymore, use inst_hook in
module-setup.sh for that. And the script was being run after
11-fetch-kickstart-net.sh because of its name. It is now installed as
00-anaconda-ifcfg.sh

This also changes new_dhcp_next_server to new_next_server, which is the
variable that is actually set by dhclient. This lets it find the nfs
server when it is different from the dhcp server.

Resolves: rhbz#1048231

-- NOTE: v2 changes new_dhcp_next_server to new_next_server thanks to the
--       reporter trying the fix.
---
 dracut/Makefile.am               | 1 +
 dracut/anaconda-ifcfg.sh         | 8 ++++++++
 dracut/fetch-kickstart-net.sh    | 2 +-
 dracut/module-setup.sh           | 1 +
 dracut/parse-anaconda-options.sh | 3 ---
 5 files changed, 11 insertions(+), 4 deletions(-)
 create mode 100755 dracut/anaconda-ifcfg.sh

diff --git a/dracut/Makefile.am b/dracut/Makefile.am
index 3bab16a..c3080bc 100644
--- a/dracut/Makefile.am
+++ b/dracut/Makefile.am
@@ -33,6 +33,7 @@ dist_dracut_SCRIPTS = module-setup.sh \
 		      anaconda-diskroot \
 		      anaconda-copy-ks.sh \
 		      anaconda-copy-cmdline.sh \
+		      anaconda-ifcfg.sh \
 		      fetch-kickstart-net.sh \
 		      fetch-kickstart-disk \
 		      fetch-updates-disk \
diff --git a/dracut/anaconda-ifcfg.sh b/dracut/anaconda-ifcfg.sh
new file mode 100755
index 0000000..c1718f1
--- /dev/null
+++ b/dracut/anaconda-ifcfg.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+command -v getarg >/dev/null || . /lib/dracut-lib.sh
+
+# initqueue/online hook passes interface name as $1
+netif="$1"
+
+# make sure we get ifcfg for every interface that comes up
+save_netinfo $netif
diff --git a/dracut/fetch-kickstart-net.sh b/dracut/fetch-kickstart-net.sh
index 685d842..018f0f7 100755
--- a/dracut/fetch-kickstart-net.sh
+++ b/dracut/fetch-kickstart-net.sh
@@ -22,7 +22,7 @@ if [ "$kickstart" = "nfs:auto" ]; then
     # construct kickstart URL from dhcp info
     # server is next_server, or the dhcp server itself if missing
     . /tmp/net.$netif.dhcpopts
-    server="${new_dhcp_next_server:-$new_dhcp_server_identifier}"
+    server="${new_next_server:-$new_dhcp_server_identifier}"
     # filename is dhcp 'filename' option, or '/kickstart/' if missing
     filename="/kickstart/"
     # read the dhcp lease file and see if we can find 'filename'
diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh
index 4dd8a4c..59d3ad7 100755
--- a/dracut/module-setup.sh
+++ b/dracut/module-setup.sh
@@ -32,6 +32,7 @@ install() {
     inst_hook pre-trigger 50 "$moddir/kickstart-genrules.sh"
     inst_hook pre-trigger 50 "$moddir/updates-genrules.sh"
     inst_hook initqueue/settled 00 "$moddir/anaconda-ks-sendheaders.sh"
+    inst_hook initqueue/online 00 "$moddir/anaconda-ifcfg.sh"
     inst_hook initqueue/online 80 "$moddir/anaconda-netroot.sh"
     inst "$moddir/anaconda-diskroot" "/sbin/anaconda-diskroot"
     inst_hook pre-pivot 50 "$moddir/anaconda-copy-ks.sh"
diff --git a/dracut/parse-anaconda-options.sh b/dracut/parse-anaconda-options.sh
index 4ed6650..caa977d 100755
--- a/dracut/parse-anaconda-options.sh
+++ b/dracut/parse-anaconda-options.sh
@@ -127,9 +127,6 @@ fi
 # for vnc bring network up in initramfs so that cmdline configuration is used
 getargbool 0 vnc inst.vnc && warn "anaconda requiring network for vnc" && set_neednet
 
-# make sure we get ifcfg for every interface that comes up
-echo 'save_netinfo $netif' > $hookdir/initqueue/online/anaconda-ifcfg.sh
-
 # Driver Update Disk
 warn_renamed_arg "dd" "inst.dd"
 
-- 
1.8.4.2



More information about the anaconda-patches mailing list