daemon: refactoring to load emane models one time during startup, updates to account for this change
This commit is contained in:
parent
1ddb7b7b24
commit
50e3aadc6b
32 changed files with 271 additions and 332 deletions
|
@ -9,13 +9,13 @@ from xml.etree import ElementTree
|
|||
import pytest
|
||||
|
||||
from core import utils
|
||||
from core.emane.bypass import EmaneBypassModel
|
||||
from core.emane.commeffect import EmaneCommEffectModel
|
||||
from core.emane.emanemodel import EmaneModel
|
||||
from core.emane.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emane.models.bypass import EmaneBypassModel
|
||||
from core.emane.models.commeffect import EmaneCommEffectModel
|
||||
from core.emane.models.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emane.models.rfpipe import EmaneRfPipeModel
|
||||
from core.emane.models.tdma import EmaneTdmaModel
|
||||
from core.emane.nodes import EmaneNet
|
||||
from core.emane.rfpipe import EmaneRfPipeModel
|
||||
from core.emane.tdma import EmaneTdmaModel
|
||||
from core.emulator.data import IpPrefixes, NodeOptions
|
||||
from core.emulator.session import Session
|
||||
from core.errors import CoreCommandError, CoreError
|
||||
|
@ -100,14 +100,13 @@ class TestEmane:
|
|||
|
||||
# create emane node for networking the core nodes
|
||||
session.set_location(47.57917, -122.13232, 2.00000, 1.0)
|
||||
options = NodeOptions()
|
||||
options = NodeOptions(emane=model.name)
|
||||
options.set_position(80, 50)
|
||||
emane_network = session.add_node(EmaneNet, options=options)
|
||||
session.emane.set_model(emane_network, model)
|
||||
|
||||
# configure tdma
|
||||
if model == EmaneTdmaModel:
|
||||
session.emane.set_model_config(
|
||||
session.emane.set_config(
|
||||
emane_network.id, EmaneTdmaModel.name, {"schedule": str(_SCHEDULE)}
|
||||
)
|
||||
|
||||
|
@ -142,13 +141,13 @@ class TestEmane:
|
|||
"""
|
||||
# create emane node for networking the core nodes
|
||||
session.set_location(47.57917, -122.13232, 2.00000, 1.0)
|
||||
options = NodeOptions()
|
||||
options = NodeOptions(emane=EmaneIeee80211abgModel.name)
|
||||
options.set_position(80, 50)
|
||||
emane_network = session.add_node(EmaneNet, options=options)
|
||||
config_key = "txpower"
|
||||
config_value = "10"
|
||||
session.emane.set_model(
|
||||
emane_network, EmaneIeee80211abgModel, {config_key: config_value}
|
||||
session.emane.set_config(
|
||||
emane_network.id, EmaneIeee80211abgModel.name, {config_key: config_value}
|
||||
)
|
||||
|
||||
# create nodes
|
||||
|
@ -174,7 +173,7 @@ class TestEmane:
|
|||
# save xml
|
||||
xml_file = tmpdir.join("session.xml")
|
||||
file_path = xml_file.strpath
|
||||
session.save_xml(file_path)
|
||||
session.save_xml(Path(file_path))
|
||||
|
||||
# verify xml file was created and can be parsed
|
||||
assert xml_file.isfile()
|
||||
|
@ -190,12 +189,11 @@ class TestEmane:
|
|||
assert not session.get_node(node2_id, CoreNode)
|
||||
|
||||
# load saved xml
|
||||
session.open_xml(file_path, start=True)
|
||||
session.open_xml(Path(file_path), start=True)
|
||||
|
||||
# retrieve configuration we set originally
|
||||
value = str(
|
||||
session.emane.get_config(config_key, emane_id, EmaneIeee80211abgModel.name)
|
||||
)
|
||||
config = session.emane.get_config(emane_id, EmaneIeee80211abgModel.name)
|
||||
value = config[config_key]
|
||||
|
||||
# verify nodes and configuration were restored
|
||||
assert session.get_node(node1_id, CoreNode)
|
||||
|
@ -221,9 +219,9 @@ class TestEmane:
|
|||
session.add_link(node1.id, emane_node.id, iface1_data)
|
||||
session.add_link(node2.id, emane_node.id, iface2_data)
|
||||
|
||||
# set node specific conifg
|
||||
# set node specific config
|
||||
datarate = "101"
|
||||
session.emane.set_model_config(
|
||||
session.emane.set_config(
|
||||
node1.id, EmaneRfPipeModel.name, {"datarate": datarate}
|
||||
)
|
||||
|
||||
|
@ -233,7 +231,7 @@ class TestEmane:
|
|||
# save xml
|
||||
xml_file = tmpdir.join("session.xml")
|
||||
file_path = xml_file.strpath
|
||||
session.save_xml(file_path)
|
||||
session.save_xml(Path(file_path))
|
||||
|
||||
# verify xml file was created and can be parsed
|
||||
assert xml_file.isfile()
|
||||
|
@ -251,7 +249,7 @@ class TestEmane:
|
|||
assert not session.get_node(emane_node.id, EmaneNet)
|
||||
|
||||
# load saved xml
|
||||
session.open_xml(file_path, start=True)
|
||||
session.open_xml(Path(file_path), start=True)
|
||||
|
||||
# verify nodes have been recreated
|
||||
assert session.get_node(node1.id, CoreNode)
|
||||
|
@ -262,7 +260,7 @@ class TestEmane:
|
|||
node = session.nodes[node_id]
|
||||
links += node.links()
|
||||
assert len(links) == 2
|
||||
config = session.emane.get_model_config(node1.id, EmaneRfPipeModel.name)
|
||||
config = session.emane.get_config(node1.id, EmaneRfPipeModel.name)
|
||||
assert config["datarate"] == datarate
|
||||
|
||||
def test_xml_emane_interface_config(
|
||||
|
@ -286,7 +284,7 @@ class TestEmane:
|
|||
# set node specific conifg
|
||||
datarate = "101"
|
||||
config_id = utils.iface_config_id(node1.id, iface1_data.id)
|
||||
session.emane.set_model_config(
|
||||
session.emane.set_config(
|
||||
config_id, EmaneRfPipeModel.name, {"datarate": datarate}
|
||||
)
|
||||
|
||||
|
@ -296,7 +294,7 @@ class TestEmane:
|
|||
# save xml
|
||||
xml_file = tmpdir.join("session.xml")
|
||||
file_path = xml_file.strpath
|
||||
session.save_xml(file_path)
|
||||
session.save_xml(Path(file_path))
|
||||
|
||||
# verify xml file was created and can be parsed
|
||||
assert xml_file.isfile()
|
||||
|
@ -314,7 +312,7 @@ class TestEmane:
|
|||
assert not session.get_node(emane_node.id, EmaneNet)
|
||||
|
||||
# load saved xml
|
||||
session.open_xml(file_path, start=True)
|
||||
session.open_xml(Path(file_path), start=True)
|
||||
|
||||
# verify nodes have been recreated
|
||||
assert session.get_node(node1.id, CoreNode)
|
||||
|
@ -325,5 +323,5 @@ class TestEmane:
|
|||
node = session.nodes[node_id]
|
||||
links += node.links()
|
||||
assert len(links) == 2
|
||||
config = session.emane.get_model_config(config_id, EmaneRfPipeModel.name)
|
||||
config = session.emane.get_config(config_id, EmaneRfPipeModel.name)
|
||||
assert config["datarate"] == datarate
|
||||
|
|
|
@ -6,7 +6,7 @@ from core.config import (
|
|||
Configuration,
|
||||
ModelManager,
|
||||
)
|
||||
from core.emane.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emane.models.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emulator.enumerations import ConfigDataTypes
|
||||
from core.emulator.session import Session
|
||||
from core.location.mobility import BasicRangeModel
|
||||
|
|
|
@ -33,7 +33,7 @@ from core.api.grpc.wrappers import (
|
|||
)
|
||||
from core.api.tlv.dataconversion import ConfigShim
|
||||
from core.api.tlv.enumerations import ConfigFlags
|
||||
from core.emane.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emane.models.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emane.nodes import EmaneNet
|
||||
from core.emulator.data import EventData, IpPrefixes, NodeData, NodeOptions
|
||||
from core.emulator.enumerations import EventTypes, ExceptionLevels
|
||||
|
@ -151,7 +151,7 @@ class TestGrpc:
|
|||
location_alt,
|
||||
)
|
||||
assert real_session.location.refscale == location_scale
|
||||
assert real_session.emane.get_config(emane_config_key) == emane_config_value
|
||||
assert real_session.emane.config[emane_config_key] == emane_config_value
|
||||
set_wlan_config = real_session.mobility.get_model_config(
|
||||
wlan_node.id, BasicRangeModel.name
|
||||
)
|
||||
|
@ -543,7 +543,7 @@ class TestGrpc:
|
|||
|
||||
# then
|
||||
assert result is True
|
||||
config = session.emane.get_configs()
|
||||
config = session.emane.config
|
||||
assert len(config) > 1
|
||||
assert config[config_key] == config_value
|
||||
|
||||
|
@ -554,7 +554,7 @@ class TestGrpc:
|
|||
session.set_location(47.57917, -122.13232, 2.00000, 1.0)
|
||||
options = NodeOptions(emane=EmaneIeee80211abgModel.name)
|
||||
emane_network = session.add_node(EmaneNet, options=options)
|
||||
session.emane.set_model(emane_network, EmaneIeee80211abgModel)
|
||||
session.emane.node_models[emane_network.id] = EmaneIeee80211abgModel.name
|
||||
config_key = "bandwidth"
|
||||
config_value = "900000"
|
||||
option = ConfigOption(
|
||||
|
@ -574,9 +574,7 @@ class TestGrpc:
|
|||
|
||||
# then
|
||||
assert result is True
|
||||
config = session.emane.get_model_config(
|
||||
emane_network.id, EmaneIeee80211abgModel.name
|
||||
)
|
||||
config = session.emane.get_config(emane_network.id, EmaneIeee80211abgModel.name)
|
||||
assert config[config_key] == config_value
|
||||
|
||||
def test_get_emane_model_config(self, grpc_server: CoreGrpcServer):
|
||||
|
@ -586,7 +584,7 @@ class TestGrpc:
|
|||
session.set_location(47.57917, -122.13232, 2.00000, 1.0)
|
||||
options = NodeOptions(emane=EmaneIeee80211abgModel.name)
|
||||
emane_network = session.add_node(EmaneNet, options=options)
|
||||
session.emane.set_model(emane_network, EmaneIeee80211abgModel)
|
||||
session.emane.node_models[emane_network.id] = EmaneIeee80211abgModel.name
|
||||
|
||||
# then
|
||||
with client.context_connect():
|
||||
|
@ -597,18 +595,6 @@ class TestGrpc:
|
|||
# then
|
||||
assert len(config) > 0
|
||||
|
||||
def test_get_emane_models(self, grpc_server: CoreGrpcServer):
|
||||
# given
|
||||
client = CoreGrpcClient()
|
||||
session = grpc_server.coreemu.create_session()
|
||||
|
||||
# then
|
||||
with client.context_connect():
|
||||
models = client.get_emane_models(session.id)
|
||||
|
||||
# then
|
||||
assert len(models) > 0
|
||||
|
||||
def test_get_mobility_config(self, grpc_server: CoreGrpcServer):
|
||||
# given
|
||||
client = CoreGrpcClient()
|
||||
|
|
|
@ -22,7 +22,7 @@ from core.api.tlv.enumerations import (
|
|||
NodeTlvs,
|
||||
SessionTlvs,
|
||||
)
|
||||
from core.emane.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emane.models.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emulator.enumerations import EventTypes, MessageFlags, NodeTypes, RegisterTlvs
|
||||
from core.errors import CoreError
|
||||
from core.location.mobility import BasicRangeModel
|
||||
|
@ -939,9 +939,7 @@ class TestGui:
|
|||
|
||||
coretlv.handle_message(message)
|
||||
|
||||
config = coretlv.session.emane.get_model_config(
|
||||
wlan.id, EmaneIeee80211abgModel.name
|
||||
)
|
||||
config = coretlv.session.emane.get_config(wlan.id, EmaneIeee80211abgModel.name)
|
||||
assert config[config_key] == config_value
|
||||
|
||||
def test_config_emane_request(self, coretlv: CoreHandler):
|
||||
|
@ -973,5 +971,5 @@ class TestGui:
|
|||
|
||||
coretlv.handle_message(message)
|
||||
|
||||
config = coretlv.session.emane.get_configs()
|
||||
config = coretlv.session.emane.config
|
||||
assert config[config_key] == config_value
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue