summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/common
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-05-27 14:57:15 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-05-28 16:19:19 +0200
commitfd8ad0f561dd253bf7399ce9a4594242e918ca25 (patch)
treed72aa981cafc03d0f1aded827cb621fabe541fff /src/buildtool/execution_api/common
parent9bdd30f307b83a3901250a51780f308f5c4a0065 (diff)
downloadjustbuild-fd8ad0f561dd253bf7399ce9a4594242e918ca25.tar.gz
Use ArtifactBlobContainer in IExecutionApi
...instead of BazelBlobContainer to not bring bazel_re::Digest to IExecutionApi.
Diffstat (limited to 'src/buildtool/execution_api/common')
-rw-r--r--src/buildtool/execution_api/common/TARGETS2
-rw-r--r--src/buildtool/execution_api/common/artifact_blob_container.hpp1
-rw-r--r--src/buildtool/execution_api/common/common_api.cpp20
-rw-r--r--src/buildtool/execution_api/common/execution_api.cpp6
-rw-r--r--src/buildtool/execution_api/common/execution_api.hpp4
5 files changed, 15 insertions, 18 deletions
diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS
index 1ce6a1da..956fb3a3 100644
--- a/src/buildtool/execution_api/common/TARGETS
+++ b/src/buildtool/execution_api/common/TARGETS
@@ -16,7 +16,6 @@
, ["@", "gsl", "", "gsl"]
, ["src/buildtool/common", "common"]
, ["src/buildtool/crypto", "hash_function"]
- , ["src/buildtool/execution_api/bazel_msg", "bazel_msg"]
, ["src/buildtool/execution_api/bazel_msg", "bazel_msg_factory"]
, ["src/buildtool/file_system", "file_system_manager"]
, ["src/buildtool/file_system", "object_type"]
@@ -25,6 +24,7 @@
, ["src/utils/cpp", "gsl"]
, ["src/utils/cpp", "hex_string"]
, ["src/buildtool/file_system", "git_repo"]
+ , ["src/buildtool/execution_engine/dag", "dag"]
]
, "stage": ["src", "buildtool", "execution_api", "common"]
}
diff --git a/src/buildtool/execution_api/common/artifact_blob_container.hpp b/src/buildtool/execution_api/common/artifact_blob_container.hpp
index 7aea21ab..32f3fc38 100644
--- a/src/buildtool/execution_api/common/artifact_blob_container.hpp
+++ b/src/buildtool/execution_api/common/artifact_blob_container.hpp
@@ -19,5 +19,6 @@
#include "src/buildtool/execution_api/common/content_blob_container.hpp"
using ArtifactBlob = ContentBlob<ArtifactDigest>;
+using ArtifactBlobContainer = ContentBlobContainer<ArtifactDigest>;
#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_ARTIFACT_BLOB_CONTAINER_HPP
diff --git a/src/buildtool/execution_api/common/common_api.cpp b/src/buildtool/execution_api/common/common_api.cpp
index eac0a1f8..b14c81dc 100644
--- a/src/buildtool/execution_api/common/common_api.cpp
+++ b/src/buildtool/execution_api/common/common_api.cpp
@@ -99,7 +99,7 @@ auto CommonUploadBlobTree(BlobTreePtr const& blob_tree,
}
// Process missing blobs.
- BazelBlobContainer container;
+ ArtifactBlobContainer container;
for (auto const& digest : missing_blobs_info->digests) {
if (auto it = missing_blobs_info->back_map.find(digest);
it != missing_blobs_info->back_map.end()) {
@@ -112,17 +112,14 @@ auto CommonUploadBlobTree(BlobTreePtr const& blob_tree,
}
// Store blob.
try {
- BazelBlob bazel_blob{node->Blob().digest,
- node->Blob().data,
- node->Blob().is_exec};
- container.Emplace(std::move(bazel_blob));
+ container.Emplace(node->Blob());
} catch (...) {
return false;
}
}
}
- return api->Upload(container, /*skip_find_missing=*/true);
+ return api->Upload(std::move(container), /*skip_find_missing=*/true);
}
auto CommonUploadTreeCompatible(
@@ -130,10 +127,11 @@ auto CommonUploadTreeCompatible(
DirectoryTreePtr const& build_root,
BazelMsgFactory::LinkDigestResolveFunc const& resolve_links) noexcept
-> std::optional<ArtifactDigest> {
- BazelBlobContainer blobs{};
+ ArtifactBlobContainer blobs{};
auto digest = BazelMsgFactory::CreateDirectoryDigestFromTree(
build_root, resolve_links, [&blobs](BazelBlob&& blob) {
- blobs.Emplace(std::move(blob));
+ blobs.Emplace(ArtifactBlob{
+ ArtifactDigest{blob.digest}, blob.data, blob.is_exec});
});
if (not digest) {
Logger::Log(LogLevel::Debug, "failed to create digest for build root.");
@@ -145,7 +143,7 @@ auto CommonUploadTreeCompatible(
oss << fmt::format(" - root digest: {}", digest->hash()) << std::endl;
return oss.str();
});
- if (not api->Upload(blobs, /*skip_find_missing=*/false)) {
+ if (not api->Upload(std::move(blobs), /*skip_find_missing=*/false)) {
Logger::Log(LogLevel::Debug, "failed to upload blobs for build root.");
return std::nullopt;
}
@@ -170,9 +168,7 @@ auto CommonUploadTreeNative(gsl::not_null<IExecutionApi*> const& api,
"failed to upload blob tree for build root.");
return std::nullopt;
}
- BazelBlob bazel_blob{
- tree_blob.digest, tree_blob.data, tree_blob.is_exec};
- if (not api->Upload(BazelBlobContainer{{bazel_blob}},
+ if (not api->Upload(ArtifactBlobContainer{{tree_blob}},
/*skip_find_missing=*/true)) {
Logger::Log(LogLevel::Debug,
"failed to upload tree blob for build root.");
diff --git a/src/buildtool/execution_api/common/execution_api.cpp b/src/buildtool/execution_api/common/execution_api.cpp
index b6b16a0f..d3fcb36f 100644
--- a/src/buildtool/execution_api/common/execution_api.cpp
+++ b/src/buildtool/execution_api/common/execution_api.cpp
@@ -43,13 +43,13 @@
Ensures(false); // unreachable
return false;
}
- BazelBlobContainer container{};
+ ArtifactBlobContainer container{};
try {
auto exec = IsExecutableObject(type);
- container.Emplace(BazelBlob{digest, *data, exec});
+ container.Emplace(ArtifactBlob{digest, *data, exec});
} catch (std::exception const& ex) {
Logger::Log(LogLevel::Error, "failed to emplace blob: ", ex.what());
return false;
}
- return Upload(container);
+ return Upload(std::move(container));
}
diff --git a/src/buildtool/execution_api/common/execution_api.hpp b/src/buildtool/execution_api/common/execution_api.hpp
index c4b51780..42554a48 100644
--- a/src/buildtool/execution_api/common/execution_api.hpp
+++ b/src/buildtool/execution_api/common/execution_api.hpp
@@ -26,7 +26,7 @@
#include "gsl/gsl"
#include "src/buildtool/common/artifact.hpp" // Artifact::ObjectInfo
#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
+#include "src/buildtool/execution_api/common/artifact_blob_container.hpp"
#include "src/buildtool/execution_api/common/execution_action.hpp"
#include "src/buildtool/execution_engine/dag/dag.hpp"
#include "src/buildtool/file_system/object_type.hpp"
@@ -116,7 +116,7 @@ class IExecutionApi {
/// \param blobs Container of blobs to upload.
/// \param skip_find_missing Skip finding missing blobs, just upload all.
/// NOLINTNEXTLINE(google-default-arguments)
- [[nodiscard]] virtual auto Upload(BazelBlobContainer const& blobs,
+ [[nodiscard]] virtual auto Upload(ArtifactBlobContainer&& blobs,
bool skip_find_missing = false) noexcept
-> bool = 0;