Example #1
0
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'])
Example #3
0
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_)
Example #4
0
 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)
Example #5
0
 def test_metadata_from(self, _):
     uuid = "test"
     metadata = Metadata.from_uuid(uuid=uuid)
     self.assertEqual(metadata.display_name, "correct")
     self.assertEqual(metadata.uuid, "correct")