grpc added get hooks and add hook
This commit is contained in:
parent
8559b425ee
commit
5d72b6af26
3 changed files with 81 additions and 2 deletions
|
@ -212,6 +212,19 @@ class CoreApiClient(object):
|
|||
)
|
||||
return self.stub.DeleteLink(request)
|
||||
|
||||
def get_hooks(self, session):
|
||||
request = core_pb2.GetHooksRequest()
|
||||
request.session = session
|
||||
return self.stub.GetHooks(request)
|
||||
|
||||
def add_hook(self, session, state, file_name, file_data):
|
||||
request = core_pb2.AddHookRequest()
|
||||
request.session = session
|
||||
request.hook.state = state.value
|
||||
request.hook.file = file_name
|
||||
request.hook.data = file_data
|
||||
return self.stub.AddHook(request)
|
||||
|
||||
def get_services(self):
|
||||
request = core_pb2.GetServicesRequest()
|
||||
return self.stub.GetServices(request)
|
||||
|
@ -317,10 +330,10 @@ def main():
|
|||
# create session
|
||||
session_data = client.create_session()
|
||||
print("created session: {}".format(session_data))
|
||||
|
||||
print("default services: {}".format(client.get_service_defaults(session_data.id)))
|
||||
|
||||
print("emane models: {}".format(client.get_emane_models(session_data.id)))
|
||||
print("add hook: {}".format(client.add_hook(session_data.id, EventTypes.RUNTIME_STATE, "test", "echo hello")))
|
||||
print("hooks: {}".format(client.get_hooks(session_data.id)))
|
||||
|
||||
response = client.get_sessions()
|
||||
print("core client received: {}".format(response))
|
||||
|
|
|
@ -507,6 +507,32 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
|||
response.result = True
|
||||
return response
|
||||
|
||||
def GetHooks(self, request, context):
|
||||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
|
||||
response = core_pb2.GetHooksResponse()
|
||||
for state, state_hooks in session._hooks.iteritems():
|
||||
for file_name, file_data in state_hooks:
|
||||
hook = response.hooks.add()
|
||||
hook.state = state
|
||||
hook.file = file_name
|
||||
hook.data = file_data
|
||||
|
||||
return response
|
||||
|
||||
def AddHook(self, request, context):
|
||||
session = self.coreemu.sessions.get(request.session)
|
||||
if not session:
|
||||
raise Exception("no session found")
|
||||
|
||||
hook = request.hook
|
||||
session.add_hook(hook.state, hook.file, None, hook.data)
|
||||
response = core_pb2.AddHookResponse()
|
||||
response.result = True
|
||||
return response
|
||||
|
||||
def GetServices(self, request, context):
|
||||
response = core_pb2.GetServicesResponse()
|
||||
for service in ServiceManager.services.itervalues():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue