further updates to python docs and docs files
This commit is contained in:
parent
2bfcc9ef24
commit
1843b5f709
6 changed files with 459 additions and 81 deletions
|
@ -35,12 +35,27 @@ _INTERFACE_REGEX = re.compile(r"\d+")
|
|||
|
||||
|
||||
def convert_value(value):
|
||||
"""
|
||||
Convert value into string.
|
||||
|
||||
:param value: value
|
||||
:return: string conversion of the value
|
||||
:rtype: str
|
||||
"""
|
||||
if value is not None:
|
||||
value = str(value)
|
||||
return value
|
||||
|
||||
|
||||
# TODO add comments
|
||||
def get_config_groups(config, configurable_options):
|
||||
"""
|
||||
???
|
||||
|
||||
:param core.config.Configuration config: configuration
|
||||
:param core.config.ConfigurableOptions configurable_options: configurable options
|
||||
:return:
|
||||
"""
|
||||
groups = []
|
||||
config_options = []
|
||||
|
||||
|
@ -66,11 +81,13 @@ def get_config_groups(config, configurable_options):
|
|||
return groups
|
||||
|
||||
|
||||
# TODO add comments
|
||||
def get_links(session, node):
|
||||
"""
|
||||
Get
|
||||
:param session:
|
||||
:param node:
|
||||
|
||||
:param core.emulator.Session session: node's section
|
||||
:param core.nodes.base.CoreNode node: node to get links from
|
||||
:return:
|
||||
"""
|
||||
links = []
|
||||
|
@ -81,6 +98,14 @@ def get_links(session, node):
|
|||
|
||||
|
||||
def get_emane_model_id(node_id, interface_id):
|
||||
"""
|
||||
Get EMANE model id
|
||||
|
||||
:param int node_id: node id
|
||||
:param int interface_id: interface id
|
||||
:return: EMANE model id
|
||||
:rtype: int
|
||||
"""
|
||||
if interface_id >= 0:
|
||||
return node_id * 1000 + interface_id
|
||||
else:
|
||||
|
@ -88,6 +113,14 @@ def get_emane_model_id(node_id, interface_id):
|
|||
|
||||
|
||||
def convert_link(session, link_data):
|
||||
"""
|
||||
Convert link_data into core protobuf Link
|
||||
|
||||
:param core.emulator.session.Session session:
|
||||
:param core.emulator.data.LinkData link_data:
|
||||
:return: core protobuf Link
|
||||
:rtype: core.api.grpc.core_pb2.Link
|
||||
"""
|
||||
interface_one = None
|
||||
if link_data.interface1_id is not None:
|
||||
node = session.get_node(link_data.node1_id)
|
||||
|
@ -146,6 +179,7 @@ def convert_link(session, link_data):
|
|||
)
|
||||
|
||||
|
||||
# TODO add comments
|
||||
def get_net_stats():
|
||||
with open("/proc/net/dev", "r") as f:
|
||||
data = f.readlines()[2:]
|
||||
|
@ -162,7 +196,14 @@ def get_net_stats():
|
|||
return stats
|
||||
|
||||
|
||||
# TODO add comment
|
||||
class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
||||
"""
|
||||
Create CoreGrpcServer instance
|
||||
|
||||
:param core.emulator.coreemu.CoreEmu coreemu: coreemu object
|
||||
"""
|
||||
|
||||
def __init__(self, coreemu):
|
||||
super(CoreGrpcServer, self).__init__()
|
||||
self.coreemu = coreemu
|
||||
|
@ -194,6 +235,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
self.server.stop(None)
|
||||
|
||||
def get_session(self, session_id, context):
|
||||
"""
|
||||
Retrieve session given the session id
|
||||
|
||||
:param int session_id: session id
|
||||
:param grpc.ServicerContext context:
|
||||
: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)
|
||||
if not session:
|
||||
context.abort(
|
||||
|
@ -202,6 +251,15 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return session
|
||||
|
||||
def get_node(self, session, node_id, context):
|
||||
"""
|
||||
Retrieve node given session and node id
|
||||
|
||||
:param core.emulator.session.Session session: session that contains the node
|
||||
:param int node_id: node id
|
||||
:param grpc.ServicerContext context:
|
||||
:return: node object that satisfies. If node not found then raise an exception.
|
||||
:rtype: core.nodes.base.CoreNode
|
||||
"""
|
||||
try:
|
||||
return session.get_node(node_id)
|
||||
except KeyError:
|
||||
|
@ -210,6 +268,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
)
|
||||
|
||||
def CreateSession(self, request, context):
|
||||
"""
|
||||
Create a session
|
||||
|
||||
:param core.api.grpc.core_pb2.CreateSessionRequest request: create-session request
|
||||
:param grpc.ServicerContext context:
|
||||
:return: a create-session response
|
||||
:rtype: core.api.grpc.core_pb2.CreateSessionResponse
|
||||
"""
|
||||
logging.debug("create session: %s", request)
|
||||
session = self.coreemu.create_session(request.session_id)
|
||||
session.set_state(EventTypes.DEFINITION_STATE)
|
||||
|
@ -220,11 +286,27 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
)
|
||||
|
||||
def DeleteSession(self, request, context):
|
||||
"""
|
||||
Delete the session
|
||||
|
||||
:param core.api.grpc.core_pb2.DeleteSessionRequest request: delete-session request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: a delete-session response
|
||||
:rtype: core.api.grpc.core_pb2.DeleteSessionResponse
|
||||
"""
|
||||
logging.debug("delete session: %s", request)
|
||||
result = self.coreemu.delete_session(request.session_id)
|
||||
return core_pb2.DeleteSessionResponse(result=result)
|
||||
|
||||
def GetSessions(self, request, context):
|
||||
"""
|
||||
Delete the session
|
||||
|
||||
:param core.api.grpc.core_pb2.GetSessionRequest request: get-session request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: a delete-session response
|
||||
:rtype: core.api.grpc.core_pb2.DeleteSessionResponse
|
||||
"""
|
||||
logging.debug("get sessions: %s", request)
|
||||
sessions = []
|
||||
for session_id in self.coreemu.sessions:
|
||||
|
@ -236,6 +318,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetSessionsResponse(sessions=sessions)
|
||||
|
||||
def GetSessionLocation(self, request, context):
|
||||
"""
|
||||
Retrieve a requested session location
|
||||
|
||||
:param core.api.grpc.core_pb2.GetSessionLocationRequest request: get-session-location request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: a get-session-location response
|
||||
:rtype: core.api.grpc.core_pb2.GetSessionLocationResponse
|
||||
"""
|
||||
logging.debug("get session location: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
x, y, z = session.location.refxyz
|
||||
|
@ -246,6 +336,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
)
|
||||
|
||||
def SetSessionLocation(self, request, context):
|
||||
"""
|
||||
Set session location
|
||||
|
||||
:param core.api.grpc.core_pb2.SetSessionLocationRequest request: set-session-location request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: a set-session-location-response
|
||||
:rtype: core.api.grpc.core_pb2.SetSessionLocationResponse
|
||||
"""
|
||||
logging.debug("set session location: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
session.location.refxyz = (
|
||||
|
@ -260,6 +358,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.SetSessionLocationResponse(result=True)
|
||||
|
||||
def SetSessionState(self, request, context):
|
||||
"""
|
||||
Set session state
|
||||
|
||||
:param core.api.grpc.core_pb2.SetSessionStateRequest request: set-session-state request
|
||||
:param grpc.ServicerContext context:context object
|
||||
:return: set-session-state response
|
||||
:rtype: core.api.grpc.core_pb2.SetSessionStateResponse
|
||||
"""
|
||||
logging.debug("set session state: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
|
||||
|
@ -284,6 +390,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
|
||||
return core_pb2.SetSessionStateResponse(result=result)
|
||||
|
||||
# TODO add comments
|
||||
def GetSessionOptions(self, request, context):
|
||||
logging.debug("get session options: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
|
@ -293,6 +400,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
groups = get_config_groups(defaults, session.options)
|
||||
return core_pb2.GetSessionOptionsResponse(groups=groups)
|
||||
|
||||
# TODO add comments
|
||||
def SetSessionOptions(self, request, context):
|
||||
logging.debug("set session options: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
|
@ -301,6 +409,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.SetSessionOptionsResponse(result=True)
|
||||
|
||||
def GetSession(self, request, context):
|
||||
"""
|
||||
Retrieve requested session
|
||||
|
||||
:param core.api.grpc.core_pb2.GetSessionRequest request: get-session request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-session response
|
||||
:rtype: core.api.grpc.core_bp2.GetSessionResponse
|
||||
"""
|
||||
logging.debug("get session: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
|
||||
|
@ -345,6 +461,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
session_proto = core_pb2.Session(state=session.state, nodes=nodes, links=links)
|
||||
return core_pb2.GetSessionResponse(session=session_proto)
|
||||
|
||||
# TODO add comments
|
||||
def Events(self, request, context):
|
||||
session = self.get_session(request.session_id, context)
|
||||
queue = Queue()
|
||||
|
@ -389,7 +506,15 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
session.event_handlers.remove(queue.put)
|
||||
self._cancel_stream(context)
|
||||
|
||||
# TODO add comment
|
||||
def _handle_node_event(self, event):
|
||||
"""
|
||||
Handle node event when there is a node event
|
||||
|
||||
:param event: an event in the event queue
|
||||
:return: node event that contains node id, name, model, position, and services
|
||||
:rtype: core.api.grpc.core_pb2.Node Event
|
||||
"""
|
||||
position = core_pb2.Position(x=event.x_position, y=event.y_position)
|
||||
services = event.services or ""
|
||||
services = services.split("|")
|
||||
|
@ -402,7 +527,15 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
)
|
||||
return core_pb2.NodeEvent(node=node_proto)
|
||||
|
||||
# TODO add comments
|
||||
def _handle_link_event(self, event):
|
||||
"""
|
||||
Handle link event when there is a link event
|
||||
|
||||
:param event: an event from the event queue
|
||||
:return: link event that has message type and link information
|
||||
:rtype: core.api.grpc.core_pb2.LinkEvent
|
||||
"""
|
||||
interface_one = None
|
||||
if event.interface1_id is not None:
|
||||
interface_one = core_pb2.Interface(
|
||||
|
@ -450,7 +583,15 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
)
|
||||
return core_pb2.LinkEvent(message_type=event.message_type, link=link)
|
||||
|
||||
# TODO add comments
|
||||
def _handle_session_event(self, event):
|
||||
"""
|
||||
Handle session event when there is a session event
|
||||
|
||||
:param event:
|
||||
:return: session event
|
||||
:rtype: core.api.grpc.core_pb2.SessionEvent
|
||||
"""
|
||||
event_time = event.time
|
||||
if event_time is not None:
|
||||
event_time = float(event_time)
|
||||
|
@ -463,7 +604,15 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
session_id=event.session,
|
||||
)
|
||||
|
||||
# TODO add comments
|
||||
def _handle_config_event(self, event):
|
||||
"""
|
||||
Handle configuration event when there is configuration event
|
||||
|
||||
:param event:
|
||||
:return: configuration event
|
||||
:rtype: core.api.grpc.core_pb2.ConfigEvent
|
||||
"""
|
||||
session_id = None
|
||||
if event.session is not None:
|
||||
session_id = int(event.session)
|
||||
|
@ -484,7 +633,12 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
data_types=event.data_types,
|
||||
)
|
||||
|
||||
# TODO add comments
|
||||
def _handle_exception_event(self, event):
|
||||
"""
|
||||
:param event:
|
||||
:return:
|
||||
"""
|
||||
return core_pb2.ExceptionEvent(
|
||||
node_id=event.node,
|
||||
session_id=int(event.session),
|
||||
|
@ -495,6 +649,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
opaque=event.opaque,
|
||||
)
|
||||
|
||||
# TODO add comments
|
||||
def _handle_file_event(self, event):
|
||||
return core_pb2.FileEvent(
|
||||
message_type=event.message_type,
|
||||
|
@ -509,6 +664,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
compressed_data=event.compressed_data,
|
||||
)
|
||||
|
||||
# TODO add comments
|
||||
def Throughputs(self, request, context):
|
||||
delay = 3
|
||||
last_check = None
|
||||
|
@ -561,6 +717,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
time.sleep(delay)
|
||||
|
||||
def AddNode(self, request, context):
|
||||
"""
|
||||
Add node to requested session
|
||||
|
||||
:param core.api.grpc.core_pb2.AddNodeRequest request: add-node request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: add-node response
|
||||
:rtype: core.api.grpc.core_pb2.AddNodeResponse
|
||||
"""
|
||||
logging.debug("add node: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
|
||||
|
@ -590,6 +754,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.AddNodeResponse(node_id=node.id)
|
||||
|
||||
def GetNode(self, request, context):
|
||||
"""
|
||||
Retrieve node
|
||||
|
||||
:param core.api.grpc.core_pb2.GetNodeRequest request: get-node request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-node response
|
||||
:rtype: core.api.grpc.core_pb2.GetNodeResponse
|
||||
"""
|
||||
logging.debug("get node: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node = self.get_node(session, request.node_id, context)
|
||||
|
@ -634,6 +806,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetNodeResponse(node=node_proto, interfaces=interfaces)
|
||||
|
||||
def EditNode(self, request, context):
|
||||
"""
|
||||
Edit node
|
||||
|
||||
:param core.api.grpc.core_bp2.EditNodeRequest request: edit-node request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: edit-node response
|
||||
:rtype: core.api.grpc.core_pb2.EditNodeResponse
|
||||
"""
|
||||
logging.debug("edit node: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node_id = request.node_id
|
||||
|
@ -653,12 +833,26 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.EditNodeResponse(result=result)
|
||||
|
||||
def DeleteNode(self, request, context):
|
||||
"""
|
||||
Delete node
|
||||
|
||||
:param core.api.grpc.core_pb2.DeleteNodeRequest request: delete-node request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: core.api.grpc.core_pb2.DeleteNodeResponse
|
||||
"""
|
||||
logging.debug("delete node: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
result = session.delete_node(request.node_id)
|
||||
return core_pb2.DeleteNodeResponse(result=result)
|
||||
|
||||
def NodeCommand(self, request, context):
|
||||
"""
|
||||
Run command on a node
|
||||
|
||||
:param core.api.grpc.core_pb2.NodeCommandRequest request: node-command request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: core.api.grpc.core_pb2.NodeCommandResponse
|
||||
"""
|
||||
logging.debug("sending node command: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node = self.get_node(session, request.node_id, context)
|
||||
|
@ -666,6 +860,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.NodeCommandResponse(output=output)
|
||||
|
||||
def GetNodeTerminal(self, request, context):
|
||||
"""
|
||||
Retrieve terminal command string of a node
|
||||
|
||||
:param core.api.grpc.core_pb2.GetNodeTerminalRequest request: get-node-terminal request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-node-terminal response
|
||||
:rtype: core.api.grpc.core_bp2.GetNodeTerminalResponse
|
||||
"""
|
||||
logging.debug("getting node terminal: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node = self.get_node(session, request.node_id, context)
|
||||
|
@ -673,6 +875,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetNodeTerminalResponse(terminal=terminal)
|
||||
|
||||
def GetNodeLinks(self, request, context):
|
||||
"""
|
||||
Retrieve all links form a requested node
|
||||
|
||||
:param core.api.grpc.core_pb2.GetNodeLinksRequest request: get-node-links request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-node-links response
|
||||
:rtype: core.api.grpc.core_pb2.GetNodeLinksResponse
|
||||
"""
|
||||
logging.debug("get node links: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node = self.get_node(session, request.node_id, context)
|
||||
|
@ -680,6 +890,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetNodeLinksResponse(links=links)
|
||||
|
||||
def AddLink(self, request, context):
|
||||
"""
|
||||
Add link to a session
|
||||
|
||||
:param core.api.grpc.core_pb2.AddLinkRequest request: add-link request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: add-link response
|
||||
:rtype: core.api.grpc.AddLinkResponse
|
||||
"""
|
||||
logging.debug("add link: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
|
||||
|
@ -761,6 +979,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.AddLinkResponse(result=True)
|
||||
|
||||
def EditLink(self, request, context):
|
||||
"""
|
||||
Edit a link
|
||||
|
||||
:param core.api.grpc.core_pb2.EditLinkRequest request: edit-link request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: edit-link response
|
||||
:rtype: core.api.grpc.core_pb2.EditLinkResponse
|
||||
"""
|
||||
logging.debug("edit link: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node_one_id = request.node_one_id
|
||||
|
@ -786,6 +1012,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.EditLinkResponse(result=True)
|
||||
|
||||
def DeleteLink(self, request, context):
|
||||
"""
|
||||
Delete a link
|
||||
|
||||
:param core.api.grpc.core_pb2.DeleteLinkRequest request: delete-link request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: delete-link response
|
||||
:rtype: core.api.grpc.core_pb2.DeleteLinkResponse
|
||||
"""
|
||||
logging.debug("delete link: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node_one_id = request.node_one_id
|
||||
|
@ -809,6 +1043,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetHooksResponse(hooks=hooks)
|
||||
|
||||
def AddHook(self, request, context):
|
||||
"""
|
||||
Add hook to a session
|
||||
|
||||
:param core.api.grpc.core_pb2.AddHookRequest request: add-hook request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: add-hook response
|
||||
:rtype: core.api.grpc.core_pb2.AddHookResponse
|
||||
"""
|
||||
logging.debug("add hook: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
hook = request.hook
|
||||
|
@ -816,6 +1058,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.AddHookResponse(result=True)
|
||||
|
||||
def GetMobilityConfigs(self, request, context):
|
||||
"""
|
||||
Retrieve all mobility configurations from a session
|
||||
|
||||
:param core.api.grpc.core_pb2.GetMobilityConfigsRequest request: get-mobility-configurations request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-mobility-configurations response that has a list of configurations
|
||||
:rtype: core.api.grpc.core_pb2.GetMobilityConfigsResponse
|
||||
"""
|
||||
logging.debug("get mobility configs: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
response = core_pb2.GetMobilityConfigsResponse()
|
||||
|
@ -832,6 +1082,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return response
|
||||
|
||||
def GetMobilityConfig(self, request, context):
|
||||
"""
|
||||
Retrieve mobility configuration of a node
|
||||
|
||||
:param core.api.grpc.core_pb2.GetMobilityConfigRequest request: get-mobility-configuration request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-mobility-configuration response
|
||||
:rtype: core.api.grpc.core_pb2.GetMobilityConfigResponse
|
||||
"""
|
||||
logging.debug("get mobility config: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
config = session.mobility.get_model_config(
|
||||
|
@ -841,6 +1099,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetMobilityConfigResponse(groups=groups)
|
||||
|
||||
def SetMobilityConfig(self, request, context):
|
||||
"""
|
||||
Set mobility configuration of a node
|
||||
|
||||
:param core.api.grpc.core_pb2.SetMobilityConfigRequest request: set-mobility-configuration request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: set-mobility-configuration response
|
||||
"rtype" core.api.grpc.SetMobilityConfigResponse
|
||||
"""
|
||||
logging.debug("set mobility config: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
session.mobility.set_model_config(
|
||||
|
@ -849,6 +1115,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.SetMobilityConfigResponse(result=True)
|
||||
|
||||
def MobilityAction(self, request, context):
|
||||
"""
|
||||
Take mobility action whether to start, pause, stop or none of those
|
||||
|
||||
:param core.api.grpc.core_pb2.MobilityActionRequest request: mobility-action request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: mobility-action response
|
||||
:rtype: core.api.grpc.core_pb2.MobilityActionResponse
|
||||
"""
|
||||
logging.debug("mobility action: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node = self.get_node(session, request.node_id, context)
|
||||
|
@ -864,6 +1138,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.MobilityActionResponse(result=result)
|
||||
|
||||
def GetServices(self, request, context):
|
||||
"""
|
||||
Retrieve all the services that are running
|
||||
|
||||
:param core.api.grpc.core_pb2.GetServicesRequest request: get-service request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-services response
|
||||
:rtype: core.api.grpc.core_pb2.GetServicesResponse
|
||||
"""
|
||||
logging.debug("get services: %s", request)
|
||||
services = []
|
||||
for name in ServiceManager.services:
|
||||
|
@ -873,6 +1155,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetServicesResponse(services=services)
|
||||
|
||||
def GetServiceDefaults(self, request, context):
|
||||
"""
|
||||
Retrieve all the default services of all node types in a session
|
||||
|
||||
:param core.api.grpc.core_pb2.GetServiceDefaultsRequest request: get-default-service request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-service-defaults response about all the available default services
|
||||
:rtype: core.api.grpc.core_pb2.GetServiceDefaultsResponse
|
||||
"""
|
||||
logging.debug("get service defaults: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
all_service_defaults = []
|
||||
|
@ -884,6 +1174,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
all_service_defaults.append(service_defaults)
|
||||
return core_pb2.GetServiceDefaultsResponse(defaults=all_service_defaults)
|
||||
|
||||
# TODO add comments
|
||||
def SetServiceDefaults(self, request, context):
|
||||
logging.debug("set service defaults: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
|
@ -895,6 +1186,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.SetServiceDefaultsResponse(result=True)
|
||||
|
||||
def GetNodeService(self, request, context):
|
||||
"""
|
||||
Retrieve a requested service from a node
|
||||
|
||||
:param core.api.grpc.core_pb2.GetNodeServiceRequest request: get-node-service request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-node-service response about the requested service
|
||||
:rtype: core.api.grpc.core_pb2.GetNodeServiceResponse
|
||||
"""
|
||||
logging.debug("get node service: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
service = session.services.get_service(
|
||||
|
@ -915,6 +1214,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetNodeServiceResponse(service=service_proto)
|
||||
|
||||
def GetNodeServiceFile(self, request, context):
|
||||
"""
|
||||
Retrieve a requested service file from a node
|
||||
|
||||
:param core.api.grpc.core_pb2.GetNodeServiceFileRequest request: get-node-service request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-node-service response about the requested service
|
||||
:rtype: core.api.grpc.core_pb2.GetNodeServiceFileResponse
|
||||
"""
|
||||
logging.debug("get node service file: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node = self.get_node(session, request.node_id, context)
|
||||
|
@ -931,6 +1238,15 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetNodeServiceFileResponse(data=file_data.data)
|
||||
|
||||
def SetNodeService(self, request, context):
|
||||
"""
|
||||
Set a node service for a node
|
||||
|
||||
:param core.api.grpc.core_pb2.SetNodeServiceRequest request: set-node-service request
|
||||
that has info to set a node service
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: set-node-service response
|
||||
:rtype: core.api.grpc.core_pb2.SetNodeServiceResponse
|
||||
"""
|
||||
logging.debug("set node service: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
session.services.set_service(request.node_id, request.service)
|
||||
|
@ -941,6 +1257,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.SetNodeServiceResponse(result=True)
|
||||
|
||||
def SetNodeServiceFile(self, request, context):
|
||||
"""
|
||||
Store the customized service file in the service config
|
||||
|
||||
:param core.api.grpc.core_pb2.SetNodeServiceFileRequest request: set-node-service-file request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: set-node-service-file response
|
||||
:rtype: core.api.grpc.core_pb2.SetNodeServiceFileResponse
|
||||
"""
|
||||
logging.debug("set node service file: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
session.services.set_service_file(
|
||||
|
@ -949,6 +1273,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.SetNodeServiceFileResponse(result=True)
|
||||
|
||||
def ServiceAction(self, request, context):
|
||||
"""
|
||||
Take action whether to start, stop, restart, validate the service or none of the above
|
||||
|
||||
:param core.api.grpc.core_pb2.ServiceActionRequest request: service-action request
|
||||
:param grpcServicerContext context: context object
|
||||
:return: service-action response about status of action
|
||||
:rtype: core.api.grpc.core_pb2.ServiceActionResponse
|
||||
"""
|
||||
logging.debug("service action: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node = self.get_node(session, request.node_id, context)
|
||||
|
@ -980,6 +1312,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.ServiceActionResponse(result=result)
|
||||
|
||||
def GetWlanConfig(self, request, context):
|
||||
"""
|
||||
Retrieve wireless-lan configuration of a node
|
||||
|
||||
:param core.api.grpc.core_pb2.GetWlanConfigRequest request: get-wlan-configuration request
|
||||
:param context: core.api.grpc.core_pb2.GetWlanConfigResponse
|
||||
:return: get-wlan-configuration response about the wlan configuration of a node
|
||||
:rtype: core.api.grpc.core_pb2.GetWlanConfigResponse
|
||||
"""
|
||||
logging.debug("get wlan config: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
config = session.mobility.get_model_config(
|
||||
|
@ -989,6 +1329,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetWlanConfigResponse(groups=groups)
|
||||
|
||||
def SetWlanConfig(self, request, context):
|
||||
"""
|
||||
Set configuration data for a model
|
||||
|
||||
:param core.api.grpc.core_pb2.SetWlanConfigRequest request: set-wlan-configuration request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: set-wlan-configuration response
|
||||
:rtype: core.api.grpc.core_pb2.SetWlanConfigResponse
|
||||
"""
|
||||
logging.debug("set wlan config: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
session.mobility.set_model_config(
|
||||
|
@ -1000,6 +1348,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.SetWlanConfigResponse(result=True)
|
||||
|
||||
def GetEmaneConfig(self, request, context):
|
||||
"""
|
||||
Retrieve EMANE configuration of a session
|
||||
|
||||
:param core.api.grpc.core_pb2.GetEmanConfigRequest request: get-EMANE-configuration request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: get-EMANE-configuration response
|
||||
:rtype: core.api.grpc.core_pb2.GetEmaneConfigResponse
|
||||
"""
|
||||
logging.debug("get emane config: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
config = session.emane.get_configs()
|
||||
|
@ -1007,13 +1363,29 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.GetEmaneConfigResponse(groups=groups)
|
||||
|
||||
def SetEmaneConfig(self, request, context):
|
||||
"""
|
||||
Set EMANE configuration of a session
|
||||
|
||||
:param core.api.grpc.core_pb2.SetEmaneConfigRequest request: set-EMANE-configuration request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: set-EMANE-configuration response
|
||||
:rtype: core.api.grpc.core_pb2.SetEmaneConfigResponse
|
||||
"""
|
||||
logging.debug("set emane config: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
config = session.emane.get_configs()
|
||||
config.update(request.config)
|
||||
return core_pb2.SetEmaneConfigResponse(result=True)
|
||||
|
||||
# TODO add comment
|
||||
def GetEmaneModels(self, request, context):
|
||||
"""
|
||||
Retrieve all the EMANE models in the session
|
||||
|
||||
:param request:
|
||||
:param context:
|
||||
:return:
|
||||
"""
|
||||
logging.debug("get emane models: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
models = []
|
||||
|
@ -1058,6 +1430,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return response
|
||||
|
||||
def SaveXml(self, request, context):
|
||||
"""
|
||||
Export the session nto the EmulationScript XML format
|
||||
|
||||
:param core.api.grpc.core_pb2.SaveXmlRequest request: save xml request
|
||||
:param grpc SrvicerContext context: context object
|
||||
:return: save-xml response
|
||||
:rtype: core.api.grpc.core_pb2.SaveXmlResponse
|
||||
"""
|
||||
logging.debug("save xml: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
|
||||
|
@ -1070,6 +1450,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
return core_pb2.SaveXmlResponse(data=data)
|
||||
|
||||
def OpenXml(self, request, context):
|
||||
"""
|
||||
Import a session from the EmulationScript XML format
|
||||
|
||||
:param core.api.grpc.OpenXmlRequest request: open-xml request
|
||||
:param grpc.ServicerContext context: context object
|
||||
:return: Open-XML response or raise an exception if invalid XML file
|
||||
:rtype: core.api.grpc.core_pb2.OpenXMLResponse
|
||||
"""
|
||||
logging.debug("open xml: %s", request)
|
||||
session = self.coreemu.create_session()
|
||||
session.set_state(EventTypes.CONFIGURATION_STATE)
|
||||
|
@ -1086,6 +1474,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
self.coreemu.delete_session(session.id)
|
||||
context.abort(grpc.StatusCode.INVALID_ARGUMENT, "invalid xml file")
|
||||
|
||||
# TODO add comment
|
||||
def GetInterfaces(self, request, context):
|
||||
interfaces = []
|
||||
for interface in os.listdir("/sys/class/net"):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue