refactored NodeData and NodeOptions to use server instead of emulation_server

This commit is contained in:
bharnden 2019-10-22 20:50:01 -07:00
parent ab0abd65aa
commit cb81095b64
12 changed files with 23 additions and 25 deletions

View file

@ -775,7 +775,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
options.image = node_proto.image options.image = node_proto.image
options.services = node_proto.services options.services = node_proto.services
if node_proto.server: if node_proto.server:
options.emulation_server = node_proto.server options.server = node_proto.server
position = node_proto.position position = node_proto.position
options.set_position(position.x, position.y) options.set_position(position.x, position.y)

View file

@ -722,7 +722,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
options.icon = message.get_tlv(NodeTlvs.ICON.value) options.icon = message.get_tlv(NodeTlvs.ICON.value)
options.canvas = message.get_tlv(NodeTlvs.CANVAS.value) options.canvas = message.get_tlv(NodeTlvs.CANVAS.value)
options.opaque = message.get_tlv(NodeTlvs.OPAQUE.value) options.opaque = message.get_tlv(NodeTlvs.OPAQUE.value)
options.emulation_server = message.get_tlv(NodeTlvs.EMULATION_SERVER.value) options.server = message.get_tlv(NodeTlvs.EMULATION_SERVER.value)
services = message.get_tlv(NodeTlvs.SERVICES.value) services = message.get_tlv(NodeTlvs.SERVICES.value)
if services: if services:

View file

@ -24,7 +24,7 @@ def convert_node(node_data):
(NodeTlvs.IP6_ADDRESS, node_data.ip6_address), (NodeTlvs.IP6_ADDRESS, node_data.ip6_address),
(NodeTlvs.MODEL, node_data.model), (NodeTlvs.MODEL, node_data.model),
(NodeTlvs.EMULATION_ID, node_data.emulation_id), (NodeTlvs.EMULATION_ID, node_data.emulation_id),
(NodeTlvs.EMULATION_SERVER, node_data.emulation_server), (NodeTlvs.EMULATION_SERVER, node_data.server),
(NodeTlvs.SESSION, node_data.session), (NodeTlvs.SESSION, node_data.session),
(NodeTlvs.X_POSITION, node_data.x_position), (NodeTlvs.X_POSITION, node_data.x_position),
(NodeTlvs.Y_POSITION, node_data.y_position), (NodeTlvs.Y_POSITION, node_data.y_position),

View file

