@Override protected HttpResponse invoke(HttpUriRequest nativeRequest) throws IOException { org.apache.http.HttpResponse apacheResponse = executeRequest(nativeRequest); Payload payload = null; if (apacheResponse.getEntity() != null) try { payload = Payloads.newInputStreamPayload(apacheResponse.getEntity().getContent()); if (apacheResponse.getEntity().getContentLength() >= 0) payload.getContentMetadata().setContentLength(apacheResponse.getEntity().getContentLength()); if (apacheResponse.getEntity().getContentType() != null) payload.getContentMetadata().setContentType(apacheResponse.getEntity().getContentType().getValue()); } catch (IOException e) { logger.warn(e, "couldn't receive payload for request: %s", nativeRequest.getRequestLine()); throw e; } Multimap<String, String> headers = LinkedHashMultimap.create(); for (Header header : apacheResponse.getAllHeaders()) { headers.put(header.getName(), header.getValue()); } if (payload != null) { contentMetadataCodec.fromHeaders(payload.getContentMetadata(), headers); } return HttpResponse.builder().statusCode(apacheResponse.getStatusLine().getStatusCode()) .message(apacheResponse.getStatusLine().getReasonPhrase()) .payload(payload) .headers(filterOutContentHeaders(headers)).build(); }
@Override protected HttpResponse invoke(HttpUriRequest nativeRequest) throws IOException { org.apache.http.HttpResponse apacheResponse = executeRequest(nativeRequest); Payload payload = null; if (apacheResponse.getEntity() != null) try { payload = Payloads.newInputStreamPayload(consumeOnClose(apacheResponse.getEntity().getContent())); if (apacheResponse.getEntity().getContentLength() >= 0) payload.getContentMetadata().setContentLength(apacheResponse.getEntity().getContentLength()); if (apacheResponse.getEntity().getContentType() != null) payload.getContentMetadata().setContentType(apacheResponse.getEntity().getContentType().getValue()); } catch (IOException e) { logger.warn(e, "couldn't receive payload for request: %s", nativeRequest.getRequestLine()); throw e; } Multimap<String, String> headers = LinkedHashMultimap.create(); for (Header header : apacheResponse.getAllHeaders()) { headers.put(header.getName(), header.getValue()); } if (payload != null) { contentMetadataCodec.fromHeaders(payload.getContentMetadata(), headers); } return HttpResponse.builder().statusCode(apacheResponse.getStatusLine().getStatusCode()) .message(apacheResponse.getStatusLine().getReasonPhrase()) .payload(payload) .headers(filterOutContentHeaders(headers)).build(); }
@Override protected HttpResponse invoke(HttpUriRequest nativeRequest) throws IOException { org.apache.http.HttpResponse apacheResponse = executeRequest(nativeRequest); Payload payload = null; if (apacheResponse.getEntity() != null) try { payload = Payloads.newInputStreamPayload(apacheResponse.getEntity().getContent()); if (apacheResponse.getEntity().getContentLength() >= 0) payload.getContentMetadata().setContentLength(apacheResponse.getEntity().getContentLength()); if (apacheResponse.getEntity().getContentType() != null) payload.getContentMetadata().setContentType(apacheResponse.getEntity().getContentType().getValue()); } catch (IOException e) { logger.warn(e, "couldn't receive payload for request: %s", nativeRequest.getRequestLine()); throw e; } Multimap<String, String> headers = LinkedHashMultimap.create(); for (Header header : apacheResponse.getAllHeaders()) { headers.put(header.getName(), header.getValue()); } if (payload != null) { contentMetadataCodec.fromHeaders(payload.getContentMetadata(), headers); } return HttpResponse.builder().statusCode(apacheResponse.getStatusLine().getStatusCode()) .message(apacheResponse.getStatusLine().getReasonPhrase()) .payload(payload) .headers(filterOutContentHeaders(headers)).build(); }
builder.payload(payload); builder.headers(filterOutContentHeaders(headers)); return builder.build();
builder.payload(payload); builder.headers(filterOutContentHeaders(headers)); return builder.build();
builder.payload(payload); builder.headers(filterOutContentHeaders(headers)); return builder.build();
builder.payload(payload); builder.headers(filterOutContentHeaders(headers)); return builder.build();
builder.payload(payload); builder.headers(filterOutContentHeaders(headers)); return builder.build();
builder.payload(payload); builder.headers(filterOutContentHeaders(headers)); return builder.build();
@Override protected HttpResponse invoke(HttpUriRequest nativeRequest) throws IOException { org.apache.http.HttpResponse apacheResponse = executeRequest(nativeRequest); Payload payload = null; if (apacheResponse.getEntity() != null) try { payload = Payloads.newInputStreamPayload(consumeOnClose(apacheResponse.getEntity().getContent())); if (apacheResponse.getEntity().getContentLength() >= 0) payload.getContentMetadata().setContentLength(apacheResponse.getEntity().getContentLength()); if (apacheResponse.getEntity().getContentType() != null) payload.getContentMetadata().setContentType(apacheResponse.getEntity().getContentType().getValue()); } catch (IOException e) { logger.warn(e, "couldn't receive payload for request: %s", nativeRequest.getRequestLine()); throw e; } Multimap<String, String> headers = LinkedHashMultimap.create(); for (Header header : apacheResponse.getAllHeaders()) { headers.put(header.getName(), header.getValue()); } if (payload != null) { contentMetadataCodec.fromHeaders(payload.getContentMetadata(), headers); } return HttpResponse.builder().statusCode(apacheResponse.getStatusLine().getStatusCode()) .message(apacheResponse.getStatusLine().getReasonPhrase()) .payload(payload) .headers(filterOutContentHeaders(headers)).build(); }
@Override public HttpResponse apply(HTTPResponse gaeResponse) { Payload payload = gaeResponse.getContent() != null ? Payloads.newByteArrayPayload(gaeResponse.getContent()) : null; Multimap<String, String> headers = LinkedHashMultimap.create(); String message = null; for (HTTPHeader header : gaeResponse.getHeaders()) { if (header.getName() == null) message = header.getValue(); else headers.put(header.getName(), header.getValue()); } if (payload != null) { contentMetadataCodec.fromHeaders(payload.getContentMetadata(), headers); } return HttpResponse.builder() .statusCode(gaeResponse.getResponseCode()) .message(message) .payload(payload) .headers(filterOutContentHeaders(headers)).build(); } }
public void testCreateImageWhenResponseIs2xx() throws Exception { String serverId = "123"; String imageId = "456"; String imageName = "foo"; HttpRequest createImage = HttpRequest.builder() .method("POST") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/action") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .payload(payloadFromStringWithContentType( "{\"createImage\":{\"name\":\"" + imageName + "\", \"metadata\": {}}}", "application/json")) .build(); HttpResponse createImageResponse = HttpResponse.builder() .statusCode(200) .headers(ImmutableMultimap.<String, String> builder() .put("Location", "https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images/" + imageId).build()).build(); NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, createImage, createImageResponse); assertEquals(apiWhenServerExists.getServerApi("az-1.region-a.geo-1").createImageFromServer(imageName, serverId), imageId); }
@Override public HttpResponse apply(HTTPResponse gaeResponse) { Payload payload = gaeResponse.getContent() != null ? Payloads.newByteArrayPayload(gaeResponse.getContent()) : null; Multimap<String, String> headers = LinkedHashMultimap.create(); String message = null; for (HTTPHeader header : gaeResponse.getHeaders()) { if (header.getName() == null) message = header.getValue(); else headers.put(header.getName(), header.getValue()); } if (payload != null) { contentMetadataCodec.fromHeaders(payload.getContentMetadata(), headers); } return HttpResponse.builder() .statusCode(gaeResponse.getResponseCode()) .message(message) .payload(payload) .headers(filterOutContentHeaders(headers)).build(); } }
@Override protected HttpResponse invoke(Request nativeRequest) throws IOException, InterruptedException { OkHttpClient requestScopedClient = globalClient.clone(); requestScopedClient.setProxy(proxyForURI.apply(nativeRequest.uri())); Response response = requestScopedClient.newCall(nativeRequest).execute(); HttpResponse.Builder<?> builder = HttpResponse.builder(); builder.statusCode(response.code()); builder.message(response.message()); Builder<String, String> headerBuilder = ImmutableMultimap.builder(); Headers responseHeaders = response.headers(); for (String header : responseHeaders.names()) { headerBuilder.putAll(header, responseHeaders.values(header)); } ImmutableMultimap<String, String> headers = headerBuilder.build(); if (response.code() == 204 && response.body() != null) { response.body().close(); } else { Payload payload = newInputStreamPayload(response.body().byteStream()); contentMetadataCodec.fromHeaders(payload.getContentMetadata(), headers); builder.payload(payload); } builder.headers(filterOutContentHeaders(headers)); return builder.build(); }
public void testCreateImageWhenResponseIs2xx() throws Exception { String serverId = "123"; String imageId = "456"; String imageName = "foo"; HttpRequest createImage = HttpRequest .builder() .method("POST") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers/" + serverId + "/action") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .payload(payloadFromStringWithContentType( "{\"createImage\":{\"name\":\"" + imageName + "\", \"metadata\": {}}}", "application/json")) .build(); HttpResponse createImageResponse = HttpResponse.builder() .statusCode(200) .headers( ImmutableMultimap.<String, String> builder() .put("Location", "https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId).build()).build(); NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, createImage, createImageResponse); assertEquals(apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").createImageFromServer(imageName, serverId), imageId); }
public void testLoginWhenResponseIs2xxIncludesJSessionId() throws IOException { String domain = "Partners/jclouds"; String user = "jclouds"; String password = "jcl0ud"; String md5password = base16().lowerCase().encode(md5().hashString(password, UTF_8).asBytes()); String jSessionId = "90DD65D13AEAA590ECCA312D150B9F6D"; SessionApi client = requestSendsResponse(login, HttpResponse.builder() .statusCode(200) .headers( ImmutableMultimap.<String, String>builder() .put("Set-Cookie", "JSESSIONID=" + jSessionId + "; Path=/client") .build()) .payload(payloadFromResource("/loginresponse.json")) .build()); assertEquals(client.loginUserInDomainWithHashOfPassword(user, domain, md5password).toString(), LoginResponse.builder().timeout(1800).lastName("Kiran").registered(false).username("jclouds").firstName("Vijay") .domainId("11").accountType(Account.Type.DOMAIN_ADMIN).userId("19").sessionKey( "uYT4/MNiglgAKiZRQkvV8QP8gn0=").jSessionId(jSessionId).accountName("jclouds").build().toString()); }
public void testLoginWhenResponseIs2xxIncludesJSessionId() throws IOException { String domain = "Partners/jCloud"; String user = "jcloud"; String password = "jcl0ud"; String md5password = base16().lowerCase().encode(md5().hashString(password, UTF_8).asBytes()); String jSessionId = "90DD65D13AEAA590ECCA312D150B9F6D"; SessionClient client = requestSendsResponse(login, HttpResponse.builder() .statusCode(200) .headers( ImmutableMultimap.<String, String>builder() .put("Set-Cookie", "JSESSIONID=" + jSessionId + "; Path=/client") .build()) .payload(payloadFromResource("/loginresponse.json")) .build()); assertEquals(client.loginUserInDomainWithHashOfPassword(user, domain, md5password).toString(), LoginResponse.builder().timeout(1800).lastName("Kiran").registered(false).username("jcloud").firstName("Vijay") .domainId("11").accountType(Account.Type.DOMAIN_ADMIN).userId("19").sessionKey( "uYT4/MNiglgAKiZRQkvV8QP8gn0=").jSessionId(jSessionId).accountName("jcloud").build().toString()); }
public void testApply() { URIParser parser = new URIParser(); Multimap<String, String> headers = LinkedHashMultimap.<String, String>create(); URI uri = parser.apply(HttpResponse.builder().statusCode(200).build()); assertNull(uri); try { uri = parser.apply(HttpResponse.builder().statusCode(202).build()); } catch (IllegalStateException ex) { assertNotNull(ex); } headers.put("Location", "https://someuri"); uri = parser.apply(HttpResponse.builder().statusCode(202).headers(headers).build()); assertNotNull(uri); } }