diff --git a/src/hostinfo/networkmanager.py b/src/hostinfo/networkmanager.py index 1754902e6c265f191a0b950df606af3fa32088d4..aec2f08872757b6a14ed71ca5a896b47c8253ae6 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: