diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-11-30 12:26:10 +0100 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-12-05 10:52:23 +0100 |
commit | be353baa567da5de46b257a4f73b48dc301aacf0 (patch) | |
tree | eba44501f3e3087b04e6ecc0f5eb5fb0204f8d31 /src/buildtool/serve_api/remote/target_client.cpp | |
parent | b5bb39846e3743741339037a72e569fac1676011 (diff) | |
download | justbuild-be353baa567da5de46b257a4f73b48dc301aacf0.tar.gz |
serve target client: Ensure repository key blob is also in remote CAS
Diffstat (limited to 'src/buildtool/serve_api/remote/target_client.cpp')
-rw-r--r-- | src/buildtool/serve_api/remote/target_client.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/buildtool/serve_api/remote/target_client.cpp b/src/buildtool/serve_api/remote/target_client.cpp index 8571910d..7166a604 100644 --- a/src/buildtool/serve_api/remote/target_client.cpp +++ b/src/buildtool/serve_api/remote/target_client.cpp @@ -25,7 +25,8 @@ TargetClient::TargetClient(std::string const& server, Port port) noexcept { CreateChannelWithCredentials(server, port)); } -auto TargetClient::ServeTarget(const TargetCacheKey& key) +auto TargetClient::ServeTarget(const TargetCacheKey& key, + const std::string& repo_key) -> std::optional<std::pair<TargetCacheEntry, Artifact::ObjectInfo>> { // make sure the blob containing the key is in the remote cas if (!local_api_->RetrieveToCas({key.Id()}, &*remote_api_)) { @@ -34,6 +35,16 @@ auto TargetClient::ServeTarget(const TargetCacheKey& key) key.Id().ToString()); return std::nullopt; } + // make sure the repository configuration blob is in the remote cas + if (!local_api_->RetrieveToCas( + {Artifact::ObjectInfo{.digest = ArtifactDigest{repo_key, 0, false}, + .type = ObjectType::File}}, + &*remote_api_)) { + logger_.Emit(LogLevel::Error, + "failed to retrieve to remote cas blob {}", + repo_key); + return std::nullopt; + } bazel_re::Digest key_dgst{key.Id().digest}; justbuild::just_serve::ServeTargetRequest request{}; |