[xDS Interop] Use XdsServerBuilder when testing CSM Observability

pull/35634/head
Yash Tibrewal 1 year ago
parent 562bc9b363
commit ecc1d89b43
  1. 10
      test/cpp/interop/xds_interop_server.cc
  2. 34
      test/cpp/interop/xds_interop_server_lib.cc
  3. 5
      test/cpp/interop/xds_interop_server_lib.h

@ -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;
}

@ -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:
@ -227,8 +223,9 @@ 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;
@ -236,7 +233,6 @@ void RunServer(bool secure_mode, const int port, const int maintenance_port,
grpc::reflection::InitProtoReflectionServerBuilderPlugin();
MaintenanceServices maintenance_services;
ServerBuilder builder;
if (secure_mode) {
XdsServerBuilder xds_builder;
xds_builder.RegisterService(&service);
@ -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());

@ -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

Loading…
Cancel
Save