Ubuntu Pastebin

Paste from smoser at Thu, 20 Oct 2016 17:09:48 +0000

Download as text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
diff --git a/cloudinit/net/__init__.py b/cloudinit/net/__init__.py
index 4cfe367..5d366b9 100755
--- a/cloudinit/net/__init__.py
+++ b/cloudinit/net/__init__.py
@@ -123,40 +123,37 @@ def generate_fallback_config():
     # and ignore interfaces that are definitely disconnected
     connected = []
     possibly_connected = []
+
+    def sys_net_int(iface, field):
+        val = read_sys_net(iface, field, enoent=False)
+        try:
+            return int(val)
+        except TypeError:
+            return None
+
     for interface in potential_interfaces:
         if interface.startswith("veth"):
             continue
         if os.path.exists(sys_dev_path(interface, "bridge")):
             # skip any bridges
             continue
-        try:
-            carrier = read_sys_net(interface, 'carrier', enoent=False)
-            if carrier:
-                carrier = int(carrier)
-            if carrier:
-                connected.append(interface)
-                continue
-        except (IOError, OSError, TypeError):
-            pass
+
+        carrier = sys_net_int(interface, 'carrier')
+        if carrier:
+            connected.append(interface)
+            continue
         # check if nic is dormant or down, as this may make a nick appear to
         # not have a carrier even though it could acquire one when brought
         # online by dhclient
-        try:
-            dormant = read_sys_net(interface, 'dormant', enoent=False)
-            if dormant:
-                dormant = int(dormant)
-            if dormant:
-                possibly_connected.append(interface)
-                continue
-        except (IOError, OSError, TypeError):
-            pass
-        try:
-            operstate = read_sys_net(interface, 'operstate', enoent=False)
-            if operstate in ['dormant', 'down', 'lowerlayerdown', 'unknown']:
-                possibly_connected.append(interface)
-                continue
-        except (IOError, OSError):
-            pass
+        dormant = read_sys_net(interface, 'dormant')
+        if dormant:
+            possibly_connected.append(interface)
+            continue
+
+        operstate = read_sys_net(interface, 'operstate', enoent=False)
+        if operstate in ['dormant', 'down', 'lowerlayerdown', 'unknown']:
+            possibly_connected.append(interface)
+            continue
 
     # don't bother with interfaces that might not be connected if there are
     # some that definitely are
diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
index bb4ad98..f5de5a2 100755
--- a/tests/unittests/test_net.py
+++ b/tests/unittests/test_net.py
@@ -475,7 +475,7 @@ def _setup_test(tmp_dir, mock_get_devicelist, mock_read_sys_net,
     }
 
     def fake_read(devname, path, translate=None, enoent=None, keyerror=None):
-        return dev_characteristics[name][field]
+        return dev_characteristics[devname][path]
 
     mock_read_sys_net.side_effect = fake_read
 
Download as text