Skip to content

Commit 29a5df7

Browse files
Chaho12Jaeho Yoo
authored andcommitted
Reformat to match Airlift style
1 parent a37a345 commit 29a5df7

File tree

2 files changed

+57
-55
lines changed

2 files changed

+57
-55
lines changed

gateway-ha/src/main/java/io/trino/gateway/proxyserver/ProxyRequestHandler.java

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,39 @@ public ProxyRequestHandler(
109109
proxyResponseConfiguration = haGatewayConfiguration.getProxyResponseConfiguration();
110110
}
111111

112+
private static Response handleProxyException(Request request, ProxyException e)
113+
{
114+
log.warn(e, "Proxy request failed: %s %s", request.getMethod(), request.getUri());
115+
throw badRequest(e.getMessage());
116+
}
117+
118+
private static WebApplicationException badRequest(String message)
119+
{
120+
throw new WebApplicationException(
121+
Response.status(Response.Status.BAD_GATEWAY)
122+
.type(TEXT_PLAIN_TYPE)
123+
.entity(message)
124+
.build());
125+
}
126+
127+
public static QueryHistoryManager.QueryDetail getQueryDetailsFromRequest(Request request, Optional<String> username)
128+
{
129+
QueryHistoryManager.QueryDetail queryDetail = new QueryHistoryManager.QueryDetail();
130+
queryDetail.setBackendUrl(getRemoteTarget(request.getUri()));
131+
queryDetail.setCaptureTime(System.currentTimeMillis());
132+
username.ifPresent(queryDetail::setUser);
133+
queryDetail.setSource(request.getHeader(SOURCE_HEADER));
134+
135+
String queryText = new String(((StaticBodyGenerator) request.getBodyGenerator()).getBody(), UTF_8);
136+
queryDetail.setQueryText(queryText);
137+
return queryDetail;
138+
}
139+
140+
private static String getRemoteTarget(URI remoteUri)
141+
{
142+
return format("%s://%s", remoteUri.getScheme(), remoteUri.getAuthority());
143+
}
144+
112145
@PreDestroy
113146
public void shutdown()
114147
{
@@ -188,9 +221,11 @@ private void performRequest(
188221

189222
FluentFuture<ProxyResponse> future = executeHttp(request);
190223

191-
if (statementPaths.stream().anyMatch(request.getUri().getPath()::startsWith) && request.getMethod().equals(HttpMethod.POST)) {
224+
if (statementPaths.stream().anyMatch(request.getUri().getPath()::startsWith)
225+
&& request.getMethod().equals(HttpMethod.POST)) {
192226
Optional<String> username = trinoRequestUserProvider.getInstance(servletRequest).getUser();
193-
future = future.transform(response -> recordBackendForQueryId(request, response, username, routingDestination), executor);
227+
future = future.transform(
228+
response -> recordBackendForQueryId(request, response, username, routingDestination), executor);
194229
if (includeClusterInfoInResponse) {
195230
cookieBuilder.add(new NewCookie.Builder("trinoClusterHost").value(remoteUri.getHost()).build());
196231
}
@@ -224,11 +259,6 @@ else if (servletRequest.getCookies() != null) {
224259
return ImmutableList.of();
225260
}
226261

227-
private static String getRemoteTarget(URI remoteUri)
228-
{
229-
return format("%s://%s", remoteUri.getScheme(), remoteUri.getAuthority());
230-
}
231-
232262
private Response buildResponse(ProxyResponse response, ImmutableList<NewCookie> cookie)
233263
{
234264
Response.ResponseBuilder builder = Response.status(response.statusCode()).entity(response.body());
@@ -249,22 +279,8 @@ private void setupAsyncResponse(AsyncResponse asyncResponse, ListenableFuture<Re
249279

250280
private FluentFuture<ProxyResponse> executeHttp(Request request)
251281
{
252-
return FluentFuture.from(httpClient.executeAsync(request, new ProxyResponseHandler(proxyResponseConfiguration)));
253-
}
254-
255-
private static Response handleProxyException(Request request, ProxyException e)
256-
{
257-
log.warn(e, "Proxy request failed: %s %s", request.getMethod(), request.getUri());
258-
throw badRequest(e.getMessage());
259-
}
260-
261-
private static WebApplicationException badRequest(String message)
262-
{
263-
throw new WebApplicationException(
264-
Response.status(Response.Status.BAD_GATEWAY)
265-
.type(TEXT_PLAIN_TYPE)
266-
.entity(message)
267-
.build());
282+
return FluentFuture
283+
.from(httpClient.executeAsync(request, new ProxyResponseHandler(proxyResponseConfiguration)));
268284
}
269285

270286
private ProxyResponse recordBackendForQueryId(Request request, ProxyResponse response, Optional<String> username,
@@ -297,19 +313,6 @@ private ProxyResponse recordBackendForQueryId(Request request, ProxyResponse res
297313
return response;
298314
}
299315

300-
public static QueryHistoryManager.QueryDetail getQueryDetailsFromRequest(Request request, Optional<String> username)
301-
{
302-
QueryHistoryManager.QueryDetail queryDetail = new QueryHistoryManager.QueryDetail();
303-
queryDetail.setBackendUrl(getRemoteTarget(request.getUri()));
304-
queryDetail.setCaptureTime(System.currentTimeMillis());
305-
username.ifPresent(queryDetail::setUser);
306-
queryDetail.setSource(request.getHeader(SOURCE_HEADER));
307-
308-
String queryText = new String(((StaticBodyGenerator) request.getBodyGenerator()).getBody(), UTF_8);
309-
queryDetail.setQueryText(queryText);
310-
return queryDetail;
311-
}
312-
313316
private void addXForwardedHeaders(HttpServletRequest servletRequest, Request.Builder requestBuilder)
314317
{
315318
requestBuilder.addHeader(X_FORWARDED_FOR, servletRequest.getRemoteAddr());

gateway-ha/src/test/java/io/trino/gateway/proxyserver/TestProxyRequestHandler.java

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,15 @@
5050
@TestInstance(PER_CLASS)
5151
final class TestProxyRequestHandler
5252
{
53+
private static final String OK = "OK";
54+
private static final int NOT_FOUND = 404;
55+
private static final MediaType MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8");
56+
5357
private final OkHttpClient httpClient = new OkHttpClient();
5458
private final MockWebServer mockTrinoServer = new MockWebServer();
5559
private final PostgreSQLContainer postgresql = new PostgreSQLContainer("postgres:17");
56-
5760
private final int routerPort = 21001 + (int) (Math.random() * 1000);
5861
private final int customBackendPort = 21000 + (int) (Math.random() * 1000);
59-
60-
private static final String OK = "OK";
61-
private static final int NOT_FOUND = 404;
62-
private static final MediaType MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8");
63-
6462
private final String customPutEndpoint = "/v1/custom"; // this is enabled in test-config-template.yml
6563
private final String healthCheckEndpoint = "/v1/info";
6664

@@ -69,7 +67,8 @@ void setup()
6967
throws Exception
7068
{
7169
prepareMockBackend(mockTrinoServer, customBackendPort, "default custom response");
72-
mockTrinoServer.setDispatcher(new Dispatcher() {
70+
mockTrinoServer.setDispatcher(new Dispatcher()
71+
{
7372
@Override
7473
public MockResponse dispatch(RecordedRequest request)
7574
{
@@ -130,18 +129,18 @@ void testGetQueryDetailsFromRequest()
130129
{
131130
// A sample query longer than 200 characters to test against truncation.
132131
String longQuery = """
133-
SELECT
134-
c.customer_name,
135-
c.customer_region,
136-
COUNT(o.order_id) AS total_orders,
137-
SUM(o.order_value) AS total_revenue
138-
FROM
139-
hive.sales_data.customers AS c
140-
JOIN
141-
hive.sales_data.orders AS o
142-
ON c.customer_id = o.customer_id
143-
WHERE
144-
o.order_date >= date '2023-01-01'""";
132+
SELECT
133+
c.customer_name,
134+
c.customer_region,
135+
COUNT(o.order_id) AS total_orders,
136+
SUM(o.order_value) AS total_revenue
137+
FROM
138+
hive.sales_data.customers AS c
139+
JOIN
140+
hive.sales_data.orders AS o
141+
ON c.customer_id = o.customer_id
142+
WHERE
143+
o.order_date >= date '2023-01-01'""";
145144

146145
io.airlift.http.client.Request request = preparePost()
147146
.setUri(URI.create("http://localhost:" + routerPort + V1_STATEMENT_PATH))

0 commit comments

Comments
 (0)