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)
|
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):
|
def get_services(self):
|
||||||
request = core_pb2.GetServicesRequest()
|
request = core_pb2.GetServicesRequest()
|
||||||
return self.stub.GetServices(request)
|
return self.stub.GetServices(request)
|
||||||
|
@ -317,10 +330,10 @@ def main():
|
||||||
# create session
|
# create session
|
||||||
session_data = client.create_session()
|
session_data = client.create_session()
|
||||||
print("created session: {}".format(session_data))
|
print("created session: {}".format(session_data))
|
||||||
|
|
||||||
print("default services: {}".format(client.get_service_defaults(session_data.id)))
|
print("default services: {}".format(client.get_service_defaults(session_data.id)))
|
||||||
|
|
||||||
print("emane models: {}".format(client.get_emane_models(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()
|
response = client.get_sessions()
|
||||||
print("core client received: {}".format(response))
|
print("core client received: {}".format(response))
|
||||||
|
|
|
@ -507,6 +507,32 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
||||||
response.result = True
|
response.result = True
|
||||||
return response
|
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):
|
def GetServices(self, request, context):
|
||||||
response = core_pb2.GetServicesResponse()
|
response = core_pb2.GetServicesResponse()
|
||||||
for service in ServiceManager.services.itervalues():
|
for service in ServiceManager.services.itervalues():
|
||||||
|
|
|
@ -3,6 +3,7 @@ syntax = "proto3";
|
||||||
package core;
|
package core;
|
||||||
|
|
||||||
service CoreApi {
|
service CoreApi {
|
||||||
|
// session rpc
|
||||||
rpc CreateSession (CreateSessionRequest) returns (CreateSessionResponse) {
|
rpc CreateSession (CreateSessionRequest) returns (CreateSessionResponse) {
|
||||||
}
|
}
|
||||||
rpc DeleteSession (DeleteSessionRequest) returns (DeleteSessionResponse) {
|
rpc DeleteSession (DeleteSessionRequest) returns (DeleteSessionResponse) {
|
||||||
|
@ -19,6 +20,8 @@ service CoreApi {
|
||||||
}
|
}
|
||||||
rpc SetSessionState (SetSessionStateRequest) returns (SetSessionStateResponse) {
|
rpc SetSessionState (SetSessionStateRequest) returns (SetSessionStateResponse) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// node rpc
|
||||||
rpc CreateNode (CreateNodeRequest) returns (CreateNodeResponse) {
|
rpc CreateNode (CreateNodeRequest) returns (CreateNodeResponse) {
|
||||||
}
|
}
|
||||||
rpc GetNode (GetNodeRequest) returns (GetNodeResponse) {
|
rpc GetNode (GetNodeRequest) returns (GetNodeResponse) {
|
||||||
|
@ -27,6 +30,8 @@ service CoreApi {
|
||||||
}
|
}
|
||||||
rpc DeleteNode (DeleteNodeRequest) returns (DeleteNodeResponse) {
|
rpc DeleteNode (DeleteNodeRequest) returns (DeleteNodeResponse) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// link rpc
|
||||||
rpc GetNodeLinks (GetNodeLinksRequest) returns (GetNodeLinksResponse) {
|
rpc GetNodeLinks (GetNodeLinksRequest) returns (GetNodeLinksResponse) {
|
||||||
}
|
}
|
||||||
rpc CreateLink (CreateLinkRequest) returns (CreateLinkResponse) {
|
rpc CreateLink (CreateLinkRequest) returns (CreateLinkResponse) {
|
||||||
|
@ -35,6 +40,14 @@ service CoreApi {
|
||||||
}
|
}
|
||||||
rpc DeleteLink (DeleteLinkRequest) returns (DeleteLinkResponse) {
|
rpc DeleteLink (DeleteLinkRequest) returns (DeleteLinkResponse) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hook rpc
|
||||||
|
rpc GetHooks (GetHooksRequest) returns (GetHooksResponse) {
|
||||||
|
}
|
||||||
|
rpc AddHook (AddHookRequest) returns (AddHookResponse) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// service rpc
|
||||||
rpc GetServices (GetServicesRequest) returns (GetServicesResponse) {
|
rpc GetServices (GetServicesRequest) returns (GetServicesResponse) {
|
||||||
}
|
}
|
||||||
rpc GetServiceDefaults (GetServiceDefaultsRequest) returns (GetServiceDefaultsResponse) {
|
rpc GetServiceDefaults (GetServiceDefaultsRequest) returns (GetServiceDefaultsResponse) {
|
||||||
|
@ -43,6 +56,8 @@ service CoreApi {
|
||||||
}
|
}
|
||||||
rpc GetNodeService (GetNodeServiceRequest) returns (GetNodeServiceResponse) {
|
rpc GetNodeService (GetNodeServiceRequest) returns (GetNodeServiceResponse) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// emane rpc
|
||||||
rpc GetEmaneConfig (GetEmaneConfigRequest) returns (GetEmaneConfigResponse) {
|
rpc GetEmaneConfig (GetEmaneConfigRequest) returns (GetEmaneConfigResponse) {
|
||||||
}
|
}
|
||||||
rpc SetEmaneConfig (SetEmaneConfigRequest) returns (SetEmaneConfigResponse) {
|
rpc SetEmaneConfig (SetEmaneConfigRequest) returns (SetEmaneConfigResponse) {
|
||||||
|
@ -55,6 +70,8 @@ service CoreApi {
|
||||||
}
|
}
|
||||||
rpc GetEmaneModelConfigs (GetEmaneModelConfigsRequest) returns (GetEmaneModelConfigsResponse) {
|
rpc GetEmaneModelConfigs (GetEmaneModelConfigsRequest) returns (GetEmaneModelConfigsResponse) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// xml rpc
|
||||||
rpc SaveXml (SaveXmlRequest) returns (SaveXmlResponse) {
|
rpc SaveXml (SaveXmlRequest) returns (SaveXmlResponse) {
|
||||||
}
|
}
|
||||||
rpc OpenXml (OpenXmlRequest) returns (OpenXmlResponse) {
|
rpc OpenXml (OpenXmlRequest) returns (OpenXmlResponse) {
|
||||||
|
@ -221,6 +238,23 @@ message DeleteLinkResponse {
|
||||||
bool result = 1;
|
bool result = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message GetHooksRequest {
|
||||||
|
int32 session = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetHooksResponse {
|
||||||
|
repeated Hook hooks = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AddHookRequest {
|
||||||
|
int32 session = 1;
|
||||||
|
Hook hook = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AddHookResponse {
|
||||||
|
bool result = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message GetServicesRequest {
|
message GetServicesRequest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -365,6 +399,12 @@ enum ServiceValidationMode {
|
||||||
TIMER = 2;
|
TIMER = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message Hook {
|
||||||
|
SessionState state = 1;
|
||||||
|
string file = 2;
|
||||||
|
bytes data = 3;
|
||||||
|
}
|
||||||
|
|
||||||
message ServiceDefaults {
|
message ServiceDefaults {
|
||||||
string node_type = 1;
|
string node_type = 1;
|
||||||
repeated string services = 2;
|
repeated string services = 2;
|
||||||
|
|
Loading…
Add table
Reference in a new issue