added emane model configs and mobility configs to grpc.StartSession

This commit is contained in:
bharnden 2019-10-29 14:40:37 -07:00
parent adbab066c9
commit c0516255f2
4 changed files with 104 additions and 21 deletions

View file

@ -156,7 +156,9 @@ class CoreGrpcClient:
location=None,
hooks=None,
emane_config=None,
emane_model_configs=None,
wlan_configs=None,
mobility_configs=None,
):
"""
Start a session.
@ -167,8 +169,11 @@ class CoreGrpcClient:
:param core_pb2.SessionLocation location: location to set
:param list[core_pb2.Hook] hooks: session hooks to set
:param dict emane_config: emane configuration to set
:param list emane_model_configs: emane model configurations to set
:param list wlan_configs: wlan configurations to set
:return:
:param list mobility_configs: mobility configurations to set
:return: start session response
:rtype: core_pb2.StartSessionResponse
"""
request = core_pb2.StartSessionRequest(
session_id=session_id,
@ -177,7 +182,9 @@ class CoreGrpcClient:
location=location,
hooks=hooks,
emane_config=emane_config,
emane_model_configs=emane_model_configs,
wlan_configs=wlan_configs,
mobility_configs=mobility_configs,
)
return self.stub.StartSession(request)
@ -621,8 +628,9 @@ class CoreGrpcClient:
:rtype: core_pb2.SetMobilityConfigResponse
:raises grpc.RpcError: when session or node doesn't exist
"""
mobility_config = core_pb2.MobilityConfig(node_id=node_id, config=config)
request = core_pb2.SetMobilityConfigRequest(
session_id=session_id, node_id=node_id, config=config
session_id=session_id, mobility_config=mobility_config
)
return self.stub.SetMobilityConfig(request)
@ -881,12 +889,11 @@ class CoreGrpcClient:
:rtype: core_pb2.SetEmaneModelConfigResponse
:raises grpc.RpcError: when session doesn't exist
"""
model_config = core_pb2.EmaneModelConfig(
node_id=node_id, model=model, config=config, interface_id=interface_id
)
request = core_pb2.SetEmaneModelConfigRequest(
session_id=session_id,
node_id=node_id,
model=model,
config=config,
interface_id=interface_id,
session_id=session_id, emane_model_config=model_config
)
return self.stub.SetEmaneModelConfig(request)

View file

@ -81,7 +81,8 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
:param int session_id: session id
:param grpc.ServicerContext context:
:return: session object that satisfies. If session not found then raise an exception.
:return: session object that satisfies, if session not found then raise an
exception
:rtype: core.emulator.session.Session
"""
session = self.coreemu.sessions.get(session_id)
@ -136,14 +137,21 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
# emane configs
config = session.emane.get_configs()
config.update(request.emane_config)
for config in request.emane_model_configs:
_id = get_emane_model_id(config.node_id, config.interface_id)
session.emane.set_model_config(_id, config.model, config.config)
# wlan configs
for wlan_config in request.wlan_configs:
for config in request.wlan_configs:
session.mobility.set_model_config(
wlan_config.node_id, BasicRangeModel.name, wlan_config.config
config.node_id, BasicRangeModel.name, config.config
)
# mobility configs
for config in request.mobility_configs:
session.mobility.set_model_config(
config.node_id, Ns2ScriptedMobility.name, config.config
)
# create links
grpcutils.create_links(session, request.links)
@ -984,8 +992,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
"""
logging.debug("set mobility config: %s", request)
session = self.get_session(request.session_id, context)
mobility_config = request.mobility_config
session.mobility.set_model_config(
request.node_id, Ns2ScriptedMobility.name, request.config
mobility_config.node_id, Ns2ScriptedMobility.name, mobility_config.config
)
return core_pb2.SetMobilityConfigResponse(result=True)
@ -1313,8 +1322,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
"""
logging.debug("set emane model config: %s", request)
session = self.get_session(request.session_id, context)
_id = get_emane_model_id(request.node_id, request.interface_id)
session.emane.set_model_config(_id, request.model, request.config)
model_config = request.emane_model_config
_id = get_emane_model_id(model_config.node_id, model_config.interface_id)
session.emane.set_model_config(_id, model_config.model, model_config.config)
return core_pb2.SetEmaneModelConfigResponse(result=True)
def GetEmaneModelConfigs(self, request, context):