summaryrefslogtreecommitdiff
path: root/src/other_tools/root_maps/root_utils.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2025-01-21 16:48:38 +0100
committerMaksim Denisov <denisov.maksim@huawei.com>2025-01-23 16:50:37 +0100
commitb1374350605a76a0dd772ebfdb0cd801873887dc (patch)
tree6a663fbb5df53b2daec2d0bae15f8c6cdc77fe4e /src/other_tools/root_maps/root_utils.cpp
parent6d69b1297a92810dc9224b35a1f1ec098a159e84 (diff)
downloadjustbuild-b1374350605a76a0dd772ebfdb0cd801873887dc.tar.gz
Remove function EnsureAbsentRootOnServe
...since it is superseded by ServeApi's method.
Diffstat (limited to 'src/other_tools/root_maps/root_utils.cpp')
-rw-r--r--src/other_tools/root_maps/root_utils.cpp84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/other_tools/root_maps/root_utils.cpp b/src/other_tools/root_maps/root_utils.cpp
index b38aa43b..00ff2408 100644
--- a/src/other_tools/root_maps/root_utils.cpp
+++ b/src/other_tools/root_maps/root_utils.cpp
@@ -16,18 +16,8 @@
#include <functional>
#include <memory>
-#include <vector>
#include "fmt/core.h"
-#include "src/buildtool/common/artifact.hpp"
-#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/common/artifact_digest_factory.hpp"
-#include "src/buildtool/common/repository_config.hpp"
-#include "src/buildtool/crypto/hash_function.hpp"
-#include "src/buildtool/execution_api/serve/mr_git_api.hpp"
-#include "src/buildtool/execution_api/utils/rehash_utils.hpp"
-#include "src/buildtool/file_system/object_type.hpp"
-#include "src/utils/cpp/expected.hpp"
auto CheckServeHasAbsentRoot(ServeApi const& serve,
std::string const& tree_id,
@@ -42,77 +32,3 @@ auto CheckServeHasAbsentRoot(ServeApi const& serve,
/*fatal=*/true);
return std::nullopt;
}
-
-auto EnsureAbsentRootOnServe(
- ServeApi const& serve,
- std::string const& tree_id,
- std::filesystem::path const& repo_path,
- gsl::not_null<StorageConfig const*> const& native_storage_config,
- StorageConfig const* compat_storage_config,
- IExecutionApi const* local_api,
- IExecutionApi const* remote_api,
- AsyncMapConsumerLoggerPtr const& logger,
- bool no_sync_is_fatal) -> bool {
- auto const native_digest = ArtifactDigestFactory::Create(
- HashFunction::Type::GitSHA1, tree_id, 0, /*is_tree=*/true);
- if (not native_digest) {
- (*logger)(fmt::format("Failed to create digest for {}", tree_id),
- /*fatal=*/true);
- return false;
- }
- // check if upload is required
- if (remote_api != nullptr) {
- // upload tree to remote CAS
- auto repo = RepositoryConfig{};
- if (not repo.SetGitCAS(repo_path)) {
- (*logger)(
- fmt::format("Failed to SetGitCAS at {}", repo_path.string()),
- /*fatal=*/true);
- return false;
- }
- auto git_api = MRGitApi{
- &repo, native_storage_config, compat_storage_config, local_api};
- if (not git_api.RetrieveToCas(
- {Artifact::ObjectInfo{.digest = *native_digest,
- .type = ObjectType::Tree}},
- *remote_api)) {
- (*logger)(fmt::format("Failed to sync tree {} from repository {}",
- tree_id,
- repo_path.string()),
- /*fatal=*/true);
- return false;
- }
- }
- // ask serve endpoint to retrieve the uploaded tree; this can only happen if
- // we have access to a digest that the remote knows
- ArtifactDigest remote_digest = *native_digest;
- if (compat_storage_config != nullptr) {
- // in compatible mode, get compatible digest from mapping, if exists
- auto cached_obj =
- RehashUtils::ReadRehashedDigest(*native_digest,
- *native_storage_config,
- *compat_storage_config,
- /*from_git=*/true);
- if (not cached_obj) {
- (*logger)(cached_obj.error(), /*fatal=*/true);
- return false;
- }
- if (not *cached_obj) {
- // digest is not known; respond based on no_sync_is_fatal flag
- (*logger)(fmt::format("No digest provided to sync root tree {}.",
- tree_id),
- /*fatal=*/no_sync_is_fatal);
- return not no_sync_is_fatal;
- }
- remote_digest = cached_obj->value().digest;
- }
- if (not serve.GetTreeFromRemote(remote_digest)) {
- // respond based on no_sync_is_fatal flag
- (*logger)(
- fmt::format("Serve endpoint failed to sync root tree {}.", tree_id),
- /*fatal=*/no_sync_is_fatal);
- return not no_sync_is_fatal;
- }
- // done!
- return true;
-}