Refine search
@Test public void testQuery() Request request = preparePost() .setUri(uriFor("/v1/statement")) .setBodyGenerator(createStaticBodyGenerator("show catalogs", UTF_8)) .setHeader(PRESTO_USER, "user") .setHeader(PRESTO_SOURCE, "source") .build(); QueryResults queryResults = client.execute(request, createJsonResponseHandler(QUERY_RESULTS_CODEC)); queryResults = client.execute(prepareGet().setUri(queryResults.getNextUri()).build(), createJsonResponseHandler(QUERY_RESULTS_CODEC)); assertNull(queryResults.getError()); assertEquals(queryInfo.getSession().getSystemProperties(), ImmutableMap.builder() .put(QUERY_MAX_MEMORY, "1GB") .put(JOIN_DISTRIBUTION_TYPE, "partitioned") assertEquals(queryInfo.getSession().getClientInfo().get(), "{\"clientVersion\":\"testVersion\"}");
@Test public void testHttpRequestEvent() throws Exception preparePost().setUri(requestUri) .addHeader(USER_AGENT, userAgent) .addHeader(CONTENT_TYPE, requestContentType) .addHeader(REFERER, referrer) .addHeader("X-Airlift-TraceToken", token) .setBodyGenerator(createStaticBodyGenerator(requestBody, UTF_8)) .build(), createStringResponseHandler()); assertEquals(response.getStatusCode(), responseCode); assertEquals(response.getBody(), responseBody); assertEquals(response.getHeader("Content-Type"), responseContentType);
@Test public void testPutMethodWithBodyGenerator() throws Exception { URI uri = baseURI.resolve("/road/to/nowhere"); Request request = preparePut() .setUri(uri) .addHeader("foo", "bar") .addHeader("dupe", "first") .addHeader("dupe", "second") .setBodyGenerator(StaticBodyGenerator.createStaticBodyGenerator(new byte[0])) .build(); int statusCode = executeRequest(request, new ResponseStatusCodeHandler()); Assert.assertEquals(statusCode, 200); Assert.assertEquals(servlet.requestMethod, "PUT"); Assert.assertEquals(servlet.requestUri, uri); Assert.assertEquals(servlet.requestHeaders.get("foo"), ImmutableList.of("bar")); Assert.assertEquals(servlet.requestHeaders.get("dupe"), ImmutableList.of("first", "second")); Assert.assertEquals(servlet.requestHeaders.get("x-custom-filter"), ImmutableList.of("customvalue")); // Assert.assertEquals(servlet.requestHeaders.get(HTTP.TRANSFER_ENCODING), ImmutableList.of(HTTP.CHUNK_CODING)); }
@Test public void testTransactionSupport() { Request request = preparePost() .setUri(uriFor("/v1/statement")) .setBodyGenerator(createStaticBodyGenerator("start transaction", UTF_8)) .setHeader(PRESTO_USER, "user") .setHeader(PRESTO_SOURCE, "source") .setHeader(PRESTO_TRANSACTION_ID, "none") .build(); JsonResponse<QueryResults> queryResults = client.execute(request, createFullJsonResponseHandler(QUERY_RESULTS_CODEC)); ImmutableList.Builder<List<Object>> data = ImmutableList.builder(); while (true) { if (queryResults.getValue().getData() != null) { data.addAll(queryResults.getValue().getData()); } if (queryResults.getValue().getNextUri() == null) { break; } queryResults = client.execute(prepareGet().setUri(queryResults.getValue().getNextUri()).build(), createFullJsonResponseHandler(QUERY_RESULTS_CODEC)); } assertNull(queryResults.getValue().getError()); assertNotNull(queryResults.getHeader(PRESTO_STARTED_TRANSACTION_ID)); }
private void runToCompletion(String sql) { URI uri = uriBuilderFrom(server.getBaseUrl().resolve("/v1/statement")).build(); Request request = preparePost() .setHeader(PRESTO_USER, "user") .setUri(uri) .setBodyGenerator(createStaticBodyGenerator(sql, UTF_8)) .build(); QueryResults queryResults = client.execute(request, createJsonResponseHandler(jsonCodec(QueryResults.class))); while (queryResults.getNextUri() != null) { request = prepareGet() .setHeader(PRESTO_USER, "user") .setUri(queryResults.getNextUri()) .build(); queryResults = client.execute(request, createJsonResponseHandler(jsonCodec(QueryResults.class))); } }
@POST @Path("/v1/statement") @Produces(APPLICATION_JSON) public void postStatement( String statement, @Context HttpServletRequest servletRequest, @Context UriInfo uriInfo, @Suspended AsyncResponse asyncResponse) { Request.Builder request = preparePost() .setUri(uriBuilderFrom(remoteUri).replacePath("/v1/statement").build()) .setBodyGenerator(createStaticBodyGenerator(statement, UTF_8)); performRequest(servletRequest, asyncResponse, request, response -> buildResponse(uriInfo, response)); }
Request request = preparePost() .setUri(uriBuilder.build()) .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.JSON_UTF_8.toString()) .setBodyGenerator(createStaticBodyGenerator(taskUpdateRequestJson)) .build(); ListenableFuture<JsonResponse<TaskInfo>> future = httpClient.executeAsync(request, createFullJsonResponseHandler(taskInfoCodec)); currentRequest = future; currentRequestStartNanos = System.nanoTime();
public static StaticBodyGenerator createStaticBodyGenerator(byte[] body) { return new StaticBodyGenerator(body); }
if (bodyGenerator instanceof StaticBodyGenerator) { StaticBodyGenerator staticBodyGenerator = (StaticBodyGenerator) bodyGenerator; jettyRequest.content(new BytesContentProvider(staticBodyGenerator.getBody()));
@Test public void testHttpRequestEvent() throws Exception preparePost().setUri(requestUri) .addHeader(USER_AGENT, userAgent) .addHeader(CONTENT_TYPE, requestContentType) .addHeader(REFERER, referrer) .addHeader("X-Airlift-TraceToken", token) .setBodyGenerator(createStaticBodyGenerator(requestBody, Charsets.UTF_8)) .build(), createStringResponseHandler()); assertEquals(response.getStatusCode(), responseCode); assertEquals(response.getBody(), responseBody); assertEquals(response.getHeader("Content-Type"), responseContentType);
@Test public void testPutMethodWithStaticBodyGenerator() throws Exception { URI uri = baseURI.resolve("/road/to/nowhere"); byte[] body = {1, 2, 5}; Request request = preparePut() .setUri(uri) .addHeader("foo", "bar") .addHeader("dupe", "first") .addHeader("dupe", "second") .setBodyGenerator(StaticBodyGenerator.createStaticBodyGenerator(body)) .build(); int statusCode = executeRequest(request, createStatusResponseHandler()).getStatusCode(); assertEquals(statusCode, 200); assertEquals(servlet.getRequestMethod(), "PUT"); assertEquals(servlet.getRequestUri(), uri); assertEquals(servlet.getRequestHeaders("foo"), ImmutableList.of("bar")); assertEquals(servlet.getRequestHeaders("dupe"), ImmutableList.of("first", "second")); assertEquals(servlet.getRequestHeaders("x-custom-filter"), ImmutableList.of("custom value")); assertEquals(servlet.getRequestBytes(), body); }
@Test public void testTransactionSupport() { Request request = preparePost() .setUri(uriFor("/v1/statement")) .setBodyGenerator(createStaticBodyGenerator("start transaction", UTF_8)) .setHeader(PRESTO_USER, "user") .setHeader(PRESTO_SOURCE, "source") .setHeader(PRESTO_TRANSACTION_ID, "none") .build(); JsonResponse<QueryResults> queryResults = client.execute(request, createFullJsonResponseHandler(QUERY_RESULTS_CODEC)); ImmutableList.Builder<List<Object>> data = ImmutableList.builder(); while (true) { if (queryResults.getValue().getData() != null) { data.addAll(queryResults.getValue().getData()); } if (queryResults.getValue().getNextUri() == null) { break; } queryResults = client.execute(prepareGet().setUri(queryResults.getValue().getNextUri()).build(), createFullJsonResponseHandler(QUERY_RESULTS_CODEC)); } assertNull(queryResults.getValue().getError()); assertNotNull(queryResults.getHeader(PRESTO_STARTED_TRANSACTION_ID)); }
@BeforeClass public void setup() { Request request1 = preparePost() .setUri(uriBuilderFrom(server.getBaseUrl()).replacePath("/v1/statement").build()) .setBodyGenerator(createStaticBodyGenerator(LONG_LASTING_QUERY, UTF_8)) .setHeader(PRESTO_USER, "user1") .build(); queryResults = client.execute(request1, createJsonResponseHandler(QUERY_RESULTS_JSON_CODEC)); client.execute(prepareGet().setUri(queryResults.getNextUri()).build(), createJsonResponseHandler(QUERY_RESULTS_JSON_CODEC)); Request request2 = preparePost() .setUri(uriBuilderFrom(server.getBaseUrl()).replacePath("/v1/statement").build()) .setBodyGenerator(createStaticBodyGenerator(LONG_LASTING_QUERY, UTF_8)) .setHeader(PRESTO_USER, "user2") .build(); QueryResults queryResults2 = client.execute(request2, createJsonResponseHandler(jsonCodec(QueryResults.class))); client.execute(prepareGet().setUri(queryResults2.getNextUri()).build(), createJsonResponseHandler(QUERY_RESULTS_JSON_CODEC)); // queries are started in the background, so they may not all be immediately visible while (true) { List<BasicQueryInfo> queryInfos = client.execute( prepareGet().setUri(uriBuilderFrom(server.getBaseUrl()).replacePath("/v1/query").build()).build(), createJsonResponseHandler(listJsonCodec(BasicQueryInfo.class))); if ((queryInfos.size() == 2) && queryInfos.stream().allMatch(info -> info.getState() == RUNNING)) { break; } } }
public static BodyGenerator createBodyGenerator() { return createStaticBodyGenerator(new byte[0]); } }
Request request = preparePost() .setUri(uriBuilder.build()) .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.JSON_UTF_8.toString()) .setBodyGenerator(createStaticBodyGenerator(taskUpdateRequestJson)) .build(); ListenableFuture<JsonResponse<TaskInfo>> future = httpClient.executeAsync(request, createFullJsonResponseHandler(taskInfoCodec)); currentRequest = future; currentRequestStartNanos = System.nanoTime();
public static StaticBodyGenerator createStaticBodyGenerator(String body, Charset charset) { return new StaticBodyGenerator(body.getBytes(charset)); }
@Test public void testNoTransactionSupport() { Request request = preparePost() .setUri(uriFor("/v1/statement")) .setBodyGenerator(createStaticBodyGenerator("start transaction", UTF_8)) .setHeader(PRESTO_USER, "user") .setHeader(PRESTO_SOURCE, "source") .build(); QueryResults queryResults = client.execute(request, createJsonResponseHandler(QUERY_RESULTS_CODEC)); while (queryResults.getNextUri() != null) { queryResults = client.execute(prepareGet().setUri(queryResults.getNextUri()).build(), createJsonResponseHandler(QUERY_RESULTS_CODEC)); } assertNotNull(queryResults.getError()); assertEquals(queryResults.getError().getErrorCode(), INCOMPATIBLE_CLIENT.toErrorCode().getCode()); }
@Test public void testPutMethodWithStaticBodyGenerator() throws Exception { URI uri = baseURI.resolve("/road/to/nowhere"); byte[] body = {1, 2, 5}; Request request = preparePut() .setUri(uri) .addHeader("foo", "bar") .addHeader("dupe", "first") .addHeader("dupe", "second") .setBodyGenerator(StaticBodyGenerator.createStaticBodyGenerator(body)) .build(); int statusCode = executeRequest(request, createStatusResponseHandler()).getStatusCode(); assertEquals(statusCode, 200); assertEquals(servlet.getRequestMethod(), "PUT"); assertEquals(servlet.getRequestUri(), uri); assertEquals(servlet.getRequestHeaders("foo"), ImmutableList.of("bar")); assertEquals(servlet.getRequestHeaders("dupe"), ImmutableList.of("first", "second")); assertEquals(servlet.getRequestHeaders("x-custom-filter"), ImmutableList.of("custom value")); assertEquals(servlet.getRequestBytes(), body); }
@Test public void testTransactionSupport() { Request request = preparePost() .setUri(uriFor("/v1/statement")) .setBodyGenerator(createStaticBodyGenerator("start transaction", UTF_8)) .setHeader(PRESTO_USER, "user") .setHeader(PRESTO_SOURCE, "source") .setHeader(PRESTO_TRANSACTION_ID, "none") .build(); JsonResponse<QueryResults> queryResults = client.execute(request, createFullJsonResponseHandler(QUERY_RESULTS_CODEC)); ImmutableList.Builder<List<Object>> data = ImmutableList.builder(); while (true) { if (queryResults.getValue().getData() != null) { data.addAll(queryResults.getValue().getData()); } if (queryResults.getValue().getNextUri() == null) { break; } queryResults = client.execute(prepareGet().setUri(queryResults.getValue().getNextUri()).build(), createFullJsonResponseHandler(QUERY_RESULTS_CODEC)); } assertNull(queryResults.getValue().getError()); assertNotNull(queryResults.getHeader(PRESTO_STARTED_TRANSACTION_ID)); }
@Override public SlotStatus kill() { try { Request request = Request.Builder.preparePut() .setUri(uriBuilderFrom(slotStatus.getSelf()).appendPath("lifecycle").build()) .setBodyGenerator(createStaticBodyGenerator("killing", UTF_8)) .build(); SlotStatusRepresentation slotStatusRepresentation = httpClient.execute(request, createJsonResponseHandler(slotStatusCodec, Status.OK.getStatusCode())); updateStatus(slotStatusRepresentation.toSlotStatus(slotStatus.getInstanceId())); return slotStatus; } catch (Exception e) { log.error(e); return setErrorStatus(e.getMessage()); } } }