modules/agent-framework/proto/agent-communication.proto (123 lines of code) (raw):
syntax = "proto3";
package org.apache.airavata.agent;
option java_multiple_files = true;
option java_package = "org.apache.airavata.agent";
option java_outer_classname = "AgentCommunicationProto";
option go_package = "protos/";
import "airavata-fuse.proto";
service AgentCommunicationService {
rpc createMessageBus(stream AgentMessage) returns (stream ServerMessage);
}
message AgentPing {
string agentId = 1;
}
message CommandExecutionResponse {
string executionId = 1;
string responseString = 2;
}
message ContainerExecutionResponse {
string executionId = 1;
string responseString = 2;
}
message JupyterExecutionResponse {
string executionId = 1;
string sessionId = 2;
string responseString = 3;
}
message PythonExecutionResponse {
string executionId = 1;
string sessionId = 2;
string responseString = 3;
}
message TerminateExecutionResponse {
string status = 1;
string description = 2;
}
message TunnelCreationResponse {
string status = 1;
}
message TunnelTerminationResponse {
string status = 1;
}
message AgentMessage {
oneof message {
AgentPing agentPing = 1;
CommandExecutionResponse commandExecutionResponse = 2;
ContainerExecutionResponse containerExecutionResponse = 3;
TerminateExecutionResponse terminateExecutionResponse = 4;
JupyterExecutionResponse jupyterExecutionResponse = 5;
PythonExecutionResponse pythonExecutionResponse = 6;
org.apache.airavata.fuse.StatFsReq statFsReq = 7;
org.apache.airavata.fuse.FileInfoReq fileInfoReq = 8;
org.apache.airavata.fuse.OpenDirReq openDirReq = 9;
org.apache.airavata.fuse.OpenFileReq openFileReq = 10;
org.apache.airavata.fuse.ReadDirReq readDirReq = 11;
org.apache.airavata.fuse.ReadFileReq readFileReq = 12;
org.apache.airavata.fuse.WriteFileReq writeFileReq = 13;
org.apache.airavata.fuse.SetInodeAttReq setInodeAttReq = 14;
}
}
message ContainerExecutionRequest {
string executionId = 1;
string containerName = 2;
repeated string arguments = 3;
string mountPath = 4;
}
message TunnelCreationRequest {
string destinationHost = 1;
string destinationPort = 2;
string sshUserName = 3;
string sourcePort = 4;
string sshKeyPath = 5;
string password = 6;
}
message TunnelTerminationRequest {
string destinationHost = 1;
int32 destinationPort = 2;
string sourcePort = 3;
}
message CommandExecutionRequest {
string executionId = 1;
repeated string arguments = 2;
string workingDir = 3;
}
message JupyterExecutionRequest {
string executionId = 1;
string sessionId = 2;
bool keepAlive = 3;
string code = 4;
}
message PythonExecutionRequest {
string executionId = 1;
string sessionId = 2;
bool keepAlive = 3;
repeated string libraries = 4;
string code = 5;
string pythonVersion = 6;
string workingDir = 7;
}
message TerminateExecutionRequest {
string executionId = 1;
}
message KillAgentRequest {
string reason = 1;
}
message ServerMessage {
oneof message {
ContainerExecutionRequest containerExecutionRequest = 1;
CommandExecutionRequest commandExecutionRequest = 2;
TerminateExecutionRequest terminateExecutionRequest = 3;
KillAgentRequest killAgentRequest = 4;
TunnelCreationRequest tunnelCreationRequest = 5;
JupyterExecutionRequest jupyterExecutionRequest = 6;
PythonExecutionRequest pythonExecutionRequest = 7;
org.apache.airavata.fuse.StatFsRes statFsRes = 8;
org.apache.airavata.fuse.FileInfoRes fileInfoRes = 9;
org.apache.airavata.fuse.OpenDirRes openDirRes = 10;
org.apache.airavata.fuse.OpenFileRes openFileRes = 11;
org.apache.airavata.fuse.ReadDirRes readDirRes = 12;
org.apache.airavata.fuse.ReadFileRes readFileRes = 13;
org.apache.airavata.fuse.WriteFileRes writeFileRes = 14;
org.apache.airavata.fuse.SetInodeAttRes setInodeAttRes = 15;
}
}