blob: 830000cb9f90b18f40d42d6f62c9b7844612cf7e [file]
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto3";
package tradefed.invocation.server;
option java_package = "com.proto.tradefed.invocation";
option java_outer_classname = "TradefedInvocationService";
option java_multiple_files = true;
option java_generic_services = true;
// The Tradefed invocation service provides TF test lifecycle management.
service TestInvocationManagement {
// Submit a new test command request.
rpc SubmitTestCommand(NewTestCommandRequest) returns (NewTestCommandResponse) {}
// Query the invocation detail info of a specific test command.
rpc GetInvocationDetail(InvocationDetailRequest) returns (InvocationDetailResponse) {}
// Request an invocation to be stopped, non-blocking.
rpc StopInvocation(StopInvocationRequest) returns (StopInvocationResponse) {}
}
// A new TF test request.
message NewTestCommandRequest {
// The test command arguments.
repeated string args = 1;
// If the devices were pre-reserved, you can select them by reservation ids
repeated string reservation_id = 2;
}
// Response for submitted test.
message NewTestCommandResponse {
// Invocation id of the requested test, unset if the test request command could not be
// parsed or was not added successfully.
string invocation_id = 1;
// If set, an error occurred and is described by ErrorInfo.
CommandErrorInfo command_error_info = 2;
}
// Request the invocation to stop
message StopInvocationRequest {
// Invocation id of the test to request stop
string invocation_id = 1;
// Specify a reason to be associated with the stop request
string reason = 2;
}
message StopInvocationResponse {
// Type of invocation status
enum Status {
UNSPECIFIED = 0;
SUCCESS = 1;
ERROR = 2;
}
// The type of status.
Status status = 1;
// If set, an error occurred and is described by ErrorInfo.
CommandErrorInfo command_error_info = 2;
}
// The current status of the test command.
message InvocationStatus {
// Type of invocation status
enum Status {
// Invocation is not invoked.
PENDING = 0;
// Invocation is running.
RUNNING = 1;
// Invocation is done, test record ready to retrieve.
DONE = 2;
// Invocation id is unknown.
UNKNOWN = 3;
}
// The type of status.
Status status = 1;
// Reason for the status of the invocation
string status_reason = 2;
}
// Query invocation detail request.
message InvocationDetailRequest {
// Test invocation id.
string invocation_id = 1;
}
// Query invocation detail response.
message InvocationDetailResponse {
// The status of queried invocation.
InvocationStatus invocation_status = 1;
// Test record proto path if available.
string test_record_path = 2;
}
// Describe an error and its identifiers for response
message CommandErrorInfo {
// The error message associated with response
string error_message = 1;
// The error identifier for the error
string error_name = 2;
// The error code associated with the identifier
int64 error_code = 3;
}