From 9f36c46a35221b9b1dfeda46048aaeaa0a6d7afa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrg=20Billeter?= Date: Thu, 6 Jun 2019 11:20:15 +0200 Subject: _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 --- .../_protos/build/buildgrid/__init__.py | 0 .../_protos/build/buildgrid/local_cas.proto | 373 +++++++ .../_protos/build/buildgrid/local_cas_pb2.py | 1052 ++++++++++++++++++++ .../_protos/build/buildgrid/local_cas_pb2_grpc.py | 238 +++++ 4 files changed, 1663 insertions(+) create mode 100644 src/buildstream/_protos/build/buildgrid/__init__.py create mode 100644 src/buildstream/_protos/build/buildgrid/local_cas.proto create mode 100644 src/buildstream/_protos/build/buildgrid/local_cas_pb2.py create mode 100644 src/buildstream/_protos/build/buildgrid/local_cas_pb2_grpc.py (limited to 'src') 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 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,)) -- cgit v1.2.1