summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_api')
-rw-r--r--src/buildtool/execution_api/execution_service/TARGETS6
-rw-r--r--src/buildtool/execution_api/execution_service/ac_server.cpp10
-rw-r--r--src/buildtool/execution_api/execution_service/execution_server.cpp5
-rw-r--r--src/buildtool/execution_api/local/local_action.cpp7
4 files changed, 19 insertions, 9 deletions
diff --git a/src/buildtool/execution_api/execution_service/TARGETS b/src/buildtool/execution_api/execution_service/TARGETS
index ecdccf04..f52efc26 100644
--- a/src/buildtool/execution_api/execution_service/TARGETS
+++ b/src/buildtool/execution_api/execution_service/TARGETS
@@ -23,6 +23,7 @@
, "operation_cache"
, ["src/utils/cpp", "verify_hash"]
, ["src/buildtool/execution_api/local", "local"]
+ , ["src/buildtool/common", "common"]
]
, "private-ldflags":
["-pthread", "-Wl,--whole-archive,-lpthread,--no-whole-archive"]
@@ -43,7 +44,10 @@
, ["src/buildtool/storage", "config"]
]
, "private-deps":
- [["src/buildtool/logging", "log_level"], ["src/utils/cpp", "verify_hash"]]
+ [ ["src/buildtool/logging", "log_level"]
+ , ["src/utils/cpp", "verify_hash"]
+ , ["src/buildtool/common", "common"]
+ ]
}
, "cas_server":
{ "type": ["@", "rules", "CC", "library"]
diff --git a/src/buildtool/execution_api/execution_service/ac_server.cpp b/src/buildtool/execution_api/execution_service/ac_server.cpp
index 0d85596e..cc59a983 100644
--- a/src/buildtool/execution_api/execution_service/ac_server.cpp
+++ b/src/buildtool/execution_api/execution_service/ac_server.cpp
@@ -15,6 +15,7 @@
#include "src/buildtool/execution_api/execution_service/ac_server.hpp"
#include "fmt/core.h"
+#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/storage/garbage_collector.hpp"
#include "src/utils/cpp/verify_hash.hpp"
@@ -36,11 +37,12 @@ auto ActionCacheServiceImpl::GetActionResult(
logger_.Emit(LogLevel::Error, str);
return grpc::Status{grpc::StatusCode::INTERNAL, str};
}
- auto x = storage_.ActionCache().CachedResult(request->action_digest());
+
+ ArtifactDigest const a_digest{request->action_digest()};
+ auto x = storage_.ActionCache().CachedResult(a_digest);
if (not x) {
- return grpc::Status{
- grpc::StatusCode::NOT_FOUND,
- fmt::format("{} missing from AC", request->action_digest().hash())};
+ return grpc::Status{grpc::StatusCode::NOT_FOUND,
+ fmt::format("{} missing from AC", a_digest.hash())};
}
*response = *x;
return ::grpc::Status::OK;
diff --git a/src/buildtool/execution_api/execution_service/execution_server.cpp b/src/buildtool/execution_api/execution_service/execution_server.cpp
index b862a03d..c89f06fe 100644
--- a/src/buildtool/execution_api/execution_service/execution_server.cpp
+++ b/src/buildtool/execution_api/execution_service/execution_server.cpp
@@ -19,8 +19,8 @@
#include <string>
#include <utility>
-#include "execution_server.hpp"
#include "fmt/core.h"
+#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/execution_api/execution_service/operation_cache.hpp"
#include "src/buildtool/execution_api/local/local_cas_reader.hpp"
#include "src/buildtool/file_system/file_system_manager.hpp"
@@ -212,8 +212,9 @@ auto ExecutionServiceImpl::Execute(
// Store the result in action cache
if (i_execution_response->ExitCode() == 0 and not action->do_not_cache()) {
+ ArtifactDigest const a_digest{request->action_digest()};
if (not storage_.ActionCache().StoreResult(
- request->action_digest(), execute_response->result())) {
+ a_digest, execute_response->result())) {
auto const str =
fmt::format("Could not store action result for action {}",
request->action_digest().hash());
diff --git a/src/buildtool/execution_api/local/local_action.cpp b/src/buildtool/execution_api/local/local_action.cpp
index 8cc1d242..ad106c6f 100644
--- a/src/buildtool/execution_api/local/local_action.cpp
+++ b/src/buildtool/execution_api/local/local_action.cpp
@@ -21,6 +21,7 @@
#include <system_error>
#include <utility>
+#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/compatibility/native_support.hpp"
#include "src/buildtool/execution_api/common/tree_reader.hpp"
@@ -104,8 +105,9 @@ auto LocalAction::Execute(Logger const* logger) noexcept
}
if (do_cache) {
+ ArtifactDigest const a_digest{*action};
if (auto result =
- local_context_.storage->ActionCache().CachedResult(*action)) {
+ local_context_.storage->ActionCache().CachedResult(a_digest)) {
if (result->exit_code() == 0 and
ActionResultContainsExpectedOutputs(
*result, output_files_, output_dirs_)) {
@@ -190,8 +192,9 @@ auto LocalAction::Run(bazel_re::Digest const& action_id) const noexcept
if (CollectAndStoreOutputs(&result.action, build_root / cwd_)) {
if (cache_flag_ == CacheFlag::CacheOutput) {
+ ArtifactDigest const a_digest{action_id};
if (not local_context_.storage->ActionCache().StoreResult(
- action_id, result.action)) {
+ a_digest, result.action)) {
logger_.Emit(LogLevel::Warning,
"failed to store action results");
}