From 7cf2c93a9bc3027e3efd7f6f3d40d2415cafb55e Mon Sep 17 00:00:00 2001 From: Anders Blomdell <anders.blomdell@control.lth.se> Date: Thu, 4 Nov 2021 11:41:55 +0100 Subject: [PATCH] Make device matching work for unknown device kinds --- src/hostinfo/networkmanager.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/hostinfo/networkmanager.py b/src/hostinfo/networkmanager.py index 1754902..aec2f08 100644 --- a/src/hostinfo/networkmanager.py +++ b/src/hostinfo/networkmanager.py @@ -28,25 +28,32 @@ class Network(object): self._tun = {} self._connection = {} # Get devices from network manager + def is_kind(device, kind): + device_class = getattr(NetworkManager, kind, None) + if device_class == None: + print('%s not defined in this version of NetworkManager' % kind) + return False + return isinstance(device, device_class) + for d in NetworkManager.NetworkManager.AllDevices: - if isinstance(d, NetworkManager.Generic): + if is_kind(d, 'Generic'): pass - elif isinstance(d, NetworkManager.Dummy): + elif is_kind(d, 'Dummy'): pass - elif isinstance(d, NetworkManager.Wireless): + elif is_kind(d, 'Wireless'): pass - elif isinstance(d, NetworkManager.WireGuard): + elif is_kind(d, 'WireGuard'): pass - elif isinstance(d, NetworkManager.Wired): + elif is_kind(d, 'Wired'): self._wired[d.HwAddress.lower()] = d pass - elif isinstance(d, NetworkManager.Bridge): + elif is_kind(d, 'Bridge'): self._bridge[d.HwAddress.lower()] = d pass - elif isinstance(d, NetworkManager.IPTunnel): + elif is_kind(d, 'IPTunnel'): self._ip_tunnel[d.Interface] = d pass - elif isinstance(d, NetworkManager.Tun): + elif is_kind(d, 'Tun'): self._tun[d.Interface] = d pass else: -- GitLab