[PATCH master] (v2) Take over dhcp connection by NM for network root (eg nfs) (#883451, #893656)

Radek Vykydal rvykydal at redhat.com
Tue Jan 15 10:20:21 UTC 2013


We need to pass dhcp lease file to NM's dhclient also in case of
kickstart installs. For non-kickstart case, this is done in dracut,
modules.d/45ifcfg/write-ifcfg.sh.
See dracut's commit 66666c670a462548df4ea4c8069d54b8c309ecf4
---
 dracut/parse-kickstart | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/dracut/parse-kickstart b/dracut/parse-kickstart
index 333849b..7aeaecd 100755
--- a/dracut/parse-kickstart
+++ b/dracut/parse-kickstart
@@ -13,6 +13,8 @@
 
 import sys, os
 import logging
+import shutil
+import uuid
 from pykickstart.parser import KickstartParser, preprocessKickstart
 from pykickstart.version import returnClassForVersion
 from pykickstart.errors import KickstartError
@@ -267,7 +269,8 @@ def ksnet_to_ifcfg(net, filename=None):
             os.makedirs("/tmp/ifcfg")
     ifcfg['DEVICE'] = dev
     ifcfg['HWADDR'] = readsysfile("/sys/class/net/%s/address" % dev)
-    ifcfg['UUID'] = readsysfile("/proc/sys/kernel/random/uuid")
+    uuid = str(uuid.uuid4())
+    ifcfg['UUID'] = uuid
     # we set real ONBOOT value in anaconda, here
     # we use it to activate devcies by NM on start
     ifcfg['ONBOOT'] = "yes" if net.activate else "no"
@@ -305,6 +308,15 @@ def ksnet_to_ifcfg(net, filename=None):
 
     # TODO: dhcpclass, ethtool, essid/wepkey/wpakay, etc.
 
+    if net.bootProto == 'dhcp':
+        srcpath = "/tmp/dhclient.%s.lease" % dev
+        dstdir = "/tmp/ifcfg-leases"
+        dstpath = "%s/dhclient-%s-%s.lease" % (dstdir, uuid, dev)
+        if os.path.exists(srcpath):
+            if not os.path.isdir(dstdir):
+                os.makedirs(dstdir)
+            shutil.copyfile(srcpath, dstpath)
+
     try:
         log.info("writing ifcfg for %s", dev)
         outf = open(filename, "w")
-- 
1.7.11.7



More information about the anaconda-patches mailing list