def nm_online_full(self, iface, timeout=60): '''Wait for NetworkManager connection to be completed (incl. IP4 & DHCP)''' gi.require_version('NM', '1.0') from gi.repository import NM for t in range(timeout): c = NM.Client.new(None) con = c.get_device_by_iface(iface).get_active_connection() if not con: self.fail('no active connection for %s by NM' % iface) flags = NM.utils_enum_to_str(NM.ActivationStateFlags, con.get_state_flags()) if "ip4-ready" in flags: break time.sleep(1) else: self.fail('timed out waiting for %s to get ready by NM' % iface)
#!/usr/bin/env python # SPDX-License-Identifier: GPL-2.0+ # # Copyright (C) 2019 Red Hat, Inc. # import gi gi.require_version('NM', '1.0') from gi.repository import GLib, NM if __name__ == "__main__": client = NM.Client.new(None) devices = client.get_devices() for d in devices: print("{:<16} {:<16} {}".format(d.get_iface(), "(" + d.get_type_description() + ")", NM.utils_enum_to_str(NM.DeviceInterfaceFlags, d.get_interface_flags())))
def _flags_to_str(self, flags): return NM.utils_enum_to_str(type(flags), flags)