summaryrefslogtreecommitdiff
path: root/src/buildtool/serve_api/serve_service/target_utils.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-06-12 16:14:15 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-06-18 12:05:10 +0200
commite0490fd703dcc177ee2e4dc7fc0650a535a53022 (patch)
tree6e5363c960afd0d325f3f6c623e1b1eb048e7c92 /src/buildtool/serve_api/serve_service/target_utils.cpp
parent5446c7433a714f1924d77003853d8e4fa3eb7e76 (diff)
downloadjustbuild-e0490fd703dcc177ee2e4dc7fc0650a535a53022.tar.gz
Pass RemoteServeConfig to ServeServerImpl by reference
...instead of using singleton calls.
Diffstat (limited to 'src/buildtool/serve_api/serve_service/target_utils.cpp')
-rw-r--r--src/buildtool/serve_api/serve_service/target_utils.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/buildtool/serve_api/serve_service/target_utils.cpp b/src/buildtool/serve_api/serve_service/target_utils.cpp
index 7e99ff23..3027775e 100644
--- a/src/buildtool/serve_api/serve_service/target_utils.cpp
+++ b/src/buildtool/serve_api/serve_service/target_utils.cpp
@@ -25,7 +25,6 @@
#include "src/buildtool/file_system/git_repo.hpp"
#include "src/buildtool/file_system/object_type.hpp"
#include "src/buildtool/logging/log_level.hpp"
-#include "src/buildtool/serve_api/remote/config.hpp"
#include "src/buildtool/storage/config.hpp"
#include "src/buildtool/storage/storage.hpp"
@@ -54,7 +53,8 @@ auto IsTreeInRepo(std::string const& tree_id,
return false; // tree not found
}
-auto GetServingRepository(std::string const& tree_id,
+auto GetServingRepository(RemoteServeConfig const& serve_config,
+ std::string const& tree_id,
std::shared_ptr<Logger> const& logger)
-> std::optional<std::filesystem::path> {
// try the Git cache repository
@@ -62,7 +62,7 @@ auto GetServingRepository(std::string const& tree_id,
return StorageConfig::GitRoot();
}
// check the known repositories
- for (auto const& path : RemoteServeConfig::Instance().KnownRepositories()) {
+ for (auto const& path : serve_config.KnownRepositories()) {
if (IsTreeInRepo(tree_id, path, logger)) {
return path;
}
@@ -70,7 +70,8 @@ auto GetServingRepository(std::string const& tree_id,
return std::nullopt; // tree cannot be served
}
-auto DetermineRoots(std::string const& main_repo,
+auto DetermineRoots(RemoteServeConfig const& serve_config,
+ std::string const& main_repo,
std::filesystem::path const& repo_config_path,
gsl::not_null<RepositoryConfig*> const& repository_config,
std::shared_ptr<Logger> const& logger)
@@ -101,8 +102,11 @@ auto DetermineRoots(std::string const& main_repo,
for (auto const& [repo, desc] : repos.items()) {
// root parser
auto parse_keyword_root =
- [&desc = desc, &repo = repo, &error_msg = error_msg, logger](
- std::string const& keyword) -> std::optional<FileRoot> {
+ [&serve_config,
+ &desc = desc,
+ &repo = repo,
+ &error_msg = error_msg,
+ logger](std::string const& keyword) -> std::optional<FileRoot> {
auto it = desc.find(keyword);
if (it != desc.end()) {
if (auto parsed_root =
@@ -118,7 +122,8 @@ auto DetermineRoots(std::string const& main_repo,
}
// find the serving repository for the root tree
auto tree_id = *parsed_root->first.GetAbsentTreeId();
- auto repo_path = GetServingRepository(tree_id, logger);
+ auto repo_path =
+ GetServingRepository(serve_config, tree_id, logger);
if (not repo_path) {
error_msg = fmt::format(
"{} tree {} is not known", keyword, tree_id);