This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch jmac/googlecas_and_virtual_directories_1 in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 9c2b7903ce4a12464343cf0eca74207ecebb4cb0 Author: Jürg Billeter <[email protected]> AuthorDate: Thu Mar 15 08:14:48 2018 +0100 remote_execution.proto: Add proposed symlink support --- .../remoteexecution/v1test/remote_execution.proto | 27 +++- .../remoteexecution/v1test/remote_execution_pb2.py | 170 ++++++++++++++------- 2 files changed, 132 insertions(+), 65 deletions(-) diff --git a/google/devtools/remoteexecution/v1test/remote_execution.proto b/google/devtools/remoteexecution/v1test/remote_execution.proto index febe0cb..a1d8155 100644 --- a/google/devtools/remoteexecution/v1test/remote_execution.proto +++ b/google/devtools/remoteexecution/v1test/remote_execution.proto @@ -440,11 +440,12 @@ message Platform { } // A `Directory` represents a directory node in a file tree, containing zero or -// more children [FileNodes][google.devtools.remoteexecution.v1test.FileNode] -// and [DirectoryNodes][google.devtools.remoteexecution.v1test.DirectoryNode]. -// Each `Node` contains its name in the directory, the digest of its content -// (either a file blob or a `Directory` proto), as well as possibly some -// metadata about the file or directory. +// more children [FileNodes][google.devtools.remoteexecution.v1test.FileNode], +// [DirectoryNodes][google.devtools.remoteexecution.v1test.DirectoryNode] and +// [SymlinkNodes][google.devtools.remoteexecution.v1test.SymlinkNode]. +// Each `Node` contains its name in the directory, either the digest of its +// content (either a file blob or a `Directory` proto) or a symlink target, as +// well as possibly some metadata about the file or directory. // // In order to ensure that two equivalent directory trees hash to the same // value, the following restrictions MUST be obeyed when constructing a @@ -452,8 +453,8 @@ message Platform { // - Every child in the directory must have a path of exactly one segment. // Multiple levels of directory hierarchy may not be collapsed. // - Each child in the directory must have a unique path segment (file name). -// - The files and directories in the directory must each be sorted in -// lexicographical order by path. The path strings must be sorted by code +// - The files, directories, and symlinks in the directory must each be sorted +// in lexicographical order by path. The path strings must be sorted by code // point, equivalently, by UTF-8 bytes. // // A `Directory` that obeys the restrictions is said to be in canonical form. @@ -505,6 +506,9 @@ message Directory { // The subdirectories in the directory. repeated DirectoryNode directories = 2; + + // The symlinks in the directory. + repeated SymlinkNode symlinks = 3; } // A `FileNode` represents a single file and associated metadata. @@ -533,6 +537,15 @@ message DirectoryNode { Digest digest = 2; } +// A `SymlinkNode` represents a symbolic link. +message SymlinkNode { + // The name of the symlink. + string name = 1; + + // The target path of the symlink. + string target = 2; +} + // A content digest. A digest for a given blob consists of the size of the blob // and its hash. The hash algorithm to use is defined by the server, but servers // SHOULD use SHA-256. diff --git a/google/devtools/remoteexecution/v1test/remote_execution_pb2.py b/google/devtools/remoteexecution/v1test/remote_execution_pb2.py index 768950e..b45d4c9 100644 --- a/google/devtools/remoteexecution/v1test/remote_execution_pb2.py +++ b/google/devtools/remoteexecution/v1test/remote_execution_pb2.py @@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( name='google/devtools/remoteexecution/v1test/remote_execution.proto', package='google.devtools.remoteexecution.v1test', syntax='proto3', - serialized_pb=_b('\n=google/devtools/remoteexecution/v1test/remote_execution.proto\x12&google.devtools.remoteexecution.v1test\x1a\x1cgoogle/api/annotations.proto\x1a#google/longrunning/operations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\"\xd3\x02\n\x06\x41\x63tion\x12\x46\n\x0e\x63ommand_digest\x18\x01 \x01(\x0b\x32..google.devtools.remoteexecution.v1test.Digest\x12I\n\x11input_root_digest\x18\x02 \x01(\x0b\x32..google.devtools.remoteexecution.v1test.D [...] + serialized_pb=_b('\n=google/devtools/remoteexecution/v1test/remote_execution.proto\x12&google.devtools.remoteexecution.v1test\x1a\x1cgoogle/api/annotations.proto\x1a#google/longrunning/operations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\"\xd3\x02\n\x06\x41\x63tion\x12\x46\n\x0e\x63ommand_digest\x18\x01 \x01(\x0b\x32..google.devtools.remoteexecution.v1test.Digest\x12I\n\x11input_root_digest\x18\x02 \x01(\x0b\x32..google.devtools.remoteexecution.v1test.D [...] , dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_longrunning_dot_operations__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) @@ -58,8 +58,8 @@ _EXECUTEOPERATIONMETADATA_STAGE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=2996, - serialized_end=3075, + serialized_start=3112, + serialized_end=3191, ) _sym_db.RegisterEnumDescriptor(_EXECUTEOPERATIONMETADATA_STAGE) @@ -301,6 +301,13 @@ _DIRECTORY = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='symlinks', full_name='google.devtools.remoteexecution.v1test.Directory.symlinks', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -314,7 +321,7 @@ _DIRECTORY = _descriptor.Descriptor( oneofs=[ ], serialized_start=888, - serialized_end=1040, + serialized_end=1111, ) @@ -358,8 +365,8 @@ _FILENODE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1042, - serialized_end=1153, + serialized_start=1113, + serialized_end=1224, ) @@ -396,8 +403,46 @@ _DIRECTORYNODE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1155, - serialized_end=1248, + serialized_start=1226, + serialized_end=1319, +) + + +_SYMLINKNODE = _descriptor.Descriptor( + name='SymlinkNode', + full_name='google.devtools.remoteexecution.v1test.SymlinkNode', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='google.devtools.remoteexecution.v1test.SymlinkNode.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target', full_name='google.devtools.remoteexecution.v1test.SymlinkNode.target', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1321, + serialized_end=1364, ) @@ -434,8 +479,8 @@ _DIGEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1250, - serialized_end=1292, + serialized_start=1366, + serialized_end=1408, ) @@ -507,8 +552,8 @@ _ACTIONRESULT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1295, - serialized_end=1669, + serialized_start=1411, + serialized_end=1785, ) @@ -559,8 +604,8 @@ _OUTPUTFILE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1672, - serialized_end=1802, + serialized_start=1788, + serialized_end=1918, ) @@ -597,8 +642,8 @@ _TREE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1805, - serialized_end=1945, + serialized_start=1921, + serialized_end=2061, ) @@ -642,8 +687,8 @@ _OUTPUTDIRECTORY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1948, - serialized_end=2112, + serialized_start=2064, + serialized_end=2228, ) @@ -701,8 +746,8 @@ _EXECUTEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2115, - serialized_end=2309, + serialized_start=2231, + serialized_end=2425, ) @@ -739,8 +784,8 @@ _LOGFILE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2311, - serialized_end=2408, + serialized_start=2427, + serialized_end=2524, ) @@ -777,8 +822,8 @@ _EXECUTERESPONSE_SERVERLOGSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2653, - serialized_end=2751, + serialized_start=2769, + serialized_end=2867, ) _EXECUTERESPONSE = _descriptor.Descriptor( @@ -828,8 +873,8 @@ _EXECUTERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2411, - serialized_end=2751, + serialized_start=2527, + serialized_end=2867, ) @@ -881,8 +926,8 @@ _EXECUTEOPERATIONMETADATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2754, - serialized_end=3075, + serialized_start=2870, + serialized_end=3191, ) @@ -919,8 +964,8 @@ _GETACTIONRESULTREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3077, - serialized_end=3195, + serialized_start=3193, + serialized_end=3311, ) @@ -964,8 +1009,8 @@ _UPDATEACTIONRESULTREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3198, - serialized_end=3396, + serialized_start=3314, + serialized_end=3512, ) @@ -1002,8 +1047,8 @@ _FINDMISSINGBLOBSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3398, - serialized_end=3516, + serialized_start=3514, + serialized_end=3632, ) @@ -1033,8 +1078,8 @@ _FINDMISSINGBLOBSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3518, - serialized_end=3622, + serialized_start=3634, + serialized_end=3738, ) @@ -1071,8 +1116,8 @@ _UPDATEBLOBREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3624, - serialized_end=3729, + serialized_start=3740, + serialized_end=3845, ) @@ -1109,8 +1154,8 @@ _BATCHUPDATEBLOBSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3731, - serialized_end=3856, + serialized_start=3847, + serialized_end=3972, ) @@ -1147,8 +1192,8 @@ _BATCHUPDATEBLOBSRESPONSE_RESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3981, - serialized_end=4096, + serialized_start=4097, + serialized_end=4212, ) _BATCHUPDATEBLOBSRESPONSE = _descriptor.Descriptor( @@ -1177,8 +1222,8 @@ _BATCHUPDATEBLOBSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3859, - serialized_end=4096, + serialized_start=3975, + serialized_end=4212, ) @@ -1229,8 +1274,8 @@ _GETTREEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4099, - serialized_end=4246, + serialized_start=4215, + serialized_end=4362, ) @@ -1267,8 +1312,8 @@ _GETTREERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4248, - serialized_end=4362, + serialized_start=4364, + serialized_end=4478, ) @@ -1305,8 +1350,8 @@ _TOOLDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4364, - serialized_end=4418, + serialized_start=4480, + serialized_end=4534, ) @@ -1357,8 +1402,8 @@ _REQUESTMETADATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4421, - serialized_end=4595, + serialized_start=4537, + serialized_end=4711, ) _ACTION.fields_by_name['command_digest'].message_type = _DIGEST @@ -1371,6 +1416,7 @@ _PLATFORM_PROPERTY.containing_type = _PLATFORM _PLATFORM.fields_by_name['properties'].message_type = _PLATFORM_PROPERTY _DIRECTORY.fields_by_name['files'].message_type = _FILENODE _DIRECTORY.fields_by_name['directories'].message_type = _DIRECTORYNODE +_DIRECTORY.fields_by_name['symlinks'].message_type = _SYMLINKNODE _FILENODE.fields_by_name['digest'].message_type = _DIGEST _DIRECTORYNODE.fields_by_name['digest'].message_type = _DIGEST _ACTIONRESULT.fields_by_name['output_files'].message_type = _OUTPUTFILE @@ -1412,6 +1458,7 @@ DESCRIPTOR.message_types_by_name['Platform'] = _PLATFORM DESCRIPTOR.message_types_by_name['Directory'] = _DIRECTORY DESCRIPTOR.message_types_by_name['FileNode'] = _FILENODE DESCRIPTOR.message_types_by_name['DirectoryNode'] = _DIRECTORYNODE +DESCRIPTOR.message_types_by_name['SymlinkNode'] = _SYMLINKNODE DESCRIPTOR.message_types_by_name['Digest'] = _DIGEST DESCRIPTOR.message_types_by_name['ActionResult'] = _ACTIONRESULT DESCRIPTOR.message_types_by_name['OutputFile'] = _OUTPUTFILE @@ -1492,6 +1539,13 @@ DirectoryNode = _reflection.GeneratedProtocolMessageType('DirectoryNode', (_mess )) _sym_db.RegisterMessage(DirectoryNode) +SymlinkNode = _reflection.GeneratedProtocolMessageType('SymlinkNode', (_message.Message,), dict( + DESCRIPTOR = _SYMLINKNODE, + __module__ = 'google.devtools.remoteexecution.v1test.remote_execution_pb2' + # @@protoc_insertion_point(class_scope:google.devtools.remoteexecution.v1test.SymlinkNode) + )) +_sym_db.RegisterMessage(SymlinkNode) + Digest = _reflection.GeneratedProtocolMessageType('Digest', (_message.Message,), dict( DESCRIPTOR = _DIGEST, __module__ = 'google.devtools.remoteexecution.v1test.remote_execution_pb2' @@ -1660,8 +1714,8 @@ _EXECUTION = _descriptor.ServiceDescriptor( file=DESCRIPTOR, index=0, options=None, - serialized_start=4598, - serialized_end=4763, + serialized_start=4714, + serialized_end=4879, methods=[ _descriptor.MethodDescriptor( name='Execute', @@ -1684,8 +1738,8 @@ _ACTIONCACHE = _descriptor.ServiceDescriptor( file=DESCRIPTOR, index=1, options=None, - serialized_start=4766, - serialized_end=5272, + serialized_start=4882, + serialized_end=5388, methods=[ _descriptor.MethodDescriptor( name='GetActionResult', @@ -1717,8 +1771,8 @@ _CONTENTADDRESSABLESTORAGE = _descriptor.ServiceDescriptor( file=DESCRIPTOR, index=2, options=None, - serialized_start=5275, - serialized_end=5939, + serialized_start=5391, + serialized_end=6055, methods=[ _descriptor.MethodDescriptor( name='FindMissingBlobs',
