refactored NodeData and NodeOptions to use server instead of emulation_server
This commit is contained in:
parent
ab0abd65aa
commit
cb81095b64
12 changed files with 23 additions and 25 deletions
|
@ -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)
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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),
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Add table
Reference in a new issue