updates to use message flags enum directly
This commit is contained in:
parent
5cdfd8d8b9
commit
a7790185d4
19 changed files with 65 additions and 60 deletions
|
@ -87,7 +87,7 @@ def handle_link_event(event: LinkData) -> core_pb2.LinkEvent:
|
|||
interface_two=interface_two,
|
||||
options=options,
|
||||
)
|
||||
return core_pb2.LinkEvent(message_type=event.message_type, link=link)
|
||||
return core_pb2.LinkEvent(message_type=event.message_type.value, link=link)
|
||||
|
||||
|
||||
def handle_session_event(event: EventData) -> core_pb2.SessionEvent:
|
||||
|
@ -158,7 +158,7 @@ def handle_file_event(event: FileData) -> core_pb2.FileEvent:
|
|||
:return: file event
|
||||
"""
|
||||
return core_pb2.FileEvent(
|
||||
message_type=event.message_type,
|
||||
message_type=event.message_type.value,
|
||||
node_id=event.node,
|
||||
name=event.name,
|
||||
mode=event.mode,
|
||||
|
|
|
@ -229,7 +229,7 @@ def get_links(session: Session, node: NodeBase):
|
|||
:return: [core.api.grpc.core_pb2.Link]
|
||||
"""
|
||||
links = []
|
||||
for link_data in node.all_link_data(0):
|
||||
for link_data in node.all_link_data():
|
||||
link = convert_link(session, link_data)
|
||||
links.append(link)
|
||||
return links
|
||||
|
|
|
@ -722,7 +722,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
if request.source:
|
||||
source = request.source
|
||||
if not has_geo:
|
||||
node_data = node.data(0, source=source)
|
||||
node_data = node.data(source=source)
|
||||
session.broadcast_node(node_data)
|
||||
except CoreError:
|
||||
result = False
|
||||
|
@ -1496,9 +1496,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
|
||||
if emane_one.id == emane_two.id:
|
||||
if request.linked:
|
||||
flag = MessageFlags.ADD.value
|
||||
flag = MessageFlags.ADD
|
||||
else:
|
||||
flag = MessageFlags.DELETE.value
|
||||
flag = MessageFlags.DELETE
|
||||
link = LinkData(
|
||||
message_type=flag,
|
||||
link_type=LinkTypes.WIRELESS,
|
||||
|
|
|
@ -265,7 +265,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
(FileTlvs.COMPRESSED_DATA, file_data.compressed_data),
|
||||
],
|
||||
)
|
||||
message = coreapi.CoreFileMessage.pack(file_data.message_type, tlv_data)
|
||||
message = coreapi.CoreFileMessage.pack(file_data.message_type.value, tlv_data)
|
||||
|
||||
try:
|
||||
self.sendall(message)
|
||||
|
@ -380,7 +380,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
],
|
||||
)
|
||||
|
||||
message = coreapi.CoreLinkMessage.pack(link_data.message_type, tlv_data)
|
||||
message = coreapi.CoreLinkMessage.pack(link_data.message_type.value, tlv_data)
|
||||
|
||||
try:
|
||||
self.sendall(message)
|
||||
|
@ -1841,11 +1841,11 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
with self.session._nodes_lock:
|
||||
for node_id in self.session.nodes:
|
||||
node = self.session.nodes[node_id]
|
||||
node_data = node.data(message_type=MessageFlags.ADD.value)
|
||||
node_data = node.data(message_type=MessageFlags.ADD)
|
||||
if node_data:
|
||||
nodes_data.append(node_data)
|
||||
|
||||
node_links = node.all_link_data(flags=MessageFlags.ADD.value)
|
||||
node_links = node.all_link_data(flags=MessageFlags.ADD)
|
||||
for link_data in node_links:
|
||||
links_data.append(link_data)
|
||||
|
||||
|
@ -1913,7 +1913,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
|
||||
for file_name, config_data in self.session.services.all_files(service):
|
||||
file_data = FileData(
|
||||
message_type=MessageFlags.ADD.value,
|
||||
message_type=MessageFlags.ADD,
|
||||
node=node_id,
|
||||
name=str(file_name),
|
||||
type=opaque,
|
||||
|
@ -1927,7 +1927,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
for state in sorted(self.session._hooks.keys()):
|
||||
for file_name, config_data in self.session._hooks[state]:
|
||||
file_data = FileData(
|
||||
message_type=MessageFlags.ADD.value,
|
||||
message_type=MessageFlags.ADD,
|
||||
name=str(file_name),
|
||||
type=f"hook:{state}",
|
||||
data=str(config_data),
|
||||
|
|
|
@ -38,7 +38,7 @@ def convert_node(node_data):
|
|||
(NodeTlvs.OPAQUE, node_data.opaque),
|
||||
],
|
||||
)
|
||||
return coreapi.CoreNodeMessage.pack(node_data.message_type, tlv_data)
|
||||
return coreapi.CoreNodeMessage.pack(node_data.message_type.value, tlv_data)
|
||||
|
||||
|
||||
def convert_config(config_data):
|
||||
|
|
|
@ -806,7 +806,7 @@ class EmaneManager(ModelManager):
|
|||
|
||||
# don"t use node.setposition(x,y,z) which generates an event
|
||||
node.position.set(x, y, z)
|
||||
node_data = node.data(message_type=0, lat=lat, lon=lon, alt=alt)
|
||||
node_data = node.data(lat=lat, lon=lon, alt=alt)
|
||||
self.session.broadcast_node(node_data)
|
||||
return True
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ class MessageFlags(Enum):
|
|||
CORE message flags.
|
||||
"""
|
||||
|
||||
NONE = 0x00
|
||||
ADD = 0x01
|
||||
DELETE = 0x02
|
||||
CRI = 0x04
|
||||
|
|
|
@ -220,7 +220,7 @@ class WirelessModel(ConfigurableOptions):
|
|||
self.session = session
|
||||
self.id = _id
|
||||
|
||||
def all_link_data(self, flags: int) -> List:
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List:
|
||||
"""
|
||||
May be used if the model can populate the GUI with wireless (green)
|
||||
link lines.
|
||||
|
@ -484,7 +484,10 @@ class BasicRangeModel(WirelessModel):
|
|||
return True
|
||||
|
||||
def create_link_data(
|
||||
self, interface1: CoreInterface, interface2: CoreInterface, message_type: int
|
||||
self,
|
||||
interface1: CoreInterface,
|
||||
interface2: CoreInterface,
|
||||
message_type: MessageFlags,
|
||||
) -> LinkData:
|
||||
"""
|
||||
Create a wireless link/unlink data message.
|
||||
|
@ -514,14 +517,14 @@ class BasicRangeModel(WirelessModel):
|
|||
:return: nothing
|
||||
"""
|
||||
if unlink:
|
||||
message_type = MessageFlags.DELETE.value
|
||||
message_type = MessageFlags.DELETE
|
||||
else:
|
||||
message_type = MessageFlags.ADD.value
|
||||
message_type = MessageFlags.ADD
|
||||
|
||||
link_data = self.create_link_data(netif, netif2, message_type)
|
||||
self.session.broadcast_link(link_data)
|
||||
|
||||
def all_link_data(self, flags: int) -> List[LinkData]:
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]:
|
||||
"""
|
||||
Return a list of wireless link messages for when the GUI reconnects.
|
||||
|
||||
|
@ -816,7 +819,7 @@ class WayPointMobility(WirelessModel):
|
|||
:return: nothing
|
||||
"""
|
||||
node.position.set(x, y, z)
|
||||
node_data = node.data(message_type=0)
|
||||
node_data = node.data()
|
||||
self.session.broadcast_node(node_data)
|
||||
|
||||
def setendtime(self) -> None:
|
||||
|
|
|
@ -14,7 +14,7 @@ from core import utils
|
|||
from core.configservice.dependencies import ConfigServiceDependencies
|
||||
from core.constants import MOUNT_BIN, VNODED_BIN
|
||||
from core.emulator.data import LinkData, NodeData
|
||||
from core.emulator.enumerations import LinkTypes, NodeTypes
|
||||
from core.emulator.enumerations import LinkTypes, MessageFlags, NodeTypes
|
||||
from core.errors import CoreCommandError, CoreError
|
||||
from core.nodes import client
|
||||
from core.nodes.interface import CoreInterface, TunTap, Veth
|
||||
|
@ -193,7 +193,7 @@ class NodeBase:
|
|||
|
||||
def data(
|
||||
self,
|
||||
message_type: int,
|
||||
message_type: MessageFlags = MessageFlags.NONE,
|
||||
lat: float = None,
|
||||
lon: float = None,
|
||||
alt: float = None,
|
||||
|
@ -244,7 +244,7 @@ class NodeBase:
|
|||
|
||||
return node_data
|
||||
|
||||
def all_link_data(self, flags: int) -> List:
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]:
|
||||
"""
|
||||
Build CORE Link data for this object. There is no default
|
||||
method for PyCoreObjs as PyCoreNodes do not implement this but
|
||||
|
@ -1069,7 +1069,7 @@ class CoreNetworkBase(NodeBase):
|
|||
with self._linked_lock:
|
||||
del self._linked[netif]
|
||||
|
||||
def all_link_data(self, flags: int) -> List[LinkData]:
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]:
|
||||
"""
|
||||
Build link data objects for this network. Each link object describes a link
|
||||
between this network and a node.
|
||||
|
|
|
@ -7,6 +7,7 @@ import time
|
|||
from typing import TYPE_CHECKING, Callable, Dict, List, Tuple
|
||||
|
||||
from core import utils
|
||||
from core.emulator.enumerations import MessageFlags
|
||||
from core.errors import CoreCommandError
|
||||
from core.nodes.netclient import get_net_client
|
||||
|
||||
|
@ -554,7 +555,7 @@ class GreTap(CoreInterface):
|
|||
"""
|
||||
return None
|
||||
|
||||
def all_link_data(self, flags: int) -> List:
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List:
|
||||
"""
|
||||
Retrieve link data.
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import netaddr
|
|||
from core import utils
|
||||
from core.constants import EBTABLES_BIN, TC_BIN
|
||||
from core.emulator.data import LinkData, NodeData
|
||||
from core.emulator.enumerations import LinkTypes, NodeTypes, RegisterTlvs
|
||||
from core.emulator.enumerations import LinkTypes, MessageFlags, NodeTypes, RegisterTlvs
|
||||
from core.errors import CoreCommandError, CoreError
|
||||
from core.nodes.base import CoreNetworkBase
|
||||
from core.nodes.interface import CoreInterface, GreTap, Veth
|
||||
|
@ -848,7 +848,7 @@ class CtrlNet(CoreNetwork):
|
|||
|
||||
super().shutdown()
|
||||
|
||||
def all_link_data(self, flags: int) -> List[LinkData]:
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]:
|
||||
"""
|
||||
Do not include CtrlNet in link messages describing this session.
|
||||
|
||||
|
@ -899,7 +899,7 @@ class PtpNet(CoreNetwork):
|
|||
"""
|
||||
return None
|
||||
|
||||
def all_link_data(self, flags: int) -> List[LinkData]:
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]:
|
||||
"""
|
||||
Build CORE API TLVs for a point-to-point link. One Link message
|
||||
describes this network.
|
||||
|
@ -1122,7 +1122,7 @@ class WlanNode(CoreNetwork):
|
|||
x, y, z = netif.node.position.get()
|
||||
netif.poshook(netif, x, y, z)
|
||||
|
||||
def all_link_data(self, flags: int) -> List[LinkData]:
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]:
|
||||
"""
|
||||
Retrieve all link data.
|
||||
|
||||
|
|
|
@ -210,7 +210,7 @@ class Sdt:
|
|||
self.add_node(node)
|
||||
|
||||
for net in nets:
|
||||
all_links = net.all_link_data(flags=MessageFlags.ADD.value)
|
||||
all_links = net.all_link_data(flags=MessageFlags.ADD)
|
||||
for link_data in all_links:
|
||||
is_wireless = isinstance(net, (WlanNode, EmaneNet))
|
||||
if is_wireless and link_data.node1_id == net.id:
|
||||
|
@ -302,7 +302,7 @@ class Sdt:
|
|||
return
|
||||
|
||||
# delete node
|
||||
if node_data.message_type == MessageFlags.DELETE.value:
|
||||
if node_data.message_type == MessageFlags.DELETE:
|
||||
self.cmd(f"delete node,{node_data.id}")
|
||||
else:
|
||||
x = node_data.x_position
|
||||
|
@ -375,9 +375,9 @@ class Sdt:
|
|||
:param link_data: link data to handle
|
||||
:return: nothing
|
||||
"""
|
||||
if link_data.message_type == MessageFlags.ADD.value:
|
||||
if link_data.message_type == MessageFlags.ADD:
|
||||
params = link_data_params(link_data)
|
||||
self.add_link(*params)
|
||||
elif link_data.message_type == MessageFlags.DELETE.value:
|
||||
elif link_data.message_type == MessageFlags.DELETE:
|
||||
params = link_data_params(link_data)
|
||||
self.delete_link(*params[:2])
|
||||
|
|
|
@ -672,7 +672,7 @@ class CoreServices:
|
|||
|
||||
filetypestr = "service:%s" % service.name
|
||||
return FileData(
|
||||
message_type=MessageFlags.ADD.value,
|
||||
message_type=MessageFlags.ADD,
|
||||
node=node.id,
|
||||
name=filename,
|
||||
type=filetypestr,
|
||||
|
|
|
@ -476,7 +476,7 @@ class CoreXmlWriter:
|
|||
self.write_device(node)
|
||||
|
||||
# add known links
|
||||
links.extend(node.all_link_data(0))
|
||||
links.extend(node.all_link_data())
|
||||
|
||||
return links
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue