[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [PATCH 3/8] write ifname=eth#:MAC to kernel cmdline in grub.conf for dracut
- From: Martin Sivak <msivak redhat com>
- To: Discussion of Development and Customization of the Red Hat Linux Installer <anaconda-devel-list redhat com>
- Subject: Re: [PATCH 3/8] write ifname=eth#:MAC to kernel cmdline in grub.conf for dracut
- Date: Tue, 15 Sep 2009 04:05:39 -0400 (EDT)
You have typo in Could net get interface for route to %s.
The rest is more complicated, but I didn't see any obvious errors.
Martin
----- "Hans de Goede" <hdegoede redhat com> wrote:
> ---
> booty/bootloaderInfo.py | 2 +-
> network.py | 75
> ++++++++++++++++++++++++++++------------------
> 2 files changed, 47 insertions(+), 30 deletions(-)
>
> diff --git a/booty/bootloaderInfo.py b/booty/bootloaderInfo.py
> index cb1e16f..c004461 100644
> --- a/booty/bootloaderInfo.py
> +++ b/booty/bootloaderInfo.py
> @@ -97,7 +97,7 @@ class KernelArguments:
> import storage
> if isinstance(d,
> storage.devices.NetworkStorageDevice):
> args += " "
> - args +=
> self.id.network.dracutSetupString(d.host_address)
> + args += self.id.network.dracutSetupString(d)
>
> args += self.id.instLanguage.dracutSetupString()
> args += self.id.keyboard.dracutSetupString()
> diff --git a/network.py b/network.py
> index 104e420..e9f6ad8 100644
> --- a/network.py
> +++ b/network.py
> @@ -587,7 +587,7 @@ class Network:
> if anaconda is not None:
> import storage
> rootdev = anaconda.id.storage.rootDevice
> - # FIXME: use device.host_address to only add
> "NM_CONTROLLED=no"
> + # FIXME: use d.host_address to only add
> "NM_CONTROLLED=no"
> # for interfaces actually used enroute to the device
> for d in anaconda.id.storage.devices:
> if isinstance(d,
> storage.devices.NetworkStorageDevice) and\
> @@ -785,39 +785,56 @@ class Network:
> return False
>
> # get a kernel cmdline string for dracut needed for access to
> host host
> - def dracutSetupString(self, host):
> - if not host:
> - return ""
> + def dracutSetupString(self, networkStorageDevice):
> + netargs=""
>
> - # First of all find out which interface leads to host
> - route = iutil.execWithCapture("ip", [ "route", "get", "to",
> host ])
> - if not route:
> - log.error("Could net get interface for route to %s" %
> host)
> + if networkStorageDevice.nic:
> + # Storage bound to a specific nic (ie FCoE)
> + nic = networkStorageDevice.nic
> + else:
> + # Storage bound through ip, find out which interface
> leads to host
> + host = networkStorageDevice.host_address
> + route = iutil.execWithCapture("ip", [ "route", "get",
> "to", host ])
> + if not route:
> + log.error("Could net get interface for route to %s" %
> host)
> + return ""
> +
> + routeInfo = route.split()
> + if routeInfo[0] != host or len(routeInfo) < 5:
> + log.error('Unexpected "ip route get to %s" reply: %s'
> %
> + (host, routeInfo))
> + return ""
> +
> + nic = routeInfo[2]
> +
> + if nic not in self.netdevices.keys():
> + log.error('Unknown network interface: %s' % nic)
> return ""
>
> - routeInfo = route.split()
> - if routeInfo[0] != host or len(routeInfo) < 5:
> - log.error('Unexpected "ip route get to %s" reply: %s' %
> - (host, routeInfo))
> - return ""
> + dev = self.netdevices[nic]
>
> - if routeInfo[2] not in self.netdevices.keys():
> - log.error('Unknown network interface: %s' %
> routeInfo[2])
> - return ""
> + if networkStorageDevice.host_address:
> + if dev.get('bootproto').lower() == 'dhcp':
> + netargs += "ip=%s:dhcp" % nic
> + else:
> + if dev.get('GATEWAY'):
> + gateway = dev.get('GATEWAY')
> + else:
> + gateway = ""
>
> - dev = self.netdevices[routeInfo[2]]
> - if dev.get('bootproto').lower() == 'dhcp':
> - return "ip=%s:dhcp" % routeInfo[2]
> + if self.hostname:
> + hostname = self.hostname
> + else:
> + hostname = ""
>
> - if dev.get('GATEWAY'):
> - gateway = dev.get('GATEWAY')
> - else:
> - gateway = ""
> + netargs += "ip=%s::%s:%s:%s:%s:none" %
> (dev.get('ipaddr'),
> + gateway, dev.get('netmask'), hostname,
> nic)
>
> - if self.hostname:
> - hostname = self.hostname
> - else:
> - hostname = ""
> + hwaddr = dev.get("HWADDR")
> + if hwaddr:
> + if netargs != "":
> + netargs += " "
> +
> + netargs += "ifname=%s:%s" % (nic, hwaddr.lower())
>
> - return "ip=%s::%s:%s:%s:%s:none" % (dev.get('ipaddr'),
> gateway,
> - dev.get('netmask'), hostname, routeInfo[2])
> + return netargs
> --
> 1.6.4.2
>
> _______________________________________________
> Anaconda-devel-list mailing list
> Anaconda-devel-list redhat com
> https://www.redhat.com/mailman/listinfo/anaconda-devel-list
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]