Filip Troníček b94aec1263
Integrate reading from log files into Supervisor's terminal.Listen (#19863)
* Integrate reading from log files into Supervisor's `terminal.Listen`

* Try with GetOutput

* do not bubble down and fail

* remove debug stuff

* definitions and impl of `task.proto`

* codegen

* update endpoint

* Implement `ListenToOutput`

* Try with one API (🤞)

* stream beginning from where we left off

* Do not watch closed tasks

* move closing of worker channel

* simplify one-off reading

* codegen

* consolidate for loops, optimize watching

* remove extra line

It makes sense to group the offset definition with the function below it

* Gpl/ft/supervisor-listen-files (#19878)

* commit step 1

* 2nd

* Changes from joint code review

---------

Co-authored-by: Filip Troníček <filip@gitpod.io>

* Remove year bumps

---------

Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
2024-06-12 21:37:08 +08:00

29 lines
765 B
Protocol Buffer

// Copyright (c) 2024 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License.AGPL.txt in the project root for license information.
syntax = "proto3";
package supervisor;
import "google/api/annotations.proto";
option go_package = "github.com/gitpod-io/gitpod/supervisor/api";
option java_package = "io.gitpod.supervisor.api";
service TaskService {
// Listens to the output of a given task
rpc ListenToOutput(ListenToOutputRequest) returns (stream ListenToOutputResponse) {
option (google.api.http) = {
get: "/v1/task/listen/{task_id}/output"
};
}
}
message ListenToOutputRequest {
string task_id = 1;
}
message ListenToOutputResponse {
bytes data = 1;
}