summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2025-01-29 16:08:37 +0100
committerMaksim Denisov <denisov.maksim@huawei.com>2025-02-07 14:58:04 +0100
commitf10bd16283b8856bdf7295f96a1cebc54f0350bb (patch)
treed2a1c1dc58b89b0f0afad401e93e5b71f2179886 /src
parentc30cb3221989b60cee96287a1cb9d9e87f9ba464 (diff)
downloadjustbuild-f10bd16283b8856bdf7295f96a1cebc54f0350bb.tar.gz
BazelNetwork: Use ArtifactDigests in IsAvailable
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/remote/TARGETS1
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.cpp12
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_network.cpp26
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_network.hpp9
4 files changed, 24 insertions, 24 deletions
diff --git a/src/buildtool/execution_api/remote/TARGETS b/src/buildtool/execution_api/remote/TARGETS
index 1a7a15af..b7b29d0c 100644
--- a/src/buildtool/execution_api/remote/TARGETS
+++ b/src/buildtool/execution_api/remote/TARGETS
@@ -96,7 +96,6 @@
, ["src/buildtool/logging", "log_level"]
, ["src/buildtool/logging", "logging"]
, ["src/buildtool/multithreading", "task_system"]
- , ["src/utils/cpp", "back_map"]
, ["src/utils/cpp", "expected"]
]
}
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
index d46c9e09..d9990f9a 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
@@ -46,7 +46,6 @@
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
#include "src/buildtool/multithreading/task_system.hpp"
-#include "src/utils/cpp/back_map.hpp"
#include "src/utils/cpp/expected.hpp"
namespace {
@@ -545,20 +544,13 @@ auto BazelApi::CreateAction(
[[nodiscard]] auto BazelApi::IsAvailable(
ArtifactDigest const& digest) const noexcept -> bool {
- return network_->IsAvailable(ArtifactDigestFactory::ToBazel(digest));
+ return network_->IsAvailable(digest);
}
[[nodiscard]] auto BazelApi::GetMissingDigests(
std::unordered_set<ArtifactDigest> const& digests) const noexcept
-> std::unordered_set<ArtifactDigest> {
- auto const back_map = BackMap<bazel_re::Digest, ArtifactDigest>::Make(
- &digests, ArtifactDigestFactory::ToBazel);
- if (not back_map.has_value()) {
- return digests;
- }
-
- auto const bazel_result = network_->FindMissingBlobs(back_map->GetKeys());
- return back_map->GetValues(bazel_result);
+ return network_->FindMissingBlobs(digests);
}
[[nodiscard]] auto BazelApi::SplitBlob(ArtifactDigest const& blob_digest)
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp
index dde80242..a194c2ee 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp
@@ -43,15 +43,25 @@ BazelNetwork::BazelNetwork(
exec_config_{exec_config},
hash_function_{*hash_function} {}
-auto BazelNetwork::IsAvailable(bazel_re::Digest const& digest) const noexcept
+auto BazelNetwork::IsAvailable(ArtifactDigest const& digest) const noexcept
-> bool {
- return cas_->FindMissingBlobs(instance_name_, {digest}).empty();
+ return cas_
+ ->FindMissingBlobs(instance_name_,
+ {ArtifactDigestFactory::ToBazel(digest)})
+ .empty();
}
auto BazelNetwork::FindMissingBlobs(
- std::unordered_set<bazel_re::Digest> const& digests) const noexcept
- -> std::unordered_set<bazel_re::Digest> {
- return cas_->FindMissingBlobs(instance_name_, digests);
+ std::unordered_set<ArtifactDigest> const& digests) const noexcept
+ -> std::unordered_set<ArtifactDigest> {
+ auto const back_map = BackMap<bazel_re::Digest, ArtifactDigest>::Make(
+ &digests, ArtifactDigestFactory::ToBazel);
+ if (not back_map.has_value()) {
+ return digests;
+ }
+ auto missing_digests =
+ cas_->FindMissingBlobs(instance_name_, back_map->GetKeys());
+ return back_map->GetValues(missing_digests);
}
auto BazelNetwork::SplitBlob(bazel_re::Digest const& blob_digest) const noexcept
@@ -127,10 +137,8 @@ auto BazelNetwork::DoUploadBlobs(
auto BazelNetwork::UploadBlobs(std::unordered_set<ArtifactBlob>&& blobs,
bool skip_find_missing) noexcept -> bool {
if (not skip_find_missing) {
- auto const back_map = BackMap<bazel_re::Digest, ArtifactBlob>::Make(
- &blobs, [](ArtifactBlob const& blob) {
- return ArtifactDigestFactory::ToBazel(blob.digest);
- });
+ auto const back_map = BackMap<ArtifactDigest, ArtifactBlob>::Make(
+ &blobs, [](ArtifactBlob const& blob) { return blob.digest; });
if (not back_map.has_value()) {
return false;
}
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.hpp b/src/buildtool/execution_api/remote/bazel/bazel_network.hpp
index 0d892a55..8a8eb205 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_network.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_network.hpp
@@ -23,6 +23,7 @@
#include "gsl/gsl"
#include "src/buildtool/auth/authentication.hpp"
+#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/common/remote/port.hpp"
#include "src/buildtool/common/remote/retry_config.hpp"
@@ -49,12 +50,12 @@ class BazelNetwork {
/// \brief Check if digest exists in CAS
/// \param[in] digest The digest to look up
/// \returns True if digest exists in CAS, false otherwise
- [[nodiscard]] auto IsAvailable(
- bazel_re::Digest const& digest) const noexcept -> bool;
+ [[nodiscard]] auto IsAvailable(ArtifactDigest const& digest) const noexcept
+ -> bool;
[[nodiscard]] auto FindMissingBlobs(
- std::unordered_set<bazel_re::Digest> const& digests) const noexcept
- -> std::unordered_set<bazel_re::Digest>;
+ std::unordered_set<ArtifactDigest> const& digests) const noexcept
+ -> std::unordered_set<ArtifactDigest>;
[[nodiscard]] auto SplitBlob(bazel_re::Digest const& blob_digest)
const noexcept -> std::optional<std::vector<bazel_re::Digest>>;