grpc added set node service, set node service file, set session options
This commit is contained in:
parent
a62a03e6b9
commit
9185c6b8eb
3 changed files with 124 additions and 31 deletions
|
@ -129,7 +129,7 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
|||
return response
|
||||
|
||||
def GetSessions(self, request, context):
|
||||
response = core_pb2.SessionsResponse()
|
||||
response = core_pb2.GetSessionsResponse()
|
||||
for session_id in self.coreemu.sessions:
|
||||
session = self.coreemu.sessions[session_id]
|
||||
session_data = response.sessions.add()
|
||||
|
@ -201,16 +201,26 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
|||
|
||||
groups = get_config_groups(defaults, session.options)
|
||||
|
||||
response = core_pb2.SessionOptionsResponse()
|
||||
response = core_pb2.GetSessionOptionsResponse()
|
||||
response.groups.extend(groups)
|
||||
return response
|
||||
|
||||
def SetSessionOptions(self, request, context):
|
||||
session = self.coreemu.sessions.get(request.id)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
|
||||
session.options.set_configs(request.config)
|
||||
response = core_pb2.SetSessionOptionsResponse()
|
||||
response.result = True
|
||||
return response
|
||||
|
||||
def GetSession(self, request, context):
|
||||
session = self.coreemu.sessions.get(request.id)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
|
||||
response = core_pb2.SessionResponse()
|
||||
response = core_pb2.GetSessionResponse()
|
||||
response.state = session.state
|
||||
|
||||
for node_id in session.objects:
|
||||
|
@ -614,11 +624,8 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
|||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
node = session.get_object(request.id)
|
||||
if not node:
|
||||
raise Exception("no node found")
|
||||
|
||||
service = session.services.get_service(node.objid, request.service, default_service=True)
|
||||
service = session.services.get_service(request.id, request.service, default_service=True)
|
||||
response = core_pb2.GetNodeServiceResponse()
|
||||
response.service.executables.extend(service.executables)
|
||||
response.service.dependencies.extend(service.dependencies)
|
||||
|
@ -654,6 +661,36 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
|||
response.data = file_data.data
|
||||
return response
|
||||
|
||||
def SetNodeService(self, request, context):
|
||||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
|
||||
# guarantee custom service exists
|
||||
session.services.set_service(request.id, request.service)
|
||||
service = session.services.get_service(request.id, request.service)
|
||||
service.startup = tuple(request.startup)
|
||||
logging.info("custom startup: %s", service.startup)
|
||||
service.validate = tuple(request.validate)
|
||||
logging.info("custom validate: %s", service.validate)
|
||||
service.shutdown = tuple(request.shutdown)
|
||||
logging.info("custom shutdown: %s", service.shutdown)
|
||||
|
||||
response = core_pb2.SetNodeServiceResponse()
|
||||
response.result = True
|
||||
return response
|
||||
|
||||
def SetNodeServiceFile(self, request, context):
|
||||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
|
||||
session.services.set_service_file(request.id, request.service, request.file, request.data)
|
||||
|
||||
response = core_pb2.SetNodeServiceFileResponse()
|
||||
response.result = True
|
||||
return response
|
||||
|
||||
def ServiceAction(self, request, context):
|
||||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
|
@ -695,11 +732,8 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
|||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
node = session.get_object(request.id)
|
||||
if not node:
|
||||
raise Exception("no node found")
|
||||
|
||||
config = session.mobility.get_model_config(node.objid, BasicRangeModel.name)
|
||||
config = session.mobility.get_model_config(request.id, BasicRangeModel.name)
|
||||
groups = get_config_groups(config, BasicRangeModel)
|
||||
response = core_pb2.GetWlanConfigResponse()
|
||||
response.groups.extend(groups)
|
||||
|
@ -709,11 +743,8 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
|||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
node = session.get_object(request.id)
|
||||
if not node:
|
||||
raise Exception("no node found")
|
||||
|
||||
session.mobility.set_model_config(node.objid, BasicRangeModel.name, request.config)
|
||||
session.mobility.set_model_config(request.id, BasicRangeModel.name, request.config)
|
||||
response = core_pb2.SetWlanConfigResponse()
|
||||
response.result = True
|
||||
return response
|
||||
|
@ -757,12 +788,9 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
|||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
node = session.get_object(request.id)
|
||||
if not node:
|
||||
raise Exception("no node found")
|
||||
|
||||
model = session.emane.models[request.model]
|
||||
config = session.emane.get_model_config(node.objid, request.model)
|
||||
config = session.emane.get_model_config(request.id, request.model)
|
||||
groups = get_config_groups(config, model)
|
||||
response = core_pb2.GetEmaneModelConfigResponse()
|
||||
response.groups.extend(groups)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue