diff options
Diffstat (limited to 'src/buildstream/_cas/casserver.py')
-rw-r--r-- | src/buildstream/_cas/casserver.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/buildstream/_cas/casserver.py b/src/buildstream/_cas/casserver.py index 203b2f021..774548216 100644 --- a/src/buildstream/_cas/casserver.py +++ b/src/buildstream/_cas/casserver.py @@ -88,6 +88,13 @@ def create_server(repo, *, enable_push, artifact_pb2_grpc.add_ArtifactServiceServicer_to_server( _ArtifactServicer(cas, artifactdir), server) + # Create up reference storage and artifact capabilities + artifact_capabilities = buildstream_pb2.ArtifactCapabilities( + allow_updates=enable_push) + buildstream_pb2_grpc.add_CapabilitiesServicer_to_server( + _BuildStreamCapabilitiesServicer(artifact_capabilities), + server) + return server @@ -501,6 +508,16 @@ class _ArtifactServicer(artifact_pb2_grpc.ArtifactServiceServicer): "Artifact {} specified but not found".format(name)) +class _BuildStreamCapabilitiesServicer(buildstream_pb2_grpc.CapabilitiesServicer): + def __init__(self, artifact_capabilities): + self.artifact_capabilities = artifact_capabilities + + def GetCapabilities(self, request, context): + response = buildstream_pb2.ServerCapabilities() + response.artifact_capabilities.CopyFrom(self.artifact_capabilities) + return response + + def _digest_from_download_resource_name(resource_name): parts = resource_name.split('/') |