@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); } } }
HttpStatus(int code, String reason) { this.code = code; this.reason = reason; this.family = familyForStatusCode(code); }
@Override public String getStatusMessage() { return status.reason(); }
log.warn("%-8s %s -> OK", request.getMethod(), request.getUri()); return new TestingResponse(HttpStatus.fromStatusCode(result.getStatus()), responseHeaders.build(), result.readEntity(byte[].class));
public boolean cancelLeafStage(Duration timeout) { checkState(!isClosed(), "client is closed"); URI uri = current().getPartialCancelUri(); if (uri == null) { return false; } Request request = prepareDelete() .setHeader(USER_AGENT, USER_AGENT_VALUE) .setUri(uri) .build(); HttpResponseFuture<StatusResponse> response = httpClient.executeAsync(request, createStatusResponseHandler()); try { StatusResponse status = response.get(timeout.toMillis(), MILLISECONDS); return familyForStatusCode(status.getStatusCode()) == Family.SUCCESSFUL; } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw Throwables.propagate(e); } catch (ExecutionException e) { throw Throwables.propagate(e.getCause()); } catch (TimeoutException e) { return false; } }
@Override public String getStatusMessage() { return HttpStatus.OK.reason(); }
log.warn("%-8s %s -> OK", request.getMethod(), request.getUri()); return new TestingResponse(HttpStatus.fromStatusCode(result.getStatus()), responseHeaders.build(), result.readEntity(byte[].class));
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."); }
public void recordResponseReceived(String method, int responseCode, long requestSizeInBytes, long responseSizeInBytes, Duration requestProcessingTime, Duration responseProcessingTime) { requestTime.add(requestProcessingTime); responseTime.add(responseProcessingTime); readBytes.add(responseSizeInBytes); writtenBytes.add(requestSizeInBytes); allResponse.update(1); switch (familyForStatusCode(responseCode)) { case INFORMATIONAL: informationalResponse.update(1); break; case SUCCESSFUL: successfulResponse.update(1); break; case REDIRECTION: redirectionResponse.update(1); break; case CLIENT_ERROR: clientErrorResponse.update(1); break; case SERVER_ERROR: serverErrorResponse.update(1); break; } }
@Override public String getStatusMessage() { return HttpStatus.OK.reason(); }
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(); }
@Override public int getStatusCode() { return HttpStatus.OK.code(); }
@Override public int getStatusCode() { return HttpStatus.OK.code(); }
private static boolean isNotFound(StatusResponse response) { return response.getStatusCode() == HttpStatus.NOT_FOUND.code(); }