Index: client/proto/isolate_bot.proto |
diff --git a/client/proto/isolate_bot.proto b/client/proto/isolate_bot.proto |
deleted file mode 100644 |
index fbdeb1fc63548d43cd5f5a39e744da0aea119457..0000000000000000000000000000000000000000 |
--- a/client/proto/isolate_bot.proto |
+++ /dev/null |
@@ -1,116 +0,0 @@ |
-// Copyright 2016 The LUCI Authors. All rights reserved. |
-// Use of this source code is governed under the Apache License, Version 2.0 |
-// that can be found in the LICENSE file. |
- |
-// This describes the interface a Swarming bot can use to contact an Isolate |
-// server over a gRPC proxy. It essentially duplicates the portions of the |
-// "native" Isolate REST API that's used by the bot. |
-// |
-// This proto is *not yet stable* and *will* change over time in non-backward- |
-// compatible ways. |
- |
-syntax = "proto3"; |
- |
-package luci.swarming.bot; |
- |
-// FileService exposes the main operations of an Isolate server |
-// to upload and download blobs. |
-service FileService { |
- // Unlike in the native Isolate API, it is not *necessary* to |
- // call Contains prior to pushing a blob, as Contains does not |
- // return "upload tickets." The BlobStatus returned by Contains |
- // will have succeeded = True if all digests were found, and |
- // false for any other reason (missing blobs, network error, |
- // etc.) |
- rpc Contains(ContainsRequest) returns (ContainsReply); |
- |
- // PushBlobs can push one or more blobs at a time (serially), |
- // with each blob transmitted as one or more chunks. At the |
- // beginning of a new blob, the chunk offset should be zero |
- // and the digest must be provided. The function returns true |
- // only if all blobs are successfully received, and returns |
- // as soon as an error occurs. |
- rpc PushBlobs(stream PushBlobsRequest) returns (PushBlobsReply); |
- |
- // FetchBlobs takes a list of digests and returns them all as |
- // a stream of BlobChunks. |
- rpc FetchBlobs(FetchBlobsRequest) returns (stream FetchBlobsReply); |
-} |
- |
-message ContainsRequest { |
- repeated ContentDigest digest = 1; |
-} |
- |
-message ContainsReply { |
- BlobStatus status = 1; |
-} |
- |
-message PushBlobsRequest { |
- BlobChunk data = 1; |
-} |
- |
-message PushBlobsReply { |
- BlobStatus status = 1; |
-} |
- |
-message FetchBlobsRequest { |
- repeated ContentDigest digest = 1; |
-} |
- |
-message FetchBlobsReply { |
- BlobStatus status = 1; |
- BlobChunk data = 2; |
-} |
- |
-message BlobChunk { |
- // The digest is optional for all chunks except |
- // the first that represents a blob. |
- ContentDigest digest = 1; |
- int64 offset = 2; |
- bytes data = 3; |
-} |
- |
-message ContentDigest { |
- // At present, "digest" is a 20-byte SHA1 hash. |
- bytes digest = 1; |
- |
- // size_bytes is the size of the blob during uploads. |
- // During requests to FetchBlobs, the size is ignored. |
- int64 size_bytes = 2; |
- |
- // Currently "0" to represents the SHA1 hash; may |
- // be incremented to allow other hash functions. |
- int32 version = 3; |
-} |
- |
-message BlobStatus { |
- // True if the entire function succeeded. |
- bool succeeded = 1; |
- |
- // "error" will be set to one of the following if succeeded is false. |
- enum ErrorCode { |
- // Typically an internal proxy error; error_detail may have more |
- // information. |
- UNKNOWN = 0; |
- |
- // The client behaved incorrectly. error_detail should have more |
- // information. |
- INVALID_ARGUMENT = 1; |
- |
- // Isolate is missing the nodes specified by missing_digest. |
- MISSING_DIGEST = 2; |
- |
- // Upload only error, when requested digest does not match the |
- // server side computed one. |
- DIGEST_MISMATCH = 3; |
- } |
- ErrorCode error = 2; |
- |
- // Human-readable error text |
- string error_detail = 3; |
- |
- // If error is MISSIN_DIGEST, this will be populated with the |
- // digests that are missing. |
- repeated ContentDigest missing_digest = 4; |
-} |
- |