[rhel7-branch 1/1] Fix kickstart install with infiniband (#1177032)
jkonecny12
installerbot-noreply at redhat.com
Wed Jul 1 07:44:08 UTC 2015
From: Jiri Konecny <jkonecny at redhat.com>
Split infiniband from "802-3-ethernet" with different NetworkManager
settings.
Resolves: rhbz#1177032
---
pyanaconda/network.py | 20 ++++++++++++++++++--
pyanaconda/nm.py | 19 +++++++++++++++++--
2 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/pyanaconda/network.py b/pyanaconda/network.py
index 30cf74e..a5413c3 100644
--- a/pyanaconda/network.py
+++ b/pyanaconda/network.py
@@ -517,6 +517,14 @@ def add_connection_for_ksdata(networkdata, devname):
suuid = _add_slave_connection('bridge', slave, devname, networkdata.activate)
added_connections.append((suuid, slave))
dev_spec = None
+ # type "infiniband"
+ elif nm.nm_device_type_is_infiniband(devname):
+ values.append(['infiniband', 'transport-mode', 'datagram', 's'])
+ values.append(['connection', 'type', 'infiniband', 's'])
+ values.append(['connection', 'id', devname, 's'])
+ values.append(['connection', 'interface-name', devname, 's'])
+
+ dev_spec = None
# type "802-3-ethernet"
else:
mac = nm.nm_device_perm_hwaddress(devname)
@@ -780,6 +788,8 @@ def find_ifcfg_file_of_device(devname, root_path=""):
ifcfg_path = find_ifcfg_file([("DEVICE", devname)])
elif nm.nm_device_type_is_bridge(devname):
ifcfg_path = find_ifcfg_file([("DEVICE", devname)])
+ elif nm.nm_device_type_is_infiniband(devname):
+ ifcfg_path = find_ifcfg_file([("DEVICE", devname)])
elif nm.nm_device_type_is_ethernet(devname):
try:
hwaddr = nm.nm_device_perm_hwaddress(devname)
@@ -965,7 +975,10 @@ def ks_spec_to_device_name(ksspec=""):
# "XX:XX:XX:XX:XX:XX" (mac address)
elif ':' in ksspec:
try:
- hwaddr = nm.nm_device_perm_hwaddress(dev)
+ if nm.nm_device_type_is_infiniband(dev):
+ hwaddr = nm.nm_device_hwaddress(dev)
+ else:
+ hwaddr = nm.nm_device_perm_hwaddress(dev)
except ValueError as e:
log.debug("ks_spec_to_device_name: %s", e)
continue
@@ -975,7 +988,10 @@ def ks_spec_to_device_name(ksspec=""):
# "bootif" and BOOTIF==XX:XX:XX:XX:XX:XX
elif ksspec == 'bootif':
try:
- hwaddr = nm.nm_device_perm_hwaddress(dev)
+ if nm.nm_device_type_is_infiniband(dev):
+ hwaddr = nm.nm_device_hwaddress(dev)
+ else:
+ hwaddr = nm.nm_device_perm_hwaddress(dev)
except ValueError as e:
log.debug("ks_spec_to_device_name: %s", e)
continue
diff --git a/pyanaconda/nm.py b/pyanaconda/nm.py
index f08f981..7fa016e 100644
--- a/pyanaconda/nm.py
+++ b/pyanaconda/nm.py
@@ -297,6 +297,15 @@ def nm_device_type_is_ethernet(name):
"""
return nm_device_type(name) == NetworkManager.DeviceType.ETHERNET
+def nm_device_type_is_infiniband(name):
+ """Is the type of device infiniband?
+
+ Exceptions:
+ UnknownDeviceError if device is not found
+ PropertyNotFoundError if type is not found
+ """
+ return nm_device_type(name) == NetworkManager.DeviceType.INFINIBAND
+
def nm_device_type_is_bond(name):
"""Is the type of device bond?
@@ -561,7 +570,10 @@ def nm_hwaddr_to_device_name(hwaddr):
:rtype: str
"""
for device in nm_devices():
- if nm_device_perm_hwaddress(device).upper() == hwaddr.upper():
+ if nm_device_type_is_infiniband(device):
+ if nm_device_hwaddress(device).upper() == hwaddr.upper():
+ return device
+ elif nm_device_perm_hwaddress(device).upper() == hwaddr.upper():
return device
return None
@@ -613,7 +625,10 @@ def _device_settings(name):
settings = _find_settings(name, 'connection', 'interface-name')
if not settings:
try:
- hwaddr_str = nm_device_perm_hwaddress(name)
+ if nm_device_type_is_infiniband(name):
+ hwaddr_str = nm_device_hwaddress(name)
+ else:
+ hwaddr_str = nm_device_perm_hwaddress(name)
except PropertyNotFoundError:
settings = []
else:
--
To view this commit on github, visit https://github.com/rhinstaller/anaconda/commit/b5ea1f4d43e2f10d2f8165f4dc7c376c34c76561
More information about the anaconda-patches
mailing list