diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/main/main.cpp | 2 | ||||
-rw-r--r-- | src/buildtool/serve_api/remote/config.hpp | 85 | ||||
-rw-r--r-- | src/buildtool/serve_api/remote/serve_api.hpp | 4 | ||||
-rw-r--r-- | src/buildtool/serve_api/serve_service/source_tree.cpp | 18 | ||||
-rw-r--r-- | src/buildtool/serve_api/serve_service/target.cpp | 18 | ||||
-rw-r--r-- | src/buildtool/serve_api/serve_service/target_utils.cpp | 2 |
6 files changed, 28 insertions, 101 deletions
diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp index 357bf7e9..508d980e 100644 --- a/src/buildtool/main/main.cpp +++ b/src/buildtool/main/main.cpp @@ -171,7 +171,7 @@ void SetupExecutionConfig(EndpointArguments const& eargs, auto result = builder.Build(); if (auto* config = std::get_if<RemoteServeConfig>(&result)) { - if (config->TCStrategy() == TargetCacheWriteStrategy::Disable) { + if (config->tc_strategy == TargetCacheWriteStrategy::Disable) { Logger::Log( LogLevel::Info, "Target-level cache writing of serve service is disabled."); diff --git a/src/buildtool/serve_api/remote/config.hpp b/src/buildtool/serve_api/remote/config.hpp index 4e5c3c21..8c46a853 100644 --- a/src/buildtool/serve_api/remote/config.hpp +++ b/src/buildtool/serve_api/remote/config.hpp @@ -32,96 +32,23 @@ struct RemoteServeConfig final { class Builder; - // Obtain global instance - [[nodiscard]] static auto Instance() noexcept -> RemoteServeConfig& { - static RemoteServeConfig config; - return config; - } - - // Set remote execution and cache address, unsets if parsing `address` fails - [[nodiscard]] auto SetRemoteAddress(std::string const& value) noexcept - -> bool { - return static_cast<bool>(remote_address = ParseAddress(value)); - } - - // Set the list of known repositories - [[nodiscard]] auto SetKnownRepositories( - std::vector<std::filesystem::path> const& value) noexcept -> bool { - known_repositories = std::vector<std::filesystem::path>( - std::make_move_iterator(value.begin()), - std::make_move_iterator(value.end())); - return value.size() == known_repositories.size(); - } - - // Set the number of jobs - [[nodiscard]] auto SetJobs(std::size_t value) noexcept -> bool { - return static_cast<bool>(jobs = value); - } - - // Set the number of build jobs - [[nodiscard]] auto SetBuildJobs(std::size_t value) noexcept -> bool { - return static_cast<bool>(build_jobs = value); - } - - // Set the action timeout - [[nodiscard]] auto SetActionTimeout( - std::chrono::milliseconds const& value) noexcept -> bool { - action_timeout = value; - return action_timeout > std::chrono::seconds{0}; - } - - void SetTCStrategy(TargetCacheWriteStrategy value) noexcept { - tc_strategy = value; - } - - // Remote execution address, if set - [[nodiscard]] auto RemoteAddress() const noexcept - -> std::optional<ServerAddress> { - return remote_address; - } - - // Repositories known to 'just serve' - [[nodiscard]] auto KnownRepositories() const noexcept - -> const std::vector<std::filesystem::path>& { - return known_repositories; - } - - // Get the number of jobs - [[nodiscard]] auto Jobs() const noexcept -> std::size_t { return jobs; } - - // Get the number of build jobs - [[nodiscard]] auto BuildJobs() const noexcept -> std::size_t { - return build_jobs; - } - - // Get the action timeout - [[nodiscard]] auto ActionTimeout() const noexcept - -> std::chrono::milliseconds { - return action_timeout; - } - - // Get the target-level cache write strategy - [[nodiscard]] auto TCStrategy() const noexcept -> TargetCacheWriteStrategy { - return tc_strategy; - } - // Server address of remote execution. - std::optional<ServerAddress> remote_address{}; + std::optional<ServerAddress> const remote_address{}; // Known Git repositories to serve server. - std::vector<std::filesystem::path> known_repositories{}; + std::vector<std::filesystem::path> const known_repositories{}; // Number of jobs - std::size_t jobs = 0; + std::size_t const jobs = 0; // Number of build jobs - std::size_t build_jobs = 0; + std::size_t const build_jobs = 0; // Action timeout - std::chrono::milliseconds action_timeout{}; + std::chrono::milliseconds const action_timeout{}; // Strategy for synchronizing target-level cache - TargetCacheWriteStrategy tc_strategy{TargetCacheWriteStrategy::Sync}; + TargetCacheWriteStrategy const tc_strategy{TargetCacheWriteStrategy::Sync}; }; class RemoteServeConfig::Builder final { diff --git a/src/buildtool/serve_api/remote/serve_api.hpp b/src/buildtool/serve_api/remote/serve_api.hpp index 510881cb..89e287a4 100644 --- a/src/buildtool/serve_api/remote/serve_api.hpp +++ b/src/buildtool/serve_api/remote/serve_api.hpp @@ -49,8 +49,8 @@ class ServeApi final { [[nodiscard]] static auto Create( RemoteServeConfig const& serve_config) noexcept -> std::optional<ServeApi> { - if (auto address = serve_config.RemoteAddress()) { - return std::make_optional<ServeApi>(*address); + if (serve_config.remote_address) { + return std::make_optional<ServeApi>(*serve_config.remote_address); } return std::nullopt; } diff --git a/src/buildtool/serve_api/serve_service/source_tree.cpp b/src/buildtool/serve_api/serve_service/source_tree.cpp index 62e9bf0d..7d2cb2f2 100644 --- a/src/buildtool/serve_api/serve_service/source_tree.cpp +++ b/src/buildtool/serve_api/serve_service/source_tree.cpp @@ -255,7 +255,7 @@ auto SourceTreeService::ServeCommitTree( return ::grpc::Status::OK; } // try given extra repositories, in order - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { auto res = GetSubtreeFromCommit(path, commit, subdir, logger_); if (std::holds_alternative<std::string>(res)) { auto tree_id = std::get<std::string>(res); @@ -411,7 +411,7 @@ auto SourceTreeService::ResolveContentTree( ResolvedGitObject resolved_tree{}; bool failed{false}; { - TaskSystem ts{serve_config_.Jobs()}; + TaskSystem ts{serve_config_.jobs}; resolve_symlinks_map_.ConsumeAfterKeysReady( &ts, {GitObjectToResolve{tree_id, @@ -746,7 +746,7 @@ auto SourceTreeService::ServeArchiveTree( return ::grpc::Status::OK; } // check known repositories - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { auto res = GetSubtreeFromTree(path, *archive_tree_id, subdir, logger_); if (std::holds_alternative<std::string>(res)) { @@ -807,7 +807,7 @@ auto SourceTreeService::ServeArchiveTree( } if (not content_cas_path) { // check if content blob is in a known repository - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { auto res = GetBlobFromRepo(path, content, logger_); if (std::holds_alternative<std::string>(res)) { // add to CAS @@ -1052,7 +1052,7 @@ auto SourceTreeService::ServeDistdirTree( return ::grpc::Status::OK; } // check known repositories - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { auto res = GetBlobFromRepo(path, content, logger_); if (std::holds_alternative<std::string>(res)) { // add content to local CAS @@ -1215,7 +1215,7 @@ auto SourceTreeService::ServeDistdirTree( return ::grpc::Status::OK; } // check if tree is in a known repository - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { auto has_tree = IsTreeInRepo(tree_id, path, logger_); if (not has_tree) { logger_->Emit(LogLevel::Error, @@ -1321,7 +1321,7 @@ auto SourceTreeService::ServeContent( return ::grpc::Status::OK; } // check if content blob is in a known repository - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { auto res = GetBlobFromRepo(path, content, logger_); if (std::holds_alternative<std::string>(res)) { // upload blob to remote CAS @@ -1438,7 +1438,7 @@ auto SourceTreeService::ServeTree( return ::grpc::Status::OK; } // check if tree is in a known repository - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { auto has_tree = IsTreeInRepo(tree_id, path, logger_); if (not has_tree) { logger_->Emit(LogLevel::Error, @@ -1542,7 +1542,7 @@ auto SourceTreeService::CheckRootTree( return ::grpc::Status::OK; } // check if tree is in a known repository - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { auto has_tree = IsTreeInRepo(tree_id, path, logger_); if (not has_tree) { logger_->Emit(LogLevel::Error, diff --git a/src/buildtool/serve_api/serve_service/target.cpp b/src/buildtool/serve_api/serve_service/target.cpp index 024e5bae..8e614a0e 100644 --- a/src/buildtool/serve_api/serve_service/target.cpp +++ b/src/buildtool/serve_api/serve_service/target.cpp @@ -430,7 +430,7 @@ auto TargetService::ServeTarget( error_msg}; } - BuildMaps::Target::ResultTargetMap result_map{serve_config_.Jobs()}; + BuildMaps::Target::ResultTargetMap result_map{serve_config_.jobs}; auto configured_target = BuildMaps::Target::ConfiguredTarget{ .target = std::move(*entity), .config = std::move(config)}; @@ -459,7 +459,7 @@ auto TargetService::ServeTarget( auto result = AnalyseTarget(&analyse_ctx, configured_target, &result_map, - serve_config_.Jobs(), + serve_config_.jobs, std::nullopt /*request_action_input*/, &logger); @@ -485,19 +485,19 @@ auto TargetService::ServeTarget( // Clean up result map, now that it is no longer needed { - TaskSystem ts{serve_config_.Jobs()}; + TaskSystem ts{serve_config_.jobs}; result_map.Clear(&ts); } - auto jobs = serve_config_.BuildJobs(); + auto jobs = serve_config_.build_jobs; if (jobs == 0) { - jobs = serve_config_.Jobs(); + jobs = serve_config_.jobs; } // setup graph traverser GraphTraverser::CommandLineArguments traverser_args{}; traverser_args.jobs = jobs; - traverser_args.build.timeout = serve_config_.ActionTimeout(); + traverser_args.build.timeout = serve_config_.action_timeout; traverser_args.stage = std::nullopt; traverser_args.rebuild = std::nullopt; GraphTraverser const traverser{ @@ -527,7 +527,7 @@ auto TargetService::ServeTarget( jobs, traverser.GetLocalApi(), traverser.GetRemoteApi(), - serve_config_.TCStrategy(), + serve_config_.tc_strategy, tc, &logger, LogLevel::Error); @@ -605,7 +605,7 @@ auto TargetService::ServeTargetVariables( } if (not target_file_content) { // try given extra repositories, in order - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { if (auto res = GetBlobContent(path, root_tree, target_file, logger_)) { tree_found = true; @@ -760,7 +760,7 @@ auto TargetService::ServeTargetDescription( } if (not target_file_content) { // try given extra repositories, in order - for (auto const& path : serve_config_.KnownRepositories()) { + for (auto const& path : serve_config_.known_repositories) { if (auto res = GetBlobContent(path, root_tree, target_file, logger_)) { tree_found = true; diff --git a/src/buildtool/serve_api/serve_service/target_utils.cpp b/src/buildtool/serve_api/serve_service/target_utils.cpp index 3027775e..5e8411ca 100644 --- a/src/buildtool/serve_api/serve_service/target_utils.cpp +++ b/src/buildtool/serve_api/serve_service/target_utils.cpp @@ -62,7 +62,7 @@ auto GetServingRepository(RemoteServeConfig const& serve_config, return StorageConfig::GitRoot(); } // check the known repositories - for (auto const& path : serve_config.KnownRepositories()) { + for (auto const& path : serve_config.known_repositories) { if (IsTreeInRepo(tree_id, path, logger)) { return path; } |