diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-06-20 10:44:52 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-06-25 13:59:48 +0200 |
commit | c7f83a2d2fa436bf78911e288e1f07576861601e (patch) | |
tree | bfa8e4c990473a9e0f2a36eb444a03dfb9713e87 /src/buildtool/serve_api/remote/target_client.cpp | |
parent | 18092e2ff2d33f9f7c25eec995ffb4ac824fe96c (diff) | |
download | justbuild-c7f83a2d2fa436bf78911e288e1f07576861601e.tar.gz |
Pass ApiBundle to ServeApi
Diffstat (limited to 'src/buildtool/serve_api/remote/target_client.cpp')
-rw-r--r-- | src/buildtool/serve_api/remote/target_client.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/buildtool/serve_api/remote/target_client.cpp b/src/buildtool/serve_api/remote/target_client.cpp index 917f1133..d0e6796e 100644 --- a/src/buildtool/serve_api/remote/target_client.cpp +++ b/src/buildtool/serve_api/remote/target_client.cpp @@ -25,7 +25,9 @@ #include "src/buildtool/common/remote/client_common.hpp" #include "src/buildtool/logging/log_level.hpp" -TargetClient::TargetClient(ServerAddress const& address) noexcept { +TargetClient::TargetClient(ServerAddress const& address, + gsl::not_null<ApiBundle const*> const& apis) noexcept + : apis_{*apis} { stub_ = justbuild::just_serve::Target::NewStub( CreateChannelWithCredentials(address.host, address.port)); } @@ -34,17 +36,17 @@ auto TargetClient::ServeTarget(const TargetCacheKey& key, const std::string& repo_key) const noexcept -> std::optional<serve_target_result_t> { // make sure the blob containing the key is in the remote cas - if (!local_api_->RetrieveToCas({key.Id()}, &*remote_api_)) { + if (!apis_.local->RetrieveToCas({key.Id()}, &*apis_.remote)) { return serve_target_result_t{ std::in_place_index<1>, fmt::format("Failed to retrieve to remote cas ObjectInfo {}", key.Id().ToString())}; } // make sure the repository configuration blob is in the remote cas - if (!local_api_->RetrieveToCas( + if (!apis_.local->RetrieveToCas( {Artifact::ObjectInfo{.digest = ArtifactDigest{repo_key, 0, false}, .type = ObjectType::File}}, - &*remote_api_)) { + &*apis_.remote)) { return serve_target_result_t{ std::in_place_index<1>, fmt::format("Failed to retrieve to remote cas blob {}", repo_key)}; @@ -90,7 +92,7 @@ auto TargetClient::ServeTarget(const TargetCacheKey& key, } auto const& dispatch_info = Artifact::ObjectInfo{ .digest = ArtifactDigest{*dispatch_dgst}, .type = ObjectType::File}; - if (!local_api_->RetrieveToCas({dispatch_info}, &*remote_api_)) { + if (!apis_.local->RetrieveToCas({dispatch_info}, &*apis_.remote)) { return serve_target_result_t{ std::in_place_index<1>, fmt::format("Failed to upload blob {} to remote cas", @@ -122,8 +124,8 @@ auto TargetClient::ServeTarget(const TargetCacheKey& key, ArtifactDigest{response.target_value()}; auto const& obj_info = Artifact::ObjectInfo{ .digest = target_value_dgst, .type = ObjectType::File}; - if (!local_api_->IsAvailable(target_value_dgst)) { - if (!remote_api_->RetrieveToCas({obj_info}, &*local_api_)) { + if (!apis_.local->IsAvailable(target_value_dgst)) { + if (!apis_.remote->RetrieveToCas({obj_info}, &*apis_.local)) { return serve_target_result_t{ std::in_place_index<1>, fmt::format( @@ -132,7 +134,7 @@ auto TargetClient::ServeTarget(const TargetCacheKey& key, } } auto const& target_value_str = - local_api_->RetrieveToMemory(obj_info); + apis_.local->RetrieveToMemory(obj_info); if (!target_value_str) { return serve_target_result_t{ std::in_place_index<1>, |