summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/main/main.cpp1
-rw-r--r--src/buildtool/serve_api/serve_service/TARGETS3
-rw-r--r--src/buildtool/serve_api/serve_service/serve_server_implementation.cpp13
-rw-r--r--src/buildtool/serve_api/serve_service/serve_server_implementation.hpp2
-rw-r--r--src/buildtool/serve_api/serve_service/target.cpp9
-rw-r--r--src/buildtool/serve_api/serve_service/target.hpp4
6 files changed, 22 insertions, 10 deletions
diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp
index 10fde879..7ea42821 100644
--- a/src/buildtool/main/main.cpp
+++ b/src/buildtool/main/main.cpp
@@ -901,6 +901,7 @@ auto main(int argc, char* argv[]) -> int {
return serve_server->Run(*serve_config,
&local_context,
+ &remote_context,
serve,
serve_apis,
op_exponent,
diff --git a/src/buildtool/serve_api/serve_service/TARGETS b/src/buildtool/serve_api/serve_service/TARGETS
index 44ee4427..71f4c574 100644
--- a/src/buildtool/serve_api/serve_service/TARGETS
+++ b/src/buildtool/serve_api/serve_service/TARGETS
@@ -56,6 +56,7 @@
, ["src/buildtool/execution_api/common", "api_bundle"]
, ["src/buildtool/execution_api/execution_service", "operation_cache"]
, ["src/buildtool/execution_api/local", "context"]
+ , ["src/buildtool/execution_api/remote", "context"]
]
, "stage": ["src", "buildtool", "serve_api", "serve_service"]
, "private-deps":
@@ -90,6 +91,7 @@
, ["src/buildtool/execution_api/common", "common"]
, ["src/buildtool/execution_api/local", "context"]
, ["src/buildtool/execution_api/remote", "config"]
+ , ["src/buildtool/execution_api/remote", "context"]
, ["src/buildtool/serve_api/remote", "config"]
, ["src/utils/cpp", "expected"]
]
@@ -106,7 +108,6 @@
, ["src/buildtool/build_engine/target_map", "result_map"]
, ["src/buildtool/common/remote", "remote_common"]
, ["src/buildtool/common/remote", "retry_config"]
- , ["src/buildtool/execution_api/remote", "context"]
, ["src/buildtool/file_system", "file_system_manager"]
, ["src/buildtool/graph_traverser", "graph_traverser"]
, ["src/buildtool/logging", "log_level"]
diff --git a/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp b/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp
index fac31fbe..6c7b4843 100644
--- a/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp
+++ b/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp
@@ -90,6 +90,7 @@ auto ServeServerImpl::Create(std::optional<std::string> interface,
auto ServeServerImpl::Run(
RemoteServeConfig const& serve_config,
gsl::not_null<LocalContext const*> const& local_context,
+ gsl::not_null<RemoteContext const*> const& remote_context,
std::optional<ServeApi> const& serve,
ApiBundle const& apis,
std::optional<std::uint8_t> op_exponent,
@@ -112,9 +113,12 @@ auto ServeServerImpl::Run(
}
SourceTreeService sts{&serve_config, local_context, &apis};
- TargetService ts{
- &serve_config, local_context, &apis, serve ? &*serve : nullptr};
- ConfigurationService cs{&apis.remote_config};
+ TargetService ts{&serve_config,
+ local_context,
+ remote_context,
+ &apis,
+ serve ? &*serve : nullptr};
+ ConfigurationService cs{remote_context->exec_config};
grpc::ServerBuilder builder;
@@ -142,7 +146,8 @@ auto ServeServerImpl::Run(
// check authentication credentials; currently only TLS/SSL is supported
std::shared_ptr<grpc::ServerCredentials> creds;
- if (const auto* tls_auth = std::get_if<Auth::TLS>(&apis.auth.method);
+ if (const auto* tls_auth =
+ std::get_if<Auth::TLS>(&remote_context->auth->method);
tls_auth != nullptr) {
auto tls_opts = grpc::SslServerCredentialsOptions{};
diff --git a/src/buildtool/serve_api/serve_service/serve_server_implementation.hpp b/src/buildtool/serve_api/serve_service/serve_server_implementation.hpp
index 4f12ea68..4e169696 100644
--- a/src/buildtool/serve_api/serve_service/serve_server_implementation.hpp
+++ b/src/buildtool/serve_api/serve_service/serve_server_implementation.hpp
@@ -22,6 +22,7 @@
#include "gsl/gsl"
#include "src/buildtool/execution_api/common/api_bundle.hpp"
#include "src/buildtool/execution_api/local/context.hpp"
+#include "src/buildtool/execution_api/remote/context.hpp"
#include "src/buildtool/logging/logger.hpp"
#include "src/buildtool/serve_api/remote/config.hpp"
#include "src/buildtool/serve_api/remote/serve_api.hpp"
@@ -51,6 +52,7 @@ class ServeServerImpl final {
/// just execute (i.e., start remote execution services with same interface)
auto Run(RemoteServeConfig const& serve_config,
gsl::not_null<LocalContext const*> const& local_context,
+ gsl::not_null<RemoteContext const*> const& remote_context,
std::optional<ServeApi> const& serve,
ApiBundle const& apis,
std::optional<std::uint8_t> op_exponent,
diff --git a/src/buildtool/serve_api/serve_service/target.cpp b/src/buildtool/serve_api/serve_service/target.cpp
index 16cc37a4..af6de69f 100644
--- a/src/buildtool/serve_api/serve_service/target.cpp
+++ b/src/buildtool/serve_api/serve_service/target.cpp
@@ -28,7 +28,6 @@
#include "src/buildtool/common/remote/retry_config.hpp"
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/common/statistics.hpp"
-#include "src/buildtool/execution_api/remote/context.hpp"
#include "src/buildtool/file_system/file_system_manager.hpp"
#include "src/buildtool/file_system/object_type.hpp"
#include "src/buildtool/graph_traverser/graph_traverser.hpp"
@@ -142,9 +141,9 @@ auto TargetService::CreateRemoteExecutionConfig(
}
// the remote and cache addresses are kept from the stored ApiBundle
return RemoteExecutionConfig{
- .remote_address = apis_.remote_config.remote_address,
+ .remote_address = remote_context_.exec_config->remote_address,
.dispatch = *std::move(res),
- .cache_address = apis_.remote_config.cache_address,
+ .cache_address = remote_context_.exec_config->cache_address,
.platform_properties = std::move(platform_properties)};
}
@@ -496,8 +495,8 @@ auto TargetService::ServeTarget(
// pack the remote context instances to be passed as needed
RemoteContext const dispatch_context{
- .auth = &apis_.auth,
- .retry_config = &apis_.retry_config,
+ .auth = remote_context_.auth,
+ .retry_config = remote_context_.retry_config,
.exec_config = &(*remote_config)};
// Use a new ApiBundle that knows about local repository config and
diff --git a/src/buildtool/serve_api/serve_service/target.hpp b/src/buildtool/serve_api/serve_service/target.hpp
index 89076f05..04459d08 100644
--- a/src/buildtool/serve_api/serve_service/target.hpp
+++ b/src/buildtool/serve_api/serve_service/target.hpp
@@ -32,6 +32,7 @@
#include "src/buildtool/execution_api/common/execution_api.hpp"
#include "src/buildtool/execution_api/local/context.hpp"
#include "src/buildtool/execution_api/remote/config.hpp"
+#include "src/buildtool/execution_api/remote/context.hpp"
#include "src/buildtool/logging/logger.hpp"
#include "src/buildtool/serve_api/remote/config.hpp"
#include "src/buildtool/serve_api/remote/serve_api.hpp"
@@ -43,10 +44,12 @@ class TargetService final : public justbuild::just_serve::Target::Service {
explicit TargetService(
gsl::not_null<RemoteServeConfig const*> const& serve_config,
gsl::not_null<LocalContext const*> const& local_context,
+ gsl::not_null<RemoteContext const*> const& remote_context,
gsl::not_null<ApiBundle const*> const& apis,
ServeApi const* serve = nullptr) noexcept
: serve_config_{*serve_config},
local_context_{*local_context},
+ remote_context_{*remote_context},
apis_{*apis},
serve_{serve} {}
@@ -128,6 +131,7 @@ class TargetService final : public justbuild::just_serve::Target::Service {
private:
RemoteServeConfig const& serve_config_;
LocalContext const& local_context_;
+ RemoteContext const& remote_context_;
ApiBundle const& apis_;
ServeApi const* const serve_ = nullptr;
std::shared_ptr<Logger> logger_{std::make_shared<Logger>("target-service")};