diff options
Diffstat (limited to 'src/buildtool/execution_api/common')
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; |