Blame SOURCES/0013-Python-3-ethtool-and-indentation-fixes.patch

1330ca
From 4a23a3cc1b9d1ab1238aadbd7945aa93c21f7638 Mon Sep 17 00:00:00 2001
1330ca
From: Tomas Kasparek <tkasparek@redhat.com>
1330ca
Date: Mon, 5 Mar 2018 11:39:34 +0100
1330ca
Subject: [PATCH 13/17] Python 3 ethtool and indentation fixes
1330ca
1330ca
---
1330ca
 koan/utils.py | 98 ++++++++++++++++++++++++++++++++---------------------------
1330ca
 1 file changed, 54 insertions(+), 44 deletions(-)
1330ca
1330ca
diff --git a/koan/utils.py b/koan/utils.py
1330ca
index e202bd5..0cd48ea 100644
1330ca
--- a/koan/utils.py
1330ca
+++ b/koan/utils.py
1330ca
@@ -367,50 +367,60 @@ def uniqify(lst, purge=None):
1330ca
    return list(temp.keys())
1330ca
 
1330ca
 def get_network_info():
1330ca
-   try:
1330ca
-      import ethtool
1330ca
-   except:
1330ca
-      try:
1330ca
-         import rhpl.ethtool
1330ca
-         ethtool = rhpl.ethtool
1330ca
-      except:
1330ca
-           raise InfoException("the rhpl or ethtool module is required to use this feature (is your OS>=EL3?)")
1330ca
-
1330ca
-   interfaces = {}
1330ca
-   # get names
1330ca
-   inames  = ethtool.get_devices()
1330ca
-
1330ca
-   for iname in inames:
1330ca
-      mac = ethtool.get_hwaddr(iname)
1330ca
-
1330ca
-      if mac == "00:00:00:00:00:00":
1330ca
-         mac = "?"
1330ca
-
1330ca
-      try:
1330ca
-         ip  = ethtool.get_ipaddr(iname)
1330ca
-         if ip == "127.0.0.1":
1330ca
-            ip = "?"
1330ca
-      except:
1330ca
-         ip  = "?"
1330ca
-
1330ca
-      bridge = 0
1330ca
-      module = ""
1330ca
-
1330ca
-      try:
1330ca
-         nm  = ethtool.get_netmask(iname)
1330ca
-      except:
1330ca
-         nm  = "?"
1330ca
-
1330ca
-      interfaces[iname] = {
1330ca
-         "ip_address"  : ip,
1330ca
-         "mac_address" : mac,
1330ca
-         "netmask"     : nm,
1330ca
-         "bridge"      : bridge,
1330ca
-         "module"      : module
1330ca
-      }
1330ca
-
1330ca
-   # print(interfaces)
1330ca
-   return interfaces
1330ca
+    try: # python 2
1330ca
+        import ethtool
1330ca
+        ethtool_available = True
1330ca
+    except ImportError:  # python 3
1330ca
+        import netifaces
1330ca
+        ethtool_available = False
1330ca
+
1330ca
+    interfaces = {}
1330ca
+    # get names
1330ca
+    if ethtool_available:
1330ca
+        inames = ethtool.get_devices()
1330ca
+    else:
1330ca
+        inames = netifaces.interfaces()
1330ca
+
1330ca
+    for iname in inames:
1330ca
+        if ethtool_available:
1330ca
+            mac = ethtool.get_hwaddr(iname)
1330ca
+        else:
1330ca
+            mac = netifaces.ifaddresses(iname)[netifaces.AF_LINK][0]['addr']
1330ca
+
1330ca
+        if mac == "00:00:00:00:00:00":
1330ca
+            mac = "?"
1330ca
+
1330ca
+        try:
1330ca
+            if ethtool_available:
1330ca
+                ip = ethtool.get_ipaddr(iname)
1330ca
+            else:
1330ca
+                ip = netifaces.ifaddresses(iname)[netifaces.AF_INET][0]['addr']
1330ca
+            if ip == "127.0.0.1":
1330ca
+                ip = "?"
1330ca
+        except:
1330ca
+            ip  = "?"
1330ca
+
1330ca
+        bridge = 0
1330ca
+        module = ""
1330ca
+
1330ca
+        try:
1330ca
+            if ethtool_available:
1330ca
+                nm  = ethtool.get_netmask(iname)
1330ca
+            else:
1330ca
+                nm = netifaces.ifaddresses(iname)[netifaces.AF_INET][0]['netmask']
1330ca
+        except:
1330ca
+            nm  = "?"
1330ca
+
1330ca
+        interfaces[iname] = {
1330ca
+            "ip_address"  : ip,
1330ca
+            "mac_address" : mac,
1330ca
+            "netmask"     : nm,
1330ca
+            "bridge"      : bridge,
1330ca
+            "module"      : module
1330ca
+        }
1330ca
+
1330ca
+    # print(interfaces)
1330ca
+    return interfaces
1330ca
 
1330ca
 def connect_to_server(server=None,port=None):
1330ca
 
1330ca
-- 
1330ca
2.5.5
1330ca