diff options
author | David Cantrell <dcantrell@redhat.com> | 2008-10-02 02:26:31 -1000 |
---|---|---|
committer | David Cantrell <dcantrell@redhat.com> | 2008-10-02 02:26:31 -1000 |
commit | 47138291a6ee6e38aed60bee72c477df683f3c86 (patch) | |
tree | e2e81afa78cade0f295eb75c36dd29ceb2deba2e /network.py | |
parent | 3f7a9d9b41ee4c363d00467b21dedba1d97832be (diff) | |
download | anaconda-47138291a6ee6e38aed60bee72c477df683f3c86.tar.gz anaconda-47138291a6ee6e38aed60bee72c477df683f3c86.tar.xz anaconda-47138291a6ee6e38aed60bee72c477df683f3c86.zip |
Automatically select NIC based on ksdevice= boot parameter.
If you boot with boot.iso and pass ksdevice=DEVICE or
ksdevice=MACADDR, use that to automatically select the NIC to use
when we ask the user to bring up the network for installation.
Diffstat (limited to 'network.py')
-rw-r--r-- | network.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/network.py b/network.py index af314aba5..cdaa9938c 100644 --- a/network.py +++ b/network.py @@ -226,6 +226,7 @@ class NetworkDevice(SimpleConfigFile): class Network: def __init__(self): self.netdevices = {} + self.ksdevice = None self.domains = [] self.hostname = socket.gethostname() self.overrideDHCPhostname = False @@ -337,6 +338,10 @@ class Network: return self.netdevices[device] def available(self): + ksdevice = None + if flags.cmdline.has_key('ksdevice'): + ksdevice = flags.cmdline['ksdevice'] + # XXX: this should use NetworkManager for device in minihal.get_devices_by_type("net"): if device.has_key('net.arp_proto_hw_id'): @@ -344,15 +349,26 @@ class Network: dev = device['device'] if not self.netdevices.has_key(dev): self.netdevices[dev] = NetworkDevice(dev); - self.netdevices[dev].set(('hwaddr', device['net.address'])) - self.netdevices[dev].set(('desc', device['description'])) + self.netdevices[dev].set(('HWADDR', device['net.address'])) + self.netdevices[dev].set(('DESC', device['description'])) - ksdevice = None - if flags.cmdline.has_key("ksdevice"): - ksdevice = flags.cmdline["ksdevice"] + if ksdevice == dev: + self.ksdevice = dev + elif ksdevice.find(':') != -1: + if ksdevice.lower() == device['net.address'].lower(): + self.ksdevice = dev return self.netdevices + def getKSDevice(self): + if self.ksdevice is None: + return None + + try: + return self.netdevices[self.ksdevice] + except: + return None + def setHostname(self, hn): self.hostname = hn |