[PATCH master] Take over dhcp connection by NM for network root (eg nfs) (#883451, #893656)
Radek Vykydal
rvykydal at redhat.com
Fri Jan 11 15:41:34 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 | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/dracut/parse-kickstart b/dracut/parse-kickstart
index 333849b..24d0488 100755
--- a/dracut/parse-kickstart
+++ b/dracut/parse-kickstart
@@ -267,7 +267,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 = readsysfile("/proc/sys/kernel/random/uuid")
+ 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 +306,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)
+ os.system("cp %s %s" % (srcpath, dstpath))
+
try:
log.info("writing ifcfg for %s", dev)
outf = open(filename, "w")
@@ -312,6 +322,7 @@ def ksnet_to_ifcfg(net, filename=None):
for k,v in ifcfg.items():
outf.write("%s=%s\n" % (k,v))
outf.close()
+
except IOError as e:
log.error("can't write %s: %s" % (filename, str(e)))
else:
--
1.7.11.7
More information about the anaconda-patches
mailing list