112 lines
2.8 KiB
Protocol Buffer
112 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
package hashicorp.nomad.plugins.executor.proto;
|
|
option go_package = "proto";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "plugins/drivers/proto/driver.proto";
|
|
|
|
service Executor {
|
|
rpc Launch(LaunchRequest) returns (LaunchResponse) {}
|
|
rpc Wait(WaitRequest) returns (WaitResponse) {}
|
|
rpc Shutdown(ShutdownRequest) returns (ShutdownResponse) {}
|
|
rpc UpdateResources(UpdateResourcesRequest) returns (UpdateResourcesResponse) {}
|
|
rpc Version(VersionRequest) returns (VersionResponse) {}
|
|
rpc Stats(StatsRequest) returns (stream StatsResponse) {}
|
|
rpc Signal(SignalRequest) returns (SignalResponse) {}
|
|
rpc Exec(ExecRequest) returns (ExecResponse) {}
|
|
|
|
// buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
|
|
rpc ExecStreaming(
|
|
stream
|
|
// buf:lint:ignore RPC_REQUEST_STANDARD_NAME
|
|
hashicorp.nomad.plugins.drivers.proto.ExecTaskStreamingRequest)
|
|
returns (
|
|
stream
|
|
// buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
|
|
hashicorp.nomad.plugins.drivers.proto.ExecTaskStreamingResponse
|
|
) {}
|
|
}
|
|
|
|
message LaunchRequest {
|
|
string cmd = 1;
|
|
repeated string args = 2;
|
|
hashicorp.nomad.plugins.drivers.proto.Resources resources = 3;
|
|
string stdout_path = 4;
|
|
string stderr_path = 5;
|
|
repeated string env = 6;
|
|
string user = 7;
|
|
string task_dir = 8;
|
|
bool resource_limits = 9;
|
|
bool basic_process_cgroup = 10;
|
|
repeated hashicorp.nomad.plugins.drivers.proto.Mount mounts = 11;
|
|
repeated hashicorp.nomad.plugins.drivers.proto.Device devices = 12;
|
|
hashicorp.nomad.plugins.drivers.proto.NetworkIsolationSpec network_isolation = 13;
|
|
bool no_pivot_root = 14;
|
|
string default_pid_mode = 15;
|
|
string default_ipc_mode = 16;
|
|
string cpuset_cgroup = 17;
|
|
repeated string allow_caps = 18;
|
|
repeated string capabilities = 19;
|
|
}
|
|
|
|
message LaunchResponse {
|
|
ProcessState process = 1;
|
|
}
|
|
|
|
message WaitRequest {}
|
|
|
|
message WaitResponse{
|
|
ProcessState process = 1;
|
|
}
|
|
|
|
message ShutdownRequest {
|
|
string signal = 1;
|
|
int64 grace_period = 2;
|
|
}
|
|
|
|
message ShutdownResponse {}
|
|
|
|
message UpdateResourcesRequest{
|
|
hashicorp.nomad.plugins.drivers.proto.Resources resources = 1;
|
|
}
|
|
|
|
message UpdateResourcesResponse {}
|
|
|
|
message VersionRequest {}
|
|
|
|
message VersionResponse{
|
|
string version = 1;
|
|
}
|
|
|
|
message StatsRequest {
|
|
int64 interval = 1;
|
|
}
|
|
|
|
message StatsResponse {
|
|
hashicorp.nomad.plugins.drivers.proto.TaskStats stats = 1;
|
|
}
|
|
|
|
message SignalRequest {
|
|
int32 signal = 1;
|
|
}
|
|
|
|
message SignalResponse {}
|
|
|
|
message ExecRequest {
|
|
google.protobuf.Timestamp deadline = 1;
|
|
string cmd = 2;
|
|
repeated string args = 3;
|
|
}
|
|
|
|
message ExecResponse {
|
|
bytes output = 1;
|
|
int32 exit_code = 2;
|
|
}
|
|
|
|
message ProcessState {
|
|
int32 pid = 1;
|
|
int32 exit_code = 2;
|
|
int32 signal = 3;
|
|
google.protobuf.Timestamp time = 4;
|
|
}
|