blob: b765fc93e532410290cdc6f2d7869a25091f4b64 [file] [log] [blame]
syntax = "proto3";
package moblab;
import "google/protobuf/empty.proto";
import "google/protobuf/duration.proto";
// Service exposes Moblab static and runtime configuration
service MoblabConfigurationService {
// request to pause host scheduling
rpc pause_host_scheduler(PauseHostSchedulerRequest)
returns (PauseHostSchedulerResponse) {}
// request to unpause host scheduling
rpc resume_host_scheduler(ResumeHostSchedulerRequest)
returns (ResumeHostSchedulerResponse) {}
// returns the list of requestors currently requesting to pause
rpc get_host_scheduler_pause_status(google.protobuf.Empty)
returns (GetHostSchedulerPauseStatusResponse) {}
// opens an infinite stream of pause state updates
rpc stream_host_scheduler_pause_status(google.protobuf.Empty)
returns (stream GetHostSchedulerPauseStatusResponse) {}
// returns the known good CrOS version resolved
// from system default and user override
rpc get_stable_build_version(GetStableBuildVersionRequest)
returns (GetStableBuildVersionResponse) {}
// sets a user override for known good CrOS version
rpc set_stable_build_version(SetStableBuildVersionRequest)
returns (SetStableBuildVersionResponse) {}
// set the time duration that the results are kept locally
rpc set_local_results_retention_duration(SetLocalResultsRetentionDurationRequest)
returns (google.protobuf.Empty);
// get the time duration that the results are kept locally
rpc get_local_results_retention_duration(google.protobuf.Empty)
returns (GetLocalResultsRetentionDurationResponse);
}
// NEXT_TAG = 2
message SetLocalResultsRetentionDurationRequest {
// Duration of keeping the results locally after job completion
// Should be hours between 1 and 23 or days between 1 and 7
google.protobuf.Duration duration = 1;
}
message GetLocalResultsRetentionDurationResponse {
// Duration of keeping the results locally after job completion
// Should be hours between 1 and 23 or days between 1 and 7
google.protobuf.Duration duration = 1;
}
// NEXT_TAG = 2
message PauseHostSchedulerRequest {
PauseRequestor pauseRequestor = 1;
}
// NEXT_TAG = 2
message PauseHostSchedulerResponse {
repeated PauseRequestor pauseRequestors = 1;
}
// NEXT_TAG = 2
message ResumeHostSchedulerRequest {
PauseRequestor pauseRequestor = 1;
}
// NEXT_TAG = 2
message ResumeHostSchedulerResponse {
repeated PauseRequestor pauseRequestors = 1;
}
// NEXT_TAG = 2
message GetHostSchedulerPauseStatusResponse {
// the list of all host scheduling pause requestors
// if empty the host scheduling is running
repeated PauseRequestor pauseRequestors = 1;
}
// List of possible host scheduling pause requestors
enum PauseRequestor {
// Moblab is running out of free disk space
PAUSE_REQUESTOR_LOW_DISK_SPACE = 0;
// User requested pause of tests scheduling
PAUSE_REQUESTOR_PAUSED_BY_USER = 1;
}
// NEXT_TAG = 2
message GetStableBuildVersionRequest {
string board = 1;
}
// NEXT_TAG = 2
message GetStableBuildVersionResponse {
StableVersion stable_version = 1;
}
// NEXT_TAG = 2
message SetStableBuildVersionRequest {
StableVersion stable_version = 1;
}
// NEXT_TAG = 2
message SetStableBuildVersionResponse {
StableVersion stable_version = 1;
}
// NEXT_TAG = 3
message StableVersion {
string default_version = 1;
string override_version = 2;
}