示例#1
0
文件: events.py 项目: walterhil/core
def handle_link_event(event: LinkData) -> core_pb2.LinkEvent:
    """
    Handle link event when there is a link event

    :param event: link data
    :return: link event that has message type and link information
    """
    link = convert_link(event)
    return core_pb2.LinkEvent(message_type=event.message_type.value, link=link)
示例#2
0
def handle_link_event(link_data: LinkData) -> core_pb2.Event:
    """
    Handle link event when there is a link event

    :param link_data: link data
    :return: link event that has message type and link information
    """
    link = convert_link(link_data)
    message_type = link_data.message_type.value
    link_event = core_pb2.LinkEvent(message_type=message_type, link=link)
    return core_pb2.Event(link_event=link_event, source=link_data.source)
示例#3
0
def handle_link_event(event):
    """
    Handle link event when there is a link event

    :param core.emulator.data.LinkData event: link data
    :return: link event that has message type and link information
    :rtype: core.api.grpc.core_pb2.LinkEvent
    """
    interface_one = None
    if event.interface1_id is not None:
        interface_one = core_pb2.Interface(
            id=event.interface1_id,
            name=event.interface1_name,
            mac=convert_value(event.interface1_mac),
            ip4=convert_value(event.interface1_ip4),
            ip4mask=event.interface1_ip4_mask,
            ip6=convert_value(event.interface1_ip6),
            ip6mask=event.interface1_ip6_mask,
        )

    interface_two = None
    if event.interface2_id is not None:
        interface_two = core_pb2.Interface(
            id=event.interface2_id,
            name=event.interface2_name,
            mac=convert_value(event.interface2_mac),
            ip4=convert_value(event.interface2_ip4),
            ip4mask=event.interface2_ip4_mask,
            ip6=convert_value(event.interface2_ip6),
            ip6mask=event.interface2_ip6_mask,
        )

    options = core_pb2.LinkOptions(
        opaque=event.opaque,
        jitter=event.jitter,
        key=event.key,
        mburst=event.mburst,
        mer=event.mer,
        per=event.per,
        bandwidth=event.bandwidth,
        burst=event.burst,
        delay=event.delay,
        dup=event.dup,
        unidirectional=event.unidirectional,
    )
    link = core_pb2.Link(
        type=event.link_type,
        node_one_id=event.node1_id,
        node_two_id=event.node2_id,
        interface_one=interface_one,
        interface_two=interface_two,
        options=options,
    )
    return core_pb2.LinkEvent(message_type=event.message_type, link=link)
示例#4
0
文件: server.py 项目: yanhc519/core
    def _handle_link_event(self, event):
        interface_one = None
        if event.interface1_id is not None:
            interface_one = core_pb2.Interface(
                id=event.interface1_id,
                name=event.interface1_name,
                mac=convert_value(event.interface1_mac),
                ip4=convert_value(event.interface1_ip4),
                ip4mask=event.interface1_ip4_mask,
                ip6=convert_value(event.interface1_ip6),
                ip6mask=event.interface1_ip6_mask)

        interface_two = None
        if event.interface2_id is not None:
            interface_two = core_pb2.Interface(
                id=event.interface2_id,
                name=event.interface2_name,
                mac=convert_value(event.interface2_mac),
                ip4=convert_value(event.interface2_ip4),
                ip4mask=event.interface2_ip4_mask,
                ip6=convert_value(event.interface2_ip6),
                ip6mask=event.interface2_ip6_mask)

        options = core_pb2.LinkOptions(opaque=event.opaque,
                                       jitter=event.jitter,
                                       key=event.key,
                                       mburst=event.mburst,
                                       mer=event.mer,
                                       per=event.per,
                                       bandwidth=event.bandwidth,
                                       burst=event.burst,
                                       delay=event.delay,
                                       dup=event.dup,
                                       unidirectional=event.unidirectional)
        link = core_pb2.Link(type=event.link_type,
                             node_one_id=event.node1_id,
                             node_two_id=event.node2_id,
                             interface_one=interface_one,
                             interface_two=interface_two,
                             options=options)
        return core_pb2.LinkEvent(message_type=event.message_type, link=link)