[Notes] [Git][BuildGrid/buildgrid][mablanch/92-architecture-documentation] 4 commits: Udapte .proto files to their latest version



Title: GitLab

finn pushed to branch mablanch/92-architecture-documentation at BuildGrid / buildgrid

Commits:

23 changed files:

Changes:

  • README.rst
    ... ... @@ -13,7 +13,7 @@ BuildGrid is a Python remote execution service which implements Google's
    13 13
     `Remote Execution API`_ and the `Remote Workers API`_. The project's goal is to
    
    14 14
     be able to execute build jobs remotely on a grid of computers in order to
    
    15 15
     massively speed up build times. Workers on the grid should be able to run with
    
    16
    -different environments. It works with clients such as `Bazel`_, 
    
    16
    +different environments. It works with clients such as `Bazel`_,
    
    17 17
     `BuildStream`_ and `RECC`_, and is designed to be able to work with any client
    
    18 18
     that conforms to the above API protocols.
    
    19 19
     
    
    ... ... @@ -47,6 +47,7 @@ Resources
    47 47
     - `Bug tracking`_
    
    48 48
     - `Mailing list`_
    
    49 49
     - `Slack channel`_ [`invite link`_]
    
    50
    +- `FAQ`_
    
    50 51
     
    
    51 52
     .. _Homepage: https://buildgrid.build
    
    52 53
     .. _GitLab repository: https://gitlab.com/BuildGrid/buildgrid
    
    ... ... @@ -54,3 +55,4 @@ Resources
    54 55
     .. _Mailing list: https://lists.buildgrid.build/cgi-bin/mailman/listinfo/buildgrid
    
    55 56
     .. _Slack channel: https://buildteamworld.slack.com/messages/CC9MKC203
    
    56 57
     .. _invite link: https://join.slack.com/t/buildteamworld/shared_invite/enQtMzkxNzE0MDMyMDY1LTRmZmM1OWE0OTFkMGE1YjU5Njc4ODEzYjc0MGMyOTM5ZTQ5MmE2YTQ1MzQwZDc5MWNhODY1ZmRkZTE4YjFhNjU
    
    58
    +.. _FAQ: https://buildgrid.gitlab.io/buildgrid/faq.html

  • buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution.proto
    ... ... @@ -93,6 +93,9 @@ service Execution {
    93 93
       // * `INTERNAL`: An internal error occurred in the execution engine or the
    
    94 94
       //   worker.
    
    95 95
       // * `DEADLINE_EXCEEDED`: The execution timed out.
    
    96
    +  // * `CANCELLED`: The operation was cancelled by the client. This status is
    
    97
    +  //   only possible if the server implements the Operations API CancelOperation
    
    98
    +  //   method, and it was called for the current execution.
    
    96 99
       //
    
    97 100
       // In the case of a missing input or command, the server SHOULD additionally
    
    98 101
       // send a [PreconditionFailure][google.rpc.PreconditionFailure] error detail
    
    ... ... @@ -157,7 +160,7 @@ service ActionCache {
    157 160
       // `ContentAddressableStorage`.
    
    158 161
       //
    
    159 162
       // Errors:
    
    160
    -  // * `NOT_IMPLEMENTED`: This method is not supported by the server.
    
    163
    +  // * `UNIMPLEMENTED`: This method is not supported by the server.
    
    161 164
       // * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
    
    162 165
       //   entry to the cache.
    
    163 166
       rpc UpdateActionResult(UpdateActionResultRequest) returns (ActionResult) {
    
    ... ... @@ -181,8 +184,8 @@ service ActionCache {
    181 184
     // hierarchy, which must also each be uploaded on their own.
    
    182 185
     //
    
    183 186
     // For small file uploads the client should group them together and call
    
    184
    -// [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs]
    
    185
    -// on chunks of no more than 10 MiB. For large uploads, the client must use the
    
    187
    +// [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs].
    
    188
    +// For large uploads, the client must use the
    
    186 189
     // [Write method][google.bytestream.ByteStream.Write] of the ByteStream API. The
    
    187 190
     // `resource_name` is `{instance_name}/uploads/{uuid}/blobs/{hash}/{size}`,
    
    188 191
     // where `instance_name` is as described in the next paragraph, `uuid` is a
    
    ... ... @@ -426,7 +429,8 @@ message Command {
    426 429
       // A list of the output files that the client expects to retrieve from the
    
    427 430
       // action. Only the listed files, as well as directories listed in
    
    428 431
       // `output_directories`, will be returned to the client as output.
    
    429
    -  // Other files that may be created during command execution are discarded.
    
    432
    +  // Other files or directories that may be created during command execution
    
    433
    +  // are discarded.
    
    430 434
       //
    
    431 435
       // The paths are relative to the working directory of the action execution.
    
    432 436
       // The paths are specified using a single forward slash (`/`) as a path
    
    ... ... @@ -438,16 +442,17 @@ message Command {
    438 442
       // MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
    
    439 443
       // bytes).
    
    440 444
       //
    
    441
    -  // An output file cannot be duplicated, be a parent of another output file, be
    
    442
    -  // a child of a listed output directory, or have the same path as any of the
    
    443
    -  // listed output directories.
    
    445
    +  // An output file cannot be duplicated, be a parent of another output file, or
    
    446
    +  // have the same path as any of the listed output directories.
    
    444 447
       repeated string output_files = 3;
    
    445 448
     
    
    446 449
       // A list of the output directories that the client expects to retrieve from
    
    447
    -  // the action. Only the contents of the indicated directories (recursively
    
    448
    -  // including the contents of their subdirectories) will be
    
    449
    -  // returned, as well as files listed in `output_files`. Other files that may
    
    450
    -  // be created during command execution are discarded.
    
    450
    +  // the action. Only the listed directories will be returned (an entire
    
    451
    +  // directory structure will be returned as a
    
    452
    +  // [Tree][build.bazel.remote.execution.v2.Tree] message digest, see
    
    453
    +  // [OutputDirectory][build.bazel.remote.execution.v2.OutputDirectory]), as
    
    454
    +  // well as files listed in `output_files`. Other files or directories that
    
    455
    +  // may be created during command execution are discarded.
    
    451 456
       //
    
    452 457
       // The paths are relative to the working directory of the action execution.
    
    453 458
       // The paths are specified using a single forward slash (`/`) as a path
    
    ... ... @@ -461,9 +466,8 @@ message Command {
    461 466
       // MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
    
    462 467
       // bytes).
    
    463 468
       //
    
    464
    -  // An output directory cannot be duplicated, be a parent of another output
    
    465
    -  // directory, be a parent of a listed output file, or have the same path as
    
    466
    -  // any of the listed output files.
    
    469
    +  // An output directory cannot be duplicated or have the same path as any of
    
    470
    +  // the listed output files.
    
    467 471
       repeated string output_directories = 4;
    
    468 472
     
    
    469 473
       // The platform requirements for the execution environment. The server MAY
    
    ... ... @@ -710,7 +714,9 @@ message ActionResult {
    710 714
     
    
    711 715
       // The output files of the action. For each output file requested in the
    
    712 716
       // `output_files` field of the Action, if the corresponding file existed after
    
    713
    -  // the action completed, a single entry will be present in the output list.
    
    717
    +  // the action completed, a single entry will be present either in this field,
    
    718
    +  // or in the output_file_symlinks field, if the file was a symbolic link to
    
    719
    +  // another file.
    
    714 720
       //
    
    715 721
       // If the action does not produce the requested output, or produces a
    
    716 722
       // directory where a regular file is expected or vice versa, then that output
    
    ... ... @@ -718,6 +724,21 @@ message ActionResult {
    718 724
       // list as desired; clients MUST NOT assume that the output list is sorted.
    
    719 725
       repeated OutputFile output_files = 2;
    
    720 726
     
    
    727
    +  // The output files of the action that are symbolic links to other files. Those
    
    728
    +  // may be links to other output files, or input files, or even absolute paths
    
    729
    +  // outside of the working directory, if the server supports
    
    730
    +  // [SymlinkAbsolutePathStrategy.ALLOWED][build.bazel.remote.execution.v2.SymlinkAbsolutePathStrategy].
    
    731
    +  // For each output file requested in the `output_files` field of the Action,
    
    732
    +  // if the corresponding file existed after
    
    733
    +  // the action completed, a single entry will be present either in this field,
    
    734
    +  // or in the `output_files` field, if the file was not a symbolic link.
    
    735
    +  //
    
    736
    +  // If the action does not produce the requested output, or produces a
    
    737
    +  // directory where a regular file is expected or vice versa, then that output
    
    738
    +  // will be omitted from the list. The server is free to arrange the output
    
    739
    +  // list as desired; clients MUST NOT assume that the output list is sorted.
    
    740
    +  repeated OutputSymlink output_file_symlinks = 10;
    
    741
    +
    
    721 742
       // The output directories of the action. For each output directory requested
    
    722 743
       // in the `output_directories` field of the Action, if the corresponding
    
    723 744
       // directory existed after the action completed, a single entry will be
    
    ... ... @@ -779,6 +800,22 @@ message ActionResult {
    779 800
       // ```
    
    780 801
       repeated OutputDirectory output_directories = 3;
    
    781 802
     
    
    803
    +  // The output directories of the action that are symbolic links to other
    
    804
    +  // directories. Those may be links to other output directories, or input
    
    805
    +  // directories, or even absolute paths outside of the working directory,
    
    806
    +  // if the server supports
    
    807
    +  // [SymlinkAbsolutePathStrategy.ALLOWED][build.bazel.remote.execution.v2.SymlinkAbsolutePathStrategy].
    
    808
    +  // For each output directory requested in the `output_directories` field of
    
    809
    +  // the Action, if the directory file existed after
    
    810
    +  // the action completed, a single entry will be present either in this field,
    
    811
    +  // or in the `output_directories` field, if the directory was not a symbolic link.
    
    812
    +  //
    
    813
    +  // If the action does not produce the requested output, or produces a
    
    814
    +  // file where a directory is expected or vice versa, then that output
    
    815
    +  // will be omitted from the list. The server is free to arrange the output
    
    816
    +  // list as desired; clients MUST NOT assume that the output list is sorted.
    
    817
    +  repeated OutputSymlink output_directory_symlinks = 11;
    
    818
    +
    
    782 819
       // The exit code of the command.
    
    783 820
       int32 exit_code = 4;
    
    784 821
     
    
    ... ... @@ -821,7 +858,7 @@ message ActionResult {
    821 858
     //
    
    822 859
     // `OutputFile` is binary-compatible with `FileNode`.
    
    823 860
     message OutputFile {
    
    824
    -  // The full path of the file relative to the input root, including the
    
    861
    +  // The full path of the file relative to the working directory, including the
    
    825 862
       // filename. The path separator is a forward slash `/`. Since this is a
    
    826 863
       // relative path, it MUST NOT begin with a leading forward slash.
    
    827 864
       string path = 1;
    
    ... ... @@ -866,6 +903,26 @@ message OutputDirectory {
    866 903
       Digest tree_digest = 3;
    
    867 904
     }
    
    868 905
     
    
    906
    +// An `OutputSymlink` is similar to a
    
    907
    +// [Symlink][build.bazel.remote.execution.v2.SymlinkNode], but it is used as an
    
    908
    +// output in an `ActionResult`.
    
    909
    +//
    
    910
    +// `OutputSymlink` is binary-compatible with `SymlinkNode`.
    
    911
    +message OutputSymlink {
    
    912
    +  // The full path of the symlink relative to the working directory, including the
    
    913
    +  // filename. The path separator is a forward slash `/`. Since this is a
    
    914
    +  // relative path, it MUST NOT begin with a leading forward slash.
    
    915
    +  string path = 1;
    
    916
    +
    
    917
    +  // The target path of the symlink. The path separator is a forward slash `/`.
    
    918
    +  // The target path can be relative to the parent directory of the symlink or
    
    919
    +  // it can be an absolute path starting with `/`. Support for absolute paths
    
    920
    +  // can be checked using the [Capabilities][build.bazel.remote.execution.v2.Capabilities]
    
    921
    +  // API. The canonical form forbids the substrings `/./` and `//` in the target
    
    922
    +  // path. `..` components are allowed anywhere in the target path.
    
    923
    +  string target = 2;
    
    924
    +}
    
    925
    +
    
    869 926
     // An `ExecutionPolicy` can be used to control the scheduling of the action.
    
    870 927
     message ExecutionPolicy {
    
    871 928
       // The priority (relative importance) of this action. Generally, a lower value
    

  • buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2.py The diff for this file was not included because it is too large.
  • buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution_pb2_grpc.py
    ... ... @@ -99,6 +99,9 @@ class ExecutionServicer(object):
    99 99
         * `INTERNAL`: An internal error occurred in the execution engine or the
    
    100 100
         worker.
    
    101 101
         * `DEADLINE_EXCEEDED`: The execution timed out.
    
    102
    +    * `CANCELLED`: The operation was cancelled by the client. This status is
    
    103
    +    only possible if the server implements the Operations API CancelOperation
    
    104
    +    method, and it was called for the current execution.
    
    102 105
     
    
    103 106
         In the case of a missing input or command, the server SHOULD additionally
    
    104 107
         send a [PreconditionFailure][google.rpc.PreconditionFailure] error detail
    
    ... ... @@ -229,7 +232,7 @@ class ActionCacheServicer(object):
    229 232
         `ContentAddressableStorage`.
    
    230 233
     
    
    231 234
         Errors:
    
    232
    -    * `NOT_IMPLEMENTED`: This method is not supported by the server.
    
    235
    +    * `UNIMPLEMENTED`: This method is not supported by the server.
    
    233 236
         * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
    
    234 237
         entry to the cache.
    
    235 238
         """
    
    ... ... @@ -273,8 +276,8 @@ class ContentAddressableStorageStub(object):
    273 276
       hierarchy, which must also each be uploaded on their own.
    
    274 277
     
    
    275 278
       For small file uploads the client should group them together and call
    
    276
    -  [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs]
    
    277
    -  on chunks of no more than 10 MiB. For large uploads, the client must use the
    
    279
    +  [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs].
    
    280
    +  For large uploads, the client must use the
    
    278 281
       [Write method][google.bytestream.ByteStream.Write] of the ByteStream API. The
    
    279 282
       `resource_name` is `{instance_name}/uploads/{uuid}/blobs/{hash}/{size}`,
    
    280 283
       where `instance_name` is as described in the next paragraph, `uuid` is a
    
    ... ... @@ -369,8 +372,8 @@ class ContentAddressableStorageServicer(object):
    369 372
       hierarchy, which must also each be uploaded on their own.
    
    370 373
     
    
    371 374
       For small file uploads the client should group them together and call
    
    372
    -  [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs]
    
    373
    -  on chunks of no more than 10 MiB. For large uploads, the client must use the
    
    375
    +  [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs].
    
    376
    +  For large uploads, the client must use the
    
    374 377
       [Write method][google.bytestream.ByteStream.Write] of the ByteStream API. The
    
    375 378
       `resource_name` is `{instance_name}/uploads/{uuid}/blobs/{hash}/{size}`,
    
    376 379
       where `instance_name` is as described in the next paragraph, `uuid` is a
    

  • buildgrid/_protos/build/bazel/semver/semver.proto
    ... ... @@ -16,6 +16,13 @@ syntax = "proto3";
    16 16
     
    
    17 17
     package build.bazel.semver;
    
    18 18
     
    
    19
    +option csharp_namespace = "Build.Bazel.Semver";
    
    20
    +option go_package = "semver";
    
    21
    +option java_multiple_files = true;
    
    22
    +option java_outer_classname = "SemverProto";
    
    23
    +option java_package = "build.bazel.semver";
    
    24
    +option objc_class_prefix = "SMV";
    
    25
    +
    
    19 26
     message SemVer {
    
    20 27
       int32 major = 1;
    
    21 28
       int32 minor = 2;
    

  • buildgrid/_protos/build/bazel/semver/semver_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -19,7 +18,8 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    19 18
       name='build/bazel/semver/semver.proto',
    
    20 19
       package='build.bazel.semver',
    
    21 20
       syntax='proto3',
    
    22
    -  serialized_pb=_b('\n\x1f\x62uild/bazel/semver/semver.proto\x12\x12\x62uild.bazel.semver\"I\n\x06SemVer\x12\r\n\x05major\x18\x01 \x01(\x05\x12\r\n\x05minor\x18\x02 \x01(\x05\x12\r\n\x05patch\x18\x03 \x01(\x05\x12\x12\n\nprerelease\x18\x04 \x01(\tb\x06proto3')
    
    21
    +  serialized_options=_b('\n\022build.bazel.semverB\013SemverProtoP\001Z\006semver\242\002\003SMV\252\002\022Build.Bazel.Semver'),
    
    22
    +  serialized_pb=_b('\n\x1f\x62uild/bazel/semver/semver.proto\x12\x12\x62uild.bazel.semver\"I\n\x06SemVer\x12\r\n\x05major\x18\x01 \x01(\x05\x12\r\n\x05minor\x18\x02 \x01(\x05\x12\r\n\x05patch\x18\x03 \x01(\x05\x12\x12\n\nprerelease\x18\x04 \x01(\tBF\n\x12\x62uild.bazel.semverB\x0bSemverProtoP\x01Z\x06semver\xa2\x02\x03SMV\xaa\x02\x12\x42uild.Bazel.Semverb\x06proto3')
    
    23 23
     )
    
    24 24
     
    
    25 25
     
    
    ... ... @@ -38,35 +38,35 @@ _SEMVER = _descriptor.Descriptor(
    38 38
           has_default_value=False, default_value=0,
    
    39 39
           message_type=None, enum_type=None, containing_type=None,
    
    40 40
           is_extension=False, extension_scope=None,
    
    41
    -      options=None, file=DESCRIPTOR),
    
    41
    +      serialized_options=None, file=DESCRIPTOR),
    
    42 42
         _descriptor.FieldDescriptor(
    
    43 43
           name='minor', full_name='build.bazel.semver.SemVer.minor', index=1,
    
    44 44
           number=2, type=5, cpp_type=1, label=1,
    
    45 45
           has_default_value=False, default_value=0,
    
    46 46
           message_type=None, enum_type=None, containing_type=None,
    
    47 47
           is_extension=False, extension_scope=None,
    
    48
    -      options=None, file=DESCRIPTOR),
    
    48
    +      serialized_options=None, file=DESCRIPTOR),
    
    49 49
         _descriptor.FieldDescriptor(
    
    50 50
           name='patch', full_name='build.bazel.semver.SemVer.patch', index=2,
    
    51 51
           number=3, type=5, cpp_type=1, label=1,
    
    52 52
           has_default_value=False, default_value=0,
    
    53 53
           message_type=None, enum_type=None, containing_type=None,
    
    54 54
           is_extension=False, extension_scope=None,
    
    55
    -      options=None, file=DESCRIPTOR),
    
    55
    +      serialized_options=None, file=DESCRIPTOR),
    
    56 56
         _descriptor.FieldDescriptor(
    
    57 57
           name='prerelease', full_name='build.bazel.semver.SemVer.prerelease', index=3,
    
    58 58
           number=4, type=9, cpp_type=9, label=1,
    
    59 59
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    60 60
           message_type=None, enum_type=None, containing_type=None,
    
    61 61
           is_extension=False, extension_scope=None,
    
    62
    -      options=None, file=DESCRIPTOR),
    
    62
    +      serialized_options=None, file=DESCRIPTOR),
    
    63 63
       ],
    
    64 64
       extensions=[
    
    65 65
       ],
    
    66 66
       nested_types=[],
    
    67 67
       enum_types=[
    
    68 68
       ],
    
    69
    -  options=None,
    
    69
    +  serialized_options=None,
    
    70 70
       is_extendable=False,
    
    71 71
       syntax='proto3',
    
    72 72
       extension_ranges=[],
    
    ... ... @@ -87,4 +87,5 @@ SemVer = _reflection.GeneratedProtocolMessageType('SemVer', (_message.Message,),
    87 87
     _sym_db.RegisterMessage(SemVer)
    
    88 88
     
    
    89 89
     
    
    90
    +DESCRIPTOR._options = None
    
    90 91
     # @@protoc_insertion_point(module_scope)

  • buildgrid/_protos/buildstream/v2/buildstream_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -21,6 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    21 20
       name='buildstream/v2/buildstream.proto',
    
    22 21
       package='buildstream.v2',
    
    23 22
       syntax='proto3',
    
    23
    +  serialized_options=None,
    
    24 24
       serialized_pb=_b('\n buildstream/v2/buildstream.proto\x12\x0e\x62uildstream.v2\x1a\x36\x62uild/bazel/remote/execution/v2/remote_execution.proto\x1a\x1cgoogle/api/annotations.proto\"9\n\x13GetReferenceRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\"O\n\x14GetReferenceResponse\x12\x37\n\x06\x64igest\x18\x01 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\"v\n\x16UpdateReferenceRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\x12\x37\n\x06\x64igest\x18\x03 \x01(\x0b\x32\'.build.bazel.remote.execution.v2.Digest\"\x19\n\x17UpdateReferenceResponse\"&\n\rStatusRequest\x12\x15\n\rinstance_name\x18\x01 \x01(\t\"\'\n\x0eStatusResponse\x12\x15\n\rallow_updates\x18\x01 \x01(\x08\x32\xca\x03\n\x10ReferenceStorage\x12\x90\x01\n\x0cGetReference\x12#.buildstream.v2.GetReferenceRequest\x1a$.buildstream.v2.GetReferenceResponse\"5\x82\xd3\xe4\x93\x02/\x12-/v2/{instance_name=**}/buildstream/refs/{key}\x12\xa1\x01\n\x0fUpdateReference\x12&.buildstream.v2.UpdateReferenceRequest\x1a\'.buildstream.v2.UpdateReferenceResponse\"=\x82\xd3\xe4\x93\x02\x37\x1a-/v2/{instance_name=**}/buildstream/refs/{key}:\x06\x64igest\x12\x7f\n\x06Status\x12\x1d.buildstream.v2.StatusRequest\x1a\x1e.buildstream.v2.StatusResponse\"6\x82\xd3\xe4\x93\x02\x30\x1a./v2/{instance_name=**}/buildstream/refs:statusb\x06proto3')
    
    25 25
       ,
    
    26 26
       dependencies=[build_dot_bazel_dot_remote_dot_execution_dot_v2_dot_remote__execution__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,])
    
    ... ... @@ -41,21 +41,21 @@ _GETREFERENCEREQUEST = _descriptor.Descriptor(
    41 41
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    42 42
           message_type=None, enum_type=None, containing_type=None,
    
    43 43
           is_extension=False, extension_scope=None,
    
    44
    -      options=None, file=DESCRIPTOR),
    
    44
    +      serialized_options=None, file=DESCRIPTOR),
    
    45 45
         _descriptor.FieldDescriptor(
    
    46 46
           name='key', full_name='buildstream.v2.GetReferenceRequest.key', index=1,
    
    47 47
           number=2, type=9, cpp_type=9, label=1,
    
    48 48
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    49 49
           message_type=None, enum_type=None, containing_type=None,
    
    50 50
           is_extension=False, extension_scope=None,
    
    51
    -      options=None, file=DESCRIPTOR),
    
    51
    +      serialized_options=None, file=DESCRIPTOR),
    
    52 52
       ],
    
    53 53
       extensions=[
    
    54 54
       ],
    
    55 55
       nested_types=[],
    
    56 56
       enum_types=[
    
    57 57
       ],
    
    58
    -  options=None,
    
    58
    +  serialized_options=None,
    
    59 59
       is_extendable=False,
    
    60 60
       syntax='proto3',
    
    61 61
       extension_ranges=[],
    
    ... ... @@ -79,14 +79,14 @@ _GETREFERENCERESPONSE = _descriptor.Descriptor(
    79 79
           has_default_value=False, default_value=None,
    
    80 80
           message_type=None, enum_type=None, containing_type=None,
    
    81 81
           is_extension=False, extension_scope=None,
    
    82
    -      options=None, file=DESCRIPTOR),
    
    82
    +      serialized_options=None, file=DESCRIPTOR),
    
    83 83
       ],
    
    84 84
       extensions=[
    
    85 85
       ],
    
    86 86
       nested_types=[],
    
    87 87
       enum_types=[
    
    88 88
       ],
    
    89
    -  options=None,
    
    89
    +  serialized_options=None,
    
    90 90
       is_extendable=False,
    
    91 91
       syntax='proto3',
    
    92 92
       extension_ranges=[],
    
    ... ... @@ -110,28 +110,28 @@ _UPDATEREFERENCEREQUEST = _descriptor.Descriptor(
    110 110
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    111 111
           message_type=None, enum_type=None, containing_type=None,
    
    112 112
           is_extension=False, extension_scope=None,
    
    113
    -      options=None, file=DESCRIPTOR),
    
    113
    +      serialized_options=None, file=DESCRIPTOR),
    
    114 114
         _descriptor.FieldDescriptor(
    
    115 115
           name='keys', full_name='buildstream.v2.UpdateReferenceRequest.keys', index=1,
    
    116 116
           number=2, type=9, cpp_type=9, label=3,
    
    117 117
           has_default_value=False, default_value=[],
    
    118 118
           message_type=None, enum_type=None, containing_type=None,
    
    119 119
           is_extension=False, extension_scope=None,
    
    120
    -      options=None, file=DESCRIPTOR),
    
    120
    +      serialized_options=None, file=DESCRIPTOR),
    
    121 121
         _descriptor.FieldDescriptor(
    
    122 122
           name='digest', full_name='buildstream.v2.UpdateReferenceRequest.digest', index=2,
    
    123 123
           number=3, type=11, cpp_type=10, label=1,
    
    124 124
           has_default_value=False, default_value=None,
    
    125 125
           message_type=None, enum_type=None, containing_type=None,
    
    126 126
           is_extension=False, extension_scope=None,
    
    127
    -      options=None, file=DESCRIPTOR),
    
    127
    +      serialized_options=None, file=DESCRIPTOR),
    
    128 128
       ],
    
    129 129
       extensions=[
    
    130 130
       ],
    
    131 131
       nested_types=[],
    
    132 132
       enum_types=[
    
    133 133
       ],
    
    134
    -  options=None,
    
    134
    +  serialized_options=None,
    
    135 135
       is_extendable=False,
    
    136 136
       syntax='proto3',
    
    137 137
       extension_ranges=[],
    
    ... ... @@ -155,7 +155,7 @@ _UPDATEREFERENCERESPONSE = _descriptor.Descriptor(
    155 155
       nested_types=[],
    
    156 156
       enum_types=[
    
    157 157
       ],
    
    158
    -  options=None,
    
    158
    +  serialized_options=None,
    
    159 159
       is_extendable=False,
    
    160 160
       syntax='proto3',
    
    161 161
       extension_ranges=[],
    
    ... ... @@ -179,14 +179,14 @@ _STATUSREQUEST = _descriptor.Descriptor(
    179 179
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    180 180
           message_type=None, enum_type=None, containing_type=None,
    
    181 181
           is_extension=False, extension_scope=None,
    
    182
    -      options=None, file=DESCRIPTOR),
    
    182
    +      serialized_options=None, file=DESCRIPTOR),
    
    183 183
       ],
    
    184 184
       extensions=[
    
    185 185
       ],
    
    186 186
       nested_types=[],
    
    187 187
       enum_types=[
    
    188 188
       ],
    
    189
    -  options=None,
    
    189
    +  serialized_options=None,
    
    190 190
       is_extendable=False,
    
    191 191
       syntax='proto3',
    
    192 192
       extension_ranges=[],
    
    ... ... @@ -210,14 +210,14 @@ _STATUSRESPONSE = _descriptor.Descriptor(
    210 210
           has_default_value=False, default_value=False,
    
    211 211
           message_type=None, enum_type=None, containing_type=None,
    
    212 212
           is_extension=False, extension_scope=None,
    
    213
    -      options=None, file=DESCRIPTOR),
    
    213
    +      serialized_options=None, file=DESCRIPTOR),
    
    214 214
       ],
    
    215 215
       extensions=[
    
    216 216
       ],
    
    217 217
       nested_types=[],
    
    218 218
       enum_types=[
    
    219 219
       ],
    
    220
    -  options=None,
    
    220
    +  serialized_options=None,
    
    221 221
       is_extendable=False,
    
    222 222
       syntax='proto3',
    
    223 223
       extension_ranges=[],
    
    ... ... @@ -286,7 +286,7 @@ _REFERENCESTORAGE = _descriptor.ServiceDescriptor(
    286 286
       full_name='buildstream.v2.ReferenceStorage',
    
    287 287
       file=DESCRIPTOR,
    
    288 288
       index=0,
    
    289
    -  options=None,
    
    289
    +  serialized_options=None,
    
    290 290
       serialized_start=507,
    
    291 291
       serialized_end=965,
    
    292 292
       methods=[
    
    ... ... @@ -297,7 +297,7 @@ _REFERENCESTORAGE = _descriptor.ServiceDescriptor(
    297 297
         containing_service=None,
    
    298 298
         input_type=_GETREFERENCEREQUEST,
    
    299 299
         output_type=_GETREFERENCERESPONSE,
    
    300
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002/\022-/v2/{instance_name=**}/buildstream/refs/{key}')),
    
    300
    +    serialized_options=_b('\202\323\344\223\002/\022-/v2/{instance_name=**}/buildstream/refs/{key}'),
    
    301 301
       ),
    
    302 302
       _descriptor.MethodDescriptor(
    
    303 303
         name='UpdateReference',
    
    ... ... @@ -306,7 +306,7 @@ _REFERENCESTORAGE = _descriptor.ServiceDescriptor(
    306 306
         containing_service=None,
    
    307 307
         input_type=_UPDATEREFERENCEREQUEST,
    
    308 308
         output_type=_UPDATEREFERENCERESPONSE,
    
    309
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0027\032-/v2/{instance_name=**}/buildstream/refs/{key}:\006digest')),
    
    309
    +    serialized_options=_b('\202\323\344\223\0027\032-/v2/{instance_name=**}/buildstream/refs/{key}:\006digest'),
    
    310 310
       ),
    
    311 311
       _descriptor.MethodDescriptor(
    
    312 312
         name='Status',
    
    ... ... @@ -315,7 +315,7 @@ _REFERENCESTORAGE = _descriptor.ServiceDescriptor(
    315 315
         containing_service=None,
    
    316 316
         input_type=_STATUSREQUEST,
    
    317 317
         output_type=_STATUSRESPONSE,
    
    318
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0020\032./v2/{instance_name=**}/buildstream/refs:status')),
    
    318
    +    serialized_options=_b('\202\323\344\223\0020\032./v2/{instance_name=**}/buildstream/refs:status'),
    
    319 319
       ),
    
    320 320
     ])
    
    321 321
     _sym_db.RegisterServiceDescriptor(_REFERENCESTORAGE)
    

  • buildgrid/_protos/google/api/annotations_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -21,6 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    21 20
       name='google/api/annotations.proto',
    
    22 21
       package='google.api',
    
    23 22
       syntax='proto3',
    
    23
    +  serialized_options=_b('\n\016com.google.apiB\020AnnotationsProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\242\002\004GAPI'),
    
    24 24
       serialized_pb=_b('\n\x1cgoogle/api/annotations.proto\x12\ngoogle.api\x1a\x15google/api/http.proto\x1a google/protobuf/descriptor.proto:E\n\x04http\x12\x1e.google.protobuf.MethodOptions\x18\xb0\xca\xbc\" \x01(\x0b\x32\x14.google.api.HttpRuleBn\n\x0e\x63om.google.apiB\x10\x41nnotationsProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\xa2\x02\x04GAPIb\x06proto3')
    
    25 25
       ,
    
    26 26
       dependencies=[google_dot_api_dot_http__pb2.DESCRIPTOR,google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,])
    
    ... ... @@ -33,7 +33,7 @@ http = _descriptor.FieldDescriptor(
    33 33
       has_default_value=False, default_value=None,
    
    34 34
       message_type=None, enum_type=None, containing_type=None,
    
    35 35
       is_extension=True, extension_scope=None,
    
    36
    -  options=None, file=DESCRIPTOR)
    
    36
    +  serialized_options=None, file=DESCRIPTOR)
    
    37 37
     
    
    38 38
     DESCRIPTOR.extensions_by_name['http'] = http
    
    39 39
     _sym_db.RegisterFileDescriptor(DESCRIPTOR)
    
    ... ... @@ -41,6 +41,5 @@ _sym_db.RegisterFileDescriptor(DESCRIPTOR)
    41 41
     http.message_type = google_dot_api_dot_http__pb2._HTTPRULE
    
    42 42
     google_dot_protobuf_dot_descriptor__pb2.MethodOptions.RegisterExtension(http)
    
    43 43
     
    
    44
    -DESCRIPTOR.has_options = True
    
    45
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\016com.google.apiB\020AnnotationsProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\242\002\004GAPI'))
    
    44
    +DESCRIPTOR._options = None
    
    46 45
     # @@protoc_insertion_point(module_scope)

  • buildgrid/_protos/google/api/http.proto
    1
    -// Copyright 2018 Google LLC
    
    1
    +// Copyright 2018 Google LLC.
    
    2 2
     //
    
    3 3
     // Licensed under the Apache License, Version 2.0 (the "License");
    
    4 4
     // you may not use this file except in compliance with the License.
    
    ... ... @@ -11,6 +11,7 @@
    11 11
     // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    
    12 12
     // See the License for the specific language governing permissions and
    
    13 13
     // limitations under the License.
    
    14
    +//
    
    14 15
     
    
    15 16
     syntax = "proto3";
    
    16 17
     
    
    ... ... @@ -42,94 +43,92 @@ message Http {
    42 43
       bool fully_decode_reserved_expansion = 2;
    
    43 44
     }
    
    44 45
     
    
    45
    -// `HttpRule` defines the mapping of an RPC method to one or more HTTP
    
    46
    -// REST API methods. The mapping specifies how different portions of the RPC
    
    47
    -// request message are mapped to URL path, URL query parameters, and
    
    48
    -// HTTP request body. The mapping is typically specified as an
    
    49
    -// `google.api.http` annotation on the RPC method,
    
    50
    -// see "google/api/annotations.proto" for details.
    
    51
    -//
    
    52
    -// The mapping consists of a field specifying the path template and
    
    53
    -// method kind.  The path template can refer to fields in the request
    
    54
    -// message, as in the example below which describes a REST GET
    
    55
    -// operation on a resource collection of messages:
    
    56
    -//
    
    46
    +// # gRPC Transcoding
    
    47
    +//
    
    48
    +// gRPC Transcoding is a feature for mapping between a gRPC method and one or
    
    49
    +// more HTTP REST endpoints. It allows developers to build a single API service
    
    50
    +// that supports both gRPC APIs and REST APIs. Many systems, including [Google
    
    51
    +// APIs](https://github.com/googleapis/googleapis),
    
    52
    +// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
    
    53
    +// Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
    
    54
    +// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
    
    55
    +// and use it for large scale production services.
    
    56
    +//
    
    57
    +// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
    
    58
    +// how different portions of the gRPC request message are mapped to the URL
    
    59
    +// path, URL query parameters, and HTTP request body. It also controls how the
    
    60
    +// gRPC response message is mapped to the HTTP response body. `HttpRule` is
    
    61
    +// typically specified as an `google.api.http` annotation on the gRPC method.
    
    62
    +//
    
    63
    +// Each mapping specifies a URL path template and an HTTP method. The path
    
    64
    +// template may refer to one or more fields in the gRPC request message, as long
    
    65
    +// as each field is a non-repeated field with a primitive (non-message) type.
    
    66
    +// The path template controls how fields of the request message are mapped to
    
    67
    +// the URL path.
    
    68
    +//
    
    69
    +// Example:
    
    57 70
     //
    
    58 71
     //     service Messaging {
    
    59 72
     //       rpc GetMessage(GetMessageRequest) returns (Message) {
    
    60
    -//         option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
    
    73
    +//         option (google.api.http) = {
    
    74
    +//             get: "/v1/{name=messages/*}"
    
    75
    +//         };
    
    61 76
     //       }
    
    62 77
     //     }
    
    63 78
     //     message GetMessageRequest {
    
    64
    -//       message SubMessage {
    
    65
    -//         string subfield = 1;
    
    66
    -//       }
    
    67
    -//       string message_id = 1; // mapped to the URL
    
    68
    -//       SubMessage sub = 2;    // `sub.subfield` is url-mapped
    
    79
    +//       string name = 1; // Mapped to URL path.
    
    69 80
     //     }
    
    70 81
     //     message Message {
    
    71
    -//       string text = 1; // content of the resource
    
    82
    +//       string text = 1; // The resource content.
    
    72 83
     //     }
    
    73 84
     //
    
    74
    -// The same http annotation can alternatively be expressed inside the
    
    75
    -// `GRPC API Configuration` YAML file.
    
    85
    +// This enables an HTTP REST to gRPC mapping as below:
    
    76 86
     //
    
    77
    -//     http:
    
    78
    -//       rules:
    
    79
    -//         - selector: <proto_package_name>.Messaging.GetMessage
    
    80
    -//           get: /v1/messages/{message_id}/{sub.subfield}
    
    81
    -//
    
    82
    -// This definition enables an automatic, bidrectional mapping of HTTP
    
    83
    -// JSON to RPC. Example:
    
    84
    -//
    
    85
    -// HTTP | RPC
    
    87
    +// HTTP | gRPC
    
    86 88
     // -----|-----
    
    87
    -// `GET /v1/messages/123456/foo`  | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))`
    
    88
    -//
    
    89
    -// In general, not only fields but also field paths can be referenced
    
    90
    -// from a path pattern. Fields mapped to the path pattern cannot be
    
    91
    -// repeated and must have a primitive (non-message) type.
    
    92
    -//
    
    93
    -// Any fields in the request message which are not bound by the path
    
    94
    -// pattern automatically become (optional) HTTP query
    
    95
    -// parameters. Assume the following definition of the request message:
    
    89
    +// `GET /v1/messages/123456`  | `GetMessage(name: "messages/123456")`
    
    96 90
     //
    
    91
    +// Any fields in the request message which are not bound by the path template
    
    92
    +// automatically become HTTP query parameters if there is no HTTP request body.
    
    93
    +// For example:
    
    97 94
     //
    
    98 95
     //     service Messaging {
    
    99 96
     //       rpc GetMessage(GetMessageRequest) returns (Message) {
    
    100
    -//         option (google.api.http).get = "/v1/messages/{message_id}";
    
    97
    +//         option (google.api.http) = {
    
    98
    +//             get:"/v1/messages/{message_id}"
    
    99
    +//         };
    
    101 100
     //       }
    
    102 101
     //     }
    
    103 102
     //     message GetMessageRequest {
    
    104 103
     //       message SubMessage {
    
    105 104
     //         string subfield = 1;
    
    106 105
     //       }
    
    107
    -//       string message_id = 1; // mapped to the URL
    
    108
    -//       int64 revision = 2;    // becomes a parameter
    
    109
    -//       SubMessage sub = 3;    // `sub.subfield` becomes a parameter
    
    106
    +//       string message_id = 1; // Mapped to URL path.
    
    107
    +//       int64 revision = 2;    // Mapped to URL query parameter `revision`.
    
    108
    +//       SubMessage sub = 3;    // Mapped to URL query parameter `sub.subfield`.
    
    110 109
     //     }
    
    111 110
     //
    
    112
    -//
    
    113 111
     // This enables a HTTP JSON to RPC mapping as below:
    
    114 112
     //
    
    115
    -// HTTP | RPC
    
    113
    +// HTTP | gRPC
    
    116 114
     // -----|-----
    
    117 115
     // `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
    
    118 116
     //
    
    119
    -// Note that fields which are mapped to HTTP parameters must have a
    
    120
    -// primitive type or a repeated primitive type. Message types are not
    
    121
    -// allowed. In the case of a repeated type, the parameter can be
    
    122
    -// repeated in the URL, as in `...?param=A&param=B`.
    
    117
    +// Note that fields which are mapped to URL query parameters must have a
    
    118
    +// primitive type or a repeated primitive type or a non-repeated message type.
    
    119
    +// In the case of a repeated type, the parameter can be repeated in the URL
    
    120
    +// as `...?param=A&param=B`. In the case of a message type, each field of the
    
    121
    +// message is mapped to a separate parameter, such as
    
    122
    +// `...?foo.a=A&foo.b=B&foo.c=C`.
    
    123 123
     //
    
    124
    -// For HTTP method kinds which allow a request body, the `body` field
    
    124
    +// For HTTP methods that allow a request body, the `body` field
    
    125 125
     // specifies the mapping. Consider a REST update method on the
    
    126 126
     // message resource collection:
    
    127 127
     //
    
    128
    -//
    
    129 128
     //     service Messaging {
    
    130 129
     //       rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
    
    131 130
     //         option (google.api.http) = {
    
    132
    -//           put: "/v1/messages/{message_id}"
    
    131
    +//           patch: "/v1/messages/{message_id}"
    
    133 132
     //           body: "message"
    
    134 133
     //         };
    
    135 134
     //       }
    
    ... ... @@ -139,14 +138,13 @@ message Http {
    139 138
     //       Message message = 2;   // mapped to the body
    
    140 139
     //     }
    
    141 140
     //
    
    142
    -//
    
    143 141
     // The following HTTP JSON to RPC mapping is enabled, where the
    
    144 142
     // representation of the JSON in the request body is determined by
    
    145 143
     // protos JSON encoding:
    
    146 144
     //
    
    147
    -// HTTP | RPC
    
    145
    +// HTTP | gRPC
    
    148 146
     // -----|-----
    
    149
    -// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
    
    147
    +// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })`
    
    150 148
     //
    
    151 149
     // The special name `*` can be used in the body mapping to define that
    
    152 150
     // every field not bound by the path template should be mapped to the
    
    ... ... @@ -156,7 +154,7 @@ message Http {
    156 154
     //     service Messaging {
    
    157 155
     //       rpc UpdateMessage(Message) returns (Message) {
    
    158 156
     //         option (google.api.http) = {
    
    159
    -//           put: "/v1/messages/{message_id}"
    
    157
    +//           patch: "/v1/messages/{message_id}"
    
    160 158
     //           body: "*"
    
    161 159
     //         };
    
    162 160
     //       }
    
    ... ... @@ -169,13 +167,13 @@ message Http {
    169 167
     //
    
    170 168
     // The following HTTP JSON to RPC mapping is enabled:
    
    171 169
     //
    
    172
    -// HTTP | RPC
    
    170
    +// HTTP | gRPC
    
    173 171
     // -----|-----
    
    174
    -// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
    
    172
    +// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")`
    
    175 173
     //
    
    176 174
     // Note that when using `*` in the body mapping, it is not possible to
    
    177 175
     // have HTTP parameters, as all fields not bound by the path end in
    
    178
    -// the body. This makes this option more rarely used in practice of
    
    176
    +// the body. This makes this option more rarely used in practice when
    
    179 177
     // defining REST APIs. The common usage of `*` is in custom methods
    
    180 178
     // which don't use the URL at all for transferring data.
    
    181 179
     //
    
    ... ... @@ -197,32 +195,30 @@ message Http {
    197 195
     //       string user_id = 2;
    
    198 196
     //     }
    
    199 197
     //
    
    198
    +// This enables the following two alternative HTTP JSON to RPC mappings:
    
    200 199
     //
    
    201
    -// This enables the following two alternative HTTP JSON to RPC
    
    202
    -// mappings:
    
    203
    -//
    
    204
    -// HTTP | RPC
    
    200
    +// HTTP | gRPC
    
    205 201
     // -----|-----
    
    206 202
     // `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
    
    207 203
     // `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")`
    
    208 204
     //
    
    209
    -// # Rules for HTTP mapping
    
    210
    -//
    
    211
    -// The rules for mapping HTTP path, query parameters, and body fields
    
    212
    -// to the request message are as follows:
    
    205
    +// ## Rules for HTTP mapping
    
    213 206
     //
    
    214
    -// 1. The `body` field specifies either `*` or a field path, or is
    
    215
    -//    omitted. If omitted, it indicates there is no HTTP request body.
    
    216
    -// 2. Leaf fields (recursive expansion of nested messages in the
    
    217
    -//    request) can be classified into three types:
    
    218
    -//     (a) Matched in the URL template.
    
    219
    -//     (b) Covered by body (if body is `*`, everything except (a) fields;
    
    220
    -//         else everything under the body field)
    
    221
    -//     (c) All other fields.
    
    222
    -// 3. URL query parameters found in the HTTP request are mapped to (c) fields.
    
    223
    -// 4. Any body sent with an HTTP request can contain only (b) fields.
    
    207
    +// 1. Leaf request fields (recursive expansion nested messages in the request
    
    208
    +//    message) are classified into three categories:
    
    209
    +//    - Fields referred by the path template. They are passed via the URL path.
    
    210
    +//    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
    
    211
    +//      request body.
    
    212
    +//    - All other fields are passed via the URL query parameters, and the
    
    213
    +//      parameter name is the field path in the request message. A repeated
    
    214
    +//      field can be represented as multiple query parameters under the same
    
    215
    +//      name.
    
    216
    +//  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
    
    217
    +//     are passed via URL path and HTTP request body.
    
    218
    +//  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
    
    219
    +//     fields are passed via URL path and URL query parameters.
    
    224 220
     //
    
    225
    -// The syntax of the path template is as follows:
    
    221
    +// ### Path template syntax
    
    226 222
     //
    
    227 223
     //     Template = "/" Segments [ Verb ] ;
    
    228 224
     //     Segments = Segment { "/" Segment } ;
    
    ... ... @@ -231,36 +227,86 @@ message Http {
    231 227
     //     FieldPath = IDENT { "." IDENT } ;
    
    232 228
     //     Verb     = ":" LITERAL ;
    
    233 229
     //
    
    234
    -// The syntax `*` matches a single path segment. The syntax `**` matches zero
    
    235
    -// or more path segments, which must be the last part of the path except the
    
    236
    -// `Verb`. The syntax `LITERAL` matches literal text in the path.
    
    230
    +// The syntax `*` matches a single URL path segment. The syntax `**` matches
    
    231
    +// zero or more URL path segments, which must be the last part of the URL path
    
    232
    +// except the `Verb`.
    
    237 233
     //
    
    238 234
     // The syntax `Variable` matches part of the URL path as specified by its
    
    239 235
     // template. A variable template must not contain other variables. If a variable
    
    240 236
     // matches a single path segment, its template may be omitted, e.g. `{var}`
    
    241 237
     // is equivalent to `{var=*}`.
    
    242 238
     //
    
    239
    +// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
    
    240
    +// contains any reserved character, such characters should be percent-encoded
    
    241
    +// before the matching.
    
    242
    +//
    
    243 243
     // If a variable contains exactly one path segment, such as `"{var}"` or
    
    244
    -// `"{var=*}"`, when such a variable is expanded into a URL path, all characters
    
    245
    -// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
    
    246
    -// Discovery Document as `{var}`.
    
    247
    -//
    
    248
    -// If a variable contains one or more path segments, such as `"{var=foo/*}"`
    
    249
    -// or `"{var=**}"`, when such a variable is expanded into a URL path, all
    
    250
    -// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
    
    251
    -// show up in the Discovery Document as `{+var}`.
    
    252
    -//
    
    253
    -// NOTE: While the single segment variable matches the semantics of
    
    254
    -// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
    
    255
    -// Simple String Expansion, the multi segment variable **does not** match
    
    256
    -// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
    
    244
    +// `"{var=*}"`, when such a variable is expanded into a URL path on the client
    
    245
    +// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
    
    246
    +// server side does the reverse decoding. Such variables show up in the
    
    247
    +// [Discovery Document](https://developers.google.com/discovery/v1/reference/apis)
    
    248
    +// as `{var}`.
    
    249
    +//
    
    250
    +// If a variable contains multiple path segments, such as `"{var=foo/*}"`
    
    251
    +// or `"{var=**}"`, when such a variable is expanded into a URL path on the
    
    252
    +// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
    
    253
    +// The server side does the reverse decoding, except "%2F" and "%2f" are left
    
    254
    +// unchanged. Such variables show up in the
    
    255
    +// [Discovery Document](https://developers.google.com/discovery/v1/reference/apis)
    
    256
    +// as `{+var}`.
    
    257
    +//
    
    258
    +// ## Using gRPC API Service Configuration
    
    259
    +//
    
    260
    +// gRPC API Service Configuration (service config) is a configuration language
    
    261
    +// for configuring a gRPC service to become a user-facing product. The
    
    262
    +// service config is simply the YAML representation of the `google.api.Service`
    
    263
    +// proto message.
    
    264
    +//
    
    265
    +// As an alternative to annotating your proto file, you can configure gRPC
    
    266
    +// transcoding in your service config YAML files. You do this by specifying a
    
    267
    +// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
    
    268
    +// effect as the proto annotation. This can be particularly useful if you
    
    269
    +// have a proto that is reused in multiple services. Note that any transcoding
    
    270
    +// specified in the service config will override any matching transcoding
    
    271
    +// configuration in the proto.
    
    272
    +//
    
    273
    +// Example:
    
    274
    +//
    
    275
    +//     http:
    
    276
    +//       rules:
    
    277
    +//         # Selects a gRPC method and applies HttpRule to it.
    
    278
    +//         - selector: example.v1.Messaging.GetMessage
    
    279
    +//           get: /v1/messages/{message_id}/{sub.subfield}
    
    280
    +//
    
    281
    +// ## Special notes
    
    282
    +//
    
    283
    +// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
    
    284
    +// proto to JSON conversion must follow the [proto3
    
    285
    +// specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
    
    286
    +//
    
    287
    +// While the single segment variable follows the semantics of
    
    288
    +// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
    
    289
    +// Expansion, the multi segment variable **does not** follow RFC 6570 Section
    
    290
    +// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
    
    257 291
     // does not expand special characters like `?` and `#`, which would lead
    
    258
    -// to invalid URLs.
    
    292
    +// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
    
    293
    +// for multi segment variables.
    
    294
    +//
    
    295
    +// The path variables **must not** refer to any repeated or mapped field,
    
    296
    +// because client libraries are not capable of handling such variable expansion.
    
    297
    +//
    
    298
    +// The path variables **must not** capture the leading "/" character. The reason
    
    299
    +// is that the most common use case "{var}" does not capture the leading "/"
    
    300
    +// character. For consistency, all path variables must share the same behavior.
    
    259 301
     //
    
    260
    -// NOTE: the field paths in variables and in the `body` must not refer to
    
    261
    -// repeated fields or map fields.
    
    302
    +// Repeated message fields must not be mapped to URL query parameters, because
    
    303
    +// no client library can support such complicated mapping.
    
    304
    +//
    
    305
    +// If an API needs to use a JSON array for request or response body, it can map
    
    306
    +// the request or response body to a repeated field. However, some gRPC
    
    307
    +// Transcoding implementations may not support this feature.
    
    262 308
     message HttpRule {
    
    263
    -  // Selects methods to which this rule applies.
    
    309
    +  // Selects a method to which this rule applies.
    
    264 310
       //
    
    265 311
       // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
    
    266 312
       string selector = 1;
    
    ... ... @@ -269,19 +315,20 @@ message HttpRule {
    269 315
       // used with any of the {get|put|post|delete|patch} methods. A custom method
    
    270 316
       // can be defined using the 'custom' field.
    
    271 317
       oneof pattern {
    
    272
    -    // Used for listing and getting information about resources.
    
    318
    +    // Maps to HTTP GET. Used for listing and getting information about
    
    319
    +    // resources.
    
    273 320
         string get = 2;
    
    274 321
     
    
    275
    -    // Used for updating a resource.
    
    322
    +    // Maps to HTTP PUT. Used for replacing a resource.
    
    276 323
         string put = 3;
    
    277 324
     
    
    278
    -    // Used for creating a resource.
    
    325
    +    // Maps to HTTP POST. Used for creating a resource or performing an action.
    
    279 326
         string post = 4;
    
    280 327
     
    
    281
    -    // Used for deleting a resource.
    
    328
    +    // Maps to HTTP DELETE. Used for deleting a resource.
    
    282 329
         string delete = 5;
    
    283 330
     
    
    284
    -    // Used for updating a resource.
    
    331
    +    // Maps to HTTP PATCH. Used for updating a resource.
    
    285 332
         string patch = 6;
    
    286 333
     
    
    287 334
         // The custom pattern is used for specifying an HTTP method that is not
    
    ... ... @@ -291,12 +338,22 @@ message HttpRule {
    291 338
         CustomHttpPattern custom = 8;
    
    292 339
       }
    
    293 340
     
    
    294
    -  // The name of the request field whose value is mapped to the HTTP body, or
    
    295
    -  // `*` for mapping all fields not captured by the path pattern to the HTTP
    
    296
    -  // body. NOTE: the referred field must not be a repeated field and must be
    
    297
    -  // present at the top-level of request message type.
    
    341
    +  // The name of the request field whose value is mapped to the HTTP request
    
    342
    +  // body, or `*` for mapping all request fields not captured by the path
    
    343
    +  // pattern to the HTTP body, or omitted for not having any HTTP request body.
    
    344
    +  //
    
    345
    +  // NOTE: the referred field must be present at the top-level of the request
    
    346
    +  // message type.
    
    298 347
       string body = 7;
    
    299 348
     
    
    349
    +  // Optional. The name of the response field whose value is mapped to the HTTP
    
    350
    +  // response body. When omitted, the entire response message will be used
    
    351
    +  // as the HTTP response body.
    
    352
    +  //
    
    353
    +  // NOTE: The referred field must be present at the top-level of the response
    
    354
    +  // message type.
    
    355
    +  string response_body = 12;
    
    356
    +
    
    300 357
       // Additional HTTP bindings for the selector. Nested bindings must
    
    301 358
       // not contain an `additional_bindings` field themselves (that is,
    
    302 359
       // the nesting may only be one level deep).
    

  • buildgrid/_protos/google/api/http_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -19,7 +18,8 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    19 18
       name='google/api/http.proto',
    
    20 19
       package='google.api',
    
    21 20
       syntax='proto3',
    
    22
    -  serialized_pb=_b('\n\x15google/api/http.proto\x12\ngoogle.api\"T\n\x04Http\x12#\n\x05rules\x18\x01 \x03(\x0b\x32\x14.google.api.HttpRule\x12\'\n\x1f\x66ully_decode_reserved_expansion\x18\x02 \x01(\x08\"\xea\x01\n\x08HttpRule\x12\x10\n\x08selector\x18\x01 \x01(\t\x12\r\n\x03get\x18\x02 \x01(\tH\x00\x12\r\n\x03put\x18\x03 \x01(\tH\x00\x12\x0e\n\x04post\x18\x04 \x01(\tH\x00\x12\x10\n\x06\x64\x65lete\x18\x05 \x01(\tH\x00\x12\x0f\n\x05patch\x18\x06 \x01(\tH\x00\x12/\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x1d.google.api.CustomHttpPatternH\x00\x12\x0c\n\x04\x62ody\x18\x07 \x01(\t\x12\x31\n\x13\x61\x64\x64itional_bindings\x18\x0b \x03(\x0b\x32\x14.google.api.HttpRuleB\t\n\x07pattern\"/\n\x11\x43ustomHttpPattern\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\tBj\n\x0e\x63om.google.apiB\tHttpProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\xf8\x01\x01\xa2\x02\x04GAPIb\x06proto3')
    
    21
    +  serialized_options=_b('\n\016com.google.apiB\tHttpProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\370\001\001\242\002\004GAPI'),
    
    22
    +  serialized_pb=_b('\n\x15google/api/http.proto\x12\ngoogle.api\"T\n\x04Http\x12#\n\x05rules\x18\x01 \x03(\x0b\x32\x14.google.api.HttpRule\x12\'\n\x1f\x66ully_decode_reserved_expansion\x18\x02 \x01(\x08\"\x81\x02\n\x08HttpRule\x12\x10\n\x08selector\x18\x01 \x01(\t\x12\r\n\x03get\x18\x02 \x01(\tH\x00\x12\r\n\x03put\x18\x03 \x01(\tH\x00\x12\x0e\n\x04post\x18\x04 \x01(\tH\x00\x12\x10\n\x06\x64\x65lete\x18\x05 \x01(\tH\x00\x12\x0f\n\x05patch\x18\x06 \x01(\tH\x00\x12/\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x1d.google.api.CustomHttpPatternH\x00\x12\x0c\n\x04\x62ody\x18\x07 \x01(\t\x12\x15\n\rresponse_body\x18\x0c \x01(\t\x12\x31\n\x13\x61\x64\x64itional_bindings\x18\x0b \x03(\x0b\x32\x14.google.api.HttpRuleB\t\n\x07pattern\"/\n\x11\x43ustomHttpPattern\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\tBj\n\x0e\x63om.google.apiB\tHttpProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\xf8\x01\x01\xa2\x02\x04GAPIb\x06proto3')
    
    23 23
     )
    
    24 24
     
    
    25 25
     
    
    ... ... @@ -38,21 +38,21 @@ _HTTP = _descriptor.Descriptor(
    38 38
           has_default_value=False, default_value=[],
    
    39 39
           message_type=None, enum_type=None, containing_type=None,
    
    40 40
           is_extension=False, extension_scope=None,
    
    41
    -      options=None, file=DESCRIPTOR),
    
    41
    +      serialized_options=None, file=DESCRIPTOR),
    
    42 42
         _descriptor.FieldDescriptor(
    
    43 43
           name='fully_decode_reserved_expansion', full_name='google.api.Http.fully_decode_reserved_expansion', index=1,
    
    44 44
           number=2, type=8, cpp_type=7, label=1,
    
    45 45
           has_default_value=False, default_value=False,
    
    46 46
           message_type=None, enum_type=None, containing_type=None,
    
    47 47
           is_extension=False, extension_scope=None,
    
    48
    -      options=None, file=DESCRIPTOR),
    
    48
    +      serialized_options=None, file=DESCRIPTOR),
    
    49 49
       ],
    
    50 50
       extensions=[
    
    51 51
       ],
    
    52 52
       nested_types=[],
    
    53 53
       enum_types=[
    
    54 54
       ],
    
    55
    -  options=None,
    
    55
    +  serialized_options=None,
    
    56 56
       is_extendable=False,
    
    57 57
       syntax='proto3',
    
    58 58
       extension_ranges=[],
    
    ... ... @@ -76,70 +76,77 @@ _HTTPRULE = _descriptor.Descriptor(
    76 76
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    77 77
           message_type=None, enum_type=None, containing_type=None,
    
    78 78
           is_extension=False, extension_scope=None,
    
    79
    -      options=None, file=DESCRIPTOR),
    
    79
    +      serialized_options=None, file=DESCRIPTOR),
    
    80 80
         _descriptor.FieldDescriptor(
    
    81 81
           name='get', full_name='google.api.HttpRule.get', index=1,
    
    82 82
           number=2, type=9, cpp_type=9, label=1,
    
    83 83
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    84 84
           message_type=None, enum_type=None, containing_type=None,
    
    85 85
           is_extension=False, extension_scope=None,
    
    86
    -      options=None, file=DESCRIPTOR),
    
    86
    +      serialized_options=None, file=DESCRIPTOR),
    
    87 87
         _descriptor.FieldDescriptor(
    
    88 88
           name='put', full_name='google.api.HttpRule.put', index=2,
    
    89 89
           number=3, type=9, cpp_type=9, label=1,
    
    90 90
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    91 91
           message_type=None, enum_type=None, containing_type=None,
    
    92 92
           is_extension=False, extension_scope=None,
    
    93
    -      options=None, file=DESCRIPTOR),
    
    93
    +      serialized_options=None, file=DESCRIPTOR),
    
    94 94
         _descriptor.FieldDescriptor(
    
    95 95
           name='post', full_name='google.api.HttpRule.post', index=3,
    
    96 96
           number=4, type=9, cpp_type=9, label=1,
    
    97 97
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    98 98
           message_type=None, enum_type=None, containing_type=None,
    
    99 99
           is_extension=False, extension_scope=None,
    
    100
    -      options=None, file=DESCRIPTOR),
    
    100
    +      serialized_options=None, file=DESCRIPTOR),
    
    101 101
         _descriptor.FieldDescriptor(
    
    102 102
           name='delete', full_name='google.api.HttpRule.delete', index=4,
    
    103 103
           number=5, type=9, cpp_type=9, label=1,
    
    104 104
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    105 105
           message_type=None, enum_type=None, containing_type=None,
    
    106 106
           is_extension=False, extension_scope=None,
    
    107
    -      options=None, file=DESCRIPTOR),
    
    107
    +      serialized_options=None, file=DESCRIPTOR),
    
    108 108
         _descriptor.FieldDescriptor(
    
    109 109
           name='patch', full_name='google.api.HttpRule.patch', index=5,
    
    110 110
           number=6, type=9, cpp_type=9, label=1,
    
    111 111
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    112 112
           message_type=None, enum_type=None, containing_type=None,
    
    113 113
           is_extension=False, extension_scope=None,
    
    114
    -      options=None, file=DESCRIPTOR),
    
    114
    +      serialized_options=None, file=DESCRIPTOR),
    
    115 115
         _descriptor.FieldDescriptor(
    
    116 116
           name='custom', full_name='google.api.HttpRule.custom', index=6,
    
    117 117
           number=8, type=11, cpp_type=10, label=1,
    
    118 118
           has_default_value=False, default_value=None,
    
    119 119
           message_type=None, enum_type=None, containing_type=None,
    
    120 120
           is_extension=False, extension_scope=None,
    
    121
    -      options=None, file=DESCRIPTOR),
    
    121
    +      serialized_options=None, file=DESCRIPTOR),
    
    122 122
         _descriptor.FieldDescriptor(
    
    123 123
           name='body', full_name='google.api.HttpRule.body', index=7,
    
    124 124
           number=7, type=9, cpp_type=9, label=1,
    
    125 125
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    126 126
           message_type=None, enum_type=None, containing_type=None,
    
    127 127
           is_extension=False, extension_scope=None,
    
    128
    -      options=None, file=DESCRIPTOR),
    
    128
    +      serialized_options=None, file=DESCRIPTOR),
    
    129 129
         _descriptor.FieldDescriptor(
    
    130
    -      name='additional_bindings', full_name='google.api.HttpRule.additional_bindings', index=8,
    
    130
    +      name='response_body', full_name='google.api.HttpRule.response_body', index=8,
    
    131
    +      number=12, type=9, cpp_type=9, label=1,
    
    132
    +      has_default_value=False, default_value=_b("").decode('utf-8'),
    
    133
    +      message_type=None, enum_type=None, containing_type=None,
    
    134
    +      is_extension=False, extension_scope=None,
    
    135
    +      serialized_options=None, file=DESCRIPTOR),
    
    136
    +    _descriptor.FieldDescriptor(
    
    137
    +      name='additional_bindings', full_name='google.api.HttpRule.additional_bindings', index=9,
    
    131 138
           number=11, type=11, cpp_type=10, label=3,
    
    132 139
           has_default_value=False, default_value=[],
    
    133 140
           message_type=None, enum_type=None, containing_type=None,
    
    134 141
           is_extension=False, extension_scope=None,
    
    135
    -      options=None, file=DESCRIPTOR),
    
    142
    +      serialized_options=None, file=DESCRIPTOR),
    
    136 143
       ],
    
    137 144
       extensions=[
    
    138 145
       ],
    
    139 146
       nested_types=[],
    
    140 147
       enum_types=[
    
    141 148
       ],
    
    142
    -  options=None,
    
    149
    +  serialized_options=None,
    
    143 150
       is_extendable=False,
    
    144 151
       syntax='proto3',
    
    145 152
       extension_ranges=[],
    
    ... ... @@ -149,7 +156,7 @@ _HTTPRULE = _descriptor.Descriptor(
    149 156
           index=0, containing_type=None, fields=[]),
    
    150 157
       ],
    
    151 158
       serialized_start=124,
    
    152
    -  serialized_end=358,
    
    159
    +  serialized_end=381,
    
    153 160
     )
    
    154 161
     
    
    155 162
     
    
    ... ... @@ -166,28 +173,28 @@ _CUSTOMHTTPPATTERN = _descriptor.Descriptor(
    166 173
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    167 174
           message_type=None, enum_type=None, containing_type=None,
    
    168 175
           is_extension=False, extension_scope=None,
    
    169
    -      options=None, file=DESCRIPTOR),
    
    176
    +      serialized_options=None, file=DESCRIPTOR),
    
    170 177
         _descriptor.FieldDescriptor(
    
    171 178
           name='path', full_name='google.api.CustomHttpPattern.path', index=1,
    
    172 179
           number=2, type=9, cpp_type=9, label=1,
    
    173 180
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    174 181
           message_type=None, enum_type=None, containing_type=None,
    
    175 182
           is_extension=False, extension_scope=None,
    
    176
    -      options=None, file=DESCRIPTOR),
    
    183
    +      serialized_options=None, file=DESCRIPTOR),
    
    177 184
       ],
    
    178 185
       extensions=[
    
    179 186
       ],
    
    180 187
       nested_types=[],
    
    181 188
       enum_types=[
    
    182 189
       ],
    
    183
    -  options=None,
    
    190
    +  serialized_options=None,
    
    184 191
       is_extendable=False,
    
    185 192
       syntax='proto3',
    
    186 193
       extension_ranges=[],
    
    187 194
       oneofs=[
    
    188 195
       ],
    
    189
    -  serialized_start=360,
    
    190
    -  serialized_end=407,
    
    196
    +  serialized_start=383,
    
    197
    +  serialized_end=430,
    
    191 198
     )
    
    192 199
     
    
    193 200
     _HTTP.fields_by_name['rules'].message_type = _HTTPRULE
    
    ... ... @@ -238,6 +245,5 @@ CustomHttpPattern = _reflection.GeneratedProtocolMessageType('CustomHttpPattern'
    238 245
     _sym_db.RegisterMessage(CustomHttpPattern)
    
    239 246
     
    
    240 247
     
    
    241
    -DESCRIPTOR.has_options = True
    
    242
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\016com.google.apiB\tHttpProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\370\001\001\242\002\004GAPI'))
    
    248
    +DESCRIPTOR._options = None
    
    243 249
     # @@protoc_insertion_point(module_scope)

  • buildgrid/_protos/google/bytestream/bytestream_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -21,6 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    21 20
       name='google/bytestream/bytestream.proto',
    
    22 21
       package='google.bytestream',
    
    23 22
       syntax='proto3',
    
    23
    +  serialized_options=_b('\n\025com.google.bytestreamB\017ByteStreamProtoZ;google.golang.org/genproto/googleapis/bytestream;bytestream'),
    
    24 24
       serialized_pb=_b('\n\"google/bytestream/bytestream.proto\x12\x11google.bytestream\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/wrappers.proto\"M\n\x0bReadRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x13\n\x0bread_offset\x18\x02 \x01(\x03\x12\x12\n\nread_limit\x18\x03 \x01(\x03\"\x1c\n\x0cReadResponse\x12\x0c\n\x04\x64\x61ta\x18\n \x01(\x0c\"_\n\x0cWriteRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x14\n\x0cwrite_offset\x18\x02 \x01(\x03\x12\x14\n\x0c\x66inish_write\x18\x03 \x01(\x08\x12\x0c\n\x04\x64\x61ta\x18\n \x01(\x0c\"\'\n\rWriteResponse\x12\x16\n\x0e\x63ommitted_size\x18\x01 \x01(\x03\"0\n\x17QueryWriteStatusRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"D\n\x18QueryWriteStatusResponse\x12\x16\n\x0e\x63ommitted_size\x18\x01 \x01(\x03\x12\x10\n\x08\x63omplete\x18\x02 \x01(\x08\x32\x92\x02\n\nByteStream\x12I\n\x04Read\x12\x1e.google.bytestream.ReadRequest\x1a\x1f.google.bytestream.ReadResponse0\x01\x12L\n\x05Write\x12\x1f.google.bytestream.WriteRequest\x1a .google.bytestream.WriteResponse(\x01\x12k\n\x10QueryWriteStatus\x12*.google.bytestream.QueryWriteStatusRequest\x1a+.google.bytestream.QueryWriteStatusResponseBe\n\x15\x63om.google.bytestreamB\x0f\x42yteStreamProtoZ;google.golang.org/genproto/googleapis/bytestream;bytestreamb\x06proto3')
    
    25 25
       ,
    
    26 26
       dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])
    
    ... ... @@ -41,28 +41,28 @@ _READREQUEST = _descriptor.Descriptor(
    41 41
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    42 42
           message_type=None, enum_type=None, containing_type=None,
    
    43 43
           is_extension=False, extension_scope=None,
    
    44
    -      options=None, file=DESCRIPTOR),
    
    44
    +      serialized_options=None, file=DESCRIPTOR),
    
    45 45
         _descriptor.FieldDescriptor(
    
    46 46
           name='read_offset', full_name='google.bytestream.ReadRequest.read_offset', index=1,
    
    47 47
           number=2, type=3, cpp_type=2, label=1,
    
    48 48
           has_default_value=False, default_value=0,
    
    49 49
           message_type=None, enum_type=None, containing_type=None,
    
    50 50
           is_extension=False, extension_scope=None,
    
    51
    -      options=None, file=DESCRIPTOR),
    
    51
    +      serialized_options=None, file=DESCRIPTOR),
    
    52 52
         _descriptor.FieldDescriptor(
    
    53 53
           name='read_limit', full_name='google.bytestream.ReadRequest.read_limit', index=2,
    
    54 54
           number=3, type=3, cpp_type=2, label=1,
    
    55 55
           has_default_value=False, default_value=0,
    
    56 56
           message_type=None, enum_type=None, containing_type=None,
    
    57 57
           is_extension=False, extension_scope=None,
    
    58
    -      options=None, file=DESCRIPTOR),
    
    58
    +      serialized_options=None, file=DESCRIPTOR),
    
    59 59
       ],
    
    60 60
       extensions=[
    
    61 61
       ],
    
    62 62
       nested_types=[],
    
    63 63
       enum_types=[
    
    64 64
       ],
    
    65
    -  options=None,
    
    65
    +  serialized_options=None,
    
    66 66
       is_extendable=False,
    
    67 67
       syntax='proto3',
    
    68 68
       extension_ranges=[],
    
    ... ... @@ -86,14 +86,14 @@ _READRESPONSE = _descriptor.Descriptor(
    86 86
           has_default_value=False, default_value=_b(""),
    
    87 87
           message_type=None, enum_type=None, containing_type=None,
    
    88 88
           is_extension=False, extension_scope=None,
    
    89
    -      options=None, file=DESCRIPTOR),
    
    89
    +      serialized_options=None, file=DESCRIPTOR),
    
    90 90
       ],
    
    91 91
       extensions=[
    
    92 92
       ],
    
    93 93
       nested_types=[],
    
    94 94
       enum_types=[
    
    95 95
       ],
    
    96
    -  options=None,
    
    96
    +  serialized_options=None,
    
    97 97
       is_extendable=False,
    
    98 98
       syntax='proto3',
    
    99 99
       extension_ranges=[],
    
    ... ... @@ -117,35 +117,35 @@ _WRITEREQUEST = _descriptor.Descriptor(
    117 117
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    118 118
           message_type=None, enum_type=None, containing_type=None,
    
    119 119
           is_extension=False, extension_scope=None,
    
    120
    -      options=None, file=DESCRIPTOR),
    
    120
    +      serialized_options=None, file=DESCRIPTOR),
    
    121 121
         _descriptor.FieldDescriptor(
    
    122 122
           name='write_offset', full_name='google.bytestream.WriteRequest.write_offset', index=1,
    
    123 123
           number=2, type=3, cpp_type=2, label=1,
    
    124 124
           has_default_value=False, default_value=0,
    
    125 125
           message_type=None, enum_type=None, containing_type=None,
    
    126 126
           is_extension=False, extension_scope=None,
    
    127
    -      options=None, file=DESCRIPTOR),
    
    127
    +      serialized_options=None, file=DESCRIPTOR),
    
    128 128
         _descriptor.FieldDescriptor(
    
    129 129
           name='finish_write', full_name='google.bytestream.WriteRequest.finish_write', index=2,
    
    130 130
           number=3, type=8, cpp_type=7, label=1,
    
    131 131
           has_default_value=False, default_value=False,
    
    132 132
           message_type=None, enum_type=None, containing_type=None,
    
    133 133
           is_extension=False, extension_scope=None,
    
    134
    -      options=None, file=DESCRIPTOR),
    
    134
    +      serialized_options=None, file=DESCRIPTOR),
    
    135 135
         _descriptor.FieldDescriptor(
    
    136 136
           name='data', full_name='google.bytestream.WriteRequest.data', index=3,
    
    137 137
           number=10, type=12, cpp_type=9, label=1,
    
    138 138
           has_default_value=False, default_value=_b(""),
    
    139 139
           message_type=None, enum_type=None, containing_type=None,
    
    140 140
           is_extension=False, extension_scope=None,
    
    141
    -      options=None, file=DESCRIPTOR),
    
    141
    +      serialized_options=None, file=DESCRIPTOR),
    
    142 142
       ],
    
    143 143
       extensions=[
    
    144 144
       ],
    
    145 145
       nested_types=[],
    
    146 146
       enum_types=[
    
    147 147
       ],
    
    148
    -  options=None,
    
    148
    +  serialized_options=None,
    
    149 149
       is_extendable=False,
    
    150 150
       syntax='proto3',
    
    151 151
       extension_ranges=[],
    
    ... ... @@ -169,14 +169,14 @@ _WRITERESPONSE = _descriptor.Descriptor(
    169 169
           has_default_value=False, default_value=0,
    
    170 170
           message_type=None, enum_type=None, containing_type=None,
    
    171 171
           is_extension=False, extension_scope=None,
    
    172
    -      options=None, file=DESCRIPTOR),
    
    172
    +      serialized_options=None, file=DESCRIPTOR),
    
    173 173
       ],
    
    174 174
       extensions=[
    
    175 175
       ],
    
    176 176
       nested_types=[],
    
    177 177
       enum_types=[
    
    178 178
       ],
    
    179
    -  options=None,
    
    179
    +  serialized_options=None,
    
    180 180
       is_extendable=False,
    
    181 181
       syntax='proto3',
    
    182 182
       extension_ranges=[],
    
    ... ... @@ -200,14 +200,14 @@ _QUERYWRITESTATUSREQUEST = _descriptor.Descriptor(
    200 200
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    201 201
           message_type=None, enum_type=None, containing_type=None,
    
    202 202
           is_extension=False, extension_scope=None,
    
    203
    -      options=None, file=DESCRIPTOR),
    
    203
    +      serialized_options=None, file=DESCRIPTOR),
    
    204 204
       ],
    
    205 205
       extensions=[
    
    206 206
       ],
    
    207 207
       nested_types=[],
    
    208 208
       enum_types=[
    
    209 209
       ],
    
    210
    -  options=None,
    
    210
    +  serialized_options=None,
    
    211 211
       is_extendable=False,
    
    212 212
       syntax='proto3',
    
    213 213
       extension_ranges=[],
    
    ... ... @@ -231,21 +231,21 @@ _QUERYWRITESTATUSRESPONSE = _descriptor.Descriptor(
    231 231
           has_default_value=False, default_value=0,
    
    232 232
           message_type=None, enum_type=None, containing_type=None,
    
    233 233
           is_extension=False, extension_scope=None,
    
    234
    -      options=None, file=DESCRIPTOR),
    
    234
    +      serialized_options=None, file=DESCRIPTOR),
    
    235 235
         _descriptor.FieldDescriptor(
    
    236 236
           name='complete', full_name='google.bytestream.QueryWriteStatusResponse.complete', index=1,
    
    237 237
           number=2, type=8, cpp_type=7, label=1,
    
    238 238
           has_default_value=False, default_value=False,
    
    239 239
           message_type=None, enum_type=None, containing_type=None,
    
    240 240
           is_extension=False, extension_scope=None,
    
    241
    -      options=None, file=DESCRIPTOR),
    
    241
    +      serialized_options=None, file=DESCRIPTOR),
    
    242 242
       ],
    
    243 243
       extensions=[
    
    244 244
       ],
    
    245 245
       nested_types=[],
    
    246 246
       enum_types=[
    
    247 247
       ],
    
    248
    -  options=None,
    
    248
    +  serialized_options=None,
    
    249 249
       is_extendable=False,
    
    250 250
       syntax='proto3',
    
    251 251
       extension_ranges=[],
    
    ... ... @@ -306,15 +306,14 @@ QueryWriteStatusResponse = _reflection.GeneratedProtocolMessageType('QueryWriteS
    306 306
     _sym_db.RegisterMessage(QueryWriteStatusResponse)
    
    307 307
     
    
    308 308
     
    
    309
    -DESCRIPTOR.has_options = True
    
    310
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\025com.google.bytestreamB\017ByteStreamProtoZ;google.golang.org/genproto/googleapis/bytestream;bytestream'))
    
    309
    +DESCRIPTOR._options = None
    
    311 310
     
    
    312 311
     _BYTESTREAM = _descriptor.ServiceDescriptor(
    
    313 312
       name='ByteStream',
    
    314 313
       full_name='google.bytestream.ByteStream',
    
    315 314
       file=DESCRIPTOR,
    
    316 315
       index=0,
    
    317
    -  options=None,
    
    316
    +  serialized_options=None,
    
    318 317
       serialized_start=487,
    
    319 318
       serialized_end=761,
    
    320 319
       methods=[
    
    ... ... @@ -325,7 +324,7 @@ _BYTESTREAM = _descriptor.ServiceDescriptor(
    325 324
         containing_service=None,
    
    326 325
         input_type=_READREQUEST,
    
    327 326
         output_type=_READRESPONSE,
    
    328
    -    options=None,
    
    327
    +    serialized_options=None,
    
    329 328
       ),
    
    330 329
       _descriptor.MethodDescriptor(
    
    331 330
         name='Write',
    
    ... ... @@ -334,7 +333,7 @@ _BYTESTREAM = _descriptor.ServiceDescriptor(
    334 333
         containing_service=None,
    
    335 334
         input_type=_WRITEREQUEST,
    
    336 335
         output_type=_WRITERESPONSE,
    
    337
    -    options=None,
    
    336
    +    serialized_options=None,
    
    338 337
       ),
    
    339 338
       _descriptor.MethodDescriptor(
    
    340 339
         name='QueryWriteStatus',
    
    ... ... @@ -343,7 +342,7 @@ _BYTESTREAM = _descriptor.ServiceDescriptor(
    343 342
         containing_service=None,
    
    344 343
         input_type=_QUERYWRITESTATUSREQUEST,
    
    345 344
         output_type=_QUERYWRITESTATUSRESPONSE,
    
    346
    -    options=None,
    
    345
    +    serialized_options=None,
    
    347 346
       ),
    
    348 347
     ])
    
    349 348
     _sym_db.RegisterServiceDescriptor(_BYTESTREAM)
    

  • buildgrid/_protos/google/devtools/remoteworkers/v1test2/bots_pb2.py
    ... ... @@ -8,7 +8,6 @@ from google.protobuf import descriptor as _descriptor
    8 8
     from google.protobuf import message as _message
    
    9 9
     from google.protobuf import reflection as _reflection
    
    10 10
     from google.protobuf import symbol_database as _symbol_database
    
    11
    -from google.protobuf import descriptor_pb2
    
    12 11
     # @@protoc_insertion_point(imports)
    
    13 12
     
    
    14 13
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -27,6 +26,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    27 26
       name='google/devtools/remoteworkers/v1test2/bots.proto',
    
    28 27
       package='google.devtools.remoteworkers.v1test2',
    
    29 28
       syntax='proto3',
    
    29
    +  serialized_options=_b('\n)com.google.devtools.remoteworkers.v1test2B\021RemoteWorkersBotsP\001ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\242\002\002RW\252\002%Google.DevTools.RemoteWorkers.V1Test2'),
    
    30 30
       serialized_pb=_b('\n0google/devtools/remoteworkers/v1test2/bots.proto\x12%google.devtools.remoteworkers.v1test2\x1a\x1cgoogle/api/annotations.proto\x1a\x32google/devtools/remoteworkers/v1test2/worker.proto\x1a\x19google/protobuf/any.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xab\x02\n\nBotSession\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x62ot_id\x18\x02 \x01(\t\x12@\n\x06status\x18\x03 \x01(\x0e\x32\x30.google.devtools.remoteworkers.v1test2.BotStatus\x12=\n\x06worker\x18\x04 \x01(\x0b\x32-.google.devtools.remoteworkers.v1test2.Worker\x12<\n\x06leases\x18\x05 \x03(\x0b\x32,.google.devtools.remoteworkers.v1test2.Lease\x12/\n\x0b\x65xpire_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07version\x18\x07 \x01(\t\"\x89\x03\n\x05Lease\x12\n\n\x02id\x18\x07 \x01(\t\x12%\n\x07payload\x18\x08 \x01(\x0b\x32\x14.google.protobuf.Any\x12$\n\x06result\x18\t \x01(\x0b\x32\x14.google.protobuf.Any\x12@\n\x05state\x18\x02 \x01(\x0e\x32\x31.google.devtools.remoteworkers.v1test2.LeaseState\x12\"\n\x06status\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12\x43\n\x0crequirements\x18\x04 \x01(\x0b\x32-.google.devtools.remoteworkers.v1test2.Worker\x12/\n\x0b\x65xpire_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x16\n\nassignment\x18\x01 \x01(\tB\x02\x18\x01\x12\x33\n\x11inline_assignment\x18\x06 \x01(\x0b\x32\x14.google.protobuf.AnyB\x02\x18\x01\"\xc5\x01\n\tAdminTemp\x12I\n\x07\x63ommand\x18\x01 \x01(\x0e\x32\x38.google.devtools.remoteworkers.v1test2.AdminTemp.Command\x12\x0b\n\x03\x61rg\x18\x02 \x01(\t\"`\n\x07\x43ommand\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nBOT_UPDATE\x10\x01\x12\x0f\n\x0b\x42OT_RESTART\x10\x02\x12\x11\n\rBOT_TERMINATE\x10\x03\x12\x10\n\x0cHOST_RESTART\x10\x04\"q\n\x17\x43reateBotSessionRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x46\n\x0b\x62ot_session\x18\x02 \x01(\x0b\x32\x31.google.devtools.remoteworkers.v1test2.BotSession\"\xa0\x01\n\x17UpdateBotSessionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x46\n\x0b\x62ot_session\x18\x02 \x01(\x0b\x32\x31.google.devtools.remoteworkers.v1test2.BotSession\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"\xb5\x01\n\x17PostBotEventTempRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12Q\n\x04type\x18\x02 \x01(\x0e\x32\x43.google.devtools.remoteworkers.v1test2.PostBotEventTempRequest.Type\x12\x0b\n\x03msg\x18\x03 \x01(\t\",\n\x04Type\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04INFO\x10\x01\x12\t\n\x05\x45RROR\x10\x02*g\n\tBotStatus\x12\x1a\n\x16\x42OT_STATUS_UNSPECIFIED\x10\x00\x12\x06\n\x02OK\x10\x01\x12\r\n\tUNHEALTHY\x10\x02\x12\x12\n\x0eHOST_REBOOTING\x10\x03\x12\x13\n\x0f\x42OT_TERMINATING\x10\x04*`\n\nLeaseState\x12\x1b\n\x17LEASE_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\r\n\tCOMPLETED\x10\x04\x12\r\n\tCANCELLED\x10\x05\x32\xa8\x04\n\x04\x42ots\x12\xbc\x01\n\x10\x43reateBotSession\x12>.google.devtools.remoteworkers.v1test2.CreateBotSessionRequest\x1a\x31.google.devtools.remoteworkers.v1test2.BotSession\"5\x82\xd3\xe4\x93\x02/\" /v1test2/{parent=**}/botSessions:\x0b\x62ot_session\x12\xbc\x01\n\x10UpdateBotSession\x12>.google.devtools.remoteworkers.v1test2.UpdateBotSessionRequest\x1a\x31.google.devtools.remoteworkers.v1test2.BotSession\"5\x82\xd3\xe4\x93\x02/2 /v1test2/{name=**/botSessions/*}:\x0b\x62ot_session\x12\xa1\x01\n\x10PostBotEventTemp\x12>.google.devtools.remoteworkers.v1test2.PostBotEventTempRequest\x1a\x16.google.protobuf.Empty\"5\x82\xd3\xe4\x93\x02/\"*/v1test2/{name=**/botSessions/*}:postEvent:\x01*B\xc1\x01\n)com.google.devtools.remoteworkers.v1test2B\x11RemoteWorkersBotsP\x01ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\xa2\x02\x02RW\xaa\x02%Google.DevTools.RemoteWorkers.V1Test2b\x06proto3')
    
    31 31
       ,
    
    32 32
       dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_devtools_dot_remoteworkers_dot_v1test2_dot_worker__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,])
    
    ... ... @@ -39,27 +39,27 @@ _BOTSTATUS = _descriptor.EnumDescriptor(
    39 39
       values=[
    
    40 40
         _descriptor.EnumValueDescriptor(
    
    41 41
           name='BOT_STATUS_UNSPECIFIED', index=0, number=0,
    
    42
    -      options=None,
    
    42
    +      serialized_options=None,
    
    43 43
           type=None),
    
    44 44
         _descriptor.EnumValueDescriptor(
    
    45 45
           name='OK', index=1, number=1,
    
    46
    -      options=None,
    
    46
    +      serialized_options=None,
    
    47 47
           type=None),
    
    48 48
         _descriptor.EnumValueDescriptor(
    
    49 49
           name='UNHEALTHY', index=2, number=2,
    
    50
    -      options=None,
    
    50
    +      serialized_options=None,
    
    51 51
           type=None),
    
    52 52
         _descriptor.EnumValueDescriptor(
    
    53 53
           name='HOST_REBOOTING', index=3, number=3,
    
    54
    -      options=None,
    
    54
    +      serialized_options=None,
    
    55 55
           type=None),
    
    56 56
         _descriptor.EnumValueDescriptor(
    
    57 57
           name='BOT_TERMINATING', index=4, number=4,
    
    58
    -      options=None,
    
    58
    +      serialized_options=None,
    
    59 59
           type=None),
    
    60 60
       ],
    
    61 61
       containing_type=None,
    
    62
    -  options=None,
    
    62
    +  serialized_options=None,
    
    63 63
       serialized_start=1681,
    
    64 64
       serialized_end=1784,
    
    65 65
     )
    
    ... ... @@ -74,27 +74,27 @@ _LEASESTATE = _descriptor.EnumDescriptor(
    74 74
       values=[
    
    75 75
         _descriptor.EnumValueDescriptor(
    
    76 76
           name='LEASE_STATE_UNSPECIFIED', index=0, number=0,
    
    77
    -      options=None,
    
    77
    +      serialized_options=None,
    
    78 78
           type=None),
    
    79 79
         _descriptor.EnumValueDescriptor(
    
    80 80
           name='PENDING', index=1, number=1,
    
    81
    -      options=None,
    
    81
    +      serialized_options=None,
    
    82 82
           type=None),
    
    83 83
         _descriptor.EnumValueDescriptor(
    
    84 84
           name='ACTIVE', index=2, number=2,
    
    85
    -      options=None,
    
    85
    +      serialized_options=None,
    
    86 86
           type=None),
    
    87 87
         _descriptor.EnumValueDescriptor(
    
    88 88
           name='COMPLETED', index=3, number=4,
    
    89
    -      options=None,
    
    89
    +      serialized_options=None,
    
    90 90
           type=None),
    
    91 91
         _descriptor.EnumValueDescriptor(
    
    92 92
           name='CANCELLED', index=4, number=5,
    
    93
    -      options=None,
    
    93
    +      serialized_options=None,
    
    94 94
           type=None),
    
    95 95
       ],
    
    96 96
       containing_type=None,
    
    97
    -  options=None,
    
    97
    +  serialized_options=None,
    
    98 98
       serialized_start=1786,
    
    99 99
       serialized_end=1882,
    
    100 100
     )
    
    ... ... @@ -121,27 +121,27 @@ _ADMINTEMP_COMMAND = _descriptor.EnumDescriptor(
    121 121
       values=[
    
    122 122
         _descriptor.EnumValueDescriptor(
    
    123 123
           name='UNSPECIFIED', index=0, number=0,
    
    124
    -      options=None,
    
    124
    +      serialized_options=None,
    
    125 125
           type=None),
    
    126 126
         _descriptor.EnumValueDescriptor(
    
    127 127
           name='BOT_UPDATE', index=1, number=1,
    
    128
    -      options=None,
    
    128
    +      serialized_options=None,
    
    129 129
           type=None),
    
    130 130
         _descriptor.EnumValueDescriptor(
    
    131 131
           name='BOT_RESTART', index=2, number=2,
    
    132
    -      options=None,
    
    132
    +      serialized_options=None,
    
    133 133
           type=None),
    
    134 134
         _descriptor.EnumValueDescriptor(
    
    135 135
           name='BOT_TERMINATE', index=3, number=3,
    
    136
    -      options=None,
    
    136
    +      serialized_options=None,
    
    137 137
           type=None),
    
    138 138
         _descriptor.EnumValueDescriptor(
    
    139 139
           name='HOST_RESTART', index=4, number=4,
    
    140
    -      options=None,
    
    140
    +      serialized_options=None,
    
    141 141
           type=None),
    
    142 142
       ],
    
    143 143
       containing_type=None,
    
    144
    -  options=None,
    
    144
    +  serialized_options=None,
    
    145 145
       serialized_start=1121,
    
    146 146
       serialized_end=1217,
    
    147 147
     )
    
    ... ... @@ -155,19 +155,19 @@ _POSTBOTEVENTTEMPREQUEST_TYPE = _descriptor.EnumDescriptor(
    155 155
       values=[
    
    156 156
         _descriptor.EnumValueDescriptor(
    
    157 157
           name='UNSPECIFIED', index=0, number=0,
    
    158
    -      options=None,
    
    158
    +      serialized_options=None,
    
    159 159
           type=None),
    
    160 160
         _descriptor.EnumValueDescriptor(
    
    161 161
           name='INFO', index=1, number=1,
    
    162
    -      options=None,
    
    162
    +      serialized_options=None,
    
    163 163
           type=None),
    
    164 164
         _descriptor.EnumValueDescriptor(
    
    165 165
           name='ERROR', index=2, number=2,
    
    166
    -      options=None,
    
    166
    +      serialized_options=None,
    
    167 167
           type=None),
    
    168 168
       ],
    
    169 169
       containing_type=None,
    
    170
    -  options=None,
    
    170
    +  serialized_options=None,
    
    171 171
       serialized_start=1635,
    
    172 172
       serialized_end=1679,
    
    173 173
     )
    
    ... ... @@ -187,56 +187,56 @@ _BOTSESSION = _descriptor.Descriptor(
    187 187
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    188 188
           message_type=None, enum_type=None, containing_type=None,
    
    189 189
           is_extension=False, extension_scope=None,
    
    190
    -      options=None, file=DESCRIPTOR),
    
    190
    +      serialized_options=None, file=DESCRIPTOR),
    
    191 191
         _descriptor.FieldDescriptor(
    
    192 192
           name='bot_id', full_name='google.devtools.remoteworkers.v1test2.BotSession.bot_id', index=1,
    
    193 193
           number=2, type=9, cpp_type=9, label=1,
    
    194 194
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    195 195
           message_type=None, enum_type=None, containing_type=None,
    
    196 196
           is_extension=False, extension_scope=None,
    
    197
    -      options=None, file=DESCRIPTOR),
    
    197
    +      serialized_options=None, file=DESCRIPTOR),
    
    198 198
         _descriptor.FieldDescriptor(
    
    199 199
           name='status', full_name='google.devtools.remoteworkers.v1test2.BotSession.status', index=2,
    
    200 200
           number=3, type=14, cpp_type=8, label=1,
    
    201 201
           has_default_value=False, default_value=0,
    
    202 202
           message_type=None, enum_type=None, containing_type=None,
    
    203 203
           is_extension=False, extension_scope=None,
    
    204
    -      options=None, file=DESCRIPTOR),
    
    204
    +      serialized_options=None, file=DESCRIPTOR),
    
    205 205
         _descriptor.FieldDescriptor(
    
    206 206
           name='worker', full_name='google.devtools.remoteworkers.v1test2.BotSession.worker', index=3,
    
    207 207
           number=4, type=11, cpp_type=10, label=1,
    
    208 208
           has_default_value=False, default_value=None,
    
    209 209
           message_type=None, enum_type=None, containing_type=None,
    
    210 210
           is_extension=False, extension_scope=None,
    
    211
    -      options=None, file=DESCRIPTOR),
    
    211
    +      serialized_options=None, file=DESCRIPTOR),
    
    212 212
         _descriptor.FieldDescriptor(
    
    213 213
           name='leases', full_name='google.devtools.remoteworkers.v1test2.BotSession.leases', index=4,
    
    214 214
           number=5, type=11, cpp_type=10, label=3,
    
    215 215
           has_default_value=False, default_value=[],
    
    216 216
           message_type=None, enum_type=None, containing_type=None,
    
    217 217
           is_extension=False, extension_scope=None,
    
    218
    -      options=None, file=DESCRIPTOR),
    
    218
    +      serialized_options=None, file=DESCRIPTOR),
    
    219 219
         _descriptor.FieldDescriptor(
    
    220 220
           name='expire_time', full_name='google.devtools.remoteworkers.v1test2.BotSession.expire_time', index=5,
    
    221 221
           number=6, type=11, cpp_type=10, label=1,
    
    222 222
           has_default_value=False, default_value=None,
    
    223 223
           message_type=None, enum_type=None, containing_type=None,
    
    224 224
           is_extension=False, extension_scope=None,
    
    225
    -      options=None, file=DESCRIPTOR),
    
    225
    +      serialized_options=None, file=DESCRIPTOR),
    
    226 226
         _descriptor.FieldDescriptor(
    
    227 227
           name='version', full_name='google.devtools.remoteworkers.v1test2.BotSession.version', index=6,
    
    228 228
           number=7, type=9, cpp_type=9, label=1,
    
    229 229
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    230 230
           message_type=None, enum_type=None, containing_type=None,
    
    231 231
           is_extension=False, extension_scope=None,
    
    232
    -      options=None, file=DESCRIPTOR),
    
    232
    +      serialized_options=None, file=DESCRIPTOR),
    
    233 233
       ],
    
    234 234
       extensions=[
    
    235 235
       ],
    
    236 236
       nested_types=[],
    
    237 237
       enum_types=[
    
    238 238
       ],
    
    239
    -  options=None,
    
    239
    +  serialized_options=None,
    
    240 240
       is_extendable=False,
    
    241 241
       syntax='proto3',
    
    242 242
       extension_ranges=[],
    
    ... ... @@ -260,70 +260,70 @@ _LEASE = _descriptor.Descriptor(
    260 260
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    261 261
           message_type=None, enum_type=None, containing_type=None,
    
    262 262
           is_extension=False, extension_scope=None,
    
    263
    -      options=None, file=DESCRIPTOR),
    
    263
    +      serialized_options=None, file=DESCRIPTOR),
    
    264 264
         _descriptor.FieldDescriptor(
    
    265 265
           name='payload', full_name='google.devtools.remoteworkers.v1test2.Lease.payload', index=1,
    
    266 266
           number=8, type=11, cpp_type=10, label=1,
    
    267 267
           has_default_value=False, default_value=None,
    
    268 268
           message_type=None, enum_type=None, containing_type=None,
    
    269 269
           is_extension=False, extension_scope=None,
    
    270
    -      options=None, file=DESCRIPTOR),
    
    270
    +      serialized_options=None, file=DESCRIPTOR),
    
    271 271
         _descriptor.FieldDescriptor(
    
    272 272
           name='result', full_name='google.devtools.remoteworkers.v1test2.Lease.result', index=2,
    
    273 273
           number=9, type=11, cpp_type=10, label=1,
    
    274 274
           has_default_value=False, default_value=None,
    
    275 275
           message_type=None, enum_type=None, containing_type=None,
    
    276 276
           is_extension=False, extension_scope=None,
    
    277
    -      options=None, file=DESCRIPTOR),
    
    277
    +      serialized_options=None, file=DESCRIPTOR),
    
    278 278
         _descriptor.FieldDescriptor(
    
    279 279
           name='state', full_name='google.devtools.remoteworkers.v1test2.Lease.state', index=3,
    
    280 280
           number=2, type=14, cpp_type=8, label=1,
    
    281 281
           has_default_value=False, default_value=0,
    
    282 282
           message_type=None, enum_type=None, containing_type=None,
    
    283 283
           is_extension=False, extension_scope=None,
    
    284
    -      options=None, file=DESCRIPTOR),
    
    284
    +      serialized_options=None, file=DESCRIPTOR),
    
    285 285
         _descriptor.FieldDescriptor(
    
    286 286
           name='status', full_name='google.devtools.remoteworkers.v1test2.Lease.status', index=4,
    
    287 287
           number=3, type=11, cpp_type=10, label=1,
    
    288 288
           has_default_value=False, default_value=None,
    
    289 289
           message_type=None, enum_type=None, containing_type=None,
    
    290 290
           is_extension=False, extension_scope=None,
    
    291
    -      options=None, file=DESCRIPTOR),
    
    291
    +      serialized_options=None, file=DESCRIPTOR),
    
    292 292
         _descriptor.FieldDescriptor(
    
    293 293
           name='requirements', full_name='google.devtools.remoteworkers.v1test2.Lease.requirements', index=5,
    
    294 294
           number=4, type=11, cpp_type=10, label=1,
    
    295 295
           has_default_value=False, default_value=None,
    
    296 296
           message_type=None, enum_type=None, containing_type=None,
    
    297 297
           is_extension=False, extension_scope=None,
    
    298
    -      options=None, file=DESCRIPTOR),
    
    298
    +      serialized_options=None, file=DESCRIPTOR),
    
    299 299
         _descriptor.FieldDescriptor(
    
    300 300
           name='expire_time', full_name='google.devtools.remoteworkers.v1test2.Lease.expire_time', index=6,
    
    301 301
           number=5, type=11, cpp_type=10, label=1,
    
    302 302
           has_default_value=False, default_value=None,
    
    303 303
           message_type=None, enum_type=None, containing_type=None,
    
    304 304
           is_extension=False, extension_scope=None,
    
    305
    -      options=None, file=DESCRIPTOR),
    
    305
    +      serialized_options=None, file=DESCRIPTOR),
    
    306 306
         _descriptor.FieldDescriptor(
    
    307 307
           name='assignment', full_name='google.devtools.remoteworkers.v1test2.Lease.assignment', index=7,
    
    308 308
           number=1, type=9, cpp_type=9, label=1,
    
    309 309
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    310 310
           message_type=None, enum_type=None, containing_type=None,
    
    311 311
           is_extension=False, extension_scope=None,
    
    312
    -      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
    
    312
    +      serialized_options=_b('\030\001'), file=DESCRIPTOR),
    
    313 313
         _descriptor.FieldDescriptor(
    
    314 314
           name='inline_assignment', full_name='google.devtools.remoteworkers.v1test2.Lease.inline_assignment', index=8,
    
    315 315
           number=6, type=11, cpp_type=10, label=1,
    
    316 316
           has_default_value=False, default_value=None,
    
    317 317
           message_type=None, enum_type=None, containing_type=None,
    
    318 318
           is_extension=False, extension_scope=None,
    
    319
    -      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
    
    319
    +      serialized_options=_b('\030\001'), file=DESCRIPTOR),
    
    320 320
       ],
    
    321 321
       extensions=[
    
    322 322
       ],
    
    323 323
       nested_types=[],
    
    324 324
       enum_types=[
    
    325 325
       ],
    
    326
    -  options=None,
    
    326
    +  serialized_options=None,
    
    327 327
       is_extendable=False,
    
    328 328
       syntax='proto3',
    
    329 329
       extension_ranges=[],
    
    ... ... @@ -347,14 +347,14 @@ _ADMINTEMP = _descriptor.Descriptor(
    347 347
           has_default_value=False, default_value=0,
    
    348 348
           message_type=None, enum_type=None, containing_type=None,
    
    349 349
           is_extension=False, extension_scope=None,
    
    350
    -      options=None, file=DESCRIPTOR),
    
    350
    +      serialized_options=None, file=DESCRIPTOR),
    
    351 351
         _descriptor.FieldDescriptor(
    
    352 352
           name='arg', full_name='google.devtools.remoteworkers.v1test2.AdminTemp.arg', index=1,
    
    353 353
           number=2, type=9, cpp_type=9, label=1,
    
    354 354
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    355 355
           message_type=None, enum_type=None, containing_type=None,
    
    356 356
           is_extension=False, extension_scope=None,
    
    357
    -      options=None, file=DESCRIPTOR),
    
    357
    +      serialized_options=None, file=DESCRIPTOR),
    
    358 358
       ],
    
    359 359
       extensions=[
    
    360 360
       ],
    
    ... ... @@ -362,7 +362,7 @@ _ADMINTEMP = _descriptor.Descriptor(
    362 362
       enum_types=[
    
    363 363
         _ADMINTEMP_COMMAND,
    
    364 364
       ],
    
    365
    -  options=None,
    
    365
    +  serialized_options=None,
    
    366 366
       is_extendable=False,
    
    367 367
       syntax='proto3',
    
    368 368
       extension_ranges=[],
    
    ... ... @@ -386,21 +386,21 @@ _CREATEBOTSESSIONREQUEST = _descriptor.Descriptor(
    386 386
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    387 387
           message_type=None, enum_type=None, containing_type=None,
    
    388 388
           is_extension=False, extension_scope=None,
    
    389
    -      options=None, file=DESCRIPTOR),
    
    389
    +      serialized_options=None, file=DESCRIPTOR),
    
    390 390
         _descriptor.FieldDescriptor(
    
    391 391
           name='bot_session', full_name='google.devtools.remoteworkers.v1test2.CreateBotSessionRequest.bot_session', index=1,
    
    392 392
           number=2, type=11, cpp_type=10, label=1,
    
    393 393
           has_default_value=False, default_value=None,
    
    394 394
           message_type=None, enum_type=None, containing_type=None,
    
    395 395
           is_extension=False, extension_scope=None,
    
    396
    -      options=None, file=DESCRIPTOR),
    
    396
    +      serialized_options=None, file=DESCRIPTOR),
    
    397 397
       ],
    
    398 398
       extensions=[
    
    399 399
       ],
    
    400 400
       nested_types=[],
    
    401 401
       enum_types=[
    
    402 402
       ],
    
    403
    -  options=None,
    
    403
    +  serialized_options=None,
    
    404 404
       is_extendable=False,
    
    405 405
       syntax='proto3',
    
    406 406
       extension_ranges=[],
    
    ... ... @@ -424,28 +424,28 @@ _UPDATEBOTSESSIONREQUEST = _descriptor.Descriptor(
    424 424
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    425 425
           message_type=None, enum_type=None, containing_type=None,
    
    426 426
           is_extension=False, extension_scope=None,
    
    427
    -      options=None, file=DESCRIPTOR),
    
    427
    +      serialized_options=None, file=DESCRIPTOR),
    
    428 428
         _descriptor.FieldDescriptor(
    
    429 429
           name='bot_session', full_name='google.devtools.remoteworkers.v1test2.UpdateBotSessionRequest.bot_session', index=1,
    
    430 430
           number=2, type=11, cpp_type=10, label=1,
    
    431 431
           has_default_value=False, default_value=None,
    
    432 432
           message_type=None, enum_type=None, containing_type=None,
    
    433 433
           is_extension=False, extension_scope=None,
    
    434
    -      options=None, file=DESCRIPTOR),
    
    434
    +      serialized_options=None, file=DESCRIPTOR),
    
    435 435
         _descriptor.FieldDescriptor(
    
    436 436
           name='update_mask', full_name='google.devtools.remoteworkers.v1test2.UpdateBotSessionRequest.update_mask', index=2,
    
    437 437
           number=3, type=11, cpp_type=10, label=1,
    
    438 438
           has_default_value=False, default_value=None,
    
    439 439
           message_type=None, enum_type=None, containing_type=None,
    
    440 440
           is_extension=False, extension_scope=None,
    
    441
    -      options=None, file=DESCRIPTOR),
    
    441
    +      serialized_options=None, file=DESCRIPTOR),
    
    442 442
       ],
    
    443 443
       extensions=[
    
    444 444
       ],
    
    445 445
       nested_types=[],
    
    446 446
       enum_types=[
    
    447 447
       ],
    
    448
    -  options=None,
    
    448
    +  serialized_options=None,
    
    449 449
       is_extendable=False,
    
    450 450
       syntax='proto3',
    
    451 451
       extension_ranges=[],
    
    ... ... @@ -469,21 +469,21 @@ _POSTBOTEVENTTEMPREQUEST = _descriptor.Descriptor(
    469 469
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    470 470
           message_type=None, enum_type=None, containing_type=None,
    
    471 471
           is_extension=False, extension_scope=None,
    
    472
    -      options=None, file=DESCRIPTOR),
    
    472
    +      serialized_options=None, file=DESCRIPTOR),
    
    473 473
         _descriptor.FieldDescriptor(
    
    474 474
           name='type', full_name='google.devtools.remoteworkers.v1test2.PostBotEventTempRequest.type', index=1,
    
    475 475
           number=2, type=14, cpp_type=8, label=1,
    
    476 476
           has_default_value=False, default_value=0,
    
    477 477
           message_type=None, enum_type=None, containing_type=None,
    
    478 478
           is_extension=False, extension_scope=None,
    
    479
    -      options=None, file=DESCRIPTOR),
    
    479
    +      serialized_options=None, file=DESCRIPTOR),
    
    480 480
         _descriptor.FieldDescriptor(
    
    481 481
           name='msg', full_name='google.devtools.remoteworkers.v1test2.PostBotEventTempRequest.msg', index=2,
    
    482 482
           number=3, type=9, cpp_type=9, label=1,
    
    483 483
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    484 484
           message_type=None, enum_type=None, containing_type=None,
    
    485 485
           is_extension=False, extension_scope=None,
    
    486
    -      options=None, file=DESCRIPTOR),
    
    486
    +      serialized_options=None, file=DESCRIPTOR),
    
    487 487
       ],
    
    488 488
       extensions=[
    
    489 489
       ],
    
    ... ... @@ -491,7 +491,7 @@ _POSTBOTEVENTTEMPREQUEST = _descriptor.Descriptor(
    491 491
       enum_types=[
    
    492 492
         _POSTBOTEVENTTEMPREQUEST_TYPE,
    
    493 493
       ],
    
    494
    -  options=None,
    
    494
    +  serialized_options=None,
    
    495 495
       is_extendable=False,
    
    496 496
       syntax='proto3',
    
    497 497
       extension_ranges=[],
    
    ... ... @@ -572,19 +572,16 @@ PostBotEventTempRequest = _reflection.GeneratedProtocolMessageType('PostBotEvent
    572 572
     _sym_db.RegisterMessage(PostBotEventTempRequest)
    
    573 573
     
    
    574 574
     
    
    575
    -DESCRIPTOR.has_options = True
    
    576
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n)com.google.devtools.remoteworkers.v1test2B\021RemoteWorkersBotsP\001ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\242\002\002RW\252\002%Google.DevTools.RemoteWorkers.V1Test2'))
    
    577
    -_LEASE.fields_by_name['assignment'].has_options = True
    
    578
    -_LEASE.fields_by_name['assignment']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
    
    579
    -_LEASE.fields_by_name['inline_assignment'].has_options = True
    
    580
    -_LEASE.fields_by_name['inline_assignment']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
    
    575
    +DESCRIPTOR._options = None
    
    576
    +_LEASE.fields_by_name['assignment']._options = None
    
    577
    +_LEASE.fields_by_name['inline_assignment']._options = None
    
    581 578
     
    
    582 579
     _BOTS = _descriptor.ServiceDescriptor(
    
    583 580
       name='Bots',
    
    584 581
       full_name='google.devtools.remoteworkers.v1test2.Bots',
    
    585 582
       file=DESCRIPTOR,
    
    586 583
       index=0,
    
    587
    -  options=None,
    
    584
    +  serialized_options=None,
    
    588 585
       serialized_start=1885,
    
    589 586
       serialized_end=2437,
    
    590 587
       methods=[
    
    ... ... @@ -595,7 +592,7 @@ _BOTS = _descriptor.ServiceDescriptor(
    595 592
         containing_service=None,
    
    596 593
         input_type=_CREATEBOTSESSIONREQUEST,
    
    597 594
         output_type=_BOTSESSION,
    
    598
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002/\" /v1test2/{parent=**}/botSessions:\013bot_session')),
    
    595
    +    serialized_options=_b('\202\323\344\223\002/\" /v1test2/{parent=**}/botSessions:\013bot_session'),
    
    599 596
       ),
    
    600 597
       _descriptor.MethodDescriptor(
    
    601 598
         name='UpdateBotSession',
    
    ... ... @@ -604,7 +601,7 @@ _BOTS = _descriptor.ServiceDescriptor(
    604 601
         containing_service=None,
    
    605 602
         input_type=_UPDATEBOTSESSIONREQUEST,
    
    606 603
         output_type=_BOTSESSION,
    
    607
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002/2 /v1test2/{name=**/botSessions/*}:\013bot_session')),
    
    604
    +    serialized_options=_b('\202\323\344\223\002/2 /v1test2/{name=**/botSessions/*}:\013bot_session'),
    
    608 605
       ),
    
    609 606
       _descriptor.MethodDescriptor(
    
    610 607
         name='PostBotEventTemp',
    
    ... ... @@ -613,7 +610,7 @@ _BOTS = _descriptor.ServiceDescriptor(
    613 610
         containing_service=None,
    
    614 611
         input_type=_POSTBOTEVENTTEMPREQUEST,
    
    615 612
         output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    
    616
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002/\"*/v1test2/{name=**/botSessions/*}:postEvent:\001*')),
    
    613
    +    serialized_options=_b('\202\323\344\223\002/\"*/v1test2/{name=**/botSessions/*}:postEvent:\001*'),
    
    617 614
       ),
    
    618 615
     ])
    
    619 616
     _sym_db.RegisterServiceDescriptor(_BOTS)
    

  • buildgrid/_protos/google/devtools/remoteworkers/v1test2/command_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -22,6 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    22 21
       name='google/devtools/remoteworkers/v1test2/command.proto',
    
    23 22
       package='google.devtools.remoteworkers.v1test2',
    
    24 23
       syntax='proto3',
    
    24
    +  serialized_options=_b('\n)com.google.devtools.remoteworkers.v1test2B\025RemoteWorkersCommandsP\001ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\242\002\002RW\252\002%Google.DevTools.RemoteWorkers.V1Test2'),
    
    25 25
       serialized_pb=_b('\n3google/devtools/remoteworkers/v1test2/command.proto\x12%google.devtools.remoteworkers.v1test2\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\"\xf3\x05\n\x0b\x43ommandTask\x12I\n\x06inputs\x18\x01 \x01(\x0b\x32\x39.google.devtools.remoteworkers.v1test2.CommandTask.Inputs\x12T\n\x10\x65xpected_outputs\x18\x04 \x01(\x0b\x32:.google.devtools.remoteworkers.v1test2.CommandTask.Outputs\x12M\n\x08timeouts\x18\x05 \x01(\x0b\x32;.google.devtools.remoteworkers.v1test2.CommandTask.Timeouts\x1a\xfb\x01\n\x06Inputs\x12\x11\n\targuments\x18\x01 \x03(\t\x12<\n\x05\x66iles\x18\x02 \x03(\x0b\x32-.google.devtools.remoteworkers.v1test2.Digest\x12l\n\x15\x65nvironment_variables\x18\x03 \x03(\x0b\x32M.google.devtools.remoteworkers.v1test2.CommandTask.Inputs.EnvironmentVariable\x1a\x32\n\x13\x45nvironmentVariable\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x65\n\x07Outputs\x12\r\n\x05\x66iles\x18\x01 \x03(\t\x12\x13\n\x0b\x64irectories\x18\x02 \x03(\t\x12\x1a\n\x12stdout_destination\x18\x03 \x01(\t\x12\x1a\n\x12stderr_destination\x18\x04 \x01(\t\x1a\x8e\x01\n\x08Timeouts\x12,\n\texecution\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\'\n\x04idle\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12+\n\x08shutdown\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\"c\n\x0e\x43ommandOutputs\x12\x11\n\texit_code\x18\x01 \x01(\x05\x12>\n\x07outputs\x18\x02 \x01(\x0b\x32-.google.devtools.remoteworkers.v1test2.Digest\"k\n\x0f\x43ommandOverhead\x12+\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12+\n\x08overhead\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x92\x02\n\rCommandResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12\x11\n\texit_code\x18\x02 \x01(\x05\x12>\n\x07outputs\x18\x03 \x01(\x0b\x32-.google.devtools.remoteworkers.v1test2.Digest\x12/\n\x08\x64uration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12/\n\x08overhead\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x02\x18\x01\x12(\n\nstatistics\x18\x06 \x03(\x0b\x32\x14.google.protobuf.Any\"\x84\x01\n\x0c\x46ileMetadata\x12\x0c\n\x04path\x18\x01 \x01(\t\x12=\n\x06\x64igest\x18\x02 \x01(\x0b\x32-.google.devtools.remoteworkers.v1test2.Digest\x12\x10\n\x08\x63ontents\x18\x03 \x01(\x0c\x12\x15\n\ris_executable\x18\x04 \x01(\x08\"`\n\x11\x44irectoryMetadata\x12\x0c\n\x04path\x18\x01 \x01(\t\x12=\n\x06\x64igest\x18\x02 \x01(\x0b\x32-.google.devtools.remoteworkers.v1test2.Digest\"*\n\x06\x44igest\x12\x0c\n\x04hash\x18\x01 \x01(\t\x12\x12\n\nsize_bytes\x18\x02 \x01(\x03\"\x9e\x01\n\tDirectory\x12\x42\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x33.google.devtools.remoteworkers.v1test2.FileMetadata\x12M\n\x0b\x64irectories\x18\x02 \x03(\x0b\x32\x38.google.devtools.remoteworkers.v1test2.DirectoryMetadataB\xc5\x01\n)com.google.devtools.remoteworkers.v1test2B\x15RemoteWorkersCommandsP\x01ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\xa2\x02\x02RW\xaa\x02%Google.DevTools.RemoteWorkers.V1Test2b\x06proto3')
    
    26 26
       ,
    
    27 27
       dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,])
    
    ... ... @@ -42,21 +42,21 @@ _COMMANDTASK_INPUTS_ENVIRONMENTVARIABLE = _descriptor.Descriptor(
    42 42
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    43 43
           message_type=None, enum_type=None, containing_type=None,
    
    44 44
           is_extension=False, extension_scope=None,
    
    45
    -      options=None, file=DESCRIPTOR),
    
    45
    +      serialized_options=None, file=DESCRIPTOR),
    
    46 46
         _descriptor.FieldDescriptor(
    
    47 47
           name='value', full_name='google.devtools.remoteworkers.v1test2.CommandTask.Inputs.EnvironmentVariable.value', index=1,
    
    48 48
           number=2, type=9, cpp_type=9, label=1,
    
    49 49
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    50 50
           message_type=None, enum_type=None, containing_type=None,
    
    51 51
           is_extension=False, extension_scope=None,
    
    52
    -      options=None, file=DESCRIPTOR),
    
    52
    +      serialized_options=None, file=DESCRIPTOR),
    
    53 53
       ],
    
    54 54
       extensions=[
    
    55 55
       ],
    
    56 56
       nested_types=[],
    
    57 57
       enum_types=[
    
    58 58
       ],
    
    59
    -  options=None,
    
    59
    +  serialized_options=None,
    
    60 60
       is_extendable=False,
    
    61 61
       syntax='proto3',
    
    62 62
       extension_ranges=[],
    
    ... ... @@ -79,28 +79,28 @@ _COMMANDTASK_INPUTS = _descriptor.Descriptor(
    79 79
           has_default_value=False, default_value=[],
    
    80 80
           message_type=None, enum_type=None, containing_type=None,
    
    81 81
           is_extension=False, extension_scope=None,
    
    82
    -      options=None, file=DESCRIPTOR),
    
    82
    +      serialized_options=None, file=DESCRIPTOR),
    
    83 83
         _descriptor.FieldDescriptor(
    
    84 84
           name='files', full_name='google.devtools.remoteworkers.v1test2.CommandTask.Inputs.files', index=1,
    
    85 85
           number=2, type=11, cpp_type=10, label=3,
    
    86 86
           has_default_value=False, default_value=[],
    
    87 87
           message_type=None, enum_type=None, containing_type=None,
    
    88 88
           is_extension=False, extension_scope=None,
    
    89
    -      options=None, file=DESCRIPTOR),
    
    89
    +      serialized_options=None, file=DESCRIPTOR),
    
    90 90
         _descriptor.FieldDescriptor(
    
    91 91
           name='environment_variables', full_name='google.devtools.remoteworkers.v1test2.CommandTask.Inputs.environment_variables', index=2,
    
    92 92
           number=3, type=11, cpp_type=10, label=3,
    
    93 93
           has_default_value=False, default_value=[],
    
    94 94
           message_type=None, enum_type=None, containing_type=None,
    
    95 95
           is_extension=False, extension_scope=None,
    
    96
    -      options=None, file=DESCRIPTOR),
    
    96
    +      serialized_options=None, file=DESCRIPTOR),
    
    97 97
       ],
    
    98 98
       extensions=[
    
    99 99
       ],
    
    100 100
       nested_types=[_COMMANDTASK_INPUTS_ENVIRONMENTVARIABLE, ],
    
    101 101
       enum_types=[
    
    102 102
       ],
    
    103
    -  options=None,
    
    103
    +  serialized_options=None,
    
    104 104
       is_extendable=False,
    
    105 105
       syntax='proto3',
    
    106 106
       extension_ranges=[],
    
    ... ... @@ -123,35 +123,35 @@ _COMMANDTASK_OUTPUTS = _descriptor.Descriptor(
    123 123
           has_default_value=False, default_value=[],
    
    124 124
           message_type=None, enum_type=None, containing_type=None,
    
    125 125
           is_extension=False, extension_scope=None,
    
    126
    -      options=None, file=DESCRIPTOR),
    
    126
    +      serialized_options=None, file=DESCRIPTOR),
    
    127 127
         _descriptor.FieldDescriptor(
    
    128 128
           name='directories', full_name='google.devtools.remoteworkers.v1test2.CommandTask.Outputs.directories', index=1,
    
    129 129
           number=2, type=9, cpp_type=9, label=3,
    
    130 130
           has_default_value=False, default_value=[],
    
    131 131
           message_type=None, enum_type=None, containing_type=None,
    
    132 132
           is_extension=False, extension_scope=None,
    
    133
    -      options=None, file=DESCRIPTOR),
    
    133
    +      serialized_options=None, file=DESCRIPTOR),
    
    134 134
         _descriptor.FieldDescriptor(
    
    135 135
           name='stdout_destination', full_name='google.devtools.remoteworkers.v1test2.CommandTask.Outputs.stdout_destination', index=2,
    
    136 136
           number=3, type=9, cpp_type=9, label=1,
    
    137 137
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    138 138
           message_type=None, enum_type=None, containing_type=None,
    
    139 139
           is_extension=False, extension_scope=None,
    
    140
    -      options=None, file=DESCRIPTOR),
    
    140
    +      serialized_options=None, file=DESCRIPTOR),
    
    141 141
         _descriptor.FieldDescriptor(
    
    142 142
           name='stderr_destination', full_name='google.devtools.remoteworkers.v1test2.CommandTask.Outputs.stderr_destination', index=3,
    
    143 143
           number=4, type=9, cpp_type=9, label=1,
    
    144 144
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    145 145
           message_type=None, enum_type=None, containing_type=None,
    
    146 146
           is_extension=False, extension_scope=None,
    
    147
    -      options=None, file=DESCRIPTOR),
    
    147
    +      serialized_options=None, file=DESCRIPTOR),
    
    148 148
       ],
    
    149 149
       extensions=[
    
    150 150
       ],
    
    151 151
       nested_types=[],
    
    152 152
       enum_types=[
    
    153 153
       ],
    
    154
    -  options=None,
    
    154
    +  serialized_options=None,
    
    155 155
       is_extendable=False,
    
    156 156
       syntax='proto3',
    
    157 157
       extension_ranges=[],
    
    ... ... @@ -174,28 +174,28 @@ _COMMANDTASK_TIMEOUTS = _descriptor.Descriptor(
    174 174
           has_default_value=False, default_value=None,
    
    175 175
           message_type=None, enum_type=None, containing_type=None,
    
    176 176
           is_extension=False, extension_scope=None,
    
    177
    -      options=None, file=DESCRIPTOR),
    
    177
    +      serialized_options=None, file=DESCRIPTOR),
    
    178 178
         _descriptor.FieldDescriptor(
    
    179 179
           name='idle', full_name='google.devtools.remoteworkers.v1test2.CommandTask.Timeouts.idle', index=1,
    
    180 180
           number=2, type=11, cpp_type=10, label=1,
    
    181 181
           has_default_value=False, default_value=None,
    
    182 182
           message_type=None, enum_type=None, containing_type=None,
    
    183 183
           is_extension=False, extension_scope=None,
    
    184
    -      options=None, file=DESCRIPTOR),
    
    184
    +      serialized_options=None, file=DESCRIPTOR),
    
    185 185
         _descriptor.FieldDescriptor(
    
    186 186
           name='shutdown', full_name='google.devtools.remoteworkers.v1test2.CommandTask.Timeouts.shutdown', index=2,
    
    187 187
           number=3, type=11, cpp_type=10, label=1,
    
    188 188
           has_default_value=False, default_value=None,
    
    189 189
           message_type=None, enum_type=None, containing_type=None,
    
    190 190
           is_extension=False, extension_scope=None,
    
    191
    -      options=None, file=DESCRIPTOR),
    
    191
    +      serialized_options=None, file=DESCRIPTOR),
    
    192 192
       ],
    
    193 193
       extensions=[
    
    194 194
       ],
    
    195 195
       nested_types=[],
    
    196 196
       enum_types=[
    
    197 197
       ],
    
    198
    -  options=None,
    
    198
    +  serialized_options=None,
    
    199 199
       is_extendable=False,
    
    200 200
       syntax='proto3',
    
    201 201
       extension_ranges=[],
    
    ... ... @@ -218,28 +218,28 @@ _COMMANDTASK = _descriptor.Descriptor(
    218 218
           has_default_value=False, default_value=None,
    
    219 219
           message_type=None, enum_type=None, containing_type=None,
    
    220 220
           is_extension=False, extension_scope=None,
    
    221
    -      options=None, file=DESCRIPTOR),
    
    221
    +      serialized_options=None, file=DESCRIPTOR),
    
    222 222
         _descriptor.FieldDescriptor(
    
    223 223
           name='expected_outputs', full_name='google.devtools.remoteworkers.v1test2.CommandTask.expected_outputs', index=1,
    
    224 224
           number=4, type=11, cpp_type=10, label=1,
    
    225 225
           has_default_value=False, default_value=None,
    
    226 226
           message_type=None, enum_type=None, containing_type=None,
    
    227 227
           is_extension=False, extension_scope=None,
    
    228
    -      options=None, file=DESCRIPTOR),
    
    228
    +      serialized_options=None, file=DESCRIPTOR),
    
    229 229
         _descriptor.FieldDescriptor(
    
    230 230
           name='timeouts', full_name='google.devtools.remoteworkers.v1test2.CommandTask.timeouts', index=2,
    
    231 231
           number=5, type=11, cpp_type=10, label=1,
    
    232 232
           has_default_value=False, default_value=None,
    
    233 233
           message_type=None, enum_type=None, containing_type=None,
    
    234 234
           is_extension=False, extension_scope=None,
    
    235
    -      options=None, file=DESCRIPTOR),
    
    235
    +      serialized_options=None, file=DESCRIPTOR),
    
    236 236
       ],
    
    237 237
       extensions=[
    
    238 238
       ],
    
    239 239
       nested_types=[_COMMANDTASK_INPUTS, _COMMANDTASK_OUTPUTS, _COMMANDTASK_TIMEOUTS, ],
    
    240 240
       enum_types=[
    
    241 241
       ],
    
    242
    -  options=None,
    
    242
    +  serialized_options=None,
    
    243 243
       is_extendable=False,
    
    244 244
       syntax='proto3',
    
    245 245
       extension_ranges=[],
    
    ... ... @@ -263,21 +263,21 @@ _COMMANDOUTPUTS = _descriptor.Descriptor(
    263 263
           has_default_value=False, default_value=0,
    
    264 264
           message_type=None, enum_type=None, containing_type=None,
    
    265 265
           is_extension=False, extension_scope=None,
    
    266
    -      options=None, file=DESCRIPTOR),
    
    266
    +      serialized_options=None, file=DESCRIPTOR),
    
    267 267
         _descriptor.FieldDescriptor(
    
    268 268
           name='outputs', full_name='google.devtools.remoteworkers.v1test2.CommandOutputs.outputs', index=1,
    
    269 269
           number=2, type=11, cpp_type=10, label=1,
    
    270 270
           has_default_value=False, default_value=None,
    
    271 271
           message_type=None, enum_type=None, containing_type=None,
    
    272 272
           is_extension=False, extension_scope=None,
    
    273
    -      options=None, file=DESCRIPTOR),
    
    273
    +      serialized_options=None, file=DESCRIPTOR),
    
    274 274
       ],
    
    275 275
       extensions=[
    
    276 276
       ],
    
    277 277
       nested_types=[],
    
    278 278
       enum_types=[
    
    279 279
       ],
    
    280
    -  options=None,
    
    280
    +  serialized_options=None,
    
    281 281
       is_extendable=False,
    
    282 282
       syntax='proto3',
    
    283 283
       extension_ranges=[],
    
    ... ... @@ -301,21 +301,21 @@ _COMMANDOVERHEAD = _descriptor.Descriptor(
    301 301
           has_default_value=False, default_value=None,
    
    302 302
           message_type=None, enum_type=None, containing_type=None,
    
    303 303
           is_extension=False, extension_scope=None,
    
    304
    -      options=None, file=DESCRIPTOR),
    
    304
    +      serialized_options=None, file=DESCRIPTOR),
    
    305 305
         _descriptor.FieldDescriptor(
    
    306 306
           name='overhead', full_name='google.devtools.remoteworkers.v1test2.CommandOverhead.overhead', index=1,
    
    307 307
           number=2, type=11, cpp_type=10, label=1,
    
    308 308
           has_default_value=False, default_value=None,
    
    309 309
           message_type=None, enum_type=None, containing_type=None,
    
    310 310
           is_extension=False, extension_scope=None,
    
    311
    -      options=None, file=DESCRIPTOR),
    
    311
    +      serialized_options=None, file=DESCRIPTOR),
    
    312 312
       ],
    
    313 313
       extensions=[
    
    314 314
       ],
    
    315 315
       nested_types=[],
    
    316 316
       enum_types=[
    
    317 317
       ],
    
    318
    -  options=None,
    
    318
    +  serialized_options=None,
    
    319 319
       is_extendable=False,
    
    320 320
       syntax='proto3',
    
    321 321
       extension_ranges=[],
    
    ... ... @@ -339,49 +339,49 @@ _COMMANDRESULT = _descriptor.Descriptor(
    339 339
           has_default_value=False, default_value=None,
    
    340 340
           message_type=None, enum_type=None, containing_type=None,
    
    341 341
           is_extension=False, extension_scope=None,
    
    342
    -      options=None, file=DESCRIPTOR),
    
    342
    +      serialized_options=None, file=DESCRIPTOR),
    
    343 343
         _descriptor.FieldDescriptor(
    
    344 344
           name='exit_code', full_name='google.devtools.remoteworkers.v1test2.CommandResult.exit_code', index=1,
    
    345 345
           number=2, type=5, cpp_type=1, label=1,
    
    346 346
           has_default_value=False, default_value=0,
    
    347 347
           message_type=None, enum_type=None, containing_type=None,
    
    348 348
           is_extension=False, extension_scope=None,
    
    349
    -      options=None, file=DESCRIPTOR),
    
    349
    +      serialized_options=None, file=DESCRIPTOR),
    
    350 350
         _descriptor.FieldDescriptor(
    
    351 351
           name='outputs', full_name='google.devtools.remoteworkers.v1test2.CommandResult.outputs', index=2,
    
    352 352
           number=3, type=11, cpp_type=10, label=1,
    
    353 353
           has_default_value=False, default_value=None,
    
    354 354
           message_type=None, enum_type=None, containing_type=None,
    
    355 355
           is_extension=False, extension_scope=None,
    
    356
    -      options=None, file=DESCRIPTOR),
    
    356
    +      serialized_options=None, file=DESCRIPTOR),
    
    357 357
         _descriptor.FieldDescriptor(
    
    358 358
           name='duration', full_name='google.devtools.remoteworkers.v1test2.CommandResult.duration', index=3,
    
    359 359
           number=4, type=11, cpp_type=10, label=1,
    
    360 360
           has_default_value=False, default_value=None,
    
    361 361
           message_type=None, enum_type=None, containing_type=None,
    
    362 362
           is_extension=False, extension_scope=None,
    
    363
    -      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
    
    363
    +      serialized_options=_b('\030\001'), file=DESCRIPTOR),
    
    364 364
         _descriptor.FieldDescriptor(
    
    365 365
           name='overhead', full_name='google.devtools.remoteworkers.v1test2.CommandResult.overhead', index=4,
    
    366 366
           number=5, type=11, cpp_type=10, label=1,
    
    367 367
           has_default_value=False, default_value=None,
    
    368 368
           message_type=None, enum_type=None, containing_type=None,
    
    369 369
           is_extension=False, extension_scope=None,
    
    370
    -      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
    
    370
    +      serialized_options=_b('\030\001'), file=DESCRIPTOR),
    
    371 371
         _descriptor.FieldDescriptor(
    
    372 372
           name='statistics', full_name='google.devtools.remoteworkers.v1test2.CommandResult.statistics', index=5,
    
    373 373
           number=6, type=11, cpp_type=10, label=3,
    
    374 374
           has_default_value=False, default_value=[],
    
    375 375
           message_type=None, enum_type=None, containing_type=None,
    
    376 376
           is_extension=False, extension_scope=None,
    
    377
    -      options=None, file=DESCRIPTOR),
    
    377
    +      serialized_options=None, file=DESCRIPTOR),
    
    378 378
       ],
    
    379 379
       extensions=[
    
    380 380
       ],
    
    381 381
       nested_types=[],
    
    382 382
       enum_types=[
    
    383 383
       ],
    
    384
    -  options=None,
    
    384
    +  serialized_options=None,
    
    385 385
       is_extendable=False,
    
    386 386
       syntax='proto3',
    
    387 387
       extension_ranges=[],
    
    ... ... @@ -405,35 +405,35 @@ _FILEMETADATA = _descriptor.Descriptor(
    405 405
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    406 406
           message_type=None, enum_type=None, containing_type=None,
    
    407 407
           is_extension=False, extension_scope=None,
    
    408
    -      options=None, file=DESCRIPTOR),
    
    408
    +      serialized_options=None, file=DESCRIPTOR),
    
    409 409
         _descriptor.FieldDescriptor(
    
    410 410
           name='digest', full_name='google.devtools.remoteworkers.v1test2.FileMetadata.digest', index=1,
    
    411 411
           number=2, type=11, cpp_type=10, label=1,
    
    412 412
           has_default_value=False, default_value=None,
    
    413 413
           message_type=None, enum_type=None, containing_type=None,
    
    414 414
           is_extension=False, extension_scope=None,
    
    415
    -      options=None, file=DESCRIPTOR),
    
    415
    +      serialized_options=None, file=DESCRIPTOR),
    
    416 416
         _descriptor.FieldDescriptor(
    
    417 417
           name='contents', full_name='google.devtools.remoteworkers.v1test2.FileMetadata.contents', index=2,
    
    418 418
           number=3, type=12, cpp_type=9, label=1,
    
    419 419
           has_default_value=False, default_value=_b(""),
    
    420 420
           message_type=None, enum_type=None, containing_type=None,
    
    421 421
           is_extension=False, extension_scope=None,
    
    422
    -      options=None, file=DESCRIPTOR),
    
    422
    +      serialized_options=None, file=DESCRIPTOR),
    
    423 423
         _descriptor.FieldDescriptor(
    
    424 424
           name='is_executable', full_name='google.devtools.remoteworkers.v1test2.FileMetadata.is_executable', index=3,
    
    425 425
           number=4, type=8, cpp_type=7, label=1,
    
    426 426
           has_default_value=False, default_value=False,
    
    427 427
           message_type=None, enum_type=None, containing_type=None,
    
    428 428
           is_extension=False, extension_scope=None,
    
    429
    -      options=None, file=DESCRIPTOR),
    
    429
    +      serialized_options=None, file=DESCRIPTOR),
    
    430 430
       ],
    
    431 431
       extensions=[
    
    432 432
       ],
    
    433 433
       nested_types=[],
    
    434 434
       enum_types=[
    
    435 435
       ],
    
    436
    -  options=None,
    
    436
    +  serialized_options=None,
    
    437 437
       is_extendable=False,
    
    438 438
       syntax='proto3',
    
    439 439
       extension_ranges=[],
    
    ... ... @@ -457,21 +457,21 @@ _DIRECTORYMETADATA = _descriptor.Descriptor(
    457 457
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    458 458
           message_type=None, enum_type=None, containing_type=None,
    
    459 459
           is_extension=False, extension_scope=None,
    
    460
    -      options=None, file=DESCRIPTOR),
    
    460
    +      serialized_options=None, file=DESCRIPTOR),
    
    461 461
         _descriptor.FieldDescriptor(
    
    462 462
           name='digest', full_name='google.devtools.remoteworkers.v1test2.DirectoryMetadata.digest', index=1,
    
    463 463
           number=2, type=11, cpp_type=10, label=1,
    
    464 464
           has_default_value=False, default_value=None,
    
    465 465
           message_type=None, enum_type=None, containing_type=None,
    
    466 466
           is_extension=False, extension_scope=None,
    
    467
    -      options=None, file=DESCRIPTOR),
    
    467
    +      serialized_options=None, file=DESCRIPTOR),
    
    468 468
       ],
    
    469 469
       extensions=[
    
    470 470
       ],
    
    471 471
       nested_types=[],
    
    472 472
       enum_types=[
    
    473 473
       ],
    
    474
    -  options=None,
    
    474
    +  serialized_options=None,
    
    475 475
       is_extendable=False,
    
    476 476
       syntax='proto3',
    
    477 477
       extension_ranges=[],
    
    ... ... @@ -495,21 +495,21 @@ _DIGEST = _descriptor.Descriptor(
    495 495
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    496 496
           message_type=None, enum_type=None, containing_type=None,
    
    497 497
           is_extension=False, extension_scope=None,
    
    498
    -      options=None, file=DESCRIPTOR),
    
    498
    +      serialized_options=None, file=DESCRIPTOR),
    
    499 499
         _descriptor.FieldDescriptor(
    
    500 500
           name='size_bytes', full_name='google.devtools.remoteworkers.v1test2.Digest.size_bytes', index=1,
    
    501 501
           number=2, type=3, cpp_type=2, label=1,
    
    502 502
           has_default_value=False, default_value=0,
    
    503 503
           message_type=None, enum_type=None, containing_type=None,
    
    504 504
           is_extension=False, extension_scope=None,
    
    505
    -      options=None, file=DESCRIPTOR),
    
    505
    +      serialized_options=None, file=DESCRIPTOR),
    
    506 506
       ],
    
    507 507
       extensions=[
    
    508 508
       ],
    
    509 509
       nested_types=[],
    
    510 510
       enum_types=[
    
    511 511
       ],
    
    512
    -  options=None,
    
    512
    +  serialized_options=None,
    
    513 513
       is_extendable=False,
    
    514 514
       syntax='proto3',
    
    515 515
       extension_ranges=[],
    
    ... ... @@ -533,21 +533,21 @@ _DIRECTORY = _descriptor.Descriptor(
    533 533
           has_default_value=False, default_value=[],
    
    534 534
           message_type=None, enum_type=None, containing_type=None,
    
    535 535
           is_extension=False, extension_scope=None,
    
    536
    -      options=None, file=DESCRIPTOR),
    
    536
    +      serialized_options=None, file=DESCRIPTOR),
    
    537 537
         _descriptor.FieldDescriptor(
    
    538 538
           name='directories', full_name='google.devtools.remoteworkers.v1test2.Directory.directories', index=1,
    
    539 539
           number=2, type=11, cpp_type=10, label=3,
    
    540 540
           has_default_value=False, default_value=[],
    
    541 541
           message_type=None, enum_type=None, containing_type=None,
    
    542 542
           is_extension=False, extension_scope=None,
    
    543
    -      options=None, file=DESCRIPTOR),
    
    543
    +      serialized_options=None, file=DESCRIPTOR),
    
    544 544
       ],
    
    545 545
       extensions=[
    
    546 546
       ],
    
    547 547
       nested_types=[],
    
    548 548
       enum_types=[
    
    549 549
       ],
    
    550
    -  options=None,
    
    550
    +  serialized_options=None,
    
    551 551
       is_extendable=False,
    
    552 552
       syntax='proto3',
    
    553 553
       extension_ranges=[],
    
    ... ... @@ -680,10 +680,7 @@ Directory = _reflection.GeneratedProtocolMessageType('Directory', (_message.Mess
    680 680
     _sym_db.RegisterMessage(Directory)
    
    681 681
     
    
    682 682
     
    
    683
    -DESCRIPTOR.has_options = True
    
    684
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n)com.google.devtools.remoteworkers.v1test2B\025RemoteWorkersCommandsP\001ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\242\002\002RW\252\002%Google.DevTools.RemoteWorkers.V1Test2'))
    
    685
    -_COMMANDRESULT.fields_by_name['duration'].has_options = True
    
    686
    -_COMMANDRESULT.fields_by_name['duration']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
    
    687
    -_COMMANDRESULT.fields_by_name['overhead'].has_options = True
    
    688
    -_COMMANDRESULT.fields_by_name['overhead']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
    
    683
    +DESCRIPTOR._options = None
    
    684
    +_COMMANDRESULT.fields_by_name['duration']._options = None
    
    685
    +_COMMANDRESULT.fields_by_name['overhead']._options = None
    
    689 686
     # @@protoc_insertion_point(module_scope)

  • buildgrid/_protos/google/devtools/remoteworkers/v1test2/tasks_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -23,6 +22,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    23 22
       name='google/devtools/remoteworkers/v1test2/tasks.proto',
    
    24 23
       package='google.devtools.remoteworkers.v1test2',
    
    25 24
       syntax='proto3',
    
    25
    +  serialized_options=_b('\n)com.google.devtools.remoteworkers.v1test2B\022RemoteWorkersTasksP\001ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\242\002\002RW\252\002%Google.DevTools.RemoteWorkers.V1Test2'),
    
    26 26
       serialized_pb=_b('\n1google/devtools/remoteworkers/v1test2/tasks.proto\x12%google.devtools.remoteworkers.v1test2\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/protobuf/any.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"\xb1\x01\n\x04Task\x12\x0c\n\x04name\x18\x01 \x01(\t\x12)\n\x0b\x64\x65scription\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x43\n\x04logs\x18\x03 \x03(\x0b\x32\x35.google.devtools.remoteworkers.v1test2.Task.LogsEntry\x1a+\n\tLogsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9a\x01\n\nTaskResult\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x63omplete\x18\x02 \x01(\x08\x12\"\n\x06status\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12$\n\x06output\x18\x04 \x01(\x0b\x32\x14.google.protobuf.Any\x12\"\n\x04meta\x18\x05 \x01(\x0b\x32\x14.google.protobuf.Any\"\x1e\n\x0eGetTaskRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xab\x01\n\x17UpdateTaskResultRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x41\n\x06result\x18\x02 \x01(\x0b\x32\x31.google.devtools.remoteworkers.v1test2.TaskResult\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x0e\n\x06source\x18\x04 \x01(\t\"1\n\x11\x41\x64\x64TaskLogRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06log_id\x18\x02 \x01(\t\"$\n\x12\x41\x64\x64TaskLogResponse\x12\x0e\n\x06handle\x18\x01 \x01(\t2\x88\x04\n\x05Tasks\x12\x91\x01\n\x07GetTask\x12\x35.google.devtools.remoteworkers.v1test2.GetTaskRequest\x1a+.google.devtools.remoteworkers.v1test2.Task\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/v1test2/{name=**/tasks/*}\x12\xb8\x01\n\x10UpdateTaskResult\x12>.google.devtools.remoteworkers.v1test2.UpdateTaskResultRequest\x1a\x31.google.devtools.remoteworkers.v1test2.TaskResult\"1\x82\xd3\xe4\x93\x02+2!/v1test2/{name=**/tasks/*/result}:\x06result\x12\xaf\x01\n\nAddTaskLog\x12\x38.google.devtools.remoteworkers.v1test2.AddTaskLogRequest\x1a\x39.google.devtools.remoteworkers.v1test2.AddTaskLogResponse\",\x82\xd3\xe4\x93\x02&\"!/v1test2/{name=**/tasks/*}:addLog:\x01*B\xc2\x01\n)com.google.devtools.remoteworkers.v1test2B\x12RemoteWorkersTasksP\x01ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\xa2\x02\x02RW\xaa\x02%Google.DevTools.RemoteWorkers.V1Test2b\x06proto3')
    
    27 27
       ,
    
    28 28
       dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,])
    
    ... ... @@ -43,21 +43,21 @@ _TASK_LOGSENTRY = _descriptor.Descriptor(
    43 43
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    44 44
           message_type=None, enum_type=None, containing_type=None,
    
    45 45
           is_extension=False, extension_scope=None,
    
    46
    -      options=None, file=DESCRIPTOR),
    
    46
    +      serialized_options=None, file=DESCRIPTOR),
    
    47 47
         _descriptor.FieldDescriptor(
    
    48 48
           name='value', full_name='google.devtools.remoteworkers.v1test2.Task.LogsEntry.value', index=1,
    
    49 49
           number=2, type=9, cpp_type=9, label=1,
    
    50 50
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    51 51
           message_type=None, enum_type=None, containing_type=None,
    
    52 52
           is_extension=False, extension_scope=None,
    
    53
    -      options=None, file=DESCRIPTOR),
    
    53
    +      serialized_options=None, file=DESCRIPTOR),
    
    54 54
       ],
    
    55 55
       extensions=[
    
    56 56
       ],
    
    57 57
       nested_types=[],
    
    58 58
       enum_types=[
    
    59 59
       ],
    
    60
    -  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
    
    60
    +  serialized_options=_b('8\001'),
    
    61 61
       is_extendable=False,
    
    62 62
       syntax='proto3',
    
    63 63
       extension_ranges=[],
    
    ... ... @@ -80,28 +80,28 @@ _TASK = _descriptor.Descriptor(
    80 80
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    81 81
           message_type=None, enum_type=None, containing_type=None,
    
    82 82
           is_extension=False, extension_scope=None,
    
    83
    -      options=None, file=DESCRIPTOR),
    
    83
    +      serialized_options=None, file=DESCRIPTOR),
    
    84 84
         _descriptor.FieldDescriptor(
    
    85 85
           name='description', full_name='google.devtools.remoteworkers.v1test2.Task.description', index=1,
    
    86 86
           number=2, type=11, cpp_type=10, label=1,
    
    87 87
           has_default_value=False, default_value=None,
    
    88 88
           message_type=None, enum_type=None, containing_type=None,
    
    89 89
           is_extension=False, extension_scope=None,
    
    90
    -      options=None, file=DESCRIPTOR),
    
    90
    +      serialized_options=None, file=DESCRIPTOR),
    
    91 91
         _descriptor.FieldDescriptor(
    
    92 92
           name='logs', full_name='google.devtools.remoteworkers.v1test2.Task.logs', index=2,
    
    93 93
           number=3, type=11, cpp_type=10, label=3,
    
    94 94
           has_default_value=False, default_value=[],
    
    95 95
           message_type=None, enum_type=None, containing_type=None,
    
    96 96
           is_extension=False, extension_scope=None,
    
    97
    -      options=None, file=DESCRIPTOR),
    
    97
    +      serialized_options=None, file=DESCRIPTOR),
    
    98 98
       ],
    
    99 99
       extensions=[
    
    100 100
       ],
    
    101 101
       nested_types=[_TASK_LOGSENTRY, ],
    
    102 102
       enum_types=[
    
    103 103
       ],
    
    104
    -  options=None,
    
    104
    +  serialized_options=None,
    
    105 105
       is_extendable=False,
    
    106 106
       syntax='proto3',
    
    107 107
       extension_ranges=[],
    
    ... ... @@ -125,42 +125,42 @@ _TASKRESULT = _descriptor.Descriptor(
    125 125
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    126 126
           message_type=None, enum_type=None, containing_type=None,
    
    127 127
           is_extension=False, extension_scope=None,
    
    128
    -      options=None, file=DESCRIPTOR),
    
    128
    +      serialized_options=None, file=DESCRIPTOR),
    
    129 129
         _descriptor.FieldDescriptor(
    
    130 130
           name='complete', full_name='google.devtools.remoteworkers.v1test2.TaskResult.complete', index=1,
    
    131 131
           number=2, type=8, cpp_type=7, label=1,
    
    132 132
           has_default_value=False, default_value=False,
    
    133 133
           message_type=None, enum_type=None, containing_type=None,
    
    134 134
           is_extension=False, extension_scope=None,
    
    135
    -      options=None, file=DESCRIPTOR),
    
    135
    +      serialized_options=None, file=DESCRIPTOR),
    
    136 136
         _descriptor.FieldDescriptor(
    
    137 137
           name='status', full_name='google.devtools.remoteworkers.v1test2.TaskResult.status', index=2,
    
    138 138
           number=3, type=11, cpp_type=10, label=1,
    
    139 139
           has_default_value=False, default_value=None,
    
    140 140
           message_type=None, enum_type=None, containing_type=None,
    
    141 141
           is_extension=False, extension_scope=None,
    
    142
    -      options=None, file=DESCRIPTOR),
    
    142
    +      serialized_options=None, file=DESCRIPTOR),
    
    143 143
         _descriptor.FieldDescriptor(
    
    144 144
           name='output', full_name='google.devtools.remoteworkers.v1test2.TaskResult.output', index=3,
    
    145 145
           number=4, type=11, cpp_type=10, label=1,
    
    146 146
           has_default_value=False, default_value=None,
    
    147 147
           message_type=None, enum_type=None, containing_type=None,
    
    148 148
           is_extension=False, extension_scope=None,
    
    149
    -      options=None, file=DESCRIPTOR),
    
    149
    +      serialized_options=None, file=DESCRIPTOR),
    
    150 150
         _descriptor.FieldDescriptor(
    
    151 151
           name='meta', full_name='google.devtools.remoteworkers.v1test2.TaskResult.meta', index=4,
    
    152 152
           number=5, type=11, cpp_type=10, label=1,
    
    153 153
           has_default_value=False, default_value=None,
    
    154 154
           message_type=None, enum_type=None, containing_type=None,
    
    155 155
           is_extension=False, extension_scope=None,
    
    156
    -      options=None, file=DESCRIPTOR),
    
    156
    +      serialized_options=None, file=DESCRIPTOR),
    
    157 157
       ],
    
    158 158
       extensions=[
    
    159 159
       ],
    
    160 160
       nested_types=[],
    
    161 161
       enum_types=[
    
    162 162
       ],
    
    163
    -  options=None,
    
    163
    +  serialized_options=None,
    
    164 164
       is_extendable=False,
    
    165 165
       syntax='proto3',
    
    166 166
       extension_ranges=[],
    
    ... ... @@ -184,14 +184,14 @@ _GETTASKREQUEST = _descriptor.Descriptor(
    184 184
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    185 185
           message_type=None, enum_type=None, containing_type=None,
    
    186 186
           is_extension=False, extension_scope=None,
    
    187
    -      options=None, file=DESCRIPTOR),
    
    187
    +      serialized_options=None, file=DESCRIPTOR),
    
    188 188
       ],
    
    189 189
       extensions=[
    
    190 190
       ],
    
    191 191
       nested_types=[],
    
    192 192
       enum_types=[
    
    193 193
       ],
    
    194
    -  options=None,
    
    194
    +  serialized_options=None,
    
    195 195
       is_extendable=False,
    
    196 196
       syntax='proto3',
    
    197 197
       extension_ranges=[],
    
    ... ... @@ -215,35 +215,35 @@ _UPDATETASKRESULTREQUEST = _descriptor.Descriptor(
    215 215
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    216 216
           message_type=None, enum_type=None, containing_type=None,
    
    217 217
           is_extension=False, extension_scope=None,
    
    218
    -      options=None, file=DESCRIPTOR),
    
    218
    +      serialized_options=None, file=DESCRIPTOR),
    
    219 219
         _descriptor.FieldDescriptor(
    
    220 220
           name='result', full_name='google.devtools.remoteworkers.v1test2.UpdateTaskResultRequest.result', index=1,
    
    221 221
           number=2, type=11, cpp_type=10, label=1,
    
    222 222
           has_default_value=False, default_value=None,
    
    223 223
           message_type=None, enum_type=None, containing_type=None,
    
    224 224
           is_extension=False, extension_scope=None,
    
    225
    -      options=None, file=DESCRIPTOR),
    
    225
    +      serialized_options=None, file=DESCRIPTOR),
    
    226 226
         _descriptor.FieldDescriptor(
    
    227 227
           name='update_mask', full_name='google.devtools.remoteworkers.v1test2.UpdateTaskResultRequest.update_mask', index=2,
    
    228 228
           number=3, type=11, cpp_type=10, label=1,
    
    229 229
           has_default_value=False, default_value=None,
    
    230 230
           message_type=None, enum_type=None, containing_type=None,
    
    231 231
           is_extension=False, extension_scope=None,
    
    232
    -      options=None, file=DESCRIPTOR),
    
    232
    +      serialized_options=None, file=DESCRIPTOR),
    
    233 233
         _descriptor.FieldDescriptor(
    
    234 234
           name='source', full_name='google.devtools.remoteworkers.v1test2.UpdateTaskResultRequest.source', index=3,
    
    235 235
           number=4, type=9, cpp_type=9, label=1,
    
    236 236
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    237 237
           message_type=None, enum_type=None, containing_type=None,
    
    238 238
           is_extension=False, extension_scope=None,
    
    239
    -      options=None, file=DESCRIPTOR),
    
    239
    +      serialized_options=None, file=DESCRIPTOR),
    
    240 240
       ],
    
    241 241
       extensions=[
    
    242 242
       ],
    
    243 243
       nested_types=[],
    
    244 244
       enum_types=[
    
    245 245
       ],
    
    246
    -  options=None,
    
    246
    +  serialized_options=None,
    
    247 247
       is_extendable=False,
    
    248 248
       syntax='proto3',
    
    249 249
       extension_ranges=[],
    
    ... ... @@ -267,21 +267,21 @@ _ADDTASKLOGREQUEST = _descriptor.Descriptor(
    267 267
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    268 268
           message_type=None, enum_type=None, containing_type=None,
    
    269 269
           is_extension=False, extension_scope=None,
    
    270
    -      options=None, file=DESCRIPTOR),
    
    270
    +      serialized_options=None, file=DESCRIPTOR),
    
    271 271
         _descriptor.FieldDescriptor(
    
    272 272
           name='log_id', full_name='google.devtools.remoteworkers.v1test2.AddTaskLogRequest.log_id', index=1,
    
    273 273
           number=2, type=9, cpp_type=9, label=1,
    
    274 274
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    275 275
           message_type=None, enum_type=None, containing_type=None,
    
    276 276
           is_extension=False, extension_scope=None,
    
    277
    -      options=None, file=DESCRIPTOR),
    
    277
    +      serialized_options=None, file=DESCRIPTOR),
    
    278 278
       ],
    
    279 279
       extensions=[
    
    280 280
       ],
    
    281 281
       nested_types=[],
    
    282 282
       enum_types=[
    
    283 283
       ],
    
    284
    -  options=None,
    
    284
    +  serialized_options=None,
    
    285 285
       is_extendable=False,
    
    286 286
       syntax='proto3',
    
    287 287
       extension_ranges=[],
    
    ... ... @@ -305,14 +305,14 @@ _ADDTASKLOGRESPONSE = _descriptor.Descriptor(
    305 305
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    306 306
           message_type=None, enum_type=None, containing_type=None,
    
    307 307
           is_extension=False, extension_scope=None,
    
    308
    -      options=None, file=DESCRIPTOR),
    
    308
    +      serialized_options=None, file=DESCRIPTOR),
    
    309 309
       ],
    
    310 310
       extensions=[
    
    311 311
       ],
    
    312 312
       nested_types=[],
    
    313 313
       enum_types=[
    
    314 314
       ],
    
    315
    -  options=None,
    
    315
    +  serialized_options=None,
    
    316 316
       is_extendable=False,
    
    317 317
       syntax='proto3',
    
    318 318
       extension_ranges=[],
    
    ... ... @@ -389,17 +389,15 @@ AddTaskLogResponse = _reflection.GeneratedProtocolMessageType('AddTaskLogRespons
    389 389
     _sym_db.RegisterMessage(AddTaskLogResponse)
    
    390 390
     
    
    391 391
     
    
    392
    -DESCRIPTOR.has_options = True
    
    393
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n)com.google.devtools.remoteworkers.v1test2B\022RemoteWorkersTasksP\001ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\242\002\002RW\252\002%Google.DevTools.RemoteWorkers.V1Test2'))
    
    394
    -_TASK_LOGSENTRY.has_options = True
    
    395
    -_TASK_LOGSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
    
    392
    +DESCRIPTOR._options = None
    
    393
    +_TASK_LOGSENTRY._options = None
    
    396 394
     
    
    397 395
     _TASKS = _descriptor.ServiceDescriptor(
    
    398 396
       name='Tasks',
    
    399 397
       full_name='google.devtools.remoteworkers.v1test2.Tasks',
    
    400 398
       file=DESCRIPTOR,
    
    401 399
       index=0,
    
    402
    -  options=None,
    
    400
    +  serialized_options=None,
    
    403 401
       serialized_start=841,
    
    404 402
       serialized_end=1361,
    
    405 403
       methods=[
    
    ... ... @@ -410,7 +408,7 @@ _TASKS = _descriptor.ServiceDescriptor(
    410 408
         containing_service=None,
    
    411 409
         input_type=_GETTASKREQUEST,
    
    412 410
         output_type=_TASK,
    
    413
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\034\022\032/v1test2/{name=**/tasks/*}')),
    
    411
    +    serialized_options=_b('\202\323\344\223\002\034\022\032/v1test2/{name=**/tasks/*}'),
    
    414 412
       ),
    
    415 413
       _descriptor.MethodDescriptor(
    
    416 414
         name='UpdateTaskResult',
    
    ... ... @@ -419,7 +417,7 @@ _TASKS = _descriptor.ServiceDescriptor(
    419 417
         containing_service=None,
    
    420 418
         input_type=_UPDATETASKRESULTREQUEST,
    
    421 419
         output_type=_TASKRESULT,
    
    422
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002+2!/v1test2/{name=**/tasks/*/result}:\006result')),
    
    420
    +    serialized_options=_b('\202\323\344\223\002+2!/v1test2/{name=**/tasks/*/result}:\006result'),
    
    423 421
       ),
    
    424 422
       _descriptor.MethodDescriptor(
    
    425 423
         name='AddTaskLog',
    
    ... ... @@ -428,7 +426,7 @@ _TASKS = _descriptor.ServiceDescriptor(
    428 426
         containing_service=None,
    
    429 427
         input_type=_ADDTASKLOGREQUEST,
    
    430 428
         output_type=_ADDTASKLOGRESPONSE,
    
    431
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002&\"!/v1test2/{name=**/tasks/*}:addLog:\001*')),
    
    429
    +    serialized_options=_b('\202\323\344\223\002&\"!/v1test2/{name=**/tasks/*}:addLog:\001*'),
    
    432 430
       ),
    
    433 431
     ])
    
    434 432
     _sym_db.RegisterServiceDescriptor(_TASKS)
    

  • buildgrid/_protos/google/devtools/remoteworkers/v1test2/worker_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -19,6 +18,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    19 18
       name='google/devtools/remoteworkers/v1test2/worker.proto',
    
    20 19
       package='google.devtools.remoteworkers.v1test2',
    
    21 20
       syntax='proto3',
    
    21
    +  serialized_options=_b('\n)com.google.devtools.remoteworkers.v1test2B\023RemoteWorkersWorkerP\001ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\242\002\002RW\252\002%Google.DevTools.RemoteWorkers.V1Test2'),
    
    22 22
       serialized_pb=_b('\n2google/devtools/remoteworkers/v1test2/worker.proto\x12%google.devtools.remoteworkers.v1test2\"\xa9\x02\n\x06Worker\x12>\n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32-.google.devtools.remoteworkers.v1test2.Device\x12J\n\nproperties\x18\x02 \x03(\x0b\x32\x36.google.devtools.remoteworkers.v1test2.Worker.Property\x12\x45\n\x07\x63onfigs\x18\x03 \x03(\x0b\x32\x34.google.devtools.remoteworkers.v1test2.Worker.Config\x1a&\n\x08Property\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a$\n\x06\x43onfig\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x8c\x01\n\x06\x44\x65vice\x12\x0e\n\x06handle\x18\x01 \x01(\t\x12J\n\nproperties\x18\x02 \x03(\x0b\x32\x36.google.devtools.remoteworkers.v1test2.Device.Property\x1a&\n\x08Property\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\tB\xc3\x01\n)com.google.devtools.remoteworkers.v1test2B\x13RemoteWorkersWorkerP\x01ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\xa2\x02\x02RW\xaa\x02%Google.DevTools.RemoteWorkers.V1Test2b\x06proto3')
    
    23 23
     )
    
    24 24
     
    
    ... ... @@ -38,21 +38,21 @@ _WORKER_PROPERTY = _descriptor.Descriptor(
    38 38
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    39 39
           message_type=None, enum_type=None, containing_type=None,
    
    40 40
           is_extension=False, extension_scope=None,
    
    41
    -      options=None, file=DESCRIPTOR),
    
    41
    +      serialized_options=None, file=DESCRIPTOR),
    
    42 42
         _descriptor.FieldDescriptor(
    
    43 43
           name='value', full_name='google.devtools.remoteworkers.v1test2.Worker.Property.value', index=1,
    
    44 44
           number=2, type=9, cpp_type=9, label=1,
    
    45 45
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    46 46
           message_type=None, enum_type=None, containing_type=None,
    
    47 47
           is_extension=False, extension_scope=None,
    
    48
    -      options=None, file=DESCRIPTOR),
    
    48
    +      serialized_options=None, file=DESCRIPTOR),
    
    49 49
       ],
    
    50 50
       extensions=[
    
    51 51
       ],
    
    52 52
       nested_types=[],
    
    53 53
       enum_types=[
    
    54 54
       ],
    
    55
    -  options=None,
    
    55
    +  serialized_options=None,
    
    56 56
       is_extendable=False,
    
    57 57
       syntax='proto3',
    
    58 58
       extension_ranges=[],
    
    ... ... @@ -75,21 +75,21 @@ _WORKER_CONFIG = _descriptor.Descriptor(
    75 75
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    76 76
           message_type=None, enum_type=None, containing_type=None,
    
    77 77
           is_extension=False, extension_scope=None,
    
    78
    -      options=None, file=DESCRIPTOR),
    
    78
    +      serialized_options=None, file=DESCRIPTOR),
    
    79 79
         _descriptor.FieldDescriptor(
    
    80 80
           name='value', full_name='google.devtools.remoteworkers.v1test2.Worker.Config.value', index=1,
    
    81 81
           number=2, type=9, cpp_type=9, label=1,
    
    82 82
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    83 83
           message_type=None, enum_type=None, containing_type=None,
    
    84 84
           is_extension=False, extension_scope=None,
    
    85
    -      options=None, file=DESCRIPTOR),
    
    85
    +      serialized_options=None, file=DESCRIPTOR),
    
    86 86
       ],
    
    87 87
       extensions=[
    
    88 88
       ],
    
    89 89
       nested_types=[],
    
    90 90
       enum_types=[
    
    91 91
       ],
    
    92
    -  options=None,
    
    92
    +  serialized_options=None,
    
    93 93
       is_extendable=False,
    
    94 94
       syntax='proto3',
    
    95 95
       extension_ranges=[],
    
    ... ... @@ -112,28 +112,28 @@ _WORKER = _descriptor.Descriptor(
    112 112
           has_default_value=False, default_value=[],
    
    113 113
           message_type=None, enum_type=None, containing_type=None,
    
    114 114
           is_extension=False, extension_scope=None,
    
    115
    -      options=None, file=DESCRIPTOR),
    
    115
    +      serialized_options=None, file=DESCRIPTOR),
    
    116 116
         _descriptor.FieldDescriptor(
    
    117 117
           name='properties', full_name='google.devtools.remoteworkers.v1test2.Worker.properties', index=1,
    
    118 118
           number=2, type=11, cpp_type=10, label=3,
    
    119 119
           has_default_value=False, default_value=[],
    
    120 120
           message_type=None, enum_type=None, containing_type=None,
    
    121 121
           is_extension=False, extension_scope=None,
    
    122
    -      options=None, file=DESCRIPTOR),
    
    122
    +      serialized_options=None, file=DESCRIPTOR),
    
    123 123
         _descriptor.FieldDescriptor(
    
    124 124
           name='configs', full_name='google.devtools.remoteworkers.v1test2.Worker.configs', index=2,
    
    125 125
           number=3, type=11, cpp_type=10, label=3,
    
    126 126
           has_default_value=False, default_value=[],
    
    127 127
           message_type=None, enum_type=None, containing_type=None,
    
    128 128
           is_extension=False, extension_scope=None,
    
    129
    -      options=None, file=DESCRIPTOR),
    
    129
    +      serialized_options=None, file=DESCRIPTOR),
    
    130 130
       ],
    
    131 131
       extensions=[
    
    132 132
       ],
    
    133 133
       nested_types=[_WORKER_PROPERTY, _WORKER_CONFIG, ],
    
    134 134
       enum_types=[
    
    135 135
       ],
    
    136
    -  options=None,
    
    136
    +  serialized_options=None,
    
    137 137
       is_extendable=False,
    
    138 138
       syntax='proto3',
    
    139 139
       extension_ranges=[],
    
    ... ... @@ -157,21 +157,21 @@ _DEVICE_PROPERTY = _descriptor.Descriptor(
    157 157
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    158 158
           message_type=None, enum_type=None, containing_type=None,
    
    159 159
           is_extension=False, extension_scope=None,
    
    160
    -      options=None, file=DESCRIPTOR),
    
    160
    +      serialized_options=None, file=DESCRIPTOR),
    
    161 161
         _descriptor.FieldDescriptor(
    
    162 162
           name='value', full_name='google.devtools.remoteworkers.v1test2.Device.Property.value', index=1,
    
    163 163
           number=2, type=9, cpp_type=9, label=1,
    
    164 164
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    165 165
           message_type=None, enum_type=None, containing_type=None,
    
    166 166
           is_extension=False, extension_scope=None,
    
    167
    -      options=None, file=DESCRIPTOR),
    
    167
    +      serialized_options=None, file=DESCRIPTOR),
    
    168 168
       ],
    
    169 169
       extensions=[
    
    170 170
       ],
    
    171 171
       nested_types=[],
    
    172 172
       enum_types=[
    
    173 173
       ],
    
    174
    -  options=None,
    
    174
    +  serialized_options=None,
    
    175 175
       is_extendable=False,
    
    176 176
       syntax='proto3',
    
    177 177
       extension_ranges=[],
    
    ... ... @@ -194,21 +194,21 @@ _DEVICE = _descriptor.Descriptor(
    194 194
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    195 195
           message_type=None, enum_type=None, containing_type=None,
    
    196 196
           is_extension=False, extension_scope=None,
    
    197
    -      options=None, file=DESCRIPTOR),
    
    197
    +      serialized_options=None, file=DESCRIPTOR),
    
    198 198
         _descriptor.FieldDescriptor(
    
    199 199
           name='properties', full_name='google.devtools.remoteworkers.v1test2.Device.properties', index=1,
    
    200 200
           number=2, type=11, cpp_type=10, label=3,
    
    201 201
           has_default_value=False, default_value=[],
    
    202 202
           message_type=None, enum_type=None, containing_type=None,
    
    203 203
           is_extension=False, extension_scope=None,
    
    204
    -      options=None, file=DESCRIPTOR),
    
    204
    +      serialized_options=None, file=DESCRIPTOR),
    
    205 205
       ],
    
    206 206
       extensions=[
    
    207 207
       ],
    
    208 208
       nested_types=[_DEVICE_PROPERTY, ],
    
    209 209
       enum_types=[
    
    210 210
       ],
    
    211
    -  options=None,
    
    211
    +  serialized_options=None,
    
    212 212
       is_extendable=False,
    
    213 213
       syntax='proto3',
    
    214 214
       extension_ranges=[],
    
    ... ... @@ -268,6 +268,5 @@ _sym_db.RegisterMessage(Device)
    268 268
     _sym_db.RegisterMessage(Device.Property)
    
    269 269
     
    
    270 270
     
    
    271
    -DESCRIPTOR.has_options = True
    
    272
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n)com.google.devtools.remoteworkers.v1test2B\023RemoteWorkersWorkerP\001ZRgoogle.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2;remoteworkers\242\002\002RW\252\002%Google.DevTools.RemoteWorkers.V1Test2'))
    
    271
    +DESCRIPTOR._options = None
    
    273 272
     # @@protoc_insertion_point(module_scope)

  • buildgrid/_protos/google/longrunning/operations_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -23,6 +22,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    23 22
       name='google/longrunning/operations.proto',
    
    24 23
       package='google.longrunning',
    
    25 24
       syntax='proto3',
    
    25
    +  serialized_options=_b('\n\026com.google.longrunningB\017OperationsProtoP\001Z=google.golang.org/genproto/googleapis/longrunning;longrunning\252\002\022Google.LongRunning\312\002\022Google\\LongRunning'),
    
    26 26
       serialized_pb=_b('\n#google/longrunning/operations.proto\x12\x12google.longrunning\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/protobuf/any.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x17google/rpc/status.proto\"\xa8\x01\n\tOperation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12&\n\x08metadata\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x0c\n\x04\x64one\x18\x03 \x01(\x08\x12#\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusH\x00\x12(\n\x08response\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x08\n\x06result\"#\n\x13GetOperationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\\\n\x15ListOperationsRequest\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"d\n\x16ListOperationsResponse\x12\x31\n\noperations\x18\x01 \x03(\x0b\x32\x1d.google.longrunning.Operation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"&\n\x16\x43\x61ncelOperationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"&\n\x16\x44\x65leteOperationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t2\x8c\x04\n\nOperations\x12\x86\x01\n\x0eListOperations\x12).google.longrunning.ListOperationsRequest\x1a*.google.longrunning.ListOperationsResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/v1/{name=operations}\x12x\n\x0cGetOperation\x12\'.google.longrunning.GetOperationRequest\x1a\x1d.google.longrunning.Operation\" \x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=operations/**}\x12w\n\x0f\x44\x65leteOperation\x12*.google.longrunning.DeleteOperationRequest\x1a\x16.google.protobuf.Empty\" \x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=operations/**}\x12\x81\x01\n\x0f\x43\x61ncelOperation\x12*.google.longrunning.CancelOperationRequest\x1a\x16.google.protobuf.Empty\"*\x82\xd3\xe4\x93\x02$\"\x1f/v1/{name=operations/**}:cancel:\x01*B\x94\x01\n\x16\x63om.google.longrunningB\x0fOperationsProtoP\x01Z=google.golang.org/genproto/googleapis/longrunning;longrunning\xaa\x02\x12Google.LongRunning\xca\x02\x12Google\\LongRunningb\x06proto3')
    
    27 27
       ,
    
    28 28
       dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,])
    
    ... ... @@ -43,42 +43,42 @@ _OPERATION = _descriptor.Descriptor(
    43 43
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    44 44
           message_type=None, enum_type=None, containing_type=None,
    
    45 45
           is_extension=False, extension_scope=None,
    
    46
    -      options=None, file=DESCRIPTOR),
    
    46
    +      serialized_options=None, file=DESCRIPTOR),
    
    47 47
         _descriptor.FieldDescriptor(
    
    48 48
           name='metadata', full_name='google.longrunning.Operation.metadata', index=1,
    
    49 49
           number=2, type=11, cpp_type=10, label=1,
    
    50 50
           has_default_value=False, default_value=None,
    
    51 51
           message_type=None, enum_type=None, containing_type=None,
    
    52 52
           is_extension=False, extension_scope=None,
    
    53
    -      options=None, file=DESCRIPTOR),
    
    53
    +      serialized_options=None, file=DESCRIPTOR),
    
    54 54
         _descriptor.FieldDescriptor(
    
    55 55
           name='done', full_name='google.longrunning.Operation.done', index=2,
    
    56 56
           number=3, type=8, cpp_type=7, label=1,
    
    57 57
           has_default_value=False, default_value=False,
    
    58 58
           message_type=None, enum_type=None, containing_type=None,
    
    59 59
           is_extension=False, extension_scope=None,
    
    60
    -      options=None, file=DESCRIPTOR),
    
    60
    +      serialized_options=None, file=DESCRIPTOR),
    
    61 61
         _descriptor.FieldDescriptor(
    
    62 62
           name='error', full_name='google.longrunning.Operation.error', index=3,
    
    63 63
           number=4, type=11, cpp_type=10, label=1,
    
    64 64
           has_default_value=False, default_value=None,
    
    65 65
           message_type=None, enum_type=None, containing_type=None,
    
    66 66
           is_extension=False, extension_scope=None,
    
    67
    -      options=None, file=DESCRIPTOR),
    
    67
    +      serialized_options=None, file=DESCRIPTOR),
    
    68 68
         _descriptor.FieldDescriptor(
    
    69 69
           name='response', full_name='google.longrunning.Operation.response', index=4,
    
    70 70
           number=5, type=11, cpp_type=10, label=1,
    
    71 71
           has_default_value=False, default_value=None,
    
    72 72
           message_type=None, enum_type=None, containing_type=None,
    
    73 73
           is_extension=False, extension_scope=None,
    
    74
    -      options=None, file=DESCRIPTOR),
    
    74
    +      serialized_options=None, file=DESCRIPTOR),
    
    75 75
       ],
    
    76 76
       extensions=[
    
    77 77
       ],
    
    78 78
       nested_types=[],
    
    79 79
       enum_types=[
    
    80 80
       ],
    
    81
    -  options=None,
    
    81
    +  serialized_options=None,
    
    82 82
       is_extendable=False,
    
    83 83
       syntax='proto3',
    
    84 84
       extension_ranges=[],
    
    ... ... @@ -105,14 +105,14 @@ _GETOPERATIONREQUEST = _descriptor.Descriptor(
    105 105
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    106 106
           message_type=None, enum_type=None, containing_type=None,
    
    107 107
           is_extension=False, extension_scope=None,
    
    108
    -      options=None, file=DESCRIPTOR),
    
    108
    +      serialized_options=None, file=DESCRIPTOR),
    
    109 109
       ],
    
    110 110
       extensions=[
    
    111 111
       ],
    
    112 112
       nested_types=[],
    
    113 113
       enum_types=[
    
    114 114
       ],
    
    115
    -  options=None,
    
    115
    +  serialized_options=None,
    
    116 116
       is_extendable=False,
    
    117 117
       syntax='proto3',
    
    118 118
       extension_ranges=[],
    
    ... ... @@ -136,35 +136,35 @@ _LISTOPERATIONSREQUEST = _descriptor.Descriptor(
    136 136
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    137 137
           message_type=None, enum_type=None, containing_type=None,
    
    138 138
           is_extension=False, extension_scope=None,
    
    139
    -      options=None, file=DESCRIPTOR),
    
    139
    +      serialized_options=None, file=DESCRIPTOR),
    
    140 140
         _descriptor.FieldDescriptor(
    
    141 141
           name='filter', full_name='google.longrunning.ListOperationsRequest.filter', index=1,
    
    142 142
           number=1, type=9, cpp_type=9, label=1,
    
    143 143
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    144 144
           message_type=None, enum_type=None, containing_type=None,
    
    145 145
           is_extension=False, extension_scope=None,
    
    146
    -      options=None, file=DESCRIPTOR),
    
    146
    +      serialized_options=None, file=DESCRIPTOR),
    
    147 147
         _descriptor.FieldDescriptor(
    
    148 148
           name='page_size', full_name='google.longrunning.ListOperationsRequest.page_size', index=2,
    
    149 149
           number=2, type=5, cpp_type=1, label=1,
    
    150 150
           has_default_value=False, default_value=0,
    
    151 151
           message_type=None, enum_type=None, containing_type=None,
    
    152 152
           is_extension=False, extension_scope=None,
    
    153
    -      options=None, file=DESCRIPTOR),
    
    153
    +      serialized_options=None, file=DESCRIPTOR),
    
    154 154
         _descriptor.FieldDescriptor(
    
    155 155
           name='page_token', full_name='google.longrunning.ListOperationsRequest.page_token', index=3,
    
    156 156
           number=3, type=9, cpp_type=9, label=1,
    
    157 157
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    158 158
           message_type=None, enum_type=None, containing_type=None,
    
    159 159
           is_extension=False, extension_scope=None,
    
    160
    -      options=None, file=DESCRIPTOR),
    
    160
    +      serialized_options=None, file=DESCRIPTOR),
    
    161 161
       ],
    
    162 162
       extensions=[
    
    163 163
       ],
    
    164 164
       nested_types=[],
    
    165 165
       enum_types=[
    
    166 166
       ],
    
    167
    -  options=None,
    
    167
    +  serialized_options=None,
    
    168 168
       is_extendable=False,
    
    169 169
       syntax='proto3',
    
    170 170
       extension_ranges=[],
    
    ... ... @@ -188,21 +188,21 @@ _LISTOPERATIONSRESPONSE = _descriptor.Descriptor(
    188 188
           has_default_value=False, default_value=[],
    
    189 189
           message_type=None, enum_type=None, containing_type=None,
    
    190 190
           is_extension=False, extension_scope=None,
    
    191
    -      options=None, file=DESCRIPTOR),
    
    191
    +      serialized_options=None, file=DESCRIPTOR),
    
    192 192
         _descriptor.FieldDescriptor(
    
    193 193
           name='next_page_token', full_name='google.longrunning.ListOperationsResponse.next_page_token', index=1,
    
    194 194
           number=2, type=9, cpp_type=9, label=1,
    
    195 195
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    196 196
           message_type=None, enum_type=None, containing_type=None,
    
    197 197
           is_extension=False, extension_scope=None,
    
    198
    -      options=None, file=DESCRIPTOR),
    
    198
    +      serialized_options=None, file=DESCRIPTOR),
    
    199 199
       ],
    
    200 200
       extensions=[
    
    201 201
       ],
    
    202 202
       nested_types=[],
    
    203 203
       enum_types=[
    
    204 204
       ],
    
    205
    -  options=None,
    
    205
    +  serialized_options=None,
    
    206 206
       is_extendable=False,
    
    207 207
       syntax='proto3',
    
    208 208
       extension_ranges=[],
    
    ... ... @@ -226,14 +226,14 @@ _CANCELOPERATIONREQUEST = _descriptor.Descriptor(
    226 226
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    227 227
           message_type=None, enum_type=None, containing_type=None,
    
    228 228
           is_extension=False, extension_scope=None,
    
    229
    -      options=None, file=DESCRIPTOR),
    
    229
    +      serialized_options=None, file=DESCRIPTOR),
    
    230 230
       ],
    
    231 231
       extensions=[
    
    232 232
       ],
    
    233 233
       nested_types=[],
    
    234 234
       enum_types=[
    
    235 235
       ],
    
    236
    -  options=None,
    
    236
    +  serialized_options=None,
    
    237 237
       is_extendable=False,
    
    238 238
       syntax='proto3',
    
    239 239
       extension_ranges=[],
    
    ... ... @@ -257,14 +257,14 @@ _DELETEOPERATIONREQUEST = _descriptor.Descriptor(
    257 257
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    258 258
           message_type=None, enum_type=None, containing_type=None,
    
    259 259
           is_extension=False, extension_scope=None,
    
    260
    -      options=None, file=DESCRIPTOR),
    
    260
    +      serialized_options=None, file=DESCRIPTOR),
    
    261 261
       ],
    
    262 262
       extensions=[
    
    263 263
       ],
    
    264 264
       nested_types=[],
    
    265 265
       enum_types=[
    
    266 266
       ],
    
    267
    -  options=None,
    
    267
    +  serialized_options=None,
    
    268 268
       is_extendable=False,
    
    269 269
       syntax='proto3',
    
    270 270
       extension_ranges=[],
    
    ... ... @@ -335,15 +335,14 @@ DeleteOperationRequest = _reflection.GeneratedProtocolMessageType('DeleteOperati
    335 335
     _sym_db.RegisterMessage(DeleteOperationRequest)
    
    336 336
     
    
    337 337
     
    
    338
    -DESCRIPTOR.has_options = True
    
    339
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\026com.google.longrunningB\017OperationsProtoP\001Z=google.golang.org/genproto/googleapis/longrunning;longrunning\252\002\022Google.LongRunning\312\002\022Google\\LongRunning'))
    
    338
    +DESCRIPTOR._options = None
    
    340 339
     
    
    341 340
     _OPERATIONS = _descriptor.ServiceDescriptor(
    
    342 341
       name='Operations',
    
    343 342
       full_name='google.longrunning.Operations',
    
    344 343
       file=DESCRIPTOR,
    
    345 344
       index=0,
    
    346
    -  options=None,
    
    345
    +  serialized_options=None,
    
    347 346
       serialized_start=655,
    
    348 347
       serialized_end=1179,
    
    349 348
       methods=[
    
    ... ... @@ -354,7 +353,7 @@ _OPERATIONS = _descriptor.ServiceDescriptor(
    354 353
         containing_service=None,
    
    355 354
         input_type=_LISTOPERATIONSREQUEST,
    
    356 355
         output_type=_LISTOPERATIONSRESPONSE,
    
    357
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\027\022\025/v1/{name=operations}')),
    
    356
    +    serialized_options=_b('\202\323\344\223\002\027\022\025/v1/{name=operations}'),
    
    358 357
       ),
    
    359 358
       _descriptor.MethodDescriptor(
    
    360 359
         name='GetOperation',
    
    ... ... @@ -363,7 +362,7 @@ _OPERATIONS = _descriptor.ServiceDescriptor(
    363 362
         containing_service=None,
    
    364 363
         input_type=_GETOPERATIONREQUEST,
    
    365 364
         output_type=_OPERATION,
    
    366
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\032\022\030/v1/{name=operations/**}')),
    
    365
    +    serialized_options=_b('\202\323\344\223\002\032\022\030/v1/{name=operations/**}'),
    
    367 366
       ),
    
    368 367
       _descriptor.MethodDescriptor(
    
    369 368
         name='DeleteOperation',
    
    ... ... @@ -372,7 +371,7 @@ _OPERATIONS = _descriptor.ServiceDescriptor(
    372 371
         containing_service=None,
    
    373 372
         input_type=_DELETEOPERATIONREQUEST,
    
    374 373
         output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    
    375
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\032*\030/v1/{name=operations/**}')),
    
    374
    +    serialized_options=_b('\202\323\344\223\002\032*\030/v1/{name=operations/**}'),
    
    376 375
       ),
    
    377 376
       _descriptor.MethodDescriptor(
    
    378 377
         name='CancelOperation',
    
    ... ... @@ -381,7 +380,7 @@ _OPERATIONS = _descriptor.ServiceDescriptor(
    381 380
         containing_service=None,
    
    382 381
         input_type=_CANCELOPERATIONREQUEST,
    
    383 382
         output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    
    384
    -    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002$\"\037/v1/{name=operations/**}:cancel:\001*')),
    
    383
    +    serialized_options=_b('\202\323\344\223\002$\"\037/v1/{name=operations/**}:cancel:\001*'),
    
    385 384
       ),
    
    386 385
     ])
    
    387 386
     _sym_db.RegisterServiceDescriptor(_OPERATIONS)
    

  • buildgrid/_protos/google/rpc/code_pb2.py
    ... ... @@ -8,7 +8,6 @@ from google.protobuf import descriptor as _descriptor
    8 8
     from google.protobuf import message as _message
    
    9 9
     from google.protobuf import reflection as _reflection
    
    10 10
     from google.protobuf import symbol_database as _symbol_database
    
    11
    -from google.protobuf import descriptor_pb2
    
    12 11
     # @@protoc_insertion_point(imports)
    
    13 12
     
    
    14 13
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -20,6 +19,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    20 19
       name='google/rpc/code.proto',
    
    21 20
       package='google.rpc',
    
    22 21
       syntax='proto3',
    
    22
    +  serialized_options=_b('\n\016com.google.rpcB\tCodeProtoP\001Z3google.golang.org/genproto/googleapis/rpc/code;code\242\002\003RPC'),
    
    23 23
       serialized_pb=_b('\n\x15google/rpc/code.proto\x12\ngoogle.rpc*\xb7\x02\n\x04\x43ode\x12\x06\n\x02OK\x10\x00\x12\r\n\tCANCELLED\x10\x01\x12\x0b\n\x07UNKNOWN\x10\x02\x12\x14\n\x10INVALID_ARGUMENT\x10\x03\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x04\x12\r\n\tNOT_FOUND\x10\x05\x12\x12\n\x0e\x41LREADY_EXISTS\x10\x06\x12\x15\n\x11PERMISSION_DENIED\x10\x07\x12\x13\n\x0fUNAUTHENTICATED\x10\x10\x12\x16\n\x12RESOURCE_EXHAUSTED\x10\x08\x12\x17\n\x13\x46\x41ILED_PRECONDITION\x10\t\x12\x0b\n\x07\x41\x42ORTED\x10\n\x12\x10\n\x0cOUT_OF_RANGE\x10\x0b\x12\x11\n\rUNIMPLEMENTED\x10\x0c\x12\x0c\n\x08INTERNAL\x10\r\x12\x0f\n\x0bUNAVAILABLE\x10\x0e\x12\r\n\tDATA_LOSS\x10\x0f\x42X\n\x0e\x63om.google.rpcB\tCodeProtoP\x01Z3google.golang.org/genproto/googleapis/rpc/code;code\xa2\x02\x03RPCb\x06proto3')
    
    24 24
     )
    
    25 25
     
    
    ... ... @@ -31,75 +31,75 @@ _CODE = _descriptor.EnumDescriptor(
    31 31
       values=[
    
    32 32
         _descriptor.EnumValueDescriptor(
    
    33 33
           name='OK', index=0, number=0,
    
    34
    -      options=None,
    
    34
    +      serialized_options=None,
    
    35 35
           type=None),
    
    36 36
         _descriptor.EnumValueDescriptor(
    
    37 37
           name='CANCELLED', index=1, number=1,
    
    38
    -      options=None,
    
    38
    +      serialized_options=None,
    
    39 39
           type=None),
    
    40 40
         _descriptor.EnumValueDescriptor(
    
    41 41
           name='UNKNOWN', index=2, number=2,
    
    42
    -      options=None,
    
    42
    +      serialized_options=None,
    
    43 43
           type=None),
    
    44 44
         _descriptor.EnumValueDescriptor(
    
    45 45
           name='INVALID_ARGUMENT', index=3, number=3,
    
    46
    -      options=None,
    
    46
    +      serialized_options=None,
    
    47 47
           type=None),
    
    48 48
         _descriptor.EnumValueDescriptor(
    
    49 49
           name='DEADLINE_EXCEEDED', index=4, number=4,
    
    50
    -      options=None,
    
    50
    +      serialized_options=None,
    
    51 51
           type=None),
    
    52 52
         _descriptor.EnumValueDescriptor(
    
    53 53
           name='NOT_FOUND', index=5, number=5,
    
    54
    -      options=None,
    
    54
    +      serialized_options=None,
    
    55 55
           type=None),
    
    56 56
         _descriptor.EnumValueDescriptor(
    
    57 57
           name='ALREADY_EXISTS', index=6, number=6,
    
    58
    -      options=None,
    
    58
    +      serialized_options=None,
    
    59 59
           type=None),
    
    60 60
         _descriptor.EnumValueDescriptor(
    
    61 61
           name='PERMISSION_DENIED', index=7, number=7,
    
    62
    -      options=None,
    
    62
    +      serialized_options=None,
    
    63 63
           type=None),
    
    64 64
         _descriptor.EnumValueDescriptor(
    
    65 65
           name='UNAUTHENTICATED', index=8, number=16,
    
    66
    -      options=None,
    
    66
    +      serialized_options=None,
    
    67 67
           type=None),
    
    68 68
         _descriptor.EnumValueDescriptor(
    
    69 69
           name='RESOURCE_EXHAUSTED', index=9, number=8,
    
    70
    -      options=None,
    
    70
    +      serialized_options=None,
    
    71 71
           type=None),
    
    72 72
         _descriptor.EnumValueDescriptor(
    
    73 73
           name='FAILED_PRECONDITION', index=10, number=9,
    
    74
    -      options=None,
    
    74
    +      serialized_options=None,
    
    75 75
           type=None),
    
    76 76
         _descriptor.EnumValueDescriptor(
    
    77 77
           name='ABORTED', index=11, number=10,
    
    78
    -      options=None,
    
    78
    +      serialized_options=None,
    
    79 79
           type=None),
    
    80 80
         _descriptor.EnumValueDescriptor(
    
    81 81
           name='OUT_OF_RANGE', index=12, number=11,
    
    82
    -      options=None,
    
    82
    +      serialized_options=None,
    
    83 83
           type=None),
    
    84 84
         _descriptor.EnumValueDescriptor(
    
    85 85
           name='UNIMPLEMENTED', index=13, number=12,
    
    86
    -      options=None,
    
    86
    +      serialized_options=None,
    
    87 87
           type=None),
    
    88 88
         _descriptor.EnumValueDescriptor(
    
    89 89
           name='INTERNAL', index=14, number=13,
    
    90
    -      options=None,
    
    90
    +      serialized_options=None,
    
    91 91
           type=None),
    
    92 92
         _descriptor.EnumValueDescriptor(
    
    93 93
           name='UNAVAILABLE', index=15, number=14,
    
    94
    -      options=None,
    
    94
    +      serialized_options=None,
    
    95 95
           type=None),
    
    96 96
         _descriptor.EnumValueDescriptor(
    
    97 97
           name='DATA_LOSS', index=16, number=15,
    
    98
    -      options=None,
    
    98
    +      serialized_options=None,
    
    99 99
           type=None),
    
    100 100
       ],
    
    101 101
       containing_type=None,
    
    102
    -  options=None,
    
    102
    +  serialized_options=None,
    
    103 103
       serialized_start=38,
    
    104 104
       serialized_end=349,
    
    105 105
     )
    
    ... ... @@ -129,6 +129,5 @@ DESCRIPTOR.enum_types_by_name['Code'] = _CODE
    129 129
     _sym_db.RegisterFileDescriptor(DESCRIPTOR)
    
    130 130
     
    
    131 131
     
    
    132
    -DESCRIPTOR.has_options = True
    
    133
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\016com.google.rpcB\tCodeProtoP\001Z3google.golang.org/genproto/googleapis/rpc/code;code\242\002\003RPC'))
    
    132
    +DESCRIPTOR._options = None
    
    134 133
     # @@protoc_insertion_point(module_scope)

  • buildgrid/_protos/google/rpc/status_pb2.py
    ... ... @@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
    7 7
     from google.protobuf import message as _message
    
    8 8
     from google.protobuf import reflection as _reflection
    
    9 9
     from google.protobuf import symbol_database as _symbol_database
    
    10
    -from google.protobuf import descriptor_pb2
    
    11 10
     # @@protoc_insertion_point(imports)
    
    12 11
     
    
    13 12
     _sym_db = _symbol_database.Default()
    
    ... ... @@ -20,6 +19,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
    20 19
       name='google/rpc/status.proto',
    
    21 20
       package='google.rpc',
    
    22 21
       syntax='proto3',
    
    22
    +  serialized_options=_b('\n\016com.google.rpcB\013StatusProtoP\001Z7google.golang.org/genproto/googleapis/rpc/status;status\242\002\003RPC'),
    
    23 23
       serialized_pb=_b('\n\x17google/rpc/status.proto\x12\ngoogle.rpc\x1a\x19google/protobuf/any.proto\"N\n\x06Status\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12%\n\x07\x64\x65tails\x18\x03 \x03(\x0b\x32\x14.google.protobuf.AnyB^\n\x0e\x63om.google.rpcB\x0bStatusProtoP\x01Z7google.golang.org/genproto/googleapis/rpc/status;status\xa2\x02\x03RPCb\x06proto3')
    
    24 24
       ,
    
    25 25
       dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])
    
    ... ... @@ -40,28 +40,28 @@ _STATUS = _descriptor.Descriptor(
    40 40
           has_default_value=False, default_value=0,
    
    41 41
           message_type=None, enum_type=None, containing_type=None,
    
    42 42
           is_extension=False, extension_scope=None,
    
    43
    -      options=None, file=DESCRIPTOR),
    
    43
    +      serialized_options=None, file=DESCRIPTOR),
    
    44 44
         _descriptor.FieldDescriptor(
    
    45 45
           name='message', full_name='google.rpc.Status.message', index=1,
    
    46 46
           number=2, type=9, cpp_type=9, label=1,
    
    47 47
           has_default_value=False, default_value=_b("").decode('utf-8'),
    
    48 48
           message_type=None, enum_type=None, containing_type=None,
    
    49 49
           is_extension=False, extension_scope=None,
    
    50
    -      options=None, file=DESCRIPTOR),
    
    50
    +      serialized_options=None, file=DESCRIPTOR),
    
    51 51
         _descriptor.FieldDescriptor(
    
    52 52
           name='details', full_name='google.rpc.Status.details', index=2,
    
    53 53
           number=3, type=11, cpp_type=10, label=3,
    
    54 54
           has_default_value=False, default_value=[],
    
    55 55
           message_type=None, enum_type=None, containing_type=None,
    
    56 56
           is_extension=False, extension_scope=None,
    
    57
    -      options=None, file=DESCRIPTOR),
    
    57
    +      serialized_options=None, file=DESCRIPTOR),
    
    58 58
       ],
    
    59 59
       extensions=[
    
    60 60
       ],
    
    61 61
       nested_types=[],
    
    62 62
       enum_types=[
    
    63 63
       ],
    
    64
    -  options=None,
    
    64
    +  serialized_options=None,
    
    65 65
       is_extendable=False,
    
    66 66
       syntax='proto3',
    
    67 67
       extension_ranges=[],
    
    ... ... @@ -83,6 +83,5 @@ Status = _reflection.GeneratedProtocolMessageType('Status', (_message.Message,),
    83 83
     _sym_db.RegisterMessage(Status)
    
    84 84
     
    
    85 85
     
    
    86
    -DESCRIPTOR.has_options = True
    
    87
    -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\016com.google.rpcB\013StatusProtoP\001Z7google.golang.org/genproto/googleapis/rpc/status;status\242\002\003RPC'))
    
    86
    +DESCRIPTOR._options = None
    
    88 87
     # @@protoc_insertion_point(module_scope)

  • docs/source/architecture.rst
    1
    +.. _architecture:
    
    2
    +
    
    3
    +Architecture
    
    4
    +============
    
    5
    +
    
    6
    +This section provides details of the overall BuildGrid architecture.
    
    7
    +
    
    8
    +.. toctree::
    
    9
    +   :maxdepth: 3
    
    10
    +
    
    11
    +   architecture_overview.rst
    \ No newline at end of file

  • docs/source/architecture_overview.rst
    1
    +.. _architecture-overview:
    
    2
    +
    
    3
    +Remote execution overview
    
    4
    +=========================
    
    5
    +
    
    6
    +Remote execution aims to speed up a build process and to rely on two separate
    
    7
    +but related concepts that are remote caching and remote execution itself. Remote
    
    8
    +caching allows users to share build outputs while remote execution allows the running
    
    9
    +of operations on a remote cluster of machines which may be more powerful than what
    
    10
    +the user has access to locally.
    
    11
    +
    
    12
    +The `Remote Execution API`_ (REAPI) describes a `gRPC`_ + `protocol-buffers`_
    
    13
    +interface that has three main services for remote caching and execution:
    
    14
    +
    
    15
    +- A ``ContentAddressableStorage`` (CAS) service: a remote storage end-point
    
    16
    +  where content is addressed by digests, a digest being a pair of the hash and
    
    17
    +  size of the data stored or retrieved.
    
    18
    +- An ``ActionCache`` (AC) service: a mapping between build actions already
    
    19
    +  performed and their corresponding resulting artifact.
    
    20
    +- An ``Execution`` service: the main end-point allowing one to request build
    
    21
    +  job to be perform against the build farm.
    
    22
    +
    
    23
    +The `Remote Worker API`_ (RWAPI) describes another `gRPC`_ + `protocol-buffers`_
    
    24
    +interface that allows a central ``BotsService`` to manage a farm of pluggable workers.
    
    25
    +
    
    26
    +BuildGrid is combining these two interfaces in order to provide a complete
    
    27
    +remote caching and execution service. The high level architecture can be
    
    28
    +represented like this:
    
    29
    +
    
    30
    +.. graphviz::
    
    31
    +   :align: center
    
    32
    +
    
    33
    +    digraph remote_execution_overview {
    
    34
    +	node [shape = record,
    
    35
    +	      width=2,
    
    36
    +	      height=1];
    
    37
    +
    
    38
    +	ranksep = 2
    
    39
    +	compound=true
    
    40
    +	edge[arrowtail="vee"];
    
    41
    +	edge[arrowhead="vee"];
    
    42
    +
    
    43
    +	client [label = "Client",
    
    44
    +	color="#0342af",
    
    45
    +	fillcolor="#37c1e8",
    
    46
    +	style=filled,
    
    47
    +	shape=box]
    
    48
    +
    
    49
    +	subgraph cluster_controller{
    
    50
    +	    label = "Controller";
    
    51
    +	    labeljust = "c";
    
    52
    +	    fillcolor="#42edae";
    
    53
    +	    style=filled;
    
    54
    +	    controller [label = "{ExecutionService|BotsInterface\n}",
    
    55
    +			fillcolor="#17e86a",
    
    56
    +			style=filled];
    
    57
    +
    
    58
    +	}
    
    59
    +
    
    60
    +	subgraph cluster_worker0 {
    
    61
    +	    label = "Worker 1";
    
    62
    +	    labeljust = "c";
    
    63
    +	    color="#8e7747";
    
    64
    +	    fillcolor="#ffda8e";
    
    65
    +	    style=filled;
    
    66
    +	    bot0 [label = "{Bot|Host-tools}"
    
    67
    +		  fillcolor="#ffb214",
    
    68
    +		  style=filled];
    
    69
    +	}
    
    70
    +
    
    71
    +	subgraph cluster_worker1 {
    
    72
    +	    label = "Worker 2";
    
    73
    +	    labeljust = "c";
    
    74
    +	    color="#8e7747";
    
    75
    +	    fillcolor="#ffda8e";
    
    76
    +	    style=filled;
    
    77
    +	    bot1 [label = "{Bot|BuildBox}",
    
    78
    +		  fillcolor="#ffb214",
    
    79
    +		  style=filled];
    
    80
    +	}
    
    81
    +
    
    82
    +	client -> controller [
    
    83
    +	    dir = "both",
    
    84
    +	    headlabel = "REAPI",
    
    85
    +	    labelangle = 20.0,
    
    86
    +	    labeldistance = 9,
    
    87
    +	    labelfontsize = 15.0,
    
    88
    +	    lhead=cluster_controller];
    
    89
    +
    
    90
    +	controller -> bot0 [
    
    91
    +	    dir = "both",
    
    92
    +	    labelangle= 340.0,
    
    93
    +		labeldistance = 7.5,
    
    94
    +		labelfontsize = 15.0,
    
    95
    +	    taillabel = "RWAPI     ",
    
    96
    +	    lhead=cluster_worker0,
    
    97
    +	    ltail=cluster_controller];
    
    98
    +
    
    99
    +	controller -> bot1 [
    
    100
    +	    dir = "both",
    
    101
    +	    labelangle= 20.0,
    
    102
    +	    labeldistance = 7.5,
    
    103
    +	    labelfontsize = 15.0,
    
    104
    +		taillabel = "     RWAPI",
    
    105
    +	    lhead=cluster_worker1,
    
    106
    +	    ltail=cluster_controller];
    
    107
    +
    
    108
    +    }
    
    109
    +
    
    110
    +BuildGrid can be split up into separate endpoints. It is possible to have
    
    111
    +a separate ``ActionCache`` and the ``CAS`` from the ``Controller``. The
    
    112
    +following diagram shows a typical setup.
    
    113
    +
    
    114
    +.. graphviz::
    
    115
    +   :align: center
    
    116
    +
    
    117
    +    digraph remote_execution_overview {
    
    118
    +
    
    119
    +	node [shape=record,
    
    120
    +	      width=2,
    
    121
    +	      height=1];
    
    122
    +
    
    123
    +	// rank=same actioncache controller cas
    
    124
    +	compound=true
    
    125
    +	graph [nodesep=1,
    
    126
    +	       ranksep=2]
    
    127
    +
    
    128
    +	edge[arrowtail="vee"];
    
    129
    +	edge[arrowhead="vee"];
    
    130
    +
    
    131
    +	client [label="Client",
    
    132
    +		color="#0342af",
    
    133
    +		fillcolor="#37c1e8",
    
    134
    +		style=filled,
    
    135
    +		shape=box]
    
    136
    +
    
    137
    +	cas [label="CAS",
    
    138
    +	     color="#840202",
    
    139
    +	     fillcolor="#c1034c",
    
    140
    +	     style=filled,
    
    141
    +	     shape=box]
    
    142
    +
    
    143
    +	subgraph cluster_controller{
    
    144
    +	    label="Controller";
    
    145
    +	    labeljust="c";
    
    146
    +	    fillcolor="#42edae";
    
    147
    +	    style=filled;
    
    148
    +	    controller [label="{ExecutionService|BotsInterface\n}",
    
    149
    +			fillcolor="#17e86a",
    
    150
    +			style=filled];
    
    151
    +
    
    152
    +	}
    
    153
    +
    
    154
    +	actioncache [label="ActionCache",
    
    155
    +		     color="#133f42",
    
    156
    +		     fillcolor="#219399",
    
    157
    +		     style=filled,
    
    158
    +		     shape=box]
    
    159
    +
    
    160
    +	subgraph cluster_worker0 {
    
    161
    +	    label="Worker";
    
    162
    +	    labeljust="c";
    
    163
    +	    color="#8e7747";
    
    164
    +	    fillcolor="#ffda8e";
    
    165
    +	    style=filled;
    
    166
    +	    bot0 [label="{Bot}"
    
    167
    +		  fillcolor="#ffb214",
    
    168
    +		  style=filled];
    
    169
    +	}
    
    170
    +
    
    171
    +	client -> controller [
    
    172
    +	    dir="both"];
    
    173
    +
    
    174
    +	client -> cas [
    
    175
    +	    dir="both",
    
    176
    +	    lhead=cluster_controller];
    
    177
    +
    
    178
    +	controller -> bot0 [
    
    179
    +	    dir="both",
    
    180
    +	    lhead=cluster_worker0];
    
    181
    +	    //ltail=cluster_controller];
    
    182
    +
    
    183
    +	cas -> bot0 [
    
    184
    +	    dir="both",
    
    185
    +	    lhead=cluster_worker0];
    
    186
    +
    
    187
    +	actioncache -> controller [
    
    188
    +	    dir="both"];
    
    189
    +
    
    190
    +	client -> actioncache [
    
    191
    +	    dir="both",
    
    192
    +	    constraint=false,
    
    193
    +    ];
    
    194
    +
    
    195
    +
    
    196
    +    }
    
    197
    +
    
    198
    +.. _Remote Execution API: https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/execution/v2
    
    199
    +.. _gRPC: https://grpc.io
    
    200
    +.. _protocol-buffers: https://developers.google.com/protocol-buffers
    
    201
    +.. _Remote Worker API: https://github.com/googleapis/googleapis/tree/master/google/devtools/remoteworkers/v1test2

  • docs/source/conf.py
    ... ... @@ -46,7 +46,8 @@ extensions = [
    46 46
         'sphinx.ext.autodoc',
    
    47 47
         'sphinx.ext.napoleon',
    
    48 48
         'sphinx_click.ext',
    
    49
    -    'sphinxcontrib.apidoc'
    
    49
    +    'sphinxcontrib.apidoc',
    
    50
    +    'sphinx.ext.graphviz',
    
    50 51
     ]
    
    51 52
     
    
    52 53
     # Add any paths that contain templates here, relative to this directory.
    

  • docs/source/faq.rst
    1
    +.. _faq:
    
    2
    +
    
    3
    +FAQ
    
    4
    +===
    
    5
    +
    
    6
    +Q. Which clients are currently supported?
    
    7
    +R. Currently we support `BuildStream`_, `Bazel`_ and `RECC`_. Though any client which implements v2 of the `Remote Execution API`_ should be supported.
    
    8
    +
    
    9
    +Q. Where can I get the most up to date information?
    
    10
    +R. We have a `mailing list`_ you can sign up to and a `slack channel`_ you can join.
    
    11
    +
    
    12
    +Q. Help! This feature isn't working!?!
    
    13
    +R. Please `raise`_ an issue or ask us on the `slack channel`_ for some help.
    
    14
    +
    
    15
    +Q. Can I have feature XYZ? I've made a cool thing, can I have it in BuildGrid?
    
    16
    +R. Check that a similar issue hasn't been raised already and then `raise`_ one yourself if it hasn't. From there we can discuss the feature. We would encourage you to contact the mailing list if you wish to implement a large feature so everyone aware of your idea. Then, create a `merge request`_. The worst we can do is politely decline your work, otherwise you're now officially a contributor! Have a quick read of the `contributing`_ guidelines before making your patch submission.
    
    17
    +
    
    18
    +Q. How do I install BuildGrid?
    
    19
    +R. Check out this `installation page`_.
    
    20
    +
    
    21
    +Q. How do I check on the status of a job?
    
    22
    +R. Using the command line tool you can simply list all the current jobs and select one for the status
    
    23
    +
    
    24
    +    .. code-block:: sh
    
    25
    +
    
    26
    +       bgd operation list
    
    27
    +       bgd operatation status <insert-operation-id>
    
    28
    +
    
    29
    +Q. How does CAS expiry work?
    
    30
    +R. We are working hard on automatic CAS expiry but until we have that, we recommend you regularly clean the CAS folder yourself.
    
    31
    +
    
    32
    +Q. What's the difference between a bot and a worker?
    
    33
    +R. A worker can be thought of but isn't limited to a physical machine. For example, it can be a collection of physical devices, docker images or a selected number of CPUs. The worker runs what we call a bot. This is a program that controls the worker; giving it actions to do, returning results to the central server and monitoring the status of the worker. The central server can communicate with a collection of bots via the `BotsInterface`.
    
    34
    +
    
    35
    +Q. Where can I find more information about the API?
    
    36
    +R. We recommend you read the proto files for the `Remote Execution API`_ and `Remote Workers API`_. There is a more `detailed document for the Remote Execution API`_ and another `detailed document for the Remote Workers API`_.
    
    37
    +
    
    38
    +Q. What's going on in the _proto folder?
    
    39
    +R. This project uses gRPC and protocol buffers for network messaging. The .proto files are used to generate python modules which are then used in the project. See the `grpc guide`_ for more details.
    
    40
    +
    
    41
    +Q. How do I set up a BuildGrid?
    
    42
    +R. You can follow this guide to give you an understanding on basic usecases: :ref:`using`. There is also additional information on how to configure your Grid here: :ref:`parser`.
    
    43
    +
    
    44
    +
    
    45
    +.. _BuildStream: https://buildstream.build
    
    46
    +.. _Bazel: https://bazel.build/
    
    47
    +.. _RECC: https://gitlab.com/bloomberg/recc
    
    48
    +.. _Remote Execution API: https://gitlab.com/BuildGrid/buildgrid/blob/master/buildgrid/_protos/build/bazel/remote/execution/v2/remote_execution.proto
    
    49
    +.. _Remote Workers API: https://gitlab.com/BuildGrid/buildgrid/tree/master/buildgrid/_protos/google/devtools/remoteworkers/v1test2
    
    50
    +.. _mailing list: https://lists.buildgrid.build/cgi-bin/mailman/listinfo/buildgrid
    
    51
    +.. _slack channel: https://join.slack.com/t/buildteamworld/shared_invite/enQtMzkxNzE0MDMyMDY1LTRmZmM1OWE0OTFkMGE1YjU5Njc4ODEzYjc0MGMyOTM5ZTQ5MmE2YTQ1MzQwZDc5MWNhODY1ZmRkZTE4YjFhNjU
    
    52
    +.. _merge request: https://gitlab.com/BuildGrid/buildgrid/merge_requests
    
    53
    +.. _contributing: https://gitlab.com/BuildGrid/buildgrid/blob/master/CONTRIBUTING.rst
    
    54
    +.. _raise: https://gitlab.com/BuildGrid/buildgrid/issues
    
    55
    +.. _installation page: https://buildgrid.gitlab.io/buildgrid/installation.html
    
    56
    +.. _detailed document for the Remote Execution API: https://docs.google.com/document/d/1AaGk7fOPByEvpAbqeXIyE8HX_A3_axxNnvroblTZ_6s/
    
    57
    +.. _detailed document for the Remote Workers API: https://docs.google.com/document/d/1s_AzRRD2mdyktKUj2HWBn99rMg_3tcPvdjx3MPbFidU/
    
    58
    +.. _grpc guide: https://grpc.io/docs/guides/

  • docs/source/index.rst
    ... ... @@ -19,6 +19,7 @@ Remote execution service implementing Google's REAPI and RWAPI.
    19 19
        using.rst
    
    20 20
        reference.rst
    
    21 21
        contributing.rst
    
    22
    +   architecture.rst
    
    22 23
        resources.rst
    
    23 24
     
    
    24 25
     
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]