diff options
Diffstat (limited to 'netbox-client/provider/src/main/java/org/onap/ccsdk/sli/adaptors/netbox/impl/NetboxHttpClient.java')
-rw-r--r-- | netbox-client/provider/src/main/java/org/onap/ccsdk/sli/adaptors/netbox/impl/NetboxHttpClient.java | 87 |
1 files changed, 15 insertions, 72 deletions
diff --git a/netbox-client/provider/src/main/java/org/onap/ccsdk/sli/adaptors/netbox/impl/NetboxHttpClient.java b/netbox-client/provider/src/main/java/org/onap/ccsdk/sli/adaptors/netbox/impl/NetboxHttpClient.java index a77b4d3e..505c5a77 100644 --- a/netbox-client/provider/src/main/java/org/onap/ccsdk/sli/adaptors/netbox/impl/NetboxHttpClient.java +++ b/netbox-client/provider/src/main/java/org/onap/ccsdk/sli/adaptors/netbox/impl/NetboxHttpClient.java @@ -24,31 +24,24 @@ import java.nio.charset.Charset; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; -import java.util.Scanner; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionStage; -import java.util.function.Function; import javax.net.ssl.SSLContext; -import org.apache.http.HttpEntityEnclosingRequest; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpUriRequest; -import org.apache.http.concurrent.FutureCallback; +import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.entity.StringEntity; -import org.apache.http.impl.nio.client.CloseableHttpAsyncClient; -import org.apache.http.impl.nio.client.HttpAsyncClientBuilder; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.ssl.SSLContexts; import org.apache.http.ssl.TrustStrategy; -import org.onap.ccsdk.sli.adaptors.netbox.api.IpamException; import org.onap.ccsdk.sli.adaptors.netbox.property.NetboxProperties; public class NetboxHttpClient implements AutoCloseable { private static final String APPLICATION_JSON = "application/json"; - private final CloseableHttpAsyncClient client; + private final CloseableHttpClient client; private final String url; private final String token; @@ -69,16 +62,10 @@ public class NetboxHttpClient implements AutoCloseable { } catch (final NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) { throw new IllegalStateException("Can't create http client", e); } - client = HttpAsyncClientBuilder.create() + client = HttpClientBuilder.create() .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) .setSSLContext(sslContext) .build(); - - } - - // Has to be public for blueprint container to access it - public void init() { - client.start(); } @Override @@ -86,66 +73,22 @@ public class NetboxHttpClient implements AutoCloseable { client.close(); } - CompletionStage<HttpResponse> post(final String uri, final String requestBody) { - return sendRequest(uri, requestBody, HttpPost::new); - } - - CompletionStage<HttpResponse> delete(final String uri) { - return sendRequest(uri, HttpDelete::new); + HttpResponse post(final String uri, final String requestBody) throws IOException { + final HttpPost request = new HttpPost(url + uri); + setHeaders(request); + request.setEntity(new StringEntity(requestBody, Charset.forName("UTF-8"))); + return client.execute(request); } - static String getBodyAsString(final HttpResponse response) { - final String body; - if (response.getEntity() != null) { - try (final Scanner s = new java.util.Scanner(response.getEntity().getContent()).useDelimiter("\\A")) { - body = s.hasNext() ? s.next() : ""; - } catch (final IOException e) { - throw new IllegalStateException(e); - } - } else { - body = ""; - } - return response.toString() + "\n" + body; + HttpResponse delete(final String uri) throws IOException { + final HttpDelete request = new HttpDelete(url + uri); + setHeaders(request); + return client.execute(request); } - private <T extends HttpUriRequest> CompletionStage<HttpResponse> sendRequest(final String uri, - final Function<String, T> supplier) { - final T request = supplier.apply(url + uri); + private void setHeaders(final HttpRequestBase request) { request.addHeader(ACCEPT, APPLICATION_JSON); request.addHeader(CONTENT_TYPE, APPLICATION_JSON); request.addHeader(AUTHORIZATION, "Token " + token); - return sendRequest(request); - } - - private <T extends HttpEntityEnclosingRequest & HttpUriRequest> - CompletionStage<HttpResponse> sendRequest(final String uri, final String body, - final Function<String, T> supplier) { - final T request = supplier.apply(url + uri); - request.addHeader(ACCEPT, APPLICATION_JSON); - request.addHeader(CONTENT_TYPE, APPLICATION_JSON); - request.addHeader(AUTHORIZATION, "Token " + token); - request.setEntity(new StringEntity(body, Charset.forName("UTF-8"))); - return sendRequest(request); - } - - private CompletionStage<HttpResponse> sendRequest(final HttpUriRequest request) { - final CompletableFuture<HttpResponse> future = new CompletableFuture<>(); - client.execute(request, new FutureCallback<HttpResponse>() { - @Override - public void completed(final HttpResponse httpResponse) { - future.complete(httpResponse); - } - - @Override - public void failed(final Exception e) { - future.completeExceptionally(new IpamException("Netbox request failed", e)); - } - - @Override - public void cancelled() { - future.cancel(false); - } - }); - return future; } }
\ No newline at end of file |