daemon: refactored NodeData to reference a node instead of replicating fields as an intermediate passthrough, removed data() functions from nodes due to this change
This commit is contained in:
parent
1702fe256f
commit
ecc3eb1c89
10 changed files with 52 additions and 129 deletions
|
@ -14,7 +14,7 @@ import netaddr
|
|||
from core import utils
|
||||
from core.configservice.dependencies import ConfigServiceDependencies
|
||||
from core.constants import MOUNT_BIN, VNODED_BIN
|
||||
from core.emulator.data import InterfaceData, LinkData, LinkOptions, NodeData
|
||||
from core.emulator.data import InterfaceData, LinkData, LinkOptions
|
||||
from core.emulator.enumerations import LinkTypes, MessageFlags, NodeTypes
|
||||
from core.errors import CoreCommandError, CoreError
|
||||
from core.nodes.client import VnodeClient
|
||||
|
@ -182,42 +182,6 @@ class NodeBase(abc.ABC):
|
|||
self.iface_id += 1
|
||||
return iface_id
|
||||
|
||||
def data(
|
||||
self, message_type: MessageFlags = MessageFlags.NONE, source: str = None
|
||||
) -> Optional[NodeData]:
|
||||
"""
|
||||
Build a data object for this node.
|
||||
|
||||
:param message_type: purpose for the data object we are creating
|
||||
:param source: source of node data
|
||||
:return: node data object
|
||||
"""
|
||||
if self.apitype is None:
|
||||
return None
|
||||
x, y, _ = self.getposition()
|
||||
model = self.type
|
||||
server = None
|
||||
if self.server is not None:
|
||||
server = self.server.name
|
||||
services = [x.name for x in self.services]
|
||||
return NodeData(
|
||||
message_type=message_type,
|
||||
type=self.apitype,
|
||||
id=self.id,
|
||||
name=self.name,
|
||||
model=model,
|
||||
server=server,
|
||||
canvas=self.canvas,
|
||||
icon=self.icon,
|
||||
x_position=x,
|
||||
y_position=y,
|
||||
latitude=self.position.lat,
|
||||
longitude=self.position.lon,
|
||||
altitude=self.position.alt,
|
||||
services=services,
|
||||
source=source,
|
||||
)
|
||||
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]:
|
||||
"""
|
||||
Build link data for this node.
|
||||
|
|
|
@ -8,7 +8,7 @@ from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Tuple
|
|||
|
||||
from core import utils
|
||||
from core.emulator.data import LinkOptions
|
||||
from core.emulator.enumerations import MessageFlags, TransportType
|
||||
from core.emulator.enumerations import TransportType
|
||||
from core.errors import CoreCommandError
|
||||
from core.nodes.netclient import LinuxNetClient, get_net_client
|
||||
|
||||
|
@ -561,23 +561,4 @@ class GreTap(CoreInterface):
|
|||
self.net_client.delete_device(self.localname)
|
||||
except CoreCommandError:
|
||||
logging.exception("error during shutdown")
|
||||
|
||||
self.localname = None
|
||||
|
||||
def data(self, message_type: int) -> None:
|
||||
"""
|
||||
Data for a gre tap.
|
||||
|
||||
:param message_type: message type for data
|
||||
:return: None
|
||||
"""
|
||||
return None
|
||||
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List:
|
||||
"""
|
||||
Retrieve link data.
|
||||
|
||||
:param flags: link flags
|
||||
:return: link data
|
||||
"""
|
||||
return []
|
||||
|
|
|
@ -11,7 +11,7 @@ import netaddr
|
|||
|
||||
from core import utils
|
||||
from core.constants import EBTABLES_BIN, TC_BIN
|
||||
from core.emulator.data import InterfaceData, LinkData, LinkOptions, NodeData
|
||||
from core.emulator.data import InterfaceData, LinkData, LinkOptions
|
||||
from core.emulator.enumerations import (
|
||||
LinkTypes,
|
||||
MessageFlags,
|
||||
|
@ -862,19 +862,6 @@ class PtpNet(CoreNetwork):
|
|||
)
|
||||
super().attach(iface)
|
||||
|
||||
def data(
|
||||
self, message_type: MessageFlags = MessageFlags.NONE, source: str = None
|
||||
) -> Optional[NodeData]:
|
||||
"""
|
||||
Do not generate a Node Message for point-to-point links. They are
|
||||
built using a link message instead.
|
||||
|
||||
:param message_type: purpose for the data object we are creating
|
||||
:param source: source of node data
|
||||
:return: node data object
|
||||
"""
|
||||
return None
|
||||
|
||||
def all_link_data(self, flags: MessageFlags = MessageFlags.NONE) -> List[LinkData]:
|
||||
"""
|
||||
Build CORE API TLVs for a point-to-point link. One Link message
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue