/** * If we get back any 2xx status code, then we know we should treat the service call as successful. */ default boolean isSuccessful() { return HttpStatusFamily.of(statusCode()) == HttpStatusFamily.SUCCESSFUL; }
/** * If we get back any 2xx status code, then we know we should treat the service call as successful. */ default boolean isSuccessful() { return HttpStatusFamily.of(statusCode()) == HttpStatusFamily.SUCCESSFUL; }
private HashMap<String, Object> extractHttpResponseParameters(SdkHttpResponse httpResponse) { HashMap<String, Object> parameters = new HashMap<>(); HashMap<String, Object> responseData = new HashMap<>(); responseData.put(EntityDataKeys.HTTP.STATUS_CODE_KEY, httpResponse.statusCode()); try { if (httpResponse.headers().containsKey(EntityHeaderKeys.HTTP.CONTENT_LENGTH_HEADER)) { responseData.put(EntityDataKeys.HTTP.CONTENT_LENGTH_KEY, Long.parseLong( httpResponse.headers().get(EntityHeaderKeys.HTTP.CONTENT_LENGTH_HEADER).get(0)) ); } } catch (NumberFormatException e) { logger.warn("Unable to parse Content-Length header.", e); } parameters.put(EntityDataKeys.HTTP.RESPONSE_KEY, responseData); return parameters; }
private HashMap<String, Object> extractHttpResponseParameters(SdkHttpResponse httpResponse) { HashMap<String, Object> parameters = new HashMap<>(); HashMap<String, Object> responseData = new HashMap<>(); responseData.put(EntityDataKeys.HTTP.STATUS_CODE_KEY, httpResponse.statusCode()); try { if (httpResponse.headers().containsKey(EntityHeaderKeys.HTTP.CONTENT_LENGTH_HEADER)) { responseData.put(EntityDataKeys.HTTP.CONTENT_LENGTH_KEY, Long.parseLong( httpResponse.headers().get(EntityHeaderKeys.HTTP.CONTENT_LENGTH_HEADER).get(0)) ); } } catch (NumberFormatException e) { logger.warn("Unable to parse Content-Length header.", e); } parameters.put(EntityDataKeys.HTTP.RESPONSE_KEY, responseData); return parameters; }
private static SdkHttpFullResponse toFullResponse(SdkHttpResponse response) { SdkHttpFullResponse.Builder builder = SdkHttpFullResponse.builder() .statusCode(response.statusCode()) .headers(response.headers()); response.statusText().ifPresent(builder::statusText); return builder.build(); } }
private void validateResponse(HttpExecuteResponse response, int returnCode, SdkHttpMethod method) throws IOException { RequestMethod requestMethod = RequestMethod.fromString(method.name()); RequestPatternBuilder patternBuilder = RequestPatternBuilder.newRequestPattern(requestMethod, urlMatching("/")) .withHeader("Host", containing("localhost")) .withHeader("User-Agent", equalTo("hello-world!")); if (method == SdkHttpMethod.HEAD) { patternBuilder.withRequestBody(equalTo("")); } else { patternBuilder.withRequestBody(equalTo("Body")); } verify(1, patternBuilder); if (method == SdkHttpMethod.HEAD) { assertThat(response.responseBody()).isEmpty(); } else { assertThat(IoUtils.toUtf8String(response.responseBody().orElse(null))).isEqualTo("hello"); } assertThat(response.httpResponse().firstMatchingHeader("Some-Header")).contains("With Value"); assertThat(response.httpResponse().statusCode()).isEqualTo(returnCode); mockServer.resetMappings(); }
public FeatureState retrieveFeatureStateFromS3(final Feature feature) { final GetObjectRequest getRequest = GetObjectRequest.builder() .bucket(togglzProperties.getS3().getBucketName()) .key(keyForFeature(feature)) .build(); try (final ResponseInputStream<GetObjectResponse> responseStream = s3Client.getObject(getRequest)) { if (responseStream != null) { final FeatureStateStorageWrapper wrapper = objectMapper.reader() .forType(FeatureStateStorageWrapper.class) .readValue(responseStream); return FeatureStateStorageWrapper.featureStateForWrapper(feature, wrapper); } } catch (final S3Exception ae) { if (ERR_NO_SUCH_KEY.equals(ae.awsErrorDetails().errorCode()) || ae.awsErrorDetails().sdkHttpResponse().statusCode() == 404) { return null; } throw ae; } catch (final IOException e) { throw new RuntimeException("Failed to get the feature state", e); } return null; }
} catch (AwsServiceException awsServiceException) { if (holdLockOnServiceUnavailable && awsServiceException.awsErrorDetails().sdkHttpResponse().statusCode() == HttpStatusCode.SERVICE_UNAVAILABLE) {
private void populateSubsegmentException(Subsegment subsegment, Context.FailedExecution context) { Throwable exception = context.exception(); subsegment.addException(exception); int statusCode = -1; if (exception instanceof SdkServiceException) { statusCode = ((SdkServiceException) exception).statusCode(); subsegment.getCause().setMessage(exception.getMessage()); if (((SdkServiceException) exception).isThrottlingException()) { subsegment.setThrottle(true); // throttling errors are considered client-side errors subsegment.setError(true); } setRemoteForException(subsegment, exception); } else if (context.httpResponse().isPresent()) { statusCode = context.httpResponse().get().statusCode(); } if (statusCode == -1) { return; } if (statusCode >= 400 && statusCode < 500) { subsegment.setFault(false); subsegment.setError(true); if (statusCode == 429) { subsegment.setThrottle(true); } } else if (statusCode >= 500) { subsegment.setFault(true); } }
private void populateSubsegmentException(Subsegment subsegment, Context.FailedExecution context) { Throwable exception = context.exception(); subsegment.addException(exception); int statusCode = -1; if (exception instanceof SdkServiceException) { statusCode = ((SdkServiceException) exception).statusCode(); subsegment.getCause().setMessage(exception.getMessage()); if (((SdkServiceException) exception).isThrottlingException()) { subsegment.setThrottle(true); // throttling errors are considered client-side errors subsegment.setError(true); } setRemoteForException(subsegment, exception); } else if (context.httpResponse().isPresent()) { statusCode = context.httpResponse().get().statusCode(); } if (statusCode == -1) { return; } if (statusCode >= 400 && statusCode < 500) { subsegment.setFault(false); subsegment.setError(true); if (statusCode == 429) { subsegment.setThrottle(true); } } else if (statusCode >= 500) { subsegment.setFault(true); } }