@ -64,7 +64,7 @@ NodeData = collections.namedtuple(
"ip6_address", "ip6_address",
"model", "model",
"emulation_id", "emulation_id",
"emulation_server", "server",
"session", "session",
"x_position", "x_position",
"y_position", "y_position",

View file

@ -87,7 +87,7 @@ class NodeOptions(object):
self.lon = None self.lon = None
self.alt = None self.alt = None
self.emulation_id = None self.emulation_id = None
self.emulation_server = None self.server = None
self.image = image self.image = image
def set_position(self, x, y): def set_position(self, x, y):

View file

@ -673,9 +673,9 @@ class Session(object):
name = f"{node_class.__name__}{_id}" name = f"{node_class.__name__}{_id}"
# verify distributed server # verify distributed server
server = self.distributed.servers.get(options.emulation_server) server = self.distributed.servers.get(options.server)
if options.emulation_server is not None and server is None: if options.server is not None and server is None:
raise CoreError(f"invalid distributed server: {options.emulation_server}") raise CoreError(f"invalid distributed server: {options.server}")
# create node # create node
logging.info( logging.info(
@ -713,7 +713,7 @@ class Session(object):
logging.debug("set node type: %s", node.type) logging.debug("set node type: %s", node.type)
self.services.add_services(node, node.type, options.services) self.services.add_services(node, node.type, options.services)
# boot nodes if created after runtime, CoreNodes, Physical, and RJ45 are all nodes # boot nodes after runtime, CoreNodes, Physical, and RJ45 are all nodes
is_boot_node = isinstance(node, CoreNodeBase) and not isinstance(node, Rj45Node) is_boot_node = isinstance(node, CoreNodeBase) and not isinstance(node, Rj45Node)
if self.state == EventTypes.RUNTIME_STATE.value and is_boot_node: if self.state == EventTypes.RUNTIME_STATE.value and is_boot_node:
self.write_nodes() self.write_nodes()

View file

@ -194,9 +194,9 @@ class NodeBase(object):
x, y, _ = self.getposition() x, y, _ = self.getposition()
model = self.type model = self.type
emulation_server = None server = None
if self.server is not None: if self.server is not None:
emulation_server = self.server.name server = self.server.name
services = self.services services = self.services
if services is not None: if services is not None:
@ -217,7 +217,7 @@ class NodeBase(object):
longitude=lon, longitude=lon,
altitude=alt, altitude=alt,
model=model, model=model,
emulation_server=emulation_server, server=server,
services=services, services=services,
) )

View file

@ -34,7 +34,7 @@ def main(args):
node_one = session.add_node(options=options) node_one = session.add_node(options=options)
emane_net = session.add_node(_type=NodeTypes.EMANE) emane_net = session.add_node(_type=NodeTypes.EMANE)
session.emane.set_model(emane_net, EmaneIeee80211abgModel) session.emane.set_model(emane_net, EmaneIeee80211abgModel)
options.emulation_server = server_name options.server = server_name
node_two = session.add_node(options=options) node_two = session.add_node(options=options)
# create node interfaces and link # create node interfaces and link

View file

@ -24,7 +24,7 @@ def main(args):
# create local node, switch, and remote nodes # create local node, switch, and remote nodes
options = NodeOptions(image="ubuntu:18.04") options = NodeOptions(image="ubuntu:18.04")
node_one = session.add_node(_type=NodeTypes.LXC, options=options) node_one = session.add_node(_type=NodeTypes.LXC, options=options)
options.emulation_server = server_name options.server = server_name
node_two = session.add_node(_type=NodeTypes.LXC, options=options) node_two = session.add_node(_type=NodeTypes.LXC, options=options)
# create node interfaces and link # create node interfaces and link

View file

@ -24,7 +24,7 @@ def main(args):
# create local node, switch, and remote nodes # create local node, switch, and remote nodes
options = NodeOptions() options = NodeOptions()
node_one = session.add_node(options=options) node_one = session.add_node(options=options)
options.emulation_server = server_name options.server = server_name
node_two = session.add_node(options=options) node_two = session.add_node(options=options)
# create node interfaces and link # create node interfaces and link

View file

@ -27,7 +27,7 @@ def main(args):
node_one = session.add_node() node_one = session.add_node()
switch = session.add_node(_type=NodeTypes.SWITCH) switch = session.add_node(_type=NodeTypes.SWITCH)
options = NodeOptions() options = NodeOptions()
options.emulation_server = server_name options.server = server_name
node_two = session.add_node(options=options) node_two = session.add_node(options=options)
# create node interfaces and link # create node interfaces and link

View file

@ -35,15 +35,13 @@ def set_emane_model(node_id, model):
) )
def node_message( def node_message(_id, name, server=None, node_type=NodeTypes.DEFAULT, model=None):
_id, name, emulation_server=None, node_type=NodeTypes.DEFAULT, model=None
):
""" """
Convenience method for creating a node TLV messages. Convenience method for creating a node TLV messages.
:param int _id: node id :param int _id: node id
:param str name: node name :param str name: node name
:param str emulation_server: distributed server name, if desired :param str server: distributed server name, if desired
:param core.emulator.enumerations.NodeTypes node_type: node type :param core.emulator.enumerations.NodeTypes node_type: node type
:param str model: model for node :param str model: model for node
:return: tlv message :return: tlv message
@ -53,7 +51,7 @@ def node_message(
(NodeTlvs.NUMBER, _id), (NodeTlvs.NUMBER, _id),
(NodeTlvs.TYPE, node_type.value), (NodeTlvs.TYPE, node_type.value),
(NodeTlvs.NAME, name), (NodeTlvs.NAME, name),
(NodeTlvs.EMULATION_SERVER, emulation_server), (NodeTlvs.EMULATION_SERVER, server),
(NodeTlvs.X_POSITION, 0), (NodeTlvs.X_POSITION, 0),
(NodeTlvs.Y_POSITION, 0), (NodeTlvs.Y_POSITION, 0),
] ]
@ -182,7 +180,7 @@ class TestDistributed:
# create distributed node and assign to distributed server # create distributed node and assign to distributed server
message = node_message( message = node_message(
_id=2, name="n2", emulation_server=cored.distributed_server, model="host" _id=2, name="n2", server=cored.distributed_server, model="host"
) )
cored.request_handler.handle_message(message) cored.request_handler.handle_message(message)
@ -231,7 +229,7 @@ class TestDistributed:
# create distributed node and assign to distributed server # create distributed node and assign to distributed server
message = node_message( message = node_message(
_id=2, name="n2", emulation_server=cored.distributed_server, model="mdr" _id=2, name="n2", server=cored.distributed_server, model="mdr"
) )
cored.request_handler.handle_message(message) cored.request_handler.handle_message(message)
@ -281,7 +279,7 @@ class TestDistributed:
message = node_message( message = node_message(
_id=2, _id=2,
name="n2", name="n2",
emulation_server=cored.distributed_server, server=cored.distributed_server,
node_type=NodeTypes.PHYSICAL, node_type=NodeTypes.PHYSICAL,
model="prouter", model="prouter",
) )
@ -330,7 +328,7 @@ class TestDistributed:
message = node_message( message = node_message(
_id=2, _id=2,
name=distributed_address, name=distributed_address,
emulation_server=cored.distributed_server, server=cored.distributed_server,
node_type=NodeTypes.TUNNEL, node_type=NodeTypes.TUNNEL,
) )
cored.request_handler.handle_message(message) cored.request_handler.handle_message(message)