Skip to content

Commit

Permalink
Merge branch 'master' into shush
Browse files Browse the repository at this point in the history
  • Loading branch information
ctiller committed Jan 24, 2024
2 parents 63f9f1e + 4cea5d0 commit d87d808
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 21 deletions.
10 changes: 6 additions & 4 deletions test/cpp/interop/xds_interop_server.cc
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,14 @@ int main(int argc, char** argv) {
return 1;
}
grpc::EnableDefaultHealthCheckService(false);
if (absl::GetFlag(FLAGS_enable_csm_observability)) {
bool enable_csm_observability = absl::GetFlag(FLAGS_enable_csm_observability);
if (enable_csm_observability) {
EnableCsmObservability();
}
grpc::testing::RunServer(
absl::GetFlag(FLAGS_secure_mode), port, maintenance_port, hostname,
absl::GetFlag(FLAGS_server_id), [](grpc::Server* /* unused */) {});
grpc::testing::RunServer(absl::GetFlag(FLAGS_secure_mode),
enable_csm_observability, port, maintenance_port,
hostname, absl::GetFlag(FLAGS_server_id),
[](grpc::Server* /* unused */) {});

return 0;
}
34 changes: 21 additions & 13 deletions test/cpp/interop/xds_interop_server_lib.cc
Original file line number Diff line number Diff line change
Expand Up @@ -169,15 +169,11 @@ class MaintenanceServices {
grpc::health::v1::HealthCheckResponse::SERVING);
}

std::unique_ptr<ServerBuilder> InitializeServerBuilder(int port) {
auto builder = std::make_unique<ServerBuilder>();
void AddToServerBuilder(ServerBuilder* builder) {
builder->RegisterService(&health_check_service_);
builder->RegisterService(&update_health_service_);
builder->RegisterService(&hook_service_);
grpc::AddAdminServices(builder.get());
builder->AddListeningPort(absl::StrCat("0.0.0.0:", port),
grpc::InsecureServerCredentials());
return builder;
grpc::AddAdminServices(builder);
}

private:
Expand Down Expand Up @@ -227,16 +223,16 @@ absl::optional<grpc::Status> GetStatusForRpcBehaviorMetadata(
return absl::nullopt;
}

void RunServer(bool secure_mode, const int port, const int maintenance_port,
absl::string_view hostname, absl::string_view server_id,
void RunServer(bool secure_mode, bool enable_csm_observability, int port,
const int maintenance_port, absl::string_view hostname,
absl::string_view server_id,
const std::function<void(Server*)>& server_callback) {
std::unique_ptr<Server> xds_enabled_server;
std::unique_ptr<Server> server;
TestServiceImpl service(hostname, server_id);

grpc::reflection::InitProtoReflectionServerBuilderPlugin();
MaintenanceServices maintenance_services;
ServerBuilder builder;
if (secure_mode) {
XdsServerBuilder xds_builder;
xds_builder.RegisterService(&service);
Expand All @@ -245,13 +241,25 @@ void RunServer(bool secure_mode, const int port, const int maintenance_port,
grpc::XdsServerCredentials(grpc::InsecureServerCredentials()));
xds_enabled_server = xds_builder.BuildAndStart();
gpr_log(GPR_INFO, "Server starting on 0.0.0.0:%d", port);
server = maintenance_services.InitializeServerBuilder(maintenance_port)
->BuildAndStart();
ServerBuilder builder;
maintenance_services.AddToServerBuilder(&builder);
server = builder
.AddListeningPort(absl::StrCat("0.0.0.0:", maintenance_port),
grpc::InsecureServerCredentials())
.BuildAndStart();
gpr_log(GPR_INFO, "Maintenance server listening on 0.0.0.0:%d",
maintenance_port);
} else {
auto builder = maintenance_services.InitializeServerBuilder(port);
server = builder->RegisterService(&service).BuildAndStart();
// CSM Observability requires an xDS enabled server.
auto builder = enable_csm_observability
? std::make_unique<XdsServerBuilder>()
: std::make_unique<ServerBuilder>();
maintenance_services.AddToServerBuilder(builder.get());
server = builder
->AddListeningPort(absl::StrCat("0.0.0.0:", port),
grpc::InsecureServerCredentials())
.RegisterService(&service)
.BuildAndStart();
gpr_log(GPR_INFO, "Server listening on 0.0.0.0:%d", port);
}
server_callback(server.get());
Expand Down
5 changes: 3 additions & 2 deletions test/cpp/interop/xds_interop_server_lib.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ namespace testing {
absl::optional<grpc::Status> GetStatusForRpcBehaviorMetadata(
absl::string_view header_value, absl::string_view hostname);

void RunServer(bool secure_mode, const int port, const int maintenance_port,
absl::string_view hostname, absl::string_view server_id,
void RunServer(bool secure_mode, bool enable_csm_observability, int port,
const int maintenance_port, absl::string_view hostname,
absl::string_view server_id,
const std::function<void(Server*)>& server_callback);

} // namespace testing
Expand Down
5 changes: 3 additions & 2 deletions test/cpp/interop/xds_interop_server_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@ namespace {

void ServerLoop(int port, grpc_core::Mutex* mutex,
grpc_core::CondVar* condition, Server** server) {
RunServer(false, port, /* should not be used */ -1, "127.0.0.1",
"test_server", [&](Server* s) {
RunServer(false, /*enable_csm_observability=*/false, port,
/* should not be used */ -1, "127.0.0.1", "test_server",
[&](Server* s) {
grpc_core::MutexLock lock(mutex);
*server = s;
condition->Signal();
Expand Down

0 comments on commit d87d808

Please sign in to comment.