summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2019-06-06 11:20:15 +0200
committerJürg Billeter <j@bitron.ch>2019-08-20 08:06:45 +0200
commit9f36c46a35221b9b1dfeda46048aaeaa0a6d7afa (patch)
tree4de385034a9b3387df65b8e6bd73710cf03ca57b
parent9fe643e341ed7beecb4072d84e0bbf9432e54902 (diff)
downloadbuildstream-9f36c46a35221b9b1dfeda46048aaeaa0a6d7afa.tar.gz
_protos: Import local_cas.proto
This imports local_cas.proto from buildbox-common [1] and the modules generated with ./setup.py build_grpc. [1] https://gitlab.com/BuildGrid/buildbox/buildbox-common
-rw-r--r--src/buildstream/_protos/build/buildgrid/__init__.py0
-rw-r--r--src/buildstream/_protos/build/buildgrid/local_cas.proto373
-rw-r--r--src/buildstream/_protos/build/buildgrid/local_cas_pb2.py1052
-rw-r--r--src/buildstream/_protos/build/buildgrid/local_cas_pb2_grpc.py238
4 files changed, 1663 insertions, 0 deletions
diff --git a/src/buildstream/_protos/build/buildgrid/__init__.py b/src/buildstream/_protos/build/buildgrid/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/buildstream/_protos/build/buildgrid/__init__.py
diff --git a/src/buildstream/_protos/build/buildgrid/local_cas.proto b/src/buildstream/_protos/build/buildgrid/local_cas.proto
new file mode 100644
index 000000000..671caef0e
--- /dev/null
+++ b/src/buildstream/_protos/build/buildgrid/local_cas.proto
@@ -0,0 +1,373 @@
+// Copyright (C) 2018-2019 Bloomberg LP
+//
+// 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 build.buildgrid;
+
+import "build/bazel/remote/execution/v2/remote_execution.proto";
+import "google/api/annotations.proto";
+import "google/rpc/status.proto";
+
+service LocalContentAddressableStorage {
+ // Fetch blobs from a remote CAS to the local cache.
+ //
+ // This request is equivalent to ByteStream `Read` or `BatchReadBlobs`
+ // requests, storing the downloaded blobs in the local cache.
+ //
+ // Requested blobs that failed to be downloaded will be listed in the
+ // response.
+ //
+ // Errors:
+ // * `INVALID_ARGUMENT`: The client attempted to download more than the
+ // server supported limit.
+ //
+ // Individual requests may return the following error, additionally:
+ // * `NOT_FOUND`: The requested blob is not present in the remote CAS.
+ rpc FetchMissingBlobs(FetchMissingBlobsRequest) returns (FetchMissingBlobsResponse) {}
+
+ // Upload blobs from the local cache to a remote CAS.
+ //
+ // This request is equivalent to `FindMissingBlobs` followed by
+ // ByteStream `Write` or `BatchUpdateBlobs` requests.
+ //
+ // Blobs that failed to be uploaded will be listed in the response.
+ //
+ // Errors:
+ // * `INVALID_ARGUMENT`: The client attempted to upload more than the
+ // server supported limit.
+ //
+ // Individual requests may return the following error, additionally:
+ // * `NOT_FOUND`: The requested blob is not present in the local cache.
+ // * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob.
+ rpc UploadMissingBlobs(UploadMissingBlobsRequest) returns (UploadMissingBlobsResponse) {}
+
+ // Fetch the entire directory tree rooted at a node from a remote CAS to the
+ // local cache.
+ //
+ // This request is equivalent to `GetTree`, storing the `Directory` objects
+ // in the local cache. Optionally, this will also fetch all blobs referenced
+ // by the `Directory` objects, equivalent to `FetchMissingBlobs`.
+ //
+ // If part of the tree is missing from the CAS, the server will return the
+ // portion present and omit the rest.
+ //
+ // * `NOT_FOUND`: The requested tree root is not present in the CAS.
+ rpc FetchTree(FetchTreeRequest) returns (FetchTreeResponse) {}
+
+ // Upload the entire directory tree from the local cache to a remote CAS.
+ //
+ // This request is equivalent to `UploadMissingBlobs` for all blobs
+ // referenced by the specified tree (recursively).
+ //
+ // Errors:
+ // * `NOT_FOUND`: The requested tree root is not present in the local cache.
+ // * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the tree.
+ rpc UploadTree(UploadTreeRequest) returns (UploadTreeResponse) {}
+
+ // Stage a directory tree in the local filesystem.
+ //
+ // This makes the specified directory tree temporarily available for local
+ // filesystem access. It is implementation-defined whether this uses a
+ // userspace filesystem such as FUSE, hardlinking or a full copy.
+ //
+ // Missing blobs are fetched, if a CAS remote is configured.
+ //
+ // The staging starts when the server receives the initial request and
+ // it is ready to be used on the initial (non-error) response from the
+ // server.
+ //
+ // The server will clean up the staged directory when it either
+ // receives an additional request (with all fields unset) or when the
+ // stream is closed. The server will send an additional response after
+ // cleanup is complete.
+ rpc StageTree(stream StageTreeRequest) returns (stream StageTreeResponse) {}
+
+ // Capture a directory tree from the local filesystem.
+ //
+ // This imports the specified path from the local filesystem into CAS.
+ //
+ // If a CAS remote is configured, the blobs are uploaded.
+ // The `bypass_local_cache` parameter is a hint to indicate whether the blobs
+ // shall be uploaded without first storing them in the local cache.
+ rpc CaptureTree(CaptureTreeRequest) returns (CaptureTreeResponse) {}
+
+ // Capture files from the local filesystem.
+ //
+ // This imports the specified paths from the local filesystem into CAS.
+ //
+ // If a CAS remote is configured, the blobs are uploaded.
+ // The `bypass_local_cache` parameter is a hint to indicate whether the blobs
+ // shall be uploaded without first storing them in the local cache.
+ rpc CaptureFiles(CaptureFilesRequest) returns (CaptureFilesResponse) {}
+
+ // Configure remote CAS endpoint.
+ //
+ // This returns a string that can be used as instance_name to access the
+ // specified endpoint in further requests.
+ rpc GetInstanceNameForRemote(GetInstanceNameForRemoteRequest) returns (GetInstanceNameForRemoteResponse) {}
+}
+
+// A request message for
+// [LocalContentAddressableStorage.FetchMissingBlobs][build.buildgrid.v2.LocalContentAddressableStorage.FetchMissingBlobs].
+message FetchMissingBlobsRequest {
+ // The instance of the execution system to operate against. A server may
+ // support multiple instances of the execution system (with their own workers,
+ // storage, caches, etc.). The server MAY require use of this field to select
+ // between them in an implementation-defined fashion, otherwise it can be
+ // omitted.
+ string instance_name = 1;
+
+ // A list of the blobs to fetch.
+ repeated build.bazel.remote.execution.v2.Digest blob_digests = 2;
+}
+
+// A response message for
+// [LocalContentAddressableStorage.FetchMissingBlobs][build.buildgrid.v2.LocalContentAddressableStorage.FetchMissingBlobs].
+message FetchMissingBlobsResponse {
+ // A response corresponding to a single blob that the client tried to upload.
+ message Response {
+ // The digest to which this response corresponds.
+ build.bazel.remote.execution.v2.Digest digest = 1;
+
+ // The result of attempting to download that blob.
+ google.rpc.Status status = 2;
+ }
+
+ // The responses to the failed requests.
+ repeated Response responses = 1;
+}
+
+// A request message for
+// [LocalContentAddressableStorage.UploadMissingBlobs][build.buildgrid.v2.LocalContentAddressableStorage.UploadMissingBlobs].
+message UploadMissingBlobsRequest {
+ // The instance of the execution system to operate against. A server may
+ // support multiple instances of the execution system (with their own workers,
+ // storage, caches, etc.). The server MAY require use of this field to select
+ // between them in an implementation-defined fashion, otherwise it can be
+ // omitted.
+ string instance_name = 1;
+
+ // A list of the blobs to fetch.
+ repeated build.bazel.remote.execution.v2.Digest blob_digests = 2;
+}
+
+// A response message for
+// [LocalContentAddressableStorage.UploadMissingBlobs][build.buildgrid.v2.LocalContentAddressableStorage.UploadMissingBlobs].
+message UploadMissingBlobsResponse {
+ // A response corresponding to a single blob that the client tried to upload.
+ message Response {
+ // The digest to which this response corresponds.
+ build.bazel.remote.execution.v2.Digest digest = 1;
+
+ // The result of attempting to upload that blob.
+ google.rpc.Status status = 2;
+ }
+
+ // The responses to the failed requests.
+ repeated Response responses = 1;
+}
+
+// A request message for
+// [LocalContentAddressableStorage.FetchTree][build.buildgrid.v2.LocalContentAddressableStorage.FetchTree].
+message FetchTreeRequest {
+ // The instance of the execution system to operate against. A server may
+ // support multiple instances of the execution system (with their own workers,
+ // storage, caches, etc.). The server MAY require use of this field to select
+ // between them in an implementation-defined fashion, otherwise it can be
+ // omitted.
+ string instance_name = 1;
+
+ // The digest of the root, which must be an encoded
+ // [Directory][build.bazel.remote.execution.v2.Directory] message
+ // stored in the
+ // [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
+ build.bazel.remote.execution.v2.Digest root_digest = 2;
+
+ // Whether to fetch blobs of files in the directory tree.
+ bool fetch_file_blobs = 3;
+}
+
+// A response message for
+// [LocalContentAddressableStorage.FetchTree][build.buildgrid.v2.LocalContentAddressableStorage.FetchTree].
+message FetchTreeResponse {
+}
+
+// A request message for
+// [LocalContentAddressableStorage.UploadTree][build.buildgrid.v2.LocalContentAddressableStorage.UploadTree].
+message UploadTreeRequest {
+ // The instance of the execution system to operate against. A server may
+ // support multiple instances of the execution system (with their own workers,
+ // storage, caches, etc.). The server MAY require use of this field to select
+ // between them in an implementation-defined fashion, otherwise it can be
+ // omitted.
+ string instance_name = 1;
+
+ // The digest of the root, which must be an encoded
+ // [Directory][build.bazel.remote.execution.v2.Directory] message
+ // stored in the
+ // [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
+ build.bazel.remote.execution.v2.Digest root_digest = 2;
+}
+
+// A response message for
+// [LocalContentAddressableStorage.UploadTree][build.buildgrid.v2.LocalContentAddressableStorage.UploadTree].
+message UploadTreeResponse {
+}
+
+// A request message for
+// [LocalContentAddressableStorage.StageTree][build.buildgrid.v2.LocalContentAddressableStorage.StageTree].
+message StageTreeRequest {
+ // The instance of the execution system to operate against. A server may
+ // support multiple instances of the execution system (with their own workers,
+ // storage, caches, etc.). The server MAY require use of this field to select
+ // between them in an implementation-defined fashion, otherwise it can be
+ // omitted.
+ string instance_name = 1;
+
+ // The digest of the root, which must be an encoded
+ // [Directory][build.bazel.remote.execution.v2.Directory] message
+ // stored in the
+ // [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
+ build.bazel.remote.execution.v2.Digest root_digest = 2;
+
+ // The path in the local filesystem where the specified tree should be
+ // staged. It must either point to an empty directory or not exist yet.
+ //
+ // This is optional. If not specified, the server will choose a location.
+ // The server may require the path to be on the same filesystem as the local
+ // cache to support hardlinking.
+ //
+ // The path may be a subdirectory of another staged tree. The lifetime of
+ // this staged tree will in that case be limited to the lifetime of the
+ // parent.
+ string path = 3;
+}
+
+// A response message for
+// [LocalContentAddressableStorage.StageTree][build.buildgrid.v2.LocalContentAddressableStorage.StageTree].
+message StageTreeResponse {
+ // The path in the local filesystem where the specified tree has been staged.
+ string path = 1;
+}
+
+// A request message for
+// [LocalContentAddressableStorage.CaptureTree][build.buildgrid.v2.LocalContentAddressableStorage.CaptureTree].
+message CaptureTreeRequest {
+ // The instance of the execution system to operate against. A server may
+ // support multiple instances of the execution system (with their own workers,
+ // storage, caches, etc.). The server MAY require use of this field to select
+ // between them in an implementation-defined fashion, otherwise it can be
+ // omitted.
+ string instance_name = 1;
+
+ // The path(s) in the local filesystem to capture.
+ repeated string path = 2;
+
+ // This is a hint whether the blobs shall be uploaded to the remote CAS
+ // without first storing them in the local cache.
+ bool bypass_local_cache = 3;
+}
+
+// A response message for
+// [LocalContentAddressableStorage.CaptureTree][build.buildgrid.v2.LocalContentAddressableStorage.CaptureTree].
+message CaptureTreeResponse {
+ // A response corresponding to a single blob that the client tried to upload.
+ message Response {
+ // The path to which this response corresponds.
+ string path = 1;
+
+ // The digest of the captured tree as an encoded
+ // [Tree][build.bazel.remote.execution.v2.Tree] proto containing the
+ // directory's contents, if successful.
+ build.bazel.remote.execution.v2.Digest tree_digest = 2;
+
+ // The result of attempting to capture and upload the tree.
+ google.rpc.Status status = 3;
+ }
+
+ // The responses to the requests.
+ repeated Response responses = 1;
+}
+
+// A request message for
+// [LocalContentAddressableStorage.CaptureFiles][build.buildgrid.v2.LocalContentAddressableStorage.CaptureFiles].
+message CaptureFilesRequest {
+ // The instance of the execution system to operate against. A server may
+ // support multiple instances of the execution system (with their own workers,
+ // storage, caches, etc.). The server MAY require use of this field to select
+ // between them in an implementation-defined fashion, otherwise it can be
+ // omitted.
+ string instance_name = 1;
+
+ // The path(s) in the local filesystem to capture.
+ repeated string path = 2;
+
+ // This is a hint whether the blobs shall be uploaded to the remote CAS
+ // without first storing them in the local cache.
+ bool bypass_local_cache = 3;
+}
+
+// A response message for
+// [LocalContentAddressableStorage.CaptureFiles][build.buildgrid.v2.LocalContentAddressableStorage.CaptureFiles].
+message CaptureFilesResponse {
+ // A response corresponding to a single blob that the client tried to upload.
+ message Response {
+ // The path to which this response corresponds.
+ string path = 1;
+
+ // The digest of the captured file's content, if successful.
+ build.bazel.remote.execution.v2.Digest digest = 2;
+
+ // The result of attempting to capture and upload the file.
+ google.rpc.Status status = 3;
+ }
+
+ // The responses to the requests.
+ repeated Response responses = 1;
+}
+
+// A request message for
+// [LocalContentAddressableStorage.GetInstanceNameForRemote][build.buildgrid.v2.LocalContentAddressableStorage.GetInstanceNameForRemote].
+message GetInstanceNameForRemoteRequest {
+ // The URL for the remote CAS server.
+ string url = 1;
+
+ // The instance of the execution system to operate against. A server may
+ // support multiple instances of the execution system (with their own workers,
+ // storage, caches, etc.). The server MAY require use of this field to select
+ // between them in an implementation-defined fashion, otherwise it can be
+ // omitted.
+ string instance_name = 2;
+
+ // PEM-encoded public server certificate for https connections to the remote
+ // CAS server.
+ bytes server_cert = 3;
+
+ // PEM-encoded private client key for https with certificate-based client
+ // authentication. If this is specified, `client_cert` must be specified
+ // as well.
+ bytes client_key = 4;
+
+ // PEM-encoded public client certificate for https with certificate-based
+ // client authentication. If this is specified, `client_key` must be
+ // specified as well.
+ bytes client_cert = 5;
+}
+
+// A response message for
+// [LocalContentAddressableStorage.GetInstanceNameForRemote][build.buildgrid.v2.LocalContentAddressableStorage.GetInstanceNameForRemote].
+message GetInstanceNameForRemoteResponse {
+ string instance_name = 1;
+}
diff --git a/src/buildstream/_protos/build/buildgrid/local_cas_pb2.py b/src/buildstream/_protos/build/buildgrid/local_cas_pb2.py
new file mode 100644
index 000000000..d1ef586f8
--- /dev/null
+++ b/src/buildstream/_protos/build/buildgrid/local_cas_pb2.py
@@ -0,0 +1,1052 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: build/buildgrid/local_cas.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from buildstream._protos.build.bazel.remote.execution.v2 import remote_execution_pb2 as build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2
+from buildstream._protos.google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
+from buildstream._protos.google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='build/buildgrid/local_cas.proto',
+ package='build.buildgrid',
+ syntax='proto3',
+ serialized_options=None,
+ serialized_pb=_b('\n\x1f\x62uild/buildgrid/local_cas.proto\x12\x0f\x62uild.buildgrid\x1a\x36\x62uild/bazel/remote/execution/v2/remote_execution.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/rpc/status.proto\"p\n\x18\x46\x65tchMissingBlobsRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12=\n\x0c\x62lob_digests\x18\x02 \x03(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\"\xcc\x01\n\x19\x46\x65tchMissingBlobsResponse\x12\x46\n\tresponses\x18\x01 \x03(\x0b\x32\x33.build.buildgrid.FetchMissingBlobsResponse.Response\x1ag\n\x08Response\x12\x37\n\x06\x64igest\x18\x01 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"q\n\x19UploadMissingBlobsRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12=\n\x0c\x62lob_digests\x18\x02 \x03(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\"\xce\x01\n\x1aUploadMissingBlobsResponse\x12G\n\tresponses\x18\x01 \x03(\x0b\x32\x34.build.buildgrid.UploadMissingBlobsResponse.Response\x1ag\n\x08Response\x12\x37\n\x06\x64igest\x18\x01 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"\x81\x01\n\x10\x46\x65tchTreeRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12<\n\x0broot_digest\x18\x02 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\x12\x18\n\x10\x66\x65tch_file_blobs\x18\x03 \x01(\x08\"\x13\n\x11\x46\x65tchTreeResponse\"h\n\x11UploadTreeRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12<\n\x0broot_digest\x18\x02 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\"\x14\n\x12UploadTreeResponse\"u\n\x10StageTreeRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12<\n\x0broot_digest\x18\x02 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\x12\x0c\n\x04path\x18\x03 \x01(\t\"!\n\x11StageTreeResponse\x12\x0c\n\x04path\x18\x01 \x01(\t\"U\n\x12\x43\x61ptureTreeRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x03(\t\x12\x1a\n\x12\x62ypass_local_cache\x18\x03 \x01(\x08\"\xd3\x01\n\x13\x43\x61ptureTreeResponse\x12@\n\tresponses\x18\x01 \x03(\x0b\x32-.build.buildgrid.CaptureTreeResponse.Response\x1az\n\x08Response\x12\x0c\n\x04path\x18\x01 \x01(\t\x12<\n\x0btree_digest\x18\x02 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\x12\"\n\x06status\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\"V\n\x13\x43\x61ptureFilesRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x03(\t\x12\x1a\n\x12\x62ypass_local_cache\x18\x03 \x01(\x08\"\xd0\x01\n\x14\x43\x61ptureFilesResponse\x12\x41\n\tresponses\x18\x01 \x03(\x0b\x32..build.buildgrid.CaptureFilesResponse.Response\x1au\n\x08Response\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x37\n\x06\x64igest\x18\x02 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\x12\"\n\x06status\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\"\x83\x01\n\x1fGetInstanceNameForRemoteRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x15\n\rinstance_name\x18\x02 \x01(\t\x12\x13\n\x0bserver_cert\x18\x03 \x01(\x0c\x12\x12\n\nclient_key\x18\x04 \x01(\x0c\x12\x13\n\x0b\x63lient_cert\x18\x05 \x01(\x0c\"9\n GetInstanceNameForRemoteResponse\x12\x15\n\rinstance_name\x18\x01 \x01(\t2\xc7\x06\n\x1eLocalContentAddressableStorage\x12l\n\x11\x46\x65tchMissingBlobs\x12).build.buildgrid.FetchMissingBlobsRequest\x1a*.build.buildgrid.FetchMissingBlobsResponse\"\x00\x12o\n\x12UploadMissingBlobs\x12*.build.buildgrid.UploadMissingBlobsRequest\x1a+.build.buildgrid.UploadMissingBlobsResponse\"\x00\x12T\n\tFetchTree\x12!.build.buildgrid.FetchTreeRequest\x1a\".build.buildgrid.FetchTreeResponse\"\x00\x12W\n\nUploadTree\x12\".build.buildgrid.UploadTreeRequest\x1a#.build.buildgrid.UploadTreeResponse\"\x00\x12X\n\tStageTree\x12!.build.buildgrid.StageTreeRequest\x1a\".build.buildgrid.StageTreeResponse\"\x00(\x01\x30\x01\x12Z\n\x0b\x43\x61ptureTree\x12#.build.buildgrid.CaptureTreeRequest\x1a$.build.buildgrid.CaptureTreeResponse\"\x00\x12]\n\x0c\x43\x61ptureFiles\x12$.build.buildgrid.CaptureFilesRequest\x1a%.build.buildgrid.CaptureFilesResponse\"\x00\x12\x81\x01\n\x18GetInstanceNameForRemote\x12\x30.build.buildgrid.GetInstanceNameForRemoteRequest\x1a\x31.build.buildgrid.GetInstanceNameForRemoteResponse\"\x00\x62\x06proto3')
+ ,
+ dependencies=[build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,])
+
+
+
+
+_FETCHMISSINGBLOBSREQUEST = _descriptor.Descriptor(
+ name='FetchMissingBlobsRequest',
+ full_name='build.buildgrid.FetchMissingBlobsRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.FetchMissingBlobsRequest.instance_name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='blob_digests', full_name='build.buildgrid.FetchMissingBlobsRequest.blob_digests', index=1,
+ number=2, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=163,
+ serialized_end=275,
+)
+
+
+_FETCHMISSINGBLOBSRESPONSE_RESPONSE = _descriptor.Descriptor(
+ name='Response',
+ full_name='build.buildgrid.FetchMissingBlobsResponse.Response',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='digest', full_name='build.buildgrid.FetchMissingBlobsResponse.Response.digest', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='status', full_name='build.buildgrid.FetchMissingBlobsResponse.Response.status', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=379,
+ serialized_end=482,
+)
+
+_FETCHMISSINGBLOBSRESPONSE = _descriptor.Descriptor(
+ name='FetchMissingBlobsResponse',
+ full_name='build.buildgrid.FetchMissingBlobsResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='responses', full_name='build.buildgrid.FetchMissingBlobsResponse.responses', index=0,
+ number=1, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[_FETCHMISSINGBLOBSRESPONSE_RESPONSE, ],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=278,
+ serialized_end=482,
+)
+
+
+_UPLOADMISSINGBLOBSREQUEST = _descriptor.Descriptor(
+ name='UploadMissingBlobsRequest',
+ full_name='build.buildgrid.UploadMissingBlobsRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.UploadMissingBlobsRequest.instance_name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='blob_digests', full_name='build.buildgrid.UploadMissingBlobsRequest.blob_digests', index=1,
+ number=2, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=484,
+ serialized_end=597,
+)
+
+
+_UPLOADMISSINGBLOBSRESPONSE_RESPONSE = _descriptor.Descriptor(
+ name='Response',
+ full_name='build.buildgrid.UploadMissingBlobsResponse.Response',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='digest', full_name='build.buildgrid.UploadMissingBlobsResponse.Response.digest', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='status', full_name='build.buildgrid.UploadMissingBlobsResponse.Response.status', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=379,
+ serialized_end=482,
+)
+
+_UPLOADMISSINGBLOBSRESPONSE = _descriptor.Descriptor(
+ name='UploadMissingBlobsResponse',
+ full_name='build.buildgrid.UploadMissingBlobsResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='responses', full_name='build.buildgrid.UploadMissingBlobsResponse.responses', index=0,
+ number=1, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[_UPLOADMISSINGBLOBSRESPONSE_RESPONSE, ],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=600,
+ serialized_end=806,
+)
+
+
+_FETCHTREEREQUEST = _descriptor.Descriptor(
+ name='FetchTreeRequest',
+ full_name='build.buildgrid.FetchTreeRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.FetchTreeRequest.instance_name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='root_digest', full_name='build.buildgrid.FetchTreeRequest.root_digest', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='fetch_file_blobs', full_name='build.buildgrid.FetchTreeRequest.fetch_file_blobs', index=2,
+ number=3, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=809,
+ serialized_end=938,
+)
+
+
+_FETCHTREERESPONSE = _descriptor.Descriptor(
+ name='FetchTreeResponse',
+ full_name='build.buildgrid.FetchTreeResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=940,
+ serialized_end=959,
+)
+
+
+_UPLOADTREEREQUEST = _descriptor.Descriptor(
+ name='UploadTreeRequest',
+ full_name='build.buildgrid.UploadTreeRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.UploadTreeRequest.instance_name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='root_digest', full_name='build.buildgrid.UploadTreeRequest.root_digest', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=961,
+ serialized_end=1065,
+)
+
+
+_UPLOADTREERESPONSE = _descriptor.Descriptor(
+ name='UploadTreeResponse',
+ full_name='build.buildgrid.UploadTreeResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1067,
+ serialized_end=1087,
+)
+
+
+_STAGETREEREQUEST = _descriptor.Descriptor(
+ name='StageTreeRequest',
+ full_name='build.buildgrid.StageTreeRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.StageTreeRequest.instance_name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='root_digest', full_name='build.buildgrid.StageTreeRequest.root_digest', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='path', full_name='build.buildgrid.StageTreeRequest.path', index=2,
+ number=3, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1089,
+ serialized_end=1206,
+)
+
+
+_STAGETREERESPONSE = _descriptor.Descriptor(
+ name='StageTreeResponse',
+ full_name='build.buildgrid.StageTreeResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='path', full_name='build.buildgrid.StageTreeResponse.path', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1208,
+ serialized_end=1241,
+)
+
+
+_CAPTURETREEREQUEST = _descriptor.Descriptor(
+ name='CaptureTreeRequest',
+ full_name='build.buildgrid.CaptureTreeRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.CaptureTreeRequest.instance_name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='path', full_name='build.buildgrid.CaptureTreeRequest.path', index=1,
+ number=2, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='bypass_local_cache', full_name='build.buildgrid.CaptureTreeRequest.bypass_local_cache', index=2,
+ number=3, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1243,
+ serialized_end=1328,
+)
+
+
+_CAPTURETREERESPONSE_RESPONSE = _descriptor.Descriptor(
+ name='Response',
+ full_name='build.buildgrid.CaptureTreeResponse.Response',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='path', full_name='build.buildgrid.CaptureTreeResponse.Response.path', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='tree_digest', full_name='build.buildgrid.CaptureTreeResponse.Response.tree_digest', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='status', full_name='build.buildgrid.CaptureTreeResponse.Response.status', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1420,
+ serialized_end=1542,
+)
+
+_CAPTURETREERESPONSE = _descriptor.Descriptor(
+ name='CaptureTreeResponse',
+ full_name='build.buildgrid.CaptureTreeResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='responses', full_name='build.buildgrid.CaptureTreeResponse.responses', index=0,
+ number=1, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[_CAPTURETREERESPONSE_RESPONSE, ],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1331,
+ serialized_end=1542,
+)
+
+
+_CAPTUREFILESREQUEST = _descriptor.Descriptor(
+ name='CaptureFilesRequest',
+ full_name='build.buildgrid.CaptureFilesRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.CaptureFilesRequest.instance_name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='path', full_name='build.buildgrid.CaptureFilesRequest.path', index=1,
+ number=2, type=9, cpp_type=9, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='bypass_local_cache', full_name='build.buildgrid.CaptureFilesRequest.bypass_local_cache', index=2,
+ number=3, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1544,
+ serialized_end=1630,
+)
+
+
+_CAPTUREFILESRESPONSE_RESPONSE = _descriptor.Descriptor(
+ name='Response',
+ full_name='build.buildgrid.CaptureFilesResponse.Response',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='path', full_name='build.buildgrid.CaptureFilesResponse.Response.path', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='digest', full_name='build.buildgrid.CaptureFilesResponse.Response.digest', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='status', full_name='build.buildgrid.CaptureFilesResponse.Response.status', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1724,
+ serialized_end=1841,
+)
+
+_CAPTUREFILESRESPONSE = _descriptor.Descriptor(
+ name='CaptureFilesResponse',
+ full_name='build.buildgrid.CaptureFilesResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='responses', full_name='build.buildgrid.CaptureFilesResponse.responses', index=0,
+ number=1, type=11, cpp_type=10, label=3,
+ has_default_value=False, default_value=[],
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[_CAPTUREFILESRESPONSE_RESPONSE, ],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1633,
+ serialized_end=1841,
+)
+
+
+_GETINSTANCENAMEFORREMOTEREQUEST = _descriptor.Descriptor(
+ name='GetInstanceNameForRemoteRequest',
+ full_name='build.buildgrid.GetInstanceNameForRemoteRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='url', full_name='build.buildgrid.GetInstanceNameForRemoteRequest.url', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.GetInstanceNameForRemoteRequest.instance_name', index=1,
+ number=2, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='server_cert', full_name='build.buildgrid.GetInstanceNameForRemoteRequest.server_cert', index=2,
+ number=3, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b(""),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='client_key', full_name='build.buildgrid.GetInstanceNameForRemoteRequest.client_key', index=3,
+ number=4, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b(""),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='client_cert', full_name='build.buildgrid.GetInstanceNameForRemoteRequest.client_cert', index=4,
+ number=5, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b(""),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1844,
+ serialized_end=1975,
+)
+
+
+_GETINSTANCENAMEFORREMOTERESPONSE = _descriptor.Descriptor(
+ name='GetInstanceNameForRemoteResponse',
+ full_name='build.buildgrid.GetInstanceNameForRemoteResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='instance_name', full_name='build.buildgrid.GetInstanceNameForRemoteResponse.instance_name', index=0,
+ number=1, type=9, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b("").decode('utf-8'),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1977,
+ serialized_end=2034,
+)
+
+_FETCHMISSINGBLOBSREQUEST.fields_by_name['blob_digests'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_FETCHMISSINGBLOBSRESPONSE_RESPONSE.fields_by_name['digest'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_FETCHMISSINGBLOBSRESPONSE_RESPONSE.fields_by_name['status'].message_type = google_dot_rpc_dot_status__pb2._STATUS
+_FETCHMISSINGBLOBSRESPONSE_RESPONSE.containing_type = _FETCHMISSINGBLOBSRESPONSE
+_FETCHMISSINGBLOBSRESPONSE.fields_by_name['responses'].message_type = _FETCHMISSINGBLOBSRESPONSE_RESPONSE
+_UPLOADMISSINGBLOBSREQUEST.fields_by_name['blob_digests'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_UPLOADMISSINGBLOBSRESPONSE_RESPONSE.fields_by_name['digest'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_UPLOADMISSINGBLOBSRESPONSE_RESPONSE.fields_by_name['status'].message_type = google_dot_rpc_dot_status__pb2._STATUS
+_UPLOADMISSINGBLOBSRESPONSE_RESPONSE.containing_type = _UPLOADMISSINGBLOBSRESPONSE
+_UPLOADMISSINGBLOBSRESPONSE.fields_by_name['responses'].message_type = _UPLOADMISSINGBLOBSRESPONSE_RESPONSE
+_FETCHTREEREQUEST.fields_by_name['root_digest'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_UPLOADTREEREQUEST.fields_by_name['root_digest'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_STAGETREEREQUEST.fields_by_name['root_digest'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_CAPTURETREERESPONSE_RESPONSE.fields_by_name['tree_digest'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_CAPTURETREERESPONSE_RESPONSE.fields_by_name['status'].message_type = google_dot_rpc_dot_status__pb2._STATUS
+_CAPTURETREERESPONSE_RESPONSE.containing_type = _CAPTURETREERESPONSE
+_CAPTURETREERESPONSE.fields_by_name['responses'].message_type = _CAPTURETREERESPONSE_RESPONSE
+_CAPTUREFILESRESPONSE_RESPONSE.fields_by_name['digest'].message_type = build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2._DIGEST
+_CAPTUREFILESRESPONSE_RESPONSE.fields_by_name['status'].message_type = google_dot_rpc_dot_status__pb2._STATUS
+_CAPTUREFILESRESPONSE_RESPONSE.containing_type = _CAPTUREFILESRESPONSE
+_CAPTUREFILESRESPONSE.fields_by_name['responses'].message_type = _CAPTUREFILESRESPONSE_RESPONSE
+DESCRIPTOR.message_types_by_name['FetchMissingBlobsRequest'] = _FETCHMISSINGBLOBSREQUEST
+DESCRIPTOR.message_types_by_name['FetchMissingBlobsResponse'] = _FETCHMISSINGBLOBSRESPONSE
+DESCRIPTOR.message_types_by_name['UploadMissingBlobsRequest'] = _UPLOADMISSINGBLOBSREQUEST
+DESCRIPTOR.message_types_by_name['UploadMissingBlobsResponse'] = _UPLOADMISSINGBLOBSRESPONSE
+DESCRIPTOR.message_types_by_name['FetchTreeRequest'] = _FETCHTREEREQUEST
+DESCRIPTOR.message_types_by_name['FetchTreeResponse'] = _FETCHTREERESPONSE
+DESCRIPTOR.message_types_by_name['UploadTreeRequest'] = _UPLOADTREEREQUEST
+DESCRIPTOR.message_types_by_name['UploadTreeResponse'] = _UPLOADTREERESPONSE
+DESCRIPTOR.message_types_by_name['StageTreeRequest'] = _STAGETREEREQUEST
+DESCRIPTOR.message_types_by_name['StageTreeResponse'] = _STAGETREERESPONSE
+DESCRIPTOR.message_types_by_name['CaptureTreeRequest'] = _CAPTURETREEREQUEST
+DESCRIPTOR.message_types_by_name['CaptureTreeResponse'] = _CAPTURETREERESPONSE
+DESCRIPTOR.message_types_by_name['CaptureFilesRequest'] = _CAPTUREFILESREQUEST
+DESCRIPTOR.message_types_by_name['CaptureFilesResponse'] = _CAPTUREFILESRESPONSE
+DESCRIPTOR.message_types_by_name['GetInstanceNameForRemoteRequest'] = _GETINSTANCENAMEFORREMOTEREQUEST
+DESCRIPTOR.message_types_by_name['GetInstanceNameForRemoteResponse'] = _GETINSTANCENAMEFORREMOTERESPONSE
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+FetchMissingBlobsRequest = _reflection.GeneratedProtocolMessageType('FetchMissingBlobsRequest', (_message.Message,), dict(
+ DESCRIPTOR = _FETCHMISSINGBLOBSREQUEST,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.FetchMissingBlobsRequest)
+ ))
+_sym_db.RegisterMessage(FetchMissingBlobsRequest)
+
+FetchMissingBlobsResponse = _reflection.GeneratedProtocolMessageType('FetchMissingBlobsResponse', (_message.Message,), dict(
+
+ Response = _reflection.GeneratedProtocolMessageType('Response', (_message.Message,), dict(
+ DESCRIPTOR = _FETCHMISSINGBLOBSRESPONSE_RESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.FetchMissingBlobsResponse.Response)
+ ))
+ ,
+ DESCRIPTOR = _FETCHMISSINGBLOBSRESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.FetchMissingBlobsResponse)
+ ))
+_sym_db.RegisterMessage(FetchMissingBlobsResponse)
+_sym_db.RegisterMessage(FetchMissingBlobsResponse.Response)
+
+UploadMissingBlobsRequest = _reflection.GeneratedProtocolMessageType('UploadMissingBlobsRequest', (_message.Message,), dict(
+ DESCRIPTOR = _UPLOADMISSINGBLOBSREQUEST,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.UploadMissingBlobsRequest)
+ ))
+_sym_db.RegisterMessage(UploadMissingBlobsRequest)
+
+UploadMissingBlobsResponse = _reflection.GeneratedProtocolMessageType('UploadMissingBlobsResponse', (_message.Message,), dict(
+
+ Response = _reflection.GeneratedProtocolMessageType('Response', (_message.Message,), dict(
+ DESCRIPTOR = _UPLOADMISSINGBLOBSRESPONSE_RESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.UploadMissingBlobsResponse.Response)
+ ))
+ ,
+ DESCRIPTOR = _UPLOADMISSINGBLOBSRESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.UploadMissingBlobsResponse)
+ ))
+_sym_db.RegisterMessage(UploadMissingBlobsResponse)
+_sym_db.RegisterMessage(UploadMissingBlobsResponse.Response)
+
+FetchTreeRequest = _reflection.GeneratedProtocolMessageType('FetchTreeRequest', (_message.Message,), dict(
+ DESCRIPTOR = _FETCHTREEREQUEST,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.FetchTreeRequest)
+ ))
+_sym_db.RegisterMessage(FetchTreeRequest)
+
+FetchTreeResponse = _reflection.GeneratedProtocolMessageType('FetchTreeResponse', (_message.Message,), dict(
+ DESCRIPTOR = _FETCHTREERESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.FetchTreeResponse)
+ ))
+_sym_db.RegisterMessage(FetchTreeResponse)
+
+UploadTreeRequest = _reflection.GeneratedProtocolMessageType('UploadTreeRequest', (_message.Message,), dict(
+ DESCRIPTOR = _UPLOADTREEREQUEST,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.UploadTreeRequest)
+ ))
+_sym_db.RegisterMessage(UploadTreeRequest)
+
+UploadTreeResponse = _reflection.GeneratedProtocolMessageType('UploadTreeResponse', (_message.Message,), dict(
+ DESCRIPTOR = _UPLOADTREERESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.UploadTreeResponse)
+ ))
+_sym_db.RegisterMessage(UploadTreeResponse)
+
+StageTreeRequest = _reflection.GeneratedProtocolMessageType('StageTreeRequest', (_message.Message,), dict(
+ DESCRIPTOR = _STAGETREEREQUEST,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.StageTreeRequest)
+ ))
+_sym_db.RegisterMessage(StageTreeRequest)
+
+StageTreeResponse = _reflection.GeneratedProtocolMessageType('StageTreeResponse', (_message.Message,), dict(
+ DESCRIPTOR = _STAGETREERESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.StageTreeResponse)
+ ))
+_sym_db.RegisterMessage(StageTreeResponse)
+
+CaptureTreeRequest = _reflection.GeneratedProtocolMessageType('CaptureTreeRequest', (_message.Message,), dict(
+ DESCRIPTOR = _CAPTURETREEREQUEST,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.CaptureTreeRequest)
+ ))
+_sym_db.RegisterMessage(CaptureTreeRequest)
+
+CaptureTreeResponse = _reflection.GeneratedProtocolMessageType('CaptureTreeResponse', (_message.Message,), dict(
+
+ Response = _reflection.GeneratedProtocolMessageType('Response', (_message.Message,), dict(
+ DESCRIPTOR = _CAPTURETREERESPONSE_RESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.CaptureTreeResponse.Response)
+ ))
+ ,
+ DESCRIPTOR = _CAPTURETREERESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.CaptureTreeResponse)
+ ))
+_sym_db.RegisterMessage(CaptureTreeResponse)
+_sym_db.RegisterMessage(CaptureTreeResponse.Response)
+
+CaptureFilesRequest = _reflection.GeneratedProtocolMessageType('CaptureFilesRequest', (_message.Message,), dict(
+ DESCRIPTOR = _CAPTUREFILESREQUEST,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.CaptureFilesRequest)
+ ))
+_sym_db.RegisterMessage(CaptureFilesRequest)
+
+CaptureFilesResponse = _reflection.GeneratedProtocolMessageType('CaptureFilesResponse', (_message.Message,), dict(
+
+ Response = _reflection.GeneratedProtocolMessageType('Response', (_message.Message,), dict(
+ DESCRIPTOR = _CAPTUREFILESRESPONSE_RESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.CaptureFilesResponse.Response)
+ ))
+ ,
+ DESCRIPTOR = _CAPTUREFILESRESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.CaptureFilesResponse)
+ ))
+_sym_db.RegisterMessage(CaptureFilesResponse)
+_sym_db.RegisterMessage(CaptureFilesResponse.Response)
+
+GetInstanceNameForRemoteRequest = _reflection.GeneratedProtocolMessageType('GetInstanceNameForRemoteRequest', (_message.Message,), dict(
+ DESCRIPTOR = _GETINSTANCENAMEFORREMOTEREQUEST,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.GetInstanceNameForRemoteRequest)
+ ))
+_sym_db.RegisterMessage(GetInstanceNameForRemoteRequest)
+
+GetInstanceNameForRemoteResponse = _reflection.GeneratedProtocolMessageType('GetInstanceNameForRemoteResponse', (_message.Message,), dict(
+ DESCRIPTOR = _GETINSTANCENAMEFORREMOTERESPONSE,
+ __module__ = 'build.buildgrid.local_cas_pb2'
+ # @@protoc_insertion_point(class_scope:build.buildgrid.GetInstanceNameForRemoteResponse)
+ ))
+_sym_db.RegisterMessage(GetInstanceNameForRemoteResponse)
+
+
+
+_LOCALCONTENTADDRESSABLESTORAGE = _descriptor.ServiceDescriptor(
+ name='LocalContentAddressableStorage',
+ full_name='build.buildgrid.LocalContentAddressableStorage',
+ file=DESCRIPTOR,
+ index=0,
+ serialized_options=None,
+ serialized_start=2037,
+ serialized_end=2876,
+ methods=[
+ _descriptor.MethodDescriptor(
+ name='FetchMissingBlobs',
+ full_name='build.buildgrid.LocalContentAddressableStorage.FetchMissingBlobs',
+ index=0,
+ containing_service=None,
+ input_type=_FETCHMISSINGBLOBSREQUEST,
+ output_type=_FETCHMISSINGBLOBSRESPONSE,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='UploadMissingBlobs',
+ full_name='build.buildgrid.LocalContentAddressableStorage.UploadMissingBlobs',
+ index=1,
+ containing_service=None,
+ input_type=_UPLOADMISSINGBLOBSREQUEST,
+ output_type=_UPLOADMISSINGBLOBSRESPONSE,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='FetchTree',
+ full_name='build.buildgrid.LocalContentAddressableStorage.FetchTree',
+ index=2,
+ containing_service=None,
+ input_type=_FETCHTREEREQUEST,
+ output_type=_FETCHTREERESPONSE,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='UploadTree',
+ full_name='build.buildgrid.LocalContentAddressableStorage.UploadTree',
+ index=3,
+ containing_service=None,
+ input_type=_UPLOADTREEREQUEST,
+ output_type=_UPLOADTREERESPONSE,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='StageTree',
+ full_name='build.buildgrid.LocalContentAddressableStorage.StageTree',
+ index=4,
+ containing_service=None,
+ input_type=_STAGETREEREQUEST,
+ output_type=_STAGETREERESPONSE,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='CaptureTree',
+ full_name='build.buildgrid.LocalContentAddressableStorage.CaptureTree',
+ index=5,
+ containing_service=None,
+ input_type=_CAPTURETREEREQUEST,
+ output_type=_CAPTURETREERESPONSE,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='CaptureFiles',
+ full_name='build.buildgrid.LocalContentAddressableStorage.CaptureFiles',
+ index=6,
+ containing_service=None,
+ input_type=_CAPTUREFILESREQUEST,
+ output_type=_CAPTUREFILESRESPONSE,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='GetInstanceNameForRemote',
+ full_name='build.buildgrid.LocalContentAddressableStorage.GetInstanceNameForRemote',
+ index=7,
+ containing_service=None,
+ input_type=_GETINSTANCENAMEFORREMOTEREQUEST,
+ output_type=_GETINSTANCENAMEFORREMOTERESPONSE,
+ serialized_options=None,
+ ),
+])
+_sym_db.RegisterServiceDescriptor(_LOCALCONTENTADDRESSABLESTORAGE)
+
+DESCRIPTOR.services_by_name['LocalContentAddressableStorage'] = _LOCALCONTENTADDRESSABLESTORAGE
+
+# @@protoc_insertion_point(module_scope)
diff --git a/src/buildstream/_protos/build/buildgrid/local_cas_pb2_grpc.py b/src/buildstream/_protos/build/buildgrid/local_cas_pb2_grpc.py
new file mode 100644
index 000000000..7ea06a3a7
--- /dev/null
+++ b/src/buildstream/_protos/build/buildgrid/local_cas_pb2_grpc.py
@@ -0,0 +1,238 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+import grpc
+
+from buildstream._protos.build.buildgrid import local_cas_pb2 as build_dot_buildgrid_dot_local__cas__pb2
+
+
+class LocalContentAddressableStorageStub(object):
+ # missing associated documentation comment in .proto file
+ pass
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.FetchMissingBlobs = channel.unary_unary(
+ '/build.buildgrid.LocalContentAddressableStorage/FetchMissingBlobs',
+ request_serializer=build_dot_buildgrid_dot_local__cas__pb2.FetchMissingBlobsRequest.SerializeToString,
+ response_deserializer=build_dot_buildgrid_dot_local__cas__pb2.FetchMissingBlobsResponse.FromString,
+ )
+ self.UploadMissingBlobs = channel.unary_unary(
+ '/build.buildgrid.LocalContentAddressableStorage/UploadMissingBlobs',
+ request_serializer=build_dot_buildgrid_dot_local__cas__pb2.UploadMissingBlobsRequest.SerializeToString,
+ response_deserializer=build_dot_buildgrid_dot_local__cas__pb2.UploadMissingBlobsResponse.FromString,
+ )
+ self.FetchTree = channel.unary_unary(
+ '/build.buildgrid.LocalContentAddressableStorage/FetchTree',
+ request_serializer=build_dot_buildgrid_dot_local__cas__pb2.FetchTreeRequest.SerializeToString,
+ response_deserializer=build_dot_buildgrid_dot_local__cas__pb2.FetchTreeResponse.FromString,
+ )
+ self.UploadTree = channel.unary_unary(
+ '/build.buildgrid.LocalContentAddressableStorage/UploadTree',
+ request_serializer=build_dot_buildgrid_dot_local__cas__pb2.UploadTreeRequest.SerializeToString,
+ response_deserializer=build_dot_buildgrid_dot_local__cas__pb2.UploadTreeResponse.FromString,
+ )
+ self.StageTree = channel.stream_stream(
+ '/build.buildgrid.LocalContentAddressableStorage/StageTree',
+ request_serializer=build_dot_buildgrid_dot_local__cas__pb2.StageTreeRequest.SerializeToString,
+ response_deserializer=build_dot_buildgrid_dot_local__cas__pb2.StageTreeResponse.FromString,
+ )
+ self.CaptureTree = channel.unary_unary(
+ '/build.buildgrid.LocalContentAddressableStorage/CaptureTree',
+ request_serializer=build_dot_buildgrid_dot_local__cas__pb2.CaptureTreeRequest.SerializeToString,
+ response_deserializer=build_dot_buildgrid_dot_local__cas__pb2.CaptureTreeResponse.FromString,
+ )
+ self.CaptureFiles = channel.unary_unary(
+ '/build.buildgrid.LocalContentAddressableStorage/CaptureFiles',
+ request_serializer=build_dot_buildgrid_dot_local__cas__pb2.CaptureFilesRequest.SerializeToString,
+ response_deserializer=build_dot_buildgrid_dot_local__cas__pb2.CaptureFilesResponse.FromString,
+ )
+ self.GetInstanceNameForRemote = channel.unary_unary(
+ '/build.buildgrid.LocalContentAddressableStorage/GetInstanceNameForRemote',
+ request_serializer=build_dot_buildgrid_dot_local__cas__pb2.GetInstanceNameForRemoteRequest.SerializeToString,
+ response_deserializer=build_dot_buildgrid_dot_local__cas__pb2.GetInstanceNameForRemoteResponse.FromString,
+ )
+
+
+class LocalContentAddressableStorageServicer(object):
+ # missing associated documentation comment in .proto file
+ pass
+
+ def FetchMissingBlobs(self, request, context):
+ """Fetch blobs from a remote CAS to the local cache.
+
+ This request is equivalent to ByteStream `Read` or `BatchReadBlobs`
+ requests, storing the downloaded blobs in the local cache.
+
+ Requested blobs that failed to be downloaded will be listed in the
+ response.
+
+ Errors:
+ * `INVALID_ARGUMENT`: The client attempted to download more than the
+ server supported limit.
+
+ Individual requests may return the following error, additionally:
+ * `NOT_FOUND`: The requested blob is not present in the remote CAS.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def UploadMissingBlobs(self, request, context):
+ """Upload blobs from the local cache to a remote CAS.
+
+ This request is equivalent to `FindMissingBlobs` followed by
+ ByteStream `Write` or `BatchUpdateBlobs` requests.
+
+ Blobs that failed to be uploaded will be listed in the response.
+
+ Errors:
+ * `INVALID_ARGUMENT`: The client attempted to upload more than the
+ server supported limit.
+
+ Individual requests may return the following error, additionally:
+ * `NOT_FOUND`: The requested blob is not present in the local cache.
+ * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def FetchTree(self, request, context):
+ """Fetch the entire directory tree rooted at a node from a remote CAS to the
+ local cache.
+
+ This request is equivalent to `GetTree`, storing the `Directory` objects
+ in the local cache. Optionally, this will also fetch all blobs referenced
+ by the `Directory` objects, equivalent to `FetchMissingBlobs`.
+
+ If part of the tree is missing from the CAS, the server will return the
+ portion present and omit the rest.
+
+ * `NOT_FOUND`: The requested tree root is not present in the CAS.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def UploadTree(self, request, context):
+ """Upload the entire directory tree from the local cache to a remote CAS.
+
+ This request is equivalent to `UploadMissingBlobs` for all blobs
+ referenced by the specified tree (recursively).
+
+ Errors:
+ * `NOT_FOUND`: The requested tree root is not present in the local cache.
+ * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the tree.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def StageTree(self, request_iterator, context):
+ """Stage a directory tree in the local filesystem.
+
+ This makes the specified directory tree temporarily available for local
+ filesystem access. It is implementation-defined whether this uses a
+ userspace filesystem such as FUSE, hardlinking or a full copy.
+
+ Missing blobs are fetched, if a CAS remote is configured.
+
+ The staging starts when the server receives the initial request and
+ it is ready to be used on the initial (non-error) response from the
+ server.
+
+ The server will clean up the staged directory when it either
+ receives an additional request (with all fields unset) or when the
+ stream is closed. The server will send an additional response after
+ cleanup is complete.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def CaptureTree(self, request, context):
+ """Capture a directory tree from the local filesystem.
+
+ This imports the specified path from the local filesystem into CAS.
+
+ If a CAS remote is configured, the blobs are uploaded.
+ The `bypass_local_cache` parameter is a hint to indicate whether the blobs
+ shall be uploaded without first storing them in the local cache.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def CaptureFiles(self, request, context):
+ """Capture files from the local filesystem.
+
+ This imports the specified paths from the local filesystem into CAS.
+
+ If a CAS remote is configured, the blobs are uploaded.
+ The `bypass_local_cache` parameter is a hint to indicate whether the blobs
+ shall be uploaded without first storing them in the local cache.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def GetInstanceNameForRemote(self, request, context):
+ """Configure remote CAS endpoint.
+
+ This returns a string that can be used as instance_name to access the
+ specified endpoint in further requests.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_LocalContentAddressableStorageServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'FetchMissingBlobs': grpc.unary_unary_rpc_method_handler(
+ servicer.FetchMissingBlobs,
+ request_deserializer=build_dot_buildgrid_dot_local__cas__pb2.FetchMissingBlobsRequest.FromString,
+ response_serializer=build_dot_buildgrid_dot_local__cas__pb2.FetchMissingBlobsResponse.SerializeToString,
+ ),
+ 'UploadMissingBlobs': grpc.unary_unary_rpc_method_handler(
+ servicer.UploadMissingBlobs,
+ request_deserializer=build_dot_buildgrid_dot_local__cas__pb2.UploadMissingBlobsRequest.FromString,
+ response_serializer=build_dot_buildgrid_dot_local__cas__pb2.UploadMissingBlobsResponse.SerializeToString,
+ ),
+ 'FetchTree': grpc.unary_unary_rpc_method_handler(
+ servicer.FetchTree,
+ request_deserializer=build_dot_buildgrid_dot_local__cas__pb2.FetchTreeRequest.FromString,
+ response_serializer=build_dot_buildgrid_dot_local__cas__pb2.FetchTreeResponse.SerializeToString,
+ ),
+ 'UploadTree': grpc.unary_unary_rpc_method_handler(
+ servicer.UploadTree,
+ request_deserializer=build_dot_buildgrid_dot_local__cas__pb2.UploadTreeRequest.FromString,
+ response_serializer=build_dot_buildgrid_dot_local__cas__pb2.UploadTreeResponse.SerializeToString,
+ ),
+ 'StageTree': grpc.stream_stream_rpc_method_handler(
+ servicer.StageTree,
+ request_deserializer=build_dot_buildgrid_dot_local__cas__pb2.StageTreeRequest.FromString,
+ response_serializer=build_dot_buildgrid_dot_local__cas__pb2.StageTreeResponse.SerializeToString,
+ ),
+ 'CaptureTree': grpc.unary_unary_rpc_method_handler(
+ servicer.CaptureTree,
+ request_deserializer=build_dot_buildgrid_dot_local__cas__pb2.CaptureTreeRequest.FromString,
+ response_serializer=build_dot_buildgrid_dot_local__cas__pb2.CaptureTreeResponse.SerializeToString,
+ ),
+ 'CaptureFiles': grpc.unary_unary_rpc_method_handler(
+ servicer.CaptureFiles,
+ request_deserializer=build_dot_buildgrid_dot_local__cas__pb2.CaptureFilesRequest.FromString,
+ response_serializer=build_dot_buildgrid_dot_local__cas__pb2.CaptureFilesResponse.SerializeToString,
+ ),
+ 'GetInstanceNameForRemote': grpc.unary_unary_rpc_method_handler(
+ servicer.GetInstanceNameForRemote,
+ request_deserializer=build_dot_buildgrid_dot_local__cas__pb2.GetInstanceNameForRemoteRequest.FromString,
+ response_serializer=build_dot_buildgrid_dot_local__cas__pb2.GetInstanceNameForRemoteResponse.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'build.buildgrid.LocalContentAddressableStorage', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))