@Override public Optional<QueryStats> handle(Request request, Response response) { if (response.getStatusCode() == HttpStatus.GONE.code()) { return Optional.empty(); } else if (response.getStatusCode() != HttpStatus.OK.code()) { throw new RuntimeException("unexpected error code " + response.getStatusCode() + "; reason=" + response.getStatusMessage()); } try { JsonNode rootNode = objectMapper.readTree(response.getInputStream()); JsonNode queryStatsNode = rootNode.get("queryStats"); if (queryStatsNode == null) { return Optional.empty(); } QueryStats queryStats = objectMapper.treeToValue(queryStatsNode, QueryStats.class); return Optional.of(queryStats); } catch (IOException e) { throw new UncheckedIOException(e); } } }
private void cancelQuery(String sql) throws InterruptedException { Stopwatch stopwatch = Stopwatch.createStarted(); while (stopwatch.elapsed(SECONDS) < 30) { String findQuerySql = "SELECT query_id from system.runtime.queries WHERE query = '%s' and state = 'RUNNING' LIMIT 2"; QueryResult queryResult = query(format(findQuerySql, sql)); checkState(queryResult.getRowsCount() < 2, "Query is executed multiple times"); if (queryResult.getRowsCount() == 1) { String queryId = (String) queryResult.row(0).get(0); Response response = queryCanceller.cancel(queryId); Assertions.assertThat(response.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT.code()); return; } MILLISECONDS.sleep(100L); } throw new IllegalStateException("Query did not reach running state or maybe it was too quick."); }
stats.responseSize(response.getResponseSize()); try { if (response.getStatusCode() == HttpStatus.OK.code() && response.hasValue()) { callback.success(response.getValue()); else if (response.getStatusCode() == HttpStatus.SERVICE_UNAVAILABLE.code()) { callback.failed(new ServiceUnavailableException(uri)); if (response.getStatusCode() == HttpStatus.OK.code()) { cause = new PrestoException(REMOTE_TASK_ERROR, format("Expected response from %s is empty", uri)); cause = new PrestoException(REMOTE_TASK_ERROR, format("Expected response code from %s to be %s, but was %s: %s%n%s", uri, HttpStatus.OK.code(), response.getStatusCode(), response.getStatusMessage(),
if (response.getStatusCode() == HttpStatus.NO_CONTENT.code()) { return createEmptyPagesResponse(getTaskInstanceId(response), getToken(response), getNextToken(response), getComplete(response)); if (response.getStatusCode() != HttpStatus.OK.code()) { StringBuilder body = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new InputStreamReader(response.getInputStream(), UTF_8))) {
@Override public ProxyResponse handle(Request request, Response response) { if (response.getStatusCode() == NO_CONTENT.code()) { return new ProxyResponse(response.getHeaders(), new byte[0]); } if (response.getStatusCode() != OK.code()) { throw new ProxyException(format("Bad status code from remote Presto server: %s: %s", response.getStatusCode(), readBody(response))); } String contentType = response.getHeader(CONTENT_TYPE); if (contentType == null) { throw new ProxyException("No Content-Type set in response from remote Presto server"); } if (!MediaType.parse(contentType).is(MEDIA_TYPE_JSON)) { throw new ProxyException("Bad Content-Type from remote Presto server:" + contentType); } try { return new ProxyResponse(response.getHeaders(), toByteArray(response.getInputStream())); } catch (IOException e) { throw new ProxyException("Failed reading response from remote Presto server", e); } }
@Override public int getStatusCode() { return status.code(); }
private static Map<Integer, HttpStatus> buildStatusCodeMap() { ImmutableMap.Builder<Integer, HttpStatus> map = ImmutableMap.builder(); for (HttpStatus status : values()) { map.put(status.code(), status); } return map.build(); }
@Override public int getStatusCode() { return HttpStatus.OK.code(); }
@Override public int getStatusCode() { return HttpStatus.OK.code(); }
private static boolean isGone(StatusResponse response) { return response.getStatusCode() == HttpStatus.GONE.code(); }
private static boolean isNotFound(StatusResponse response) { return response.getStatusCode() == HttpStatus.NOT_FOUND.code(); }
@Test public void test() { Request request = prepareGet() .setUri(URI.create("http://fake.invalid/get-it/get/xyz")) .build(); StringResponse response = HTTP_CLIENT.execute(request, createStringResponseHandler()); assertEquals(response.getStatusCode(), HttpStatus.OK.code()); assertEquals(response.getBody(), "Got xyz"); }
@Test public void test() { Request request = prepareGet() .setUri(URI.create("http://fake.invalid/get-it/get/xyz")) .build(); StringResponse response = HTTP_CLIENT.execute(request, createStringResponseHandler()); assertEquals(response.getStatusCode(), HttpStatus.OK.code()); assertEquals(response.getBody(), "Got xyz"); }
private void assertResource(URI baseUri, HttpClient client, String path, String contents) { HttpUriBuilder uriBuilder = uriBuilderFrom(baseUri); StringResponse data = client.execute(prepareGet().setUri(uriBuilder.appendPath(path).build()).build(), createStringResponseHandler()); assertEquals(data.getStatusCode(), HttpStatus.OK.code()); MediaType contentType = MediaType.parse(data.getHeader(HttpHeaders.CONTENT_TYPE)); assertTrue(PLAIN_TEXT_UTF_8.is(contentType), "Expected text/plain but got " + contentType); assertEquals(data.getBody().trim(), contents); }
private static void assertResource(URI baseUri, HttpClient client, String path, String contents) { HttpUriBuilder uriBuilder = uriBuilderFrom(baseUri); StringResponseHandler.StringResponse data = client.execute(prepareGet().setUri(uriBuilder.appendPath(path).build()).build(), createStringResponseHandler()); assertEquals(data.getStatusCode(), HttpStatus.OK.code()); MediaType contentType = MediaType.parse(data.getHeader(HttpHeaders.CONTENT_TYPE)); assertTrue(PLAIN_TEXT_UTF_8.is(contentType), "Expected text/plain but got " + contentType); assertEquals(data.getBody().trim(), contents); }
private void assertResource(URI baseUri, HttpClient client, String path, String contents) { HttpUriBuilder uriBuilder = uriBuilderFrom(baseUri); StringResponse data = client.execute(prepareGet().setUri(uriBuilder.appendPath(path).build()).build(), createStringResponseHandler()); assertEquals(data.getStatusCode(), HttpStatus.OK.code()); MediaType contentType = MediaType.parse(data.getHeader(CONTENT_TYPE)); assertTrue(PLAIN_TEXT_UTF_8.is(contentType), "Expected text/plain but got " + contentType); assertEquals(data.getBody().trim(), contents); }
@Test(expectedExceptions = UncheckedIOException.class, expectedExceptionsMessageRegExp = ".* Failed to establish LoginContext for request .*") public void testNegotiateAuthScheme() throws Exception { servlet.addResponseHeader(WWW_AUTHENTICATE, NEGOTIATE.asString()); servlet.setResponseStatusCode(UNAUTHORIZED.code()); Request request = prepareGet().setUri(baseURI).build(); executeRequest(request, createStringResponseHandler()); } }
@Test(expectedExceptions = UncheckedIOException.class, expectedExceptionsMessageRegExp = ".* Failed to establish LoginContext for request .*") public void testNegotiateAuthScheme() throws Exception { servlet.addResponseHeader(WWW_AUTHENTICATE, NEGOTIATE.asString()); servlet.setResponseStatusCode(UNAUTHORIZED.code()); Request request = prepareGet().setUri(baseURI).build(); executeRequest(request, createStringResponseHandler()); } }