def list_providers(): # type: () -> Iterable[Metadata] """ List all OpenVPN connections. """ if not have_dbus(): # fall back to just listing the json files try: providers = [ i for i in os.listdir(providers_path) if i.endswith('.json') ] except (IOError, OSError) as e: logger.error(u"can't list configurations in" "{}".format(providers_path)) raise StopIteration else: for p in providers: try: yield Metadata.from_uuid(p[:-5]) except IOError as e: logger.error(u"cant open {}: {}".format(p, e)) else: all_ = NetworkManager.Settings.ListConnections() # type: ignore # if the uuid is not set we probably can't access the object due to permission errors all_ = [i for i in all_ if i.uuid] vpn_connections = ([ c.GetSettings()['connection'] for c in all_ if c.GetSettings()['connection']['type'] == 'vpn' ]) logger.info(u"There are {} VPN connections in" "networkmanager".format(len(vpn_connections))) for conn in vpn_connections: yield Metadata.from_uuid(conn['uuid'], display_name=conn['id'])
def list_providers(): """ List all OpenVPN connections. """ if not have_dbus(): # fall back to just listing the json files try: providers = [ i for i in os.listdir(providers_path) if i.endswith('.json') ] except (IOError, OSError) as e: logger.error( "can't list configurations in {}".format(providers_path)) raise StopIteration else: for p in providers: try: yield Metadata.from_uuid(p[:-5]) except IOError as e: logger.error("cant open {}: {}".format(p, e)) else: all_ = NetworkManager.Settings.ListConnections() vpn_connections = [ c.GetSettings()['connection'] for c in all_ if c.GetSettings()['connection']['type'] == 'vpn' ] logger.info("There are {} VPN connections in networkmanager".format( len(vpn_connections))) for conn in vpn_connections: yield Metadata.from_uuid(conn['uuid'], display_name=conn['id'])
def metadata_of_selected(builder): selection = builder.get_object('provider-selection') model, treeiter = selection.get_selected() if treeiter is None: return else: uuid_, _, _, _ = model[treeiter] return Metadata.from_uuid(uuid_)
def test_metadata_from_uuid_invalid(self, _): uuid = "test" display_name = "end_of_the_world" metadata = Metadata.from_uuid(uuid=uuid, display_name=display_name) self.assertEqual(metadata.display_name, display_name)
def test_metadata_from(self, _): uuid = "test" metadata = Metadata.from_uuid(uuid=uuid) self.assertEqual(metadata.display_name, "correct") self.assertEqual(metadata.uuid, "correct")