summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/execution_service/TARGETS5
-rw-r--r--src/buildtool/execution_api/execution_service/capabilities_server.cpp2
-rw-r--r--src/buildtool/execution_api/execution_service/capabilities_server.hpp9
-rw-r--r--src/buildtool/execution_api/execution_service/server_implementation.cpp4
-rw-r--r--src/buildtool/serve_api/serve_service/serve_server_implementation.cpp4
5 files changed, 19 insertions, 5 deletions
diff --git a/src/buildtool/execution_api/execution_service/TARGETS b/src/buildtool/execution_api/execution_service/TARGETS
index 97d70528..d8108279 100644
--- a/src/buildtool/execution_api/execution_service/TARGETS
+++ b/src/buildtool/execution_api/execution_service/TARGETS
@@ -135,7 +135,10 @@
, "srcs": ["capabilities_server.cpp"]
, "proto": [["@", "bazel_remote_apis", "", "remote_execution_proto"]]
, "stage": ["src", "buildtool", "execution_api", "execution_service"]
- , "deps": [["src/buildtool/common", "bazel_types"]]
+ , "deps":
+ [ ["src/buildtool/common", "bazel_types"]
+ , ["src/buildtool/crypto", "hash_function"]
+ ]
, "private-deps":
[ ["src/buildtool/logging", "log_level"]
, ["src/buildtool/logging", "logging"]
diff --git a/src/buildtool/execution_api/execution_service/capabilities_server.cpp b/src/buildtool/execution_api/execution_service/capabilities_server.cpp
index c4ec6b06..0f3f7855 100644
--- a/src/buildtool/execution_api/execution_service/capabilities_server.cpp
+++ b/src/buildtool/execution_api/execution_service/capabilities_server.cpp
@@ -25,7 +25,7 @@ auto CapabilitiesServiceImpl::GetCapabilities(
const ::bazel_re::GetCapabilitiesRequest*
/*request*/,
::bazel_re::ServerCapabilities* response) -> ::grpc::Status {
- if (not ProtocolTraits::Instance().IsCompatible()) {
+ if (ProtocolTraits::IsNative(hash_type_)) {
auto const* str = "GetCapabilities not implemented";
Logger::Log(LogLevel::Error, str);
return ::grpc::Status{grpc::StatusCode::UNIMPLEMENTED, str};
diff --git a/src/buildtool/execution_api/execution_service/capabilities_server.hpp b/src/buildtool/execution_api/execution_service/capabilities_server.hpp
index 57c49fc9..d1706584 100644
--- a/src/buildtool/execution_api/execution_service/capabilities_server.hpp
+++ b/src/buildtool/execution_api/execution_service/capabilities_server.hpp
@@ -17,9 +17,13 @@
#include "build/bazel/remote/execution/v2/remote_execution.grpc.pb.h"
#include "src/buildtool/common/bazel_types.hpp"
+#include "src/buildtool/crypto/hash_function.hpp"
class CapabilitiesServiceImpl final : public bazel_re::Capabilities::Service {
public:
+ explicit CapabilitiesServiceImpl(HashFunction::Type hash_type) noexcept
+ : hash_type_{hash_type} {}
+
// GetCapabilities returns the server capabilities configuration of the
// remote endpoint.
// Only the capabilities of the services supported by the endpoint will
@@ -32,5 +36,8 @@ class CapabilitiesServiceImpl final : public bazel_re::Capabilities::Service {
const ::bazel_re::GetCapabilitiesRequest* request,
::bazel_re::ServerCapabilities* response)
-> ::grpc::Status override;
+
+ private:
+ HashFunction::Type const hash_type_;
};
-#endif
+#endif // CAPABILITIES_SERVER_HPP
diff --git a/src/buildtool/execution_api/execution_service/server_implementation.cpp b/src/buildtool/execution_api/execution_service/server_implementation.cpp
index e6ad463c..67633b69 100644
--- a/src/buildtool/execution_api/execution_service/server_implementation.cpp
+++ b/src/buildtool/execution_api/execution_service/server_implementation.cpp
@@ -84,11 +84,13 @@ auto ServerImpl::Run(gsl::not_null<LocalContext const*> const& local_context,
gsl::not_null<RemoteContext const*> const& remote_context,
ApiBundle const& apis,
std::optional<std::uint8_t> op_exponent) -> bool {
+ auto const hash_type =
+ local_context->storage_config->hash_function.GetType();
ExecutionServiceImpl es{local_context, &*apis.local, op_exponent};
ActionCacheServiceImpl ac{local_context};
CASServiceImpl cas{local_context};
BytestreamServiceImpl b{local_context};
- CapabilitiesServiceImpl cap{};
+ CapabilitiesServiceImpl cap{hash_type};
OperationsServiceImpl op{&es.GetOpCache()};
grpc::ServerBuilder builder;
diff --git a/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp b/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp
index be307ba5..f912894d 100644
--- a/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp
+++ b/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp
@@ -112,6 +112,8 @@ auto ServeServerImpl::Run(
return false;
}
+ auto const hash_type =
+ local_context->storage_config->hash_function.GetType();
SourceTreeService sts{&serve_config, local_context, &apis};
TargetService ts{&serve_config,
local_context,
@@ -133,7 +135,7 @@ auto ServeServerImpl::Run(
[[maybe_unused]] ActionCacheServiceImpl ac{local_context};
[[maybe_unused]] CASServiceImpl cas{local_context};
[[maybe_unused]] BytestreamServiceImpl b{local_context};
- [[maybe_unused]] CapabilitiesServiceImpl cap{};
+ [[maybe_unused]] CapabilitiesServiceImpl cap{hash_type};
[[maybe_unused]] OperationsServiceImpl op{&es.GetOpCache()};
if (with_execute) {
builder.RegisterService(&es)