modified grpc set node service and node service file to use messages for their config, updated start session to leverage these messages to set them when starting a session
This commit is contained in:
parent
b88abd0f74
commit
18c9904d58
5 changed files with 90 additions and 37 deletions
|
@ -159,6 +159,8 @@ class CoreGrpcClient:
|
|||
emane_model_configs=None,
|
||||
wlan_configs=None,
|
||||
mobility_configs=None,
|
||||
service_configs=None,
|
||||
service_file_configs=None,
|
||||
):
|
||||
"""
|
||||
Start a session.
|
||||
|
@ -169,9 +171,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
|
||||
:param list mobility_configs: mobility configurations to set
|
||||
:param list emane_model_configs: node emane model configurations
|
||||
:param list wlan_configs: node wlan configurations
|
||||
:param list mobility_configs: node mobility configurations
|
||||
:param list service_configs: node service configurations
|
||||
:param list service_file_configs: node service file configurations
|
||||
:return: start session response
|
||||
:rtype: core_pb2.StartSessionResponse
|
||||
"""
|
||||
|
@ -185,6 +189,8 @@ class CoreGrpcClient:
|
|||
emane_model_configs=emane_model_configs,
|
||||
wlan_configs=wlan_configs,
|
||||
mobility_configs=mobility_configs,
|
||||
service_configs=service_configs,
|
||||
service_file_configs=service_file_configs,
|
||||
)
|
||||
return self.stub.StartSession(request)
|
||||
|
||||
|
@ -768,14 +774,14 @@ class CoreGrpcClient:
|
|||
:rtype: core_pb2.SetNodeServiceResponse
|
||||
:raises grpc.RpcError: when session or node doesn't exist
|
||||
"""
|
||||
request = core_pb2.SetNodeServiceRequest(
|
||||
session_id=session_id,
|
||||
config = core_pb2.ServiceConfig(
|
||||
node_id=node_id,
|
||||
service=service,
|
||||
startup=startup,
|
||||
validate=validate,
|
||||
shutdown=shutdown,
|
||||
)
|
||||
request = core_pb2.SetNodeServiceRequest(session_id=session_id, config=config)
|
||||
return self.stub.SetNodeService(request)
|
||||
|
||||
def set_node_service_file(self, session_id, node_id, service, file_name, data):
|
||||
|
@ -791,12 +797,11 @@ class CoreGrpcClient:
|
|||
:rtype: core_pb2.SetNodeServiceFileResponse
|
||||
:raises grpc.RpcError: when session or node doesn't exist
|
||||
"""
|
||||
config = core_pb2.ServiceFileConfig(
|
||||
node_id=node_id, service=service, file=file_name, data=data
|
||||
)
|
||||
request = core_pb2.SetNodeServiceFileRequest(
|
||||
session_id=session_id,
|
||||
node_id=node_id,
|
||||
service=service,
|
||||
file=file_name,
|
||||
data=data,
|
||||
session_id=session_id, config=config
|
||||
)
|
||||
return self.stub.SetNodeServiceFile(request)
|
||||
|
||||
|
|
|
@ -319,3 +319,18 @@ def session_location(session, location):
|
|||
session.location.refxyz = (location.x, location.y, location.z)
|
||||
session.location.setrefgeo(location.lat, location.lon, location.alt)
|
||||
session.location.refscale = location.scale
|
||||
|
||||
|
||||
def service_configuration(session, config):
|
||||
"""
|
||||
Convenience method for setting a node service configuration.
|
||||
|
||||
:param core.emulator.session.Session session: session for service configuration
|
||||
:param core_pb2.ServiceConfig config: service configuration
|
||||
:return:
|
||||
"""
|
||||
session.services.set_service(config.node_id, config.service)
|
||||
service = session.services.get_service(config.node_id, config.service)
|
||||
service.startup = tuple(config.startup)
|
||||
service.validate = tuple(config.validate)
|
||||
service.shutdown = tuple(config.shutdown)
|
||||
|
|
|
@ -153,6 +153,16 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
config.node_id, Ns2ScriptedMobility.name, config.config
|
||||
)
|
||||
|
||||
# service configs
|
||||
for config in request.service_configs:
|
||||
grpcutils.service_configuration(session, config)
|
||||
|
||||
# service file configs
|
||||
for config in request.service_file_configs:
|
||||
session.services.set_service_file(
|
||||
config.node_id, config.service, config.file, config.data
|
||||
)
|
||||
|
||||
# create links
|
||||
grpcutils.create_links(session, request.links)
|
||||
|
||||
|
@ -1172,11 +1182,8 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
"""
|
||||
logging.debug("set node service: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
session.services.set_service(request.node_id, request.service)
|
||||
service = session.services.get_service(request.node_id, request.service)
|
||||
service.startup = tuple(request.startup)
|
||||
service.validate = tuple(request.validate)
|
||||
service.shutdown = tuple(request.shutdown)
|
||||
config = request.config
|
||||
grpcutils.service_configuration(session, config)
|
||||
return core_pb2.SetNodeServiceResponse(result=True)
|
||||
|
||||
def SetNodeServiceFile(self, request, context):
|
||||
|
@ -1191,8 +1198,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
"""
|
||||
logging.debug("set node service file: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
config = request.config
|
||||
session.services.set_service_file(
|
||||
request.node_id, request.service, request.file, request.data
|
||||
config.node_id, config.service, config.file, config.data
|
||||
)
|
||||
return core_pb2.SetNodeServiceFileResponse(result=True)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